mirror of
https://github.com/ZDoom/Raze.git
synced 2025-04-03 06:20:56 +00:00
- Exhumed: Wrap access to player's actor pointer.
This commit is contained in:
parent
6d6872fea7
commit
61bc8c23cf
19 changed files with 81 additions and 77 deletions
|
@ -53,7 +53,7 @@ static DExhumedActor* BuildBubble(const DVector3& pos, sectortype* pSector, cons
|
|||
nSize -= 4;
|
||||
|
||||
// Was inita global previously.
|
||||
const auto nAngle = PlayerList[nPlayer].pActor->spr.Angles.Yaw;
|
||||
const auto nAngle = PlayerList[nPlayer].GetActor()->spr.Angles.Yaw;
|
||||
const auto pActor = insertActor(pSector, 402);
|
||||
|
||||
pActor->spr.pos = pos;
|
||||
|
|
|
@ -234,7 +234,7 @@ struct GameInterface : public ::GameInterface
|
|||
bool DrawAutomapPlayer(const DVector2& mxy, const DVector2& cpos, const DAngle cang, const DVector2& xydim, const double czoom, double const interpfrac) override;
|
||||
DAngle playerPitchMin() override { return DAngle::fromDeg(49.5); }
|
||||
DAngle playerPitchMax() override { return DAngle::fromDeg(-49.5); }
|
||||
DCoreActor* getConsoleActor() override { return PlayerList[nLocalPlayer].pActor; }
|
||||
DCoreActor* getConsoleActor() override { return PlayerList[nLocalPlayer].GetActor(); }
|
||||
void ToggleThirdPerson() override;
|
||||
void processSprites(tspriteArray& tsprites, const DVector3& view, DAngle viewang, double interpfrac) override;
|
||||
int GetCurrentSkill() override;
|
||||
|
|
|
@ -69,7 +69,7 @@ void ThrowGrenade(int nPlayer, double dz, double push1)
|
|||
return;
|
||||
|
||||
DExhumedActor* pActor = PlayerList[nPlayer].pPlayerGrenade;
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
DAngle nAngle = pPlayerActor->spr.Angles.Yaw;
|
||||
|
||||
|
@ -123,7 +123,7 @@ void BuildGrenade(int nPlayer)
|
|||
{
|
||||
auto pActor = insertActor(PlayerList[nPlayer].pPlayerViewSect, 201);
|
||||
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
pActor->spr.pos = pPlayerActor->spr.pos.plusZ(-15);
|
||||
pActor->spr.shade = -64;
|
||||
|
@ -199,7 +199,7 @@ void ExplodeGrenade(DExhumedActor* pActor)
|
|||
|
||||
if (pActor->nTurn < 0)
|
||||
{
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
auto nAngle = pPlayerActor->spr.Angles.Yaw;
|
||||
|
||||
DVector2 vect = nAngle.ToVector() * 32;
|
||||
|
|
|
@ -287,7 +287,7 @@ void ResetSwordSeqs()
|
|||
|
||||
Collision CheckCloseRange(int nPlayer, DVector3& pos, sectortype* *ppSector)
|
||||
{
|
||||
auto pActor = PlayerList[nPlayer].pActor;
|
||||
auto pActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
HitInfo hit{};
|
||||
hitscan(pos, *ppSector, DVector3(pActor->spr.Angles.Yaw.ToVector() * 1024, 0 ), hit, CLIPMASK1);
|
||||
|
@ -357,7 +357,7 @@ void MoveWeapons(int nPlayer)
|
|||
if (!pPlayer->bIsFiring || (nSectFlag & kSectUnderwater))
|
||||
pPlayer->nTemperature = 0;
|
||||
|
||||
auto pPlayerActor = pPlayer->pActor;
|
||||
auto pPlayerActor = pPlayer->GetActor();
|
||||
int nWeapon = pPlayer->nCurrentWeapon;
|
||||
|
||||
if (nWeapon < -1)
|
||||
|
@ -413,7 +413,7 @@ void MoveWeapons(int nPlayer)
|
|||
if (!WeaponCanFire(nPlayer))
|
||||
{
|
||||
if (!dword_96E22) {
|
||||
D3PlayFX(StaticSound[4], pPlayer->pActor);
|
||||
D3PlayFX(StaticSound[4], pPlayer->GetActor());
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -904,7 +904,7 @@ loc_flag:
|
|||
|
||||
void DrawWeapons(Player* const pPlayer, double interpfrac)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const int nWeapon = pPlayer->nCurrentWeapon;
|
||||
|
||||
if (bCamera || nWeapon < -1)
|
||||
|
|
|
@ -772,9 +772,9 @@ void ExamineSprites(TArray<DExhumedActor*>& actors)
|
|||
|
||||
if (nNetPlayerCount)
|
||||
{
|
||||
auto pActor = insertActor(PlayerList[nLocalPlayer].pActor->sector(), 0);
|
||||
auto pActor = insertActor(PlayerList[nLocalPlayer].GetActor()->sector(), 0);
|
||||
|
||||
pActor->spr.pos = PlayerList[nLocalPlayer].pActor->spr.pos;
|
||||
pActor->spr.pos = PlayerList[nLocalPlayer].GetActor()->spr.pos;
|
||||
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
|
||||
nNetStartSprite[nNetStartSprites] = pActor;
|
||||
nNetStartSprites++;
|
||||
|
|
|
@ -204,7 +204,7 @@ static bool UseEye(int nPlayer)
|
|||
if (PlayerList[nPlayer].nInvisible >= 0)
|
||||
PlayerList[nPlayer].nInvisible = 900;
|
||||
|
||||
auto pActor = PlayerList[nPlayer].pActor;
|
||||
auto pActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
pActor->spr.cstat |= CSTAT_SPRITE_INVISIBLE;
|
||||
|
||||
|
@ -233,7 +233,7 @@ static bool UseMask(int nPlayer)
|
|||
|
||||
if (nPlayer == nLocalPlayer)
|
||||
{
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].pActor);
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].GetActor());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -269,7 +269,7 @@ bool UseHeart(int nPlayer)
|
|||
if (nPlayer == nLocalPlayer)
|
||||
{
|
||||
ItemFlash();
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].pActor);
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].GetActor());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -290,7 +290,7 @@ bool UseScarab(int nPlayer)
|
|||
if (nPlayer == nLocalPlayer)
|
||||
{
|
||||
ItemFlash();
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].pActor);
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].GetActor());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -303,7 +303,7 @@ static bool UseHand(int nPlayer)
|
|||
if (nPlayer == nLocalPlayer)
|
||||
{
|
||||
ItemFlash();
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].pActor);
|
||||
D3PlayFX(StaticSound[kSound31], PlayerList[nPlayer].GetActor());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ void GrabMap()
|
|||
|
||||
void UpdateMap()
|
||||
{
|
||||
const auto initsectp = PlayerList[nLocalPlayer].pActor->sector();
|
||||
const auto initsectp = PlayerList[nLocalPlayer].GetActor()->sector();
|
||||
if (initsectp->ceilingpal != 3 || (PlayerList[nLocalPlayer].nTorch != 0)) {
|
||||
MarkSectorSeen(initsectp);
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ bool GameInterface::DrawAutomapPlayer(const DVector2& mxy, const DVector2& cpos,
|
|||
{
|
||||
if (i == nLocalPlayer)// || gGameOptions.nGameType == 1)
|
||||
{
|
||||
auto pPlayerActor = PlayerList[i].pActor;
|
||||
auto pPlayerActor = PlayerList[i].GetActor();
|
||||
auto vect = OutAutomapVector(mxy - cpos, cangvect, czoom, xydim);
|
||||
|
||||
DrawTexture(twod, pPlayerActor->spr.spritetexture(), true, vect.X, vect.Y, DTA_ClipLeft, viewport3d.Left(), DTA_ClipTop, viewport3d.Top(), DTA_ScaleX, czoom * (2. / 3.), DTA_ScaleY, czoom * (2. / 3.), DTA_CenterOffset, true,
|
||||
|
|
|
@ -271,7 +271,7 @@ Collision movespritez(DExhumedActor* pActor, double z, double height, double cli
|
|||
|
||||
if (pSect2->Flag & kSectUnderwater)
|
||||
{
|
||||
if (pActor == PlayerList[nLocalPlayer].pActor) {
|
||||
if (pActor == PlayerList[nLocalPlayer].GetActor()) {
|
||||
D3PlayFX(StaticSound[kSound2], pActor);
|
||||
}
|
||||
|
||||
|
@ -616,7 +616,7 @@ DExhumedActor* FindPlayer(DExhumedActor* pActor, int nDistance, bool dontengage)
|
|||
if (i >= nTotalPlayers)
|
||||
return nullptr;
|
||||
|
||||
pPlayerActor = PlayerList[i].pActor;
|
||||
pPlayerActor = PlayerList[i].GetActor();
|
||||
|
||||
if ((pPlayerActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL) && (!(pPlayerActor->spr.cstat & CSTAT_SPRITE_INVISIBLE)))
|
||||
{
|
||||
|
@ -930,7 +930,7 @@ void SetQuake(DExhumedActor* pActor, int nVal)
|
|||
{
|
||||
for (int i = 0; i < nTotalPlayers; i++)
|
||||
{
|
||||
auto nSqrt = ((PlayerList[i].pActor->spr.pos.XY() - pActor->spr.pos.XY()) * (1. / 16.)).Length();
|
||||
auto nSqrt = ((PlayerList[i].GetActor()->spr.pos.XY() - pActor->spr.pos.XY()) * (1. / 16.)).Length();
|
||||
|
||||
if (nSqrt)
|
||||
{
|
||||
|
@ -1015,7 +1015,7 @@ Collision AngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int threshol
|
|||
|
||||
DVector3 WheresMyMouth(int nPlayer, sectortype **sectnum)
|
||||
{
|
||||
auto pActor = PlayerList[nPlayer].pActor;
|
||||
auto pActor = PlayerList[nPlayer].GetActor();
|
||||
double height = GetActorHeight(pActor) * 0.5;
|
||||
|
||||
*sectnum = pActor->sector();
|
||||
|
|
|
@ -61,7 +61,7 @@ static int osdcmd_doors(CCmdFuncPtr parm)
|
|||
|
||||
static int osdcmd_spawn(CCmdFuncPtr parm)
|
||||
{
|
||||
auto pActor = PlayerList[nLocalPlayer].pActor;
|
||||
auto pActor = PlayerList[nLocalPlayer].GetActor();
|
||||
if (parm->numparms != 1) return CCMD_SHOWHELP;
|
||||
if (!pActor) return CCMD_SHOWHELP;
|
||||
auto c = parm->parms[0];
|
||||
|
|
|
@ -86,7 +86,7 @@ size_t MarkPlayers()
|
|||
{
|
||||
for (auto& p : PlayerList)
|
||||
{
|
||||
GC::Mark(p.pActor);
|
||||
GC::Mark(p.actor);
|
||||
GC::Mark(p.pDoppleSprite);
|
||||
GC::Mark(p.pPlayerFloorSprite);
|
||||
GC::Mark(p.pPlayerGrenade);
|
||||
|
@ -123,7 +123,7 @@ void InitPlayer()
|
|||
{
|
||||
const auto pPlayer = &PlayerList[i];
|
||||
|
||||
pPlayer->pActor = nullptr;
|
||||
pPlayer->actor = nullptr;
|
||||
pPlayer->Angles = {};
|
||||
pPlayer->pPlayerPushSect = nullptr;
|
||||
pPlayer->pPlayerViewSect = nullptr;
|
||||
|
@ -151,7 +151,7 @@ void InitPlayerInventory(int nPlayer)
|
|||
pPlayer->nItem = -1;
|
||||
pPlayer->nPlayerSwear = 4;
|
||||
pPlayer->nLives = kDefaultLives;
|
||||
pPlayer->pActor = nullptr;
|
||||
pPlayer->actor = nullptr;
|
||||
pPlayer->Angles = {};
|
||||
pPlayer->nRun = -1;
|
||||
pPlayer->nPistolClip = 6;
|
||||
|
@ -190,7 +190,7 @@ int GetPlayerFromActor(DExhumedActor* pActor)
|
|||
void RestartPlayer(int nPlayer)
|
||||
{
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
DExhumedActor* pPlayerActor = pPlayer->pActor;
|
||||
DExhumedActor* pPlayerActor = pPlayer->GetActor();
|
||||
DExhumedActor* pDopSprite = pPlayer->pDoppleSprite;
|
||||
DExhumedActor* pFloorSprite = pPlayer->pPlayerFloorSprite;
|
||||
|
||||
|
@ -201,7 +201,7 @@ void RestartPlayer(int nPlayer)
|
|||
|
||||
ChangeActorStat(pPlayerActor, 0);
|
||||
|
||||
pPlayer->pActor = nullptr;
|
||||
pPlayer->actor = nullptr;
|
||||
pPlayer->Angles = {};
|
||||
|
||||
if (pFloorSprite)
|
||||
|
@ -279,7 +279,7 @@ void RestartPlayer(int nPlayer)
|
|||
pDopSprite->spr.lotag = runlist_HeadRun() + 1;
|
||||
pDopSprite->spr.intowner = runlist_AddRunRec(pDopSprite->spr.lotag - 1, nPlayer, 0xA0000);
|
||||
|
||||
pPlayer->pActor = pPlayerActor;
|
||||
pPlayer->actor = pPlayerActor;
|
||||
pPlayer->pDoppleSprite = pDopSprite;
|
||||
pPlayer->pPlayerFloorSprite = pFloorSprite;
|
||||
pPlayer->pPlayerViewSect = pPlayer->sPlayerSave.pSector;
|
||||
|
@ -361,7 +361,7 @@ int GrabPlayer()
|
|||
void StartDeathSeq(int nPlayer, int nVal)
|
||||
{
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
|
||||
FreeRa(nPlayer);
|
||||
|
@ -455,7 +455,7 @@ int AddAmmo(int nPlayer, int nWeapon, int nAmmoAmount)
|
|||
void SetPlayerMummified(int nPlayer, int bIsMummified)
|
||||
{
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
|
||||
pPlayerActor->vel.XY().Zero();
|
||||
|
||||
|
@ -482,7 +482,7 @@ void SetPlayerMummified(int nPlayer, int bIsMummified)
|
|||
void ShootStaff(int nPlayer)
|
||||
{
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
|
||||
pPlayerActor->nAction = 15;
|
||||
pPlayerActor->nFrame = 0;
|
||||
|
@ -531,7 +531,7 @@ void AIPlayer::Draw(RunListEvent* ev)
|
|||
assert(nPlayer >= 0 && nPlayer < kMaxPlayers);
|
||||
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto playerSeq = &PlayerSeq[pPlayerActor->nAction];
|
||||
seq_PlotSequence(ev->nParam, pPlayerActor->nSeqFile, playerSeq->nSeqId, pPlayerActor->nFrame, playerSeq->nFlags);
|
||||
}
|
||||
|
@ -552,7 +552,7 @@ void AIPlayer::RadialDamage(RunListEvent* ev)
|
|||
if (pPlayer->nHealth <= 0)
|
||||
return;
|
||||
|
||||
ev->nDamage = runlist_CheckRadialDamage(pPlayer->pActor);
|
||||
ev->nDamage = runlist_CheckRadialDamage(pPlayer->GetActor());
|
||||
Damage(ev);
|
||||
}
|
||||
|
||||
|
@ -573,7 +573,7 @@ void AIPlayer::Damage(RunListEvent* ev)
|
|||
if (!nDamage || !pPlayer->nHealth)
|
||||
return;
|
||||
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pDamageActor = (!ev->isRadialEvent()) ? ev->pOtherActor : ev->pRadialActor->pTarget.Get();
|
||||
|
||||
if (!pPlayer->invincibility)
|
||||
|
@ -843,7 +843,7 @@ static void doPickupHealth(Player* pPlayer, DExhumedActor* pPickupActor, int nIt
|
|||
|
||||
void doPlayerItemPickups(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
|
||||
if (const auto pPickupActor = feebtag(pPlayerActor->spr.pos, pPlayerSect, pPlayer->nMagic, pPlayer->nHealth, 48))
|
||||
|
@ -1043,7 +1043,7 @@ void doPlayerItemPickups(Player* const pPlayer)
|
|||
|
||||
void updatePlayerTarget(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pRa = &Ra[pPlayer->nPlayer];
|
||||
const auto nAngVect = (-pPlayerActor->spr.Angles.Yaw).ToVector();
|
||||
|
||||
|
@ -1106,7 +1106,7 @@ void updatePlayerTarget(Player* const pPlayer)
|
|||
|
||||
static void updatePlayerVelocity(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
|
||||
if (pPlayer->nHealth > 0)
|
||||
{
|
||||
|
@ -1236,7 +1236,7 @@ unsigned GameInterface::getCrouchState()
|
|||
|
||||
static void updatePlayerAction(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pInput = &pPlayer->input;
|
||||
const auto kbdDir = !!(pInput->actions & SB_CROUCH) - !!(pInput->actions & SB_JUMP);
|
||||
const double dist = pPlayer->bUnderwater ? 8 : 14;
|
||||
|
@ -1355,7 +1355,7 @@ static void updatePlayerAction(Player* const pPlayer)
|
|||
|
||||
static void doPlayerCounters(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const bool bConsolePlayer = pPlayer->nPlayer == nLocalPlayer;
|
||||
|
||||
if (pPlayer->nTorch > 0)
|
||||
|
@ -1436,7 +1436,7 @@ static void doPlayerCounters(Player* const pPlayer)
|
|||
|
||||
static void doPlayerUnderwater(Player* const pPlayer, const bool oUnderwater)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const bool bUnderwater = pPlayer->pPlayerViewSect->Flag & kSectUnderwater;
|
||||
|
||||
if (!pPlayer->invincibility)
|
||||
|
@ -1530,7 +1530,7 @@ static void doPlayerRamses(Player* const pPlayer)
|
|||
|
||||
if (nTotalPlayers <= 1)
|
||||
{
|
||||
pPlayer->pActor->vel.Zero();
|
||||
pPlayer->GetActor()->vel.Zero();
|
||||
|
||||
if (nFreeze < 1)
|
||||
{
|
||||
|
@ -1570,7 +1570,7 @@ static void doPlayerGravity(DExhumedActor* const pPlayerActor)
|
|||
|
||||
static void doPlayerCameraEffects(Player* const pPlayer, const double nDestVertPan)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto nUnderwater = !!(pPlayerActor->sector()->Flag & kSectUnderwater);
|
||||
constexpr auto maxVel = 15.25;
|
||||
|
||||
|
@ -1617,7 +1617,7 @@ static void updatePlayerFloorActor(Player* const pPlayer)
|
|||
if (nTotalPlayers <= 1 || !pFloorActor)
|
||||
return;
|
||||
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
pFloorActor->spr.pos.XY() = pPlayerActor->spr.pos.XY();
|
||||
pFloorActor->spr.pos.Z = pPlayerSect->floorz;
|
||||
|
@ -1634,7 +1634,7 @@ static void updatePlayerFloorActor(Player* const pPlayer)
|
|||
|
||||
static void updatePlayerDoppleActor(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
DExhumedActor* const pDopple = pPlayer->pDoppleSprite;
|
||||
pDopple->spr.pos = pPlayerActor->spr.pos;
|
||||
|
@ -1659,7 +1659,7 @@ static void updatePlayerDoppleActor(Player* const pPlayer)
|
|||
|
||||
static void updatePlayerViewSector(Player* const pPlayer, const Collision& nMove, const DVector3& spr_vel)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
const auto bPlayerBelowCeil = (pPlayerActor->getOffsetZ() + pPlayer->nQuake) < pPlayerSect->ceilingz;
|
||||
const auto pViewSect = bPlayerBelowCeil && pPlayerSect->pAbove ? pPlayerSect->pAbove : pPlayerSect;
|
||||
|
@ -1698,7 +1698,7 @@ static void updatePlayerViewSector(Player* const pPlayer, const Collision& nMove
|
|||
|
||||
static void doPlayerFloorDamage(Player* const pPlayer, const double nStartVelZ)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
pPlayer->nThrust *= 0.5;
|
||||
|
||||
if (nStartVelZ < (6500 / 256.))
|
||||
|
@ -1727,7 +1727,7 @@ static void doPlayerFloorDamage(Player* const pPlayer, const double nStartVelZ)
|
|||
|
||||
static void doPlayerMovingBlocks(Player* const pPlayer, const Collision& nMove, const DVector3& spr_vel, sectortype* const spr_sect)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
sectortype* sect;
|
||||
DAngle nNormal = nullAngle;
|
||||
|
||||
|
@ -1788,7 +1788,7 @@ static bool doPlayerInput(Player* const pPlayer)
|
|||
// update the player/actor's velocity before anything.
|
||||
updatePlayerVelocity(pPlayer);
|
||||
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto spr_vel = DVector3(pPlayerActor->vel.XY() * (pPlayer->bIsMummified ? 0.5 : 1.), pPlayerActor->vel.Z);
|
||||
const auto spr_sect = pPlayerActor->sector();
|
||||
|
||||
|
@ -1877,7 +1877,7 @@ static bool doPlayerInput(Player* const pPlayer)
|
|||
|
||||
static void doPlayerRunlistSignals(Player* const pPlayer, sectortype* const pStartSect)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto pPlayerSect = pPlayerActor->sector();
|
||||
|
||||
if (pPlayer->bTouchFloor && pPlayerSect->lotag > 0)
|
||||
|
@ -1916,7 +1916,7 @@ static void doPlayerRunlistSignals(Player* const pPlayer, sectortype* const pSta
|
|||
|
||||
static bool doPlayerDeathRestart(Player* const pPlayer)
|
||||
{
|
||||
if (!(pPlayer->input.actions & SB_OPEN) || pPlayer->pActor->nAction < 16)
|
||||
if (!(pPlayer->input.actions & SB_OPEN) || pPlayer->GetActor()->nAction < 16)
|
||||
return true;
|
||||
|
||||
pPlayer->input.actions &= ~SB_OPEN;
|
||||
|
@ -1932,9 +1932,9 @@ static bool doPlayerDeathRestart(Player* const pPlayer)
|
|||
|
||||
if (pPlayer->nLives && nNetTime)
|
||||
{
|
||||
if (pPlayer->pActor->nAction != 20)
|
||||
if (pPlayer->GetActor()->nAction != 20)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
pPlayerActor->spr.setspritetexture(getSequence("joe", 120)->getFirstFrameTexture());
|
||||
pPlayerActor->spr.cstat = 0;
|
||||
pPlayerActor->spr.pos.Z = pPlayerActor->sector()->floorz;
|
||||
|
@ -1962,7 +1962,7 @@ static bool doPlayerDeathRestart(Player* const pPlayer)
|
|||
|
||||
static void doPlayerActionSequence(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
|
||||
const auto playerSeq = getSequence(pPlayerActor->nSeqFile, PlayerSeq[pPlayerActor->nAction].nSeqId);
|
||||
const auto& seqFrame = playerSeq->frames[pPlayerActor->nFrame];
|
||||
|
@ -2017,7 +2017,7 @@ static void doPlayerActionSequence(Player* const pPlayer)
|
|||
|
||||
static void doPlayerDeathPitch(Player* const pPlayer)
|
||||
{
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
pPlayer->nThrust.Zero();
|
||||
|
||||
if (pPlayerActor->viewzoffset >= -11)
|
||||
|
@ -2059,7 +2059,7 @@ void AIPlayer::Tick(RunListEvent* ev)
|
|||
assert(nPlayer >= 0 && nPlayer < kMaxPlayers);
|
||||
|
||||
const auto pPlayer = &PlayerList[nPlayer];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
|
||||
pPlayerActor->spr.setspritetexture(getSequence(pPlayerActor->nSeqFile, PlayerSeq[nHeightTemplate[pPlayerActor->nAction]].nSeqId)->getFirstFrameTexture());
|
||||
pPlayer->pDoppleSprite->spr.setspritetexture(pPlayerActor->spr.spritetexture());
|
||||
|
@ -2109,7 +2109,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Player& w, Player*
|
|||
if (arc.BeginObject(keyname))
|
||||
{
|
||||
arc("health", w.nHealth)
|
||||
("sprite", w.pActor)
|
||||
("sprite", w.actor)
|
||||
("mummy", w.bIsMummified)
|
||||
("invincible", w.invincibility)
|
||||
("air", w.nAir)
|
||||
|
@ -2200,7 +2200,7 @@ DEFINE_FIELD_X(ExhumedPlayer, Player, nLives);
|
|||
DEFINE_FIELD_X(ExhumedPlayer, Player, nDouble);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, nInvisible);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, nTorch);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, pActor);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, actor);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, bIsMummified);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, invincibility);
|
||||
DEFINE_FIELD_X(ExhumedPlayer, Player, nAir);
|
||||
|
@ -2244,7 +2244,7 @@ DEFINE_ACTION_FUNCTION(_ExhumedPlayer, IsUnderwater)
|
|||
DEFINE_ACTION_FUNCTION(_ExhumedPlayer, GetAngle)
|
||||
{
|
||||
PARAM_SELF_STRUCT_PROLOGUE(Player);
|
||||
ACTION_RETURN_INT(self->pActor->spr.Angles.Yaw.Buildang());
|
||||
ACTION_RETURN_INT(self->GetActor()->spr.Angles.Yaw.Buildang());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ struct PlayerSave
|
|||
|
||||
struct Player
|
||||
{
|
||||
DExhumedActor* pActor;
|
||||
DExhumedActor* actor;
|
||||
int16_t nHealth;
|
||||
int16_t nLives;
|
||||
int16_t nDouble;
|
||||
|
@ -112,6 +112,10 @@ struct Player
|
|||
TObjPtr<DExhumedActor*> pDoppleSprite;
|
||||
TObjPtr<DExhumedActor*> pTarget;
|
||||
|
||||
inline DExhumedActor* GetActor()
|
||||
{
|
||||
return actor;
|
||||
}
|
||||
};
|
||||
|
||||
extern int PlayerCount;
|
||||
|
|
|
@ -108,7 +108,7 @@ void FreeRa(int nPlayer)
|
|||
|
||||
void BuildRa(int nPlayer)
|
||||
{
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
auto pActor = insertActor(pPlayerActor->sector(), 203);
|
||||
|
||||
|
@ -189,7 +189,7 @@ void MoveRaToEnemy(int nPlayer)
|
|||
}
|
||||
|
||||
pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
|
||||
pTarget = PlayerList[nPlayer].pActor;
|
||||
pTarget = PlayerList[nPlayer].GetActor();
|
||||
}
|
||||
|
||||
pActor->spr.pos = pTarget->spr.pos.plusZ(-GetActorHeight(pTarget));
|
||||
|
@ -297,7 +297,7 @@ void AIRa::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (PlayerList[nPlayer].nAmmo[kWeaponRing] > 0)
|
||||
{
|
||||
runlist_DamageEnemy(Ra[nPlayer].pTarget, PlayerList[Ra[nPlayer].nPlayer].pActor, BulletInfo[kWeaponRing].nDamage);
|
||||
runlist_DamageEnemy(Ra[nPlayer].pTarget, PlayerList[Ra[nPlayer].nPlayer].GetActor(), BulletInfo[kWeaponRing].nDamage);
|
||||
AddAmmo(nPlayer, kWeaponRing, -WeaponInfo[kWeaponRing].d);
|
||||
SetQuake(pActor, 100);
|
||||
}
|
||||
|
|
|
@ -196,7 +196,7 @@ void DoSpiritHead()
|
|||
auto Worktile = GetWritablePixels(aTexIds[kTexTileRamsesWorkTile]);
|
||||
|
||||
const auto pPlayer = &PlayerList[0];
|
||||
const auto pPlayerActor = pPlayer->pActor;
|
||||
const auto pPlayerActor = pPlayer->GetActor();
|
||||
const auto nSpiritAngle = (pSpiritSprite->spr.pos.XY() - pPlayerActor->spr.pos.XY()).Angle();
|
||||
pPlayerActor->spr.Angles.Yaw += deltaangle(pPlayerActor->spr.Angles.Yaw, nSpiritAngle) * 0.25;
|
||||
pPlayerActor->spr.Angles.Pitch += deltaangle(pPlayerActor->spr.Angles.Pitch, currentLevel->ex_ramses_horiz) * 0.25;
|
||||
|
|
|
@ -1865,7 +1865,7 @@ void runlist_DamageEnemy(DExhumedActor* pActor, DExhumedActor* pActor2, int nDam
|
|||
if (PlayerList[nPlayer].nTauntTimer <= 0)
|
||||
{
|
||||
// Do a taunt
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
auto pSector = pPlayerActor->sector();
|
||||
|
||||
if (!(pSector->Flag & kSectUnderwater))
|
||||
|
|
|
@ -508,7 +508,7 @@ void seq_PlotSequence(const int nSprite, const FName seqFile, const int16_t seqI
|
|||
const auto pSector = pTSprite->sectp;
|
||||
const double nFloorZ = pSector->floorz;
|
||||
|
||||
if (nFloorZ <= PlayerList[nLocalPlayer].pActor->viewzoffset + PlayerList[nLocalPlayer].pActor->spr.pos.Z)
|
||||
if (nFloorZ <= PlayerList[nLocalPlayer].GetActor()->viewzoffset + PlayerList[nLocalPlayer].GetActor()->spr.pos.Z)
|
||||
{
|
||||
pTSprite->ownerActor = nullptr;
|
||||
}
|
||||
|
@ -552,7 +552,7 @@ DEFINE_FIELD_X(Seq, Seq, flags);
|
|||
DEFINE_ACTION_FUNCTION(_SeqFrame, playSound)
|
||||
{
|
||||
PARAM_SELF_STRUCT_PROLOGUE(SeqFrame);
|
||||
self->playSound(PlayerList[nLocalPlayer].pActor);
|
||||
self->playSound(PlayerList[nLocalPlayer].GetActor());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ void ExplodeSnakeSprite(DExhumedActor* pActor, int nPlayer)
|
|||
|
||||
// take a copy of this, to revert after call to runlist_RadialDamageEnemy()
|
||||
DExhumedActor* nOwner = pActor->pTarget;
|
||||
pActor->pTarget = PlayerList[nPlayer].pActor;
|
||||
pActor->pTarget = PlayerList[nPlayer].GetActor();
|
||||
|
||||
runlist_RadialDamageEnemy(pActor, nDamage, BulletInfo[kWeaponStaff].nRadius);
|
||||
|
||||
|
@ -161,7 +161,7 @@ void BuildSnake(int nPlayer, double zVal)
|
|||
{
|
||||
zVal -= 5;
|
||||
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
auto pViewSect = PlayerList[nPlayer].pPlayerViewSect;
|
||||
auto nPic = getSequence("snakbody", 0)->getFirstFrameTexture();
|
||||
|
||||
|
@ -277,7 +277,7 @@ void BuildSnake(int nPlayer, double zVal)
|
|||
DExhumedActor* FindSnakeEnemy(int nSnake)
|
||||
{
|
||||
int nPlayer = SnakeList[nSnake].nSnakePlayer;
|
||||
auto pPlayerActor = PlayerList[nPlayer].pActor;
|
||||
auto pPlayerActor = PlayerList[nPlayer].GetActor();
|
||||
|
||||
DExhumedActor* pActor = SnakeList[nSnake].pSprites[0]; // CHECKME
|
||||
if (!pActor) return nullptr;
|
||||
|
|
|
@ -418,7 +418,7 @@ void EXSoundEngine::CalcPosVel(int type, const void* source, const float pt[3],
|
|||
Snake* pSnake = &SnakeList[nSnakeCam];
|
||||
campos = pSnake->pSprites[0]->spr.pos;
|
||||
}
|
||||
else if (const auto pActor = PlayerList[nLocalPlayer].pActor)
|
||||
else if (const auto pActor = PlayerList[nLocalPlayer].GetActor())
|
||||
{
|
||||
campos = pActor->spr.pos;
|
||||
}
|
||||
|
@ -485,7 +485,7 @@ void GameInterface::UpdateSounds()
|
|||
if (nFreeze)
|
||||
return;
|
||||
|
||||
const auto pActor = PlayerList[nLocalPlayer].pActor;
|
||||
const auto pActor = PlayerList[nLocalPlayer].GetActor();
|
||||
|
||||
DVector3 pos;
|
||||
DAngle ang;
|
||||
|
@ -628,7 +628,7 @@ void PlayFX2(int nSound, DExhumedActor* pActor, int sectf, EChanFlags chanflags,
|
|||
}
|
||||
|
||||
// Nuke: added nSprite >= 0 check
|
||||
if (pActor != PlayerList[nLocalPlayer].pActor && pActor != nullptr && (pActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL))
|
||||
if (pActor != PlayerList[nLocalPlayer].GetActor() && pActor != nullptr && (pActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL))
|
||||
nCreepyTimer = kCreepyCount;
|
||||
}
|
||||
|
||||
|
@ -669,7 +669,7 @@ void CheckAmbience(sectortype* sect)
|
|||
{
|
||||
if (sect == pSector2)
|
||||
{
|
||||
amb = GetSoundPos(PlayerList[0].pActor->spr.pos);
|
||||
amb = GetSoundPos(PlayerList[0].GetActor()->spr.pos);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -716,7 +716,7 @@ void UpdateCreepySounds()
|
|||
if (totalmoves & 2)
|
||||
adder.Y = -adder.Y;
|
||||
|
||||
auto sp = PlayerList[nLocalPlayer].pActor->spr.pos + adder;
|
||||
auto sp = PlayerList[nLocalPlayer].GetActor()->spr.pos + adder;
|
||||
creepy = GetSoundPos(sp);
|
||||
|
||||
auto soundid = FSoundID::fromInt((seqFrameSound & 0x1ff) + 1);
|
||||
|
|
|
@ -556,7 +556,7 @@ void AISWPressSector::Use(RunListEvent* ev)
|
|||
{
|
||||
if (SwitchData[nSwitch].nKeyMask)
|
||||
{
|
||||
PlayFXAtXYZ(StaticSound[nSwitchSound], PlayerList[nPlayer].pActor->spr.pos, CHANF_LISTENERZ);
|
||||
PlayFXAtXYZ(StaticSound[nSwitchSound], PlayerList[nPlayer].GetActor()->spr.pos, CHANF_LISTENERZ);
|
||||
|
||||
StatusMessage(300, GStrings("TXT_EX_NEEDKEY"));
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ void DrawView(double interpfrac, bool sceneonly)
|
|||
DoInterpolations(interpfrac);
|
||||
|
||||
auto pPlayer = &PlayerList[nLocalPlayer];
|
||||
auto pPlayerActor = pPlayer->pActor;
|
||||
auto pPlayerActor = pPlayer->GetActor();
|
||||
auto nPlayerOldCstat = pPlayerActor->spr.cstat;
|
||||
auto pDop = pPlayer->pDoppleSprite;
|
||||
auto nDoppleOldCstat = pDop->spr.cstat;
|
||||
|
|
Loading…
Reference in a new issue