mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 04:24:39 +00:00
- nDoppleSprite
This commit is contained in:
parent
eae1d589ec
commit
be19dbb2ce
4 changed files with 25 additions and 29 deletions
|
@ -218,7 +218,7 @@ void RestartPlayer(short nPlayer)
|
|||
auto plr = &PlayerList[nPlayer];
|
||||
int nSprite = plr->nSprite;
|
||||
auto nSpr = &sprite[nSprite];
|
||||
int nDopSprite = PlayerList[nPlayer].nDoppleSprite;
|
||||
auto pDopSprite = PlayerList[nPlayer].pDoppleSprite;
|
||||
|
||||
DExhumedActor* floorsprt;
|
||||
|
||||
|
@ -236,12 +236,12 @@ void RestartPlayer(short nPlayer)
|
|||
DeleteActor(pFloorSprite);
|
||||
}
|
||||
|
||||
if (nDopSprite > -1)
|
||||
if (pDopSprite)
|
||||
{
|
||||
auto sp = &sprite[nDopSprite];
|
||||
auto sp = &pDopSprite->s();
|
||||
runlist_DoSubRunRec(sp->owner);
|
||||
runlist_FreeRun(sp->lotag - 1);
|
||||
mydeletesprite(nDopSprite);
|
||||
DeleteActor(pDopSprite);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -252,10 +252,8 @@ void RestartPlayer(short nPlayer)
|
|||
ChangeActorSect(actor, PlayerList[nPlayer].sPlayerSave.nSector);
|
||||
ChangeActorStat(actor, 100);
|
||||
|
||||
int nDSprite = insertsprite(nSpr->sectnum, 100);
|
||||
PlayerList[nPlayer].nDoppleSprite = nDSprite;
|
||||
|
||||
assert(nDSprite >= 0 && nDSprite < kMaxSprites);
|
||||
auto pDActor = insertActor(nSpr->sectnum, 100);
|
||||
PlayerList[nPlayer].pDoppleSprite = pDActor;
|
||||
|
||||
if (nTotalPlayers > 1)
|
||||
{
|
||||
|
@ -322,7 +320,7 @@ void RestartPlayer(short nPlayer)
|
|||
nSpr->extra = -1;
|
||||
nSpr->lotag = runlist_HeadRun() + 1;
|
||||
|
||||
auto nDSpr = &sprite[nDSprite];
|
||||
auto nDSpr = &pDActor->s();
|
||||
nDSpr->x = nSpr->x;
|
||||
nDSpr->y = nSpr->y;
|
||||
nDSpr->z = nSpr->z;
|
||||
|
@ -649,7 +647,7 @@ void AIPlayer::Damage(RunListEvent* ev)
|
|||
short nAction = PlayerList[nPlayer].nAction;
|
||||
short nPlayerSprite = PlayerList[nPlayer].nSprite;
|
||||
auto pPlayerSprite = &sprite[nPlayerSprite];
|
||||
short nDopple = PlayerList[nPlayer].nDoppleSprite;
|
||||
auto pDopple = PlayerList[nPlayer].pDoppleSprite;
|
||||
|
||||
if (!nDamage) {
|
||||
return;
|
||||
|
@ -700,7 +698,7 @@ void AIPlayer::Damage(RunListEvent* ev)
|
|||
PlayerList[nPlayer].nPlayerSwear--;
|
||||
if (PlayerList[nPlayer].nPlayerSwear <= 0)
|
||||
{
|
||||
D3PlayFX(StaticSound[kSound52], nDopple);
|
||||
D3PlayFX(StaticSound[kSound52], pDopple);
|
||||
PlayerList[nPlayer].nPlayerSwear = RandomSize(3) + 4;
|
||||
}
|
||||
}
|
||||
|
@ -761,7 +759,7 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
int nPlayerSprite = PlayerList[nPlayer].nSprite;
|
||||
auto pPlayerSprite = &pPlayerActor->s();
|
||||
|
||||
short nDopple = PlayerList[nPlayer].nDoppleSprite;
|
||||
auto pDopple = PlayerList[nPlayer].pDoppleSprite;
|
||||
|
||||
short nAction = PlayerList[nPlayer].nAction;
|
||||
short nActionB = PlayerList[nPlayer].nAction;
|
||||
|
@ -784,7 +782,7 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
int var_EC = PlayerList[nPlayer].field_2;
|
||||
|
||||
pPlayerSprite->picnum = seq_GetSeqPicnum(PlayerList[nPlayer].nSeq, PlayerSeq[nHeightTemplate[nAction]].a, var_EC);
|
||||
sprite[nDopple].picnum = pPlayerSprite->picnum;
|
||||
pDopple->s().picnum = pPlayerSprite->picnum;
|
||||
|
||||
if (PlayerList[nPlayer].nTorch > 0)
|
||||
{
|
||||
|
@ -2500,7 +2498,7 @@ sectdone:
|
|||
RestartPlayer(nPlayer);
|
||||
|
||||
nPlayerSprite = PlayerList[nPlayer].nSprite;
|
||||
nDopple = PlayerList[nPlayer].nDoppleSprite;
|
||||
pDopple = PlayerList[nPlayer].pDoppleSprite;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2613,19 +2611,17 @@ sectdone:
|
|||
}
|
||||
|
||||
// loc_1C4E1
|
||||
sprite[nDopple].x = pPlayerSprite->x;
|
||||
sprite[nDopple].y = pPlayerSprite->y;
|
||||
sprite[nDopple].z = pPlayerSprite->z;
|
||||
pDopple->s().pos = pPlayerSprite->pos;
|
||||
|
||||
if (SectAbove[pPlayerSprite->sectnum] > -1)
|
||||
{
|
||||
sprite[nDopple].ang = pPlayerSprite->ang;
|
||||
mychangespritesect(nDopple, SectAbove[pPlayerSprite->sectnum]);
|
||||
sprite[nDopple].cstat = 0x101;
|
||||
pDopple->s().ang = pPlayerSprite->ang;
|
||||
ChangeActorSect(pDopple, SectAbove[pPlayerSprite->sectnum]);
|
||||
pDopple->s().cstat = 0x101;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite[nDopple].cstat = 0x8000;
|
||||
pDopple->s().cstat = 0x8000;
|
||||
}
|
||||
|
||||
MoveWeapons(nPlayer);
|
||||
|
@ -2682,7 +2678,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Player& w, Player*
|
|||
("pistolclip", w.nPistolClip)
|
||||
("xdamage", w.nXDamage)
|
||||
("ydamage", w.nYDamage)
|
||||
("dopplesprite", w.nDoppleSprite)
|
||||
("dopplesprite", w.pDoppleSprite)
|
||||
("oldweapon", w.nPlayerOldWeapon)
|
||||
("clip", w.nPlayerClip)
|
||||
("pushsound", w.nPlayerPushSound)
|
||||
|
|
|
@ -102,7 +102,6 @@ struct Player
|
|||
short nPistolClip;
|
||||
int nXDamage;
|
||||
int nYDamage;
|
||||
short nDoppleSprite;
|
||||
short nPlayerOldWeapon;
|
||||
short nPlayerClip;
|
||||
short nPlayerPushSound;
|
||||
|
@ -115,6 +114,7 @@ struct Player
|
|||
int16_t eyelevel, oeyelevel;
|
||||
DExhumedActor* pPlayerGrenade;
|
||||
DExhumedActor* pPlayerFloorSprite;
|
||||
DExhumedActor* pDoppleSprite;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -1715,8 +1715,7 @@ void runlist_DamageEnemy(int nSprite, int nSprite2, short nDamage)
|
|||
ebx = 0x6000;
|
||||
}
|
||||
|
||||
int nDopSprite = PlayerList[nPlayer].nDoppleSprite;
|
||||
D3PlayFX(StaticSound[kSoundTauntStart + (RandomSize(3) % 5)], nDopSprite, ebx);
|
||||
D3PlayFX(StaticSound[kSoundTauntStart + (RandomSize(3) % 5)], PlayerList[nPlayer].pDoppleSprite, ebx);
|
||||
}
|
||||
|
||||
PlayerList[nPlayer].nTauntTimer = RandomSize(3) + 3;
|
||||
|
|
|
@ -214,7 +214,8 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
int nPlayerSprite = PlayerList[nLocalPlayer].nSprite;
|
||||
auto pPlayerSprite = &sprite[nPlayerSprite];
|
||||
int nPlayerOldCstat = pPlayerSprite->cstat;
|
||||
int nDoppleOldCstat = sprite[PlayerList[nLocalPlayer].nDoppleSprite].cstat;
|
||||
auto pDop = &PlayerList[nLocalPlayer].pDoppleSprite->s();
|
||||
int nDoppleOldCstat = pDop->cstat;
|
||||
|
||||
if (nSnakeCam >= 0 && !sceneonly)
|
||||
{
|
||||
|
@ -268,12 +269,12 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
if (!bCamera)
|
||||
{
|
||||
pPlayerSprite->cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
sprite[PlayerList[nLocalPlayer].nDoppleSprite].cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
pDop->cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
}
|
||||
else
|
||||
{
|
||||
pPlayerSprite->cstat |= CSTAT_SPRITE_TRANSLUCENT;
|
||||
sprite[PlayerList[nLocalPlayer].nDoppleSprite].cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
pDop->cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
}
|
||||
pan = q16horiz(clamp(pan.asq16(), gi->playerHorizMin(), gi->playerHorizMax()));
|
||||
}
|
||||
|
@ -454,7 +455,7 @@ void DrawView(double smoothRatio, bool sceneonly)
|
|||
}
|
||||
|
||||
pPlayerSprite->cstat = nPlayerOldCstat;
|
||||
sprite[PlayerList[nLocalPlayer].nDoppleSprite].cstat = nDoppleOldCstat;
|
||||
pDop->cstat = nDoppleOldCstat;
|
||||
RestoreInterpolations();
|
||||
|
||||
flash = 0;
|
||||
|
|
Loading…
Reference in a new issue