--- engine/rendergl.cpp 2005-08-15 00:56:12.000000000 +0200 +++ engine/rendergl.cpp 2005-11-05 15:57:31.000000000 +0100 @@ -117,6 +117,7 @@ Texture *textureload(char *name, int rot, bool clamp, bool mipit, bool msg) { string rname, tname; + name = addfullpath(name); strcpy_s(tname, name); strcpy_s(rname, path(tname)); if(rot) { sprintf_sd(rnum)("_%d", rot); strcat_s(rname, rnum); }; --- shared/tools.cpp 2005-08-07 01:23:22.000000000 +0200 +++ shared/tools.cpp 2005-11-05 15:55:14.000000000 +0100 @@ -5,8 +5,19 @@ ///////////////////////// misc tools /////////////////////// +char *addfullpath(char *s) { + static char ret[256]; // choose a reasonable max buffer size + if (s[0] == '/') { return s; } + int slen = strlen(s); + memset(ret, 0x00, 256); + memcpy(ret, GAMES_DATADIR, GAMES_DATADIR_LEN); + memcpy(ret+GAMES_DATADIR_LEN, s, slen); + return ret; + } + char *path(char *s) { + s = addfullpath(s); for(char *t = s; t = strpbrk(t, "/\\"); *t++ = PATHDIV); return s; }; --- shared/tools.h 2005-08-14 23:08:02.000000000 +0200 +++ shared/tools.h 2005-11-05 15:59:48.000000000 +0100 @@ -115,6 +115,7 @@ #endif +extern char *addfullpath(char *s); extern char *path(char *s); extern char *loadfile(char *fn, int *size); extern void endianswap(void *, int, int);