mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 10:32:27 +00:00
- Exhumed: Initial setup to convert PlayerArray
array to array of ExhumedPlayer
pointers.
This commit is contained in:
parent
6d2124dd01
commit
f9c3a64f35
4 changed files with 21 additions and 13 deletions
|
@ -417,6 +417,13 @@ void GameInterface::SetupSpecialTextures(TilesetBuildInfo& info)
|
|||
|
||||
void GameInterface::app_init()
|
||||
{
|
||||
// Initialise player array.
|
||||
for (unsigned i = 0; i < kMaxPlayers; i++)
|
||||
{
|
||||
PlayerArray[i] = new ExhumedPlayer;
|
||||
*PlayerArray[i] = {};
|
||||
}
|
||||
|
||||
GC::AddMarkerFunc(markgcroots);
|
||||
InitTextureIDs();
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ void ResetPlayerWeapons(int nPlayer)
|
|||
|
||||
void InitWeapons()
|
||||
{
|
||||
for (auto& p : PlayerArray) p.pPlayerGrenade = nullptr;
|
||||
for (auto p : PlayerArray) p->pPlayerGrenade = nullptr;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
|
@ -69,7 +69,7 @@ static constexpr int16_t nItemText[] = {
|
|||
};
|
||||
|
||||
int nLocalPlayer = 0;
|
||||
ExhumedPlayer PlayerArray[kMaxPlayers];
|
||||
ExhumedPlayer* PlayerArray[kMaxPlayers];
|
||||
TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { };
|
||||
int PlayerCount;
|
||||
int nNetStartSprites;
|
||||
|
@ -84,13 +84,13 @@ int nCurStartSprite;
|
|||
|
||||
size_t MarkPlayers()
|
||||
{
|
||||
for (auto& p : PlayerArray)
|
||||
for (auto p : PlayerArray)
|
||||
{
|
||||
GC::Mark(p.actor);
|
||||
GC::Mark(p.pDoppleSprite);
|
||||
GC::Mark(p.pPlayerFloorSprite);
|
||||
GC::Mark(p.pPlayerGrenade);
|
||||
GC::Mark(p.pTarget);
|
||||
GC::Mark(p->actor);
|
||||
GC::Mark(p->pDoppleSprite);
|
||||
GC::Mark(p->pPlayerFloorSprite);
|
||||
GC::Mark(p->pPlayerGrenade);
|
||||
GC::Mark(p->pTarget);
|
||||
}
|
||||
GC::MarkArray(nNetStartSprite, kMaxPlayers);
|
||||
return 6 * kMaxPlayers;
|
||||
|
@ -2182,8 +2182,9 @@ void SerializePlayer(FSerializer& arc)
|
|||
("netstartsprites", nNetStartSprites)
|
||||
("localplayer", nLocalPlayer)
|
||||
("curstartsprite", nCurStartSprite)
|
||||
.Array("netstartsprite", nNetStartSprite, kMaxPlayers)
|
||||
.Array("list", PlayerArray, PlayerCount);
|
||||
.Array("netstartsprite", nNetStartSprite, kMaxPlayers);
|
||||
#pragma message("Exhumed: Fix saving!")
|
||||
//.Array("list", PlayerArray, PlayerCount);
|
||||
|
||||
arc.EndObject();
|
||||
}
|
||||
|
@ -2237,7 +2238,7 @@ DEFINE_ACTION_FUNCTION(_Exhumed, GetPlayerClip)
|
|||
DEFINE_ACTION_FUNCTION(_ExhumedPlayer, IsUnderwater)
|
||||
{
|
||||
PARAM_SELF_STRUCT_PROLOGUE(ExhumedPlayer);
|
||||
auto nLocalPlayer = self - PlayerArray;
|
||||
auto nLocalPlayer = self - *PlayerArray;
|
||||
ACTION_RETURN_BOOL(getPlayer(nLocalPlayer)->pPlayerViewSect->Flag & kSectUnderwater);
|
||||
}
|
||||
|
||||
|
|
|
@ -117,11 +117,11 @@ struct ExhumedPlayer final : public CorePlayer
|
|||
|
||||
extern int PlayerCount;
|
||||
|
||||
extern ExhumedPlayer PlayerArray[kMaxPlayers];
|
||||
extern ExhumedPlayer* PlayerArray[kMaxPlayers];
|
||||
|
||||
inline ExhumedPlayer* getPlayer(int index)
|
||||
{
|
||||
return &PlayerArray[index];
|
||||
return PlayerArray[index];
|
||||
}
|
||||
|
||||
extern TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers];
|
||||
|
|
Loading…
Reference in a new issue