mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Fix portals
- Resetting portalcullsector fixes the major visual glitches - Using 32 bits for nummasks and i fixes crashes when rendering lots of portals # Conflicts: # src/r_main.c
This commit is contained in:
parent
5dc9df4c6a
commit
336010e616
4 changed files with 5 additions and 6 deletions
|
|
@ -1500,8 +1500,7 @@ static void Mask_Post (maskcount_t* m)
|
||||||
void R_RenderPlayerView(void)
|
void R_RenderPlayerView(void)
|
||||||
{
|
{
|
||||||
player_t * player = &players[displayplayers[viewssnum]];
|
player_t * player = &players[displayplayers[viewssnum]];
|
||||||
|
INT32 nummasks = 1;
|
||||||
UINT8 nummasks = 1;
|
|
||||||
maskcount_t* masks = malloc(sizeof(maskcount_t));
|
maskcount_t* masks = malloc(sizeof(maskcount_t));
|
||||||
|
|
||||||
// if this is display player 1
|
// if this is display player 1
|
||||||
|
|
@ -1572,7 +1571,6 @@ void R_RenderPlayerView(void)
|
||||||
R_ClipSprites(drawsegs, NULL);
|
R_ClipSprites(drawsegs, NULL);
|
||||||
ps_sw_spritecliptime = I_GetPreciseTime() - ps_sw_spritecliptime;
|
ps_sw_spritecliptime = I_GetPreciseTime() - ps_sw_spritecliptime;
|
||||||
|
|
||||||
|
|
||||||
// Add skybox portals caused by sky visplanes.
|
// Add skybox portals caused by sky visplanes.
|
||||||
if (cv_skybox.value && player->skybox.viewpoint)
|
if (cv_skybox.value && player->skybox.viewpoint)
|
||||||
Portal_AddSkyboxPortals(player);
|
Portal_AddSkyboxPortals(player);
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ static portal_t* Portal_Add (const INT16 x1, const INT16 x2)
|
||||||
|
|
||||||
void Portal_Remove (portal_t* portal)
|
void Portal_Remove (portal_t* portal)
|
||||||
{
|
{
|
||||||
|
portalcullsector = NULL;
|
||||||
portal_base = portal->next;
|
portal_base = portal->next;
|
||||||
Z_Free(portal->ceilingclip);
|
Z_Free(portal->ceilingclip);
|
||||||
Z_Free(portal->floorclip);
|
Z_Free(portal->floorclip);
|
||||||
|
|
|
||||||
|
|
@ -3274,10 +3274,10 @@ static void R_DrawMaskedList (drawnode_t* head)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void R_DrawMasked(maskcount_t* masks, UINT8 nummasks)
|
void R_DrawMasked(maskcount_t* masks, INT32 nummasks)
|
||||||
{
|
{
|
||||||
drawnode_t *heads; /**< Drawnode lists; as many as number of views/portals. */
|
drawnode_t *heads; /**< Drawnode lists; as many as number of views/portals. */
|
||||||
SINT8 i;
|
INT32 i;
|
||||||
|
|
||||||
heads = calloc(nummasks, sizeof(drawnode_t));
|
heads = calloc(nummasks, sizeof(drawnode_t));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ typedef struct
|
||||||
sector_t* viewsector;
|
sector_t* viewsector;
|
||||||
} maskcount_t;
|
} maskcount_t;
|
||||||
|
|
||||||
void R_DrawMasked(maskcount_t* masks, UINT8 nummasks);
|
void R_DrawMasked(maskcount_t* masks, INT32 nummasks);
|
||||||
|
|
||||||
// ----------
|
// ----------
|
||||||
// VISSPRITES
|
// VISSPRITES
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue