Browse Source

ref_soft: Do not clip submodels with negative topnode content (fix crash on some maps)

pull/2/head
mittorn 6 years ago
parent
commit
c36f415793
  1. 2
      r_local.h
  2. 6
      r_main.c

2
r_local.h

@ -1248,6 +1248,8 @@ extern int r_leafkeys[MAX_MAP_LEAFS]; @@ -1248,6 +1248,8 @@ extern int r_leafkeys[MAX_MAP_LEAFS];
//
void R_RotateBmodel (void);
void R_DrawSolidClippedSubmodelPolygons (model_t *pmodel, mnode_t *topnode);
void R_DrawSubmodelPolygons (model_t *pmodel, int clipflags, mnode_t *topnode);
//
// r_blitscreen.c
//

6
r_main.c

@ -1326,13 +1326,13 @@ void R_DrawBEntitiesOnList (void) @@ -1326,13 +1326,13 @@ void R_DrawBEntitiesOnList (void)
// RI.currententity = tr.draw_list->solid_entities[i];
RI.currententity->topnode = topnode;
//ASSERT( RI.currentmodel == tr.draw_list->solid_entities[i]->model );
//if (topnode->contents >= 0)
if (topnode->contents >= 0)
{
// not a leaf; has to be clipped to the world BSP
r_clipflags = clipflags;
R_DrawSolidClippedSubmodelPolygons (RI.currentmodel, topnode);
}
//else
else
{
// falls entirely in one leaf, so we just put all the
// edges in the edge list and let 1/z sorting handle
@ -1340,7 +1340,7 @@ void R_DrawBEntitiesOnList (void) @@ -1340,7 +1340,7 @@ void R_DrawBEntitiesOnList (void)
//ASSERT( RI.currentmodel == tr.draw_list->solid_entities[i]->model );
//R_DrawSubmodelPolygons (RI.currentmodel, clipflags, topnode);
R_DrawSubmodelPolygons (RI.currentmodel, clipflags, topnode);
}
RI.currententity->topnode = NULL;

Loading…
Cancel
Save