diff --git a/nzportable.3dsx b/nzportable.3dsx index 9730101..039681e 100644 Binary files a/nzportable.3dsx and b/nzportable.3dsx differ diff --git a/nzportable.elf b/nzportable.elf index ed71aee..0ed4331 100755 Binary files a/nzportable.elf and b/nzportable.elf differ diff --git a/source/gl_rsurf.c b/source/gl_rsurf.c index 2f02514..58a67db 100644 --- a/source/gl_rsurf.c +++ b/source/gl_rsurf.c @@ -1233,6 +1233,7 @@ void R_DrawBrushModel (entity_t *e) // // draw texture // + int touched_transparent = 0; // naievil -- wow I cannot believe this works, fixes rendering on non transparent textures for (i=0 ; inummodelsurfaces ; i++, psurf++) { // find which side of the node we are on @@ -1240,6 +1241,10 @@ void R_DrawBrushModel (entity_t *e) dot = DotProduct (modelorg, pplane->normal) - pplane->dist; + if (!strncmp(psurf->texinfo->texture->name,"{",1)) { + touched_transparent = 1; + } + // draw the polygon if (((psurf->flags & SURF_PLANEBACK) && (dot < -BACKFACE_EPSILON)) || (!(psurf->flags & SURF_PLANEBACK) && (dot > BACKFACE_EPSILON))) @@ -1248,7 +1253,7 @@ void R_DrawBrushModel (entity_t *e) } } - R_BlendLightmaps (1); + R_BlendLightmaps (touched_transparent); glPopMatrix (); }