]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
added DP_GFX_EXTERNALTEXTURES_PERMAP extension
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 7 Jun 2006 04:11:45 +0000 (04:11 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 7 Jun 2006 04:11:45 +0000 (04:11 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6423 d7cf8633-e32d-0410-b094-e92efae38249

clvm_cmds.c
model_brush.c
svvm_cmds.c

index a1a7d6e2277750d1a1b5c6d4c2f17cd62ead88d7..7c3ae0a75895925b388ed32734fff4ab0597eb84 100644 (file)
@@ -39,6 +39,7 @@ char *vm_cl_extensions =
 "DP_ENT_GLOW "
 "DP_ENT_SCALE "
 "DP_GFX_EXTERNALTEXTURES "
+"DP_GFX_EXTERNALTEXTURES_PERMAP "
 "DP_GFX_FOG "
 "DP_GFX_QUAKE3MODELTAGS "
 "DP_GFX_SKINFILES "
index 8b4581fe1a99bd83464f56a0fc869a66abd0df3a..53a1f7cdecad9abfd572fcdccc1545de3659bca4 100644 (file)
@@ -1233,7 +1233,8 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l)
        texture_t *tx, *tx2, *anims[10], *altanims[10];
        dmiptexlump_t *m;
        unsigned char *data, *mtdata;
-       char name[MAX_QPATH];
+       const char *s;
+       char mapname[MAX_QPATH], name[MAX_QPATH];
 
        loadmodel->data_textures = NULL;
 
@@ -1278,6 +1279,11 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l)
        if (!m)
                return;
 
+       s = loadmodel->name;
+       if (!strncasecmp(s, "maps/", 4))
+               s += 4;
+       FS_StripExtension(s, mapname, sizeof(mapname));
+
        // just to work around bounds checking when debugging with it (array index out of bounds error thing)
        dofs = m->dataofs;
        // LordHavoc: mostly rewritten map texture loader
@@ -1346,7 +1352,8 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l)
                        }
                        else
                        {
-                               if (!Mod_LoadSkinFrame(&tx->skin, gamemode == GAME_TENEBRAE ? tx->name : va("textures/%s", tx->name), TEXF_MIPMAP | TEXF_ALPHA | TEXF_PRECACHE | TEXF_PICMIP, false, true))
+                               if (!Mod_LoadSkinFrame(&tx->skin, gamemode == GAME_TENEBRAE ? tx->name : va("textures/%s/%s", mapname, tx->name), TEXF_MIPMAP | TEXF_ALPHA | TEXF_PRECACHE | TEXF_PICMIP, false, true)
+                                && !Mod_LoadSkinFrame(&tx->skin, gamemode == GAME_TENEBRAE ? tx->name : va("textures/%s", tx->name), TEXF_MIPMAP | TEXF_ALPHA | TEXF_PRECACHE | TEXF_PICMIP, false, true))
                                {
                                        // did not find external texture, load it from the bsp or wad3
                                        if (loadmodel->brush.ishlbsp)
index da749e3de90d5743c82a12a1df326d55d48017d5..b6b0f18323ee1aaf6f5b17fc47d668db19e228ec 100644 (file)
@@ -35,6 +35,7 @@ char *vm_sv_extensions =
 "DP_ENT_SCALE "
 "DP_ENT_VIEWMODEL "
 "DP_GFX_EXTERNALTEXTURES "
+"DP_GFX_EXTERNALTEXTURES_PERMAP "
 "DP_GFX_FOG "
 "DP_GFX_QUAKE3MODELTAGS "
 "DP_GFX_SKINFILES "