mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 11:11:16 +00:00
- Exhumed: Move PlayerInput::pTarget
to Player
struct.
This commit is contained in:
parent
c1f52b1137
commit
c73ee5f848
8 changed files with 9 additions and 20 deletions
|
@ -63,7 +63,6 @@ IMPLEMENT_POINTERS_END
|
||||||
|
|
||||||
size_t MarkMove();
|
size_t MarkMove();
|
||||||
size_t MarkBullets();
|
size_t MarkBullets();
|
||||||
size_t MarkInput();
|
|
||||||
size_t MarkItems();
|
size_t MarkItems();
|
||||||
size_t MarkLighting();
|
size_t MarkLighting();
|
||||||
size_t MarkObjects();
|
size_t MarkObjects();
|
||||||
|
@ -77,7 +76,6 @@ size_t MarkRunlist();
|
||||||
static void markgcroots()
|
static void markgcroots()
|
||||||
{
|
{
|
||||||
MarkBullets();
|
MarkBullets();
|
||||||
MarkInput();
|
|
||||||
MarkItems();
|
MarkItems();
|
||||||
MarkLighting();
|
MarkLighting();
|
||||||
MarkObjects();
|
MarkObjects();
|
||||||
|
@ -484,11 +482,10 @@ void GameInterface::Ticker()
|
||||||
if (oldactions & SB_CENTERVIEW) sPlayerInput[nLocalPlayer].actions |= SB_CENTERVIEW;
|
if (oldactions & SB_CENTERVIEW) sPlayerInput[nLocalPlayer].actions |= SB_CENTERVIEW;
|
||||||
|
|
||||||
sPlayerInput[nLocalPlayer].buttons = lLocalCodes;
|
sPlayerInput[nLocalPlayer].buttons = lLocalCodes;
|
||||||
sPlayerInput[nLocalPlayer].pTarget = bestTarget;
|
|
||||||
sPlayerInput[nLocalPlayer].nAngle = localInput.avel;
|
sPlayerInput[nLocalPlayer].nAngle = localInput.avel;
|
||||||
sPlayerInput[nLocalPlayer].pan = localInput.horz;
|
sPlayerInput[nLocalPlayer].pan = localInput.horz;
|
||||||
|
|
||||||
Ra[nLocalPlayer].pTarget = bestTarget;
|
PlayerList[nLocalPlayer].pTarget = Ra[nLocalPlayer].pTarget = bestTarget;
|
||||||
|
|
||||||
lLocalCodes = 0;
|
lLocalCodes = 0;
|
||||||
|
|
||||||
|
|
|
@ -838,9 +838,9 @@ loc_flag:
|
||||||
nHeight += h;
|
nHeight += h;
|
||||||
|
|
||||||
DExhumedActor* target = nullptr;
|
DExhumedActor* target = nullptr;
|
||||||
if (sPlayerInput[nPlayer].pTarget != nullptr && Autoaim(nPlayer))
|
if (PlayerList[nPlayer].pTarget != nullptr && Autoaim(nPlayer))
|
||||||
{
|
{
|
||||||
DExhumedActor* t = sPlayerInput[nPlayer].pTarget;
|
DExhumedActor* t = PlayerList[nPlayer].pTarget;
|
||||||
// only autoaim if target is in front of the player.
|
// only autoaim if target is in front of the player.
|
||||||
assert(t->sector());
|
assert(t->sector());
|
||||||
DAngle angletotarget = (t->spr.pos - pPlayerActor->spr.pos).Angle();
|
DAngle angletotarget = (t->spr.pos - pPlayerActor->spr.pos).Angle();
|
||||||
|
|
|
@ -33,15 +33,6 @@ PlayerInput sPlayerInput[kMaxPlayers];
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
size_t MarkInput()
|
|
||||||
{
|
|
||||||
for (auto& p : sPlayerInput)
|
|
||||||
{
|
|
||||||
GC::Mark(p.pTarget);
|
|
||||||
}
|
|
||||||
return kMaxPlayers;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ClearSpaceBar(int nPlayer)
|
void ClearSpaceBar(int nPlayer)
|
||||||
{
|
{
|
||||||
sPlayerInput[nPlayer].actions &= SB_OPEN;
|
sPlayerInput[nPlayer].actions &= SB_OPEN;
|
||||||
|
|
|
@ -32,7 +32,6 @@ enum {
|
||||||
// 32 bytes
|
// 32 bytes
|
||||||
struct PlayerInput
|
struct PlayerInput
|
||||||
{
|
{
|
||||||
TObjPtr<DExhumedActor*> pTarget;
|
|
||||||
DVector2 vel;
|
DVector2 vel;
|
||||||
uint16_t buttons;
|
uint16_t buttons;
|
||||||
float nAngle;
|
float nAngle;
|
||||||
|
|
|
@ -100,9 +100,10 @@ size_t MarkPlayers()
|
||||||
GC::Mark(p.pDoppleSprite);
|
GC::Mark(p.pDoppleSprite);
|
||||||
GC::Mark(p.pPlayerFloorSprite);
|
GC::Mark(p.pPlayerFloorSprite);
|
||||||
GC::Mark(p.pPlayerGrenade);
|
GC::Mark(p.pPlayerGrenade);
|
||||||
|
GC::Mark(p.pTarget);
|
||||||
}
|
}
|
||||||
GC::MarkArray(nNetStartSprite, kMaxPlayers);
|
GC::MarkArray(nNetStartSprite, kMaxPlayers);
|
||||||
return 5 * kMaxPlayers;
|
return 6 * kMaxPlayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
|
@ -101,6 +101,7 @@ struct Player
|
||||||
TObjPtr<DExhumedActor*> pPlayerGrenade;
|
TObjPtr<DExhumedActor*> pPlayerGrenade;
|
||||||
TObjPtr<DExhumedActor*> pPlayerFloorSprite;
|
TObjPtr<DExhumedActor*> pPlayerFloorSprite;
|
||||||
TObjPtr<DExhumedActor*> pDoppleSprite;
|
TObjPtr<DExhumedActor*> pDoppleSprite;
|
||||||
|
TObjPtr<DExhumedActor*> pTarget;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -216,7 +216,7 @@ void AIRa::Tick(RunListEvent* ev)
|
||||||
|
|
||||||
bool bVal = false;
|
bool bVal = false;
|
||||||
|
|
||||||
Ra[nPlayer].pTarget = sPlayerInput[nPlayer].pTarget;
|
Ra[nPlayer].pTarget = PlayerList[nPlayer].pTarget;
|
||||||
pActor->spr.picnum = seq_GetSeqPicnum2(nSeq, Ra[nPlayer].nFrame);
|
pActor->spr.picnum = seq_GetSeqPicnum2(nSeq, Ra[nPlayer].nFrame);
|
||||||
|
|
||||||
if (Ra[nPlayer].nAction)
|
if (Ra[nPlayer].nAction)
|
||||||
|
|
|
@ -191,9 +191,9 @@ void BuildSnake(int nPlayer, double zVal)
|
||||||
if (hitactor && hitactor->spr.statnum >= 90 && hitactor->spr.statnum <= 199) {
|
if (hitactor && hitactor->spr.statnum >= 90 && hitactor->spr.statnum <= 199) {
|
||||||
pTarget = hitactor;
|
pTarget = hitactor;
|
||||||
}
|
}
|
||||||
else if (sPlayerInput[nPlayer].pTarget != nullptr)
|
else if (PlayerList[nPlayer].pTarget != nullptr)
|
||||||
{
|
{
|
||||||
pTarget = sPlayerInput[nPlayer].pTarget;
|
pTarget = PlayerList[nPlayer].pTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nSnake = GrabSnake();
|
int nSnake = GrabSnake();
|
||||||
|
|
Loading…
Reference in a new issue