]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - model_brush.c
fix a crash in q1bsp model stats printing in developer mode
[xonotic/darkplaces.git] / model_brush.c
index 209d506125d8aecd30910ef843c64b4d1dbd3b0f..a19020c1deb2ec768c16490f99729819b1b1dced 100644 (file)
@@ -1337,7 +1337,7 @@ static void Mod_Q1BSP_LoadLighting(lump_t *l)
                data = (qbyte*) FS_LoadFile(litfilename, tempmempool, false);
                if (data)
                {
-                       if (fs_filesize == 8 + l->filelen * 3 && data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T')
+                       if (fs_filesize == (fs_offset_t)(8 + l->filelen * 3) && data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T')
                        {
                                i = LittleLong(((int *)data)[1]);
                                if (i == 1)
@@ -3158,7 +3158,7 @@ void Mod_Q1BSP_Load(model_t *mod, void *buffer)
        //Mod_Q1BSP_ProcessLightList();
 
        if (developer.integer)
-               Con_Printf("Some stats for q1bsp model \"%s\": %i faces, %i nodes, %i leafs, %i visleafs, %i visleafportals\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brushq1.submodels[i].visleafs, loadmodel->brush.num_portals);
+               Con_Printf("Some stats for q1bsp model \"%s\": %i faces, %i nodes, %i leafs, %i visleafs, %i visleafportals\n", loadmodel->name, loadmodel->num_surfaces, loadmodel->brush.num_nodes, loadmodel->brush.num_leafs, mod->brush.num_pvsclusters, loadmodel->brush.num_portals);
 }
 
 static void Mod_Q2BSP_LoadEntities(lump_t *l)
@@ -3861,7 +3861,12 @@ static void Mod_Q3BSP_LoadTextures(lump_t *l)
                                                                        out->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_WATERALPHA;
                                                                else
                                                                        out->basematerialflags |= MATERIALFLAG_WALL;
-                                                               if (out->surfaceparms & Q3SURFACEPARM_TRANS)
+                                                               if (out->textureflags & Q3TEXTUREFLAG_ALPHATEST)
+                                                               {
+                                                                       // FIXME: support alpha test?
+                                                                       out->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_TRANSPARENT;
+                                                               }
+                                                               else if (out->surfaceparms & Q3SURFACEPARM_TRANS)
                                                                {
                                                                        if (out->textureflags & Q3TEXTUREFLAG_ADDITIVE)
                                                                                out->basematerialflags |= MATERIALFLAG_ADD | MATERIALFLAG_TRANSPARENT;
@@ -3940,10 +3945,10 @@ static void Mod_Q3BSP_LoadPlanes(lump_t *l)
 
        for (i = 0;i < count;i++, in++, out++)
        {
-               out->normal[0] = LittleLong(in->normal[0]);
-               out->normal[1] = LittleLong(in->normal[1]);
-               out->normal[2] = LittleLong(in->normal[2]);
-               out->dist = LittleLong(in->dist);
+               out->normal[0] = LittleFloat(in->normal[0]);
+               out->normal[1] = LittleFloat(in->normal[1]);
+               out->normal[2] = LittleFloat(in->normal[2]);
+               out->dist = LittleFloat(in->dist);
                PlaneClassify(out);
        }
 }