mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-21 19:11:06 +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()
|
void GameInterface::app_init()
|
||||||
{
|
{
|
||||||
|
// Initialise player array.
|
||||||
|
for (unsigned i = 0; i < kMaxPlayers; i++)
|
||||||
|
{
|
||||||
|
PlayerArray[i] = new ExhumedPlayer;
|
||||||
|
*PlayerArray[i] = {};
|
||||||
|
}
|
||||||
|
|
||||||
GC::AddMarkerFunc(markgcroots);
|
GC::AddMarkerFunc(markgcroots);
|
||||||
InitTextureIDs();
|
InitTextureIDs();
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ void ResetPlayerWeapons(int nPlayer)
|
||||||
|
|
||||||
void InitWeapons()
|
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;
|
int nLocalPlayer = 0;
|
||||||
ExhumedPlayer PlayerArray[kMaxPlayers];
|
ExhumedPlayer* PlayerArray[kMaxPlayers];
|
||||||
TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { };
|
TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers] = { };
|
||||||
int PlayerCount;
|
int PlayerCount;
|
||||||
int nNetStartSprites;
|
int nNetStartSprites;
|
||||||
|
@ -84,13 +84,13 @@ int nCurStartSprite;
|
||||||
|
|
||||||
size_t MarkPlayers()
|
size_t MarkPlayers()
|
||||||
{
|
{
|
||||||
for (auto& p : PlayerArray)
|
for (auto p : PlayerArray)
|
||||||
{
|
{
|
||||||
GC::Mark(p.actor);
|
GC::Mark(p->actor);
|
||||||
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::Mark(p->pTarget);
|
||||||
}
|
}
|
||||||
GC::MarkArray(nNetStartSprite, kMaxPlayers);
|
GC::MarkArray(nNetStartSprite, kMaxPlayers);
|
||||||
return 6 * kMaxPlayers;
|
return 6 * kMaxPlayers;
|
||||||
|
@ -2182,8 +2182,9 @@ void SerializePlayer(FSerializer& arc)
|
||||||
("netstartsprites", nNetStartSprites)
|
("netstartsprites", nNetStartSprites)
|
||||||
("localplayer", nLocalPlayer)
|
("localplayer", nLocalPlayer)
|
||||||
("curstartsprite", nCurStartSprite)
|
("curstartsprite", nCurStartSprite)
|
||||||
.Array("netstartsprite", nNetStartSprite, kMaxPlayers)
|
.Array("netstartsprite", nNetStartSprite, kMaxPlayers);
|
||||||
.Array("list", PlayerArray, PlayerCount);
|
#pragma message("Exhumed: Fix saving!")
|
||||||
|
//.Array("list", PlayerArray, PlayerCount);
|
||||||
|
|
||||||
arc.EndObject();
|
arc.EndObject();
|
||||||
}
|
}
|
||||||
|
@ -2237,7 +2238,7 @@ DEFINE_ACTION_FUNCTION(_Exhumed, GetPlayerClip)
|
||||||
DEFINE_ACTION_FUNCTION(_ExhumedPlayer, IsUnderwater)
|
DEFINE_ACTION_FUNCTION(_ExhumedPlayer, IsUnderwater)
|
||||||
{
|
{
|
||||||
PARAM_SELF_STRUCT_PROLOGUE(ExhumedPlayer);
|
PARAM_SELF_STRUCT_PROLOGUE(ExhumedPlayer);
|
||||||
auto nLocalPlayer = self - PlayerArray;
|
auto nLocalPlayer = self - *PlayerArray;
|
||||||
ACTION_RETURN_BOOL(getPlayer(nLocalPlayer)->pPlayerViewSect->Flag & kSectUnderwater);
|
ACTION_RETURN_BOOL(getPlayer(nLocalPlayer)->pPlayerViewSect->Flag & kSectUnderwater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,11 +117,11 @@ struct ExhumedPlayer final : public CorePlayer
|
||||||
|
|
||||||
extern int PlayerCount;
|
extern int PlayerCount;
|
||||||
|
|
||||||
extern ExhumedPlayer PlayerArray[kMaxPlayers];
|
extern ExhumedPlayer* PlayerArray[kMaxPlayers];
|
||||||
|
|
||||||
inline ExhumedPlayer* getPlayer(int index)
|
inline ExhumedPlayer* getPlayer(int index)
|
||||||
{
|
{
|
||||||
return &PlayerArray[index];
|
return PlayerArray[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
extern TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers];
|
extern TObjPtr<DExhumedActor*> nNetStartSprite[kMaxPlayers];
|
||||||
|
|
Loading…
Reference in a new issue