mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- made PLAYER::fragger an actor pointer.
This commit is contained in:
parent
abee5c5eaa
commit
fddc213fa8
6 changed files with 14 additions and 26 deletions
|
@ -3461,8 +3461,8 @@ void actKillDude(DBloodActor* killerActor, DBloodActor* actor, DAMAGE_TYPE damag
|
|||
|
||||
for (int p = connecthead; p >= 0; p = connectpoint2[p])
|
||||
{
|
||||
if (gPlayer[p].fragger() == actor && gPlayer[p].deathTime > 0)
|
||||
gPlayer[p].setFragger(nullptr);
|
||||
if (gPlayer[p].fragger == actor && gPlayer[p].deathTime > 0)
|
||||
gPlayer[p].fragger = nullptr;
|
||||
}
|
||||
if (pSprite->type != kDudeCultistBeast)
|
||||
trTriggerSprite(actor, kCmdOff);
|
||||
|
|
|
@ -498,7 +498,7 @@ static void unicultThinkChase(DBloodActor* actor)
|
|||
if (pXTarget->health <= 0) // target is dead
|
||||
{
|
||||
PLAYER* pPlayer = NULL;
|
||||
if ((!IsPlayerSprite(pTarget)) || ((pPlayer = getPlayerById(pTarget->type)) != NULL && pPlayer->fragger() == actor))
|
||||
if ((!IsPlayerSprite(pTarget)) || ((pPlayer = getPlayerById(pTarget->type)) != NULL && pPlayer->fragger == actor))
|
||||
{
|
||||
playGenDudeSound(actor, kGenDudeSndTargetDead);
|
||||
if (spriteIsUnderwater(actor, false)) aiGenDudeNewState(actor, &genDudeSearchShortW);
|
||||
|
|
|
@ -322,16 +322,6 @@ inline void GetActorExtents(DBloodActor* actor, int* top, int* bottom)
|
|||
GetSpriteExtents(&actor->s(), top, bottom);
|
||||
}
|
||||
|
||||
inline DBloodActor *PLAYER::fragger()
|
||||
{
|
||||
return fraggerId == -1? nullptr : &bloodActors[fraggerId];
|
||||
}
|
||||
|
||||
inline void PLAYER::setFragger(DBloodActor* actor)
|
||||
{
|
||||
fraggerId = actor == nullptr ? -1 : actor->s().index;
|
||||
}
|
||||
|
||||
inline DBloodActor* PLAYER::actor()
|
||||
{
|
||||
return &bloodActors[pSprite->index];
|
||||
|
|
|
@ -4326,8 +4326,8 @@ bool condCheckPlayer(DBloodActor* aCond, int cmpOp, bool PUSH)
|
|||
condError(aCond, "Unexpected powerup #%d", arg3);
|
||||
return false;
|
||||
case 9:
|
||||
if (!pPlayer->fragger()) return false;
|
||||
else if (PUSH) condPush(aCond, OBJ_SPRITE, 0, pPlayer->fragger());
|
||||
if (!pPlayer->fragger) return false;
|
||||
else if (PUSH) condPush(aCond, OBJ_SPRITE, 0, pPlayer->fragger);
|
||||
return true;
|
||||
case 10: // check keys pressed
|
||||
switch (arg1) {
|
||||
|
|
|
@ -689,7 +689,7 @@ void playerStart(int nPlayer, int bNewLevel)
|
|||
pPlayer->bloodlust = 0;
|
||||
pPlayer->horizon.horiz = pPlayer->horizon.horizoff = q16horiz(0);
|
||||
pPlayer->slope = 0;
|
||||
pPlayer->setFragger(0);
|
||||
pPlayer->fragger = nullptr;
|
||||
pPlayer->underwaterTime = 1200;
|
||||
pPlayer->bubbleTime = 0;
|
||||
pPlayer->restTime = 0;
|
||||
|
@ -1375,7 +1375,7 @@ void ProcessInput(PLAYER *pPlayer)
|
|||
if (pXSprite->health == 0)
|
||||
{
|
||||
char bSeqStat = playerSeqPlaying(pPlayer, 16);
|
||||
auto fragger = pPlayer->fragger();
|
||||
auto fragger = pPlayer->fragger;
|
||||
if (fragger)
|
||||
{
|
||||
pPlayer->angle.addadjustment(getincanglebam(pPlayer->angle.ang, bvectangbam(fragger->s().x - pSprite->x, fragger->s().y - pSprite->y)));
|
||||
|
@ -1810,7 +1810,7 @@ void playerFrag(PLAYER *pKiller, PLAYER *pVictim)
|
|||
assert(nVictim >= 0 && nVictim < kMaxPlayers);
|
||||
if (nKiller == nVictim)
|
||||
{
|
||||
pVictim->setFragger(nullptr);
|
||||
pVictim->fragger = nullptr;
|
||||
if (VanillaMode() || gGameOptions.nGameType != 1)
|
||||
{
|
||||
pVictim->fragCount--;
|
||||
|
@ -2014,7 +2014,7 @@ int playerDamageSprite(DBloodActor* source, PLAYER *pPlayer, DAMAGE_TYPE nDamage
|
|||
pPlayer->deathTime = 0;
|
||||
pPlayer->qavLoop = 0;
|
||||
pPlayer->curWeapon = kWeapNone;
|
||||
pPlayer->setFragger(source);
|
||||
pPlayer->fragger = source;
|
||||
pPlayer->voodooTargets = 0;
|
||||
if (nDamageType == kDamageExplode && nDamage < (9<<4))
|
||||
nDamageType = kDamageFall;
|
||||
|
@ -2063,8 +2063,8 @@ int playerDamageSprite(DBloodActor* source, PLAYER *pPlayer, DAMAGE_TYPE nDamage
|
|||
pSprite->flags |= 7;
|
||||
for (int p = connecthead; p >= 0; p = connectpoint2[p])
|
||||
{
|
||||
if (gPlayer[p].fragger() == pPlayer->actor() && gPlayer[p].deathTime > 0)
|
||||
gPlayer[p].setFragger(nullptr);
|
||||
if (gPlayer[p].fragger == pPlayer->actor() && gPlayer[p].deathTime > 0)
|
||||
gPlayer[p].fragger = nullptr;
|
||||
}
|
||||
FragPlayer(pPlayer, source);
|
||||
trTriggerSprite(pSprite->index, pXSprite, kCmdOff);
|
||||
|
@ -2193,7 +2193,7 @@ void PlayerKneelsOver(int, DBloodActor* actor)
|
|||
if (gPlayer[p].pXSprite == pXSprite)
|
||||
{
|
||||
PLAYER *pPlayer = &gPlayer[p];
|
||||
playerDamageSprite(pPlayer->fragger(), pPlayer, kDamageSpirit, 500<<4);
|
||||
playerDamageSprite(pPlayer->fragger, pPlayer, kDamageSpirit, 500<<4);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -2314,7 +2314,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, PLAYER& w, PLAYER*
|
|||
("fragcount", w.fragCount)
|
||||
.Array("fraginfo", w.fragInfo, countof(w.fragInfo))
|
||||
("teamid", w.teamId)
|
||||
("fraggerid", w.fraggerId)
|
||||
("fraggerid", w.fragger)
|
||||
("undserwatertime", w.underwaterTime)
|
||||
("bubbletime", w.bubbleTime)
|
||||
("resttime", w.restTime)
|
||||
|
|
|
@ -147,9 +147,7 @@ struct PLAYER
|
|||
int fragCount;
|
||||
int fragInfo[8];
|
||||
int teamId;
|
||||
int fraggerId;
|
||||
DBloodActor* fragger();
|
||||
void setFragger(DBloodActor*);
|
||||
DBloodActor* fragger;
|
||||
int underwaterTime;
|
||||
int bubbleTime;
|
||||
int restTime;
|
||||
|
|
Loading…
Reference in a new issue