powerupvars_t: add barrier member

This commit is contained in:
James R 2023-11-16 01:24:55 -08:00
parent b772a66541
commit 254df6bf7e
3 changed files with 19 additions and 0 deletions

View file

@ -545,6 +545,7 @@ struct powerupvars_t {
UINT16 barrierTimer;
UINT16 rhythmBadgeTimer;
mobj_t *flickyController;
mobj_t *barrier;
};
// player_t struct for all alternative viewpoint variables

View file

@ -82,6 +82,7 @@ typedef enum
FLICKYATTACKER = 0x0800,
FLICKYCONTROLLER = 0x1000,
TRICKINDICATOR = 0x2000,
BARRIER = 0x4000,
} player_saveflags;
static inline void P_ArchivePlayer(savebuffer_t *save)
@ -332,6 +333,9 @@ static void P_NetArchivePlayers(savebuffer_t *save)
if (players[i].powerup.flickyController)
flags |= FLICKYCONTROLLER;
if (players[i].powerup.barrier)
flags |= BARRIER;
WRITEUINT16(save->p, flags);
if (flags & SKYBOXVIEW)
@ -373,6 +377,9 @@ static void P_NetArchivePlayers(savebuffer_t *save)
if (flags & FLICKYCONTROLLER)
WRITEUINT32(save->p, players[i].powerup.flickyController->mobjnum);
if (flags & BARRIER)
WRITEUINT32(save->p, players[i].powerup.barrier->mobjnum);
WRITEUINT32(save->p, (UINT32)players[i].followitem);
WRITEUINT32(save->p, players[i].charflags);
@ -911,6 +918,9 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
if (flags & FLICKYCONTROLLER)
players[i].powerup.flickyController = (mobj_t *)(size_t)READUINT32(save->p);
if (flags & BARRIER)
players[i].powerup.barrier = (mobj_t *)(size_t)READUINT32(save->p);
players[i].followitem = (mobjtype_t)READUINT32(save->p);
//SetPlayerSkinByNum(i, players[i].skin);
@ -5743,6 +5753,13 @@ static void P_RelinkPointers(void)
if (!P_SetTarget(&players[i].powerup.flickyController, P_FindNewPosition(temp)))
CONS_Debug(DBG_GAMELOGIC, "powerup.flickyController not found on player %d\n", i);
}
if (players[i].powerup.barrier)
{
temp = (UINT32)(size_t)players[i].powerup.barrier;
players[i].powerup.barrier = NULL;
if (!P_SetTarget(&players[i].powerup.barrier, P_FindNewPosition(temp)))
CONS_Debug(DBG_GAMELOGIC, "powerup.barrier not found on player %d\n", i);
}
}
}

View file

@ -4069,6 +4069,7 @@ void P_PlayerThink(player_t *player)
PlayerPointerErase(player->hoverhyudoro);
PlayerPointerErase(player->flickyAttacker);
PlayerPointerErase(player->powerup.flickyController);
PlayerPointerErase(player->powerup.barrier);
#undef PlayerPointerErase
}