mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- made nChunkSprite an actor array
# Conflicts: # source/games/exhumed/src/move.cpp
This commit is contained in:
parent
c2467dc47b
commit
fe9ddabd35
3 changed files with 20 additions and 21 deletions
|
@ -227,7 +227,7 @@ struct BlockInfo
|
|||
extern BlockInfo sBlockInfo[];
|
||||
|
||||
extern int hihit;
|
||||
extern short nChunkSprite[];
|
||||
extern DExhumedActor* nChunkSprite[];
|
||||
extern DExhumedActor* nBodySprite[];
|
||||
|
||||
signed int lsqrt(int a1);
|
||||
|
|
|
@ -51,7 +51,7 @@ enum
|
|||
// think this belongs in init.c?
|
||||
BlockInfo sBlockInfo[kMaxPushBlocks];
|
||||
|
||||
short nChunkSprite[kMaxMoveChunks];
|
||||
DExhumedActor *nChunkSprite[kMaxMoveChunks];
|
||||
|
||||
FSerializer& Serialize(FSerializer& arc, const char* keyname, BlockInfo& w, BlockInfo* def)
|
||||
{
|
||||
|
@ -1322,7 +1322,7 @@ void WheresMyMouth(int nPlayer, int *x, int *y, int *z, short *sectnum)
|
|||
void InitChunks()
|
||||
{
|
||||
nCurChunkNum = 0;
|
||||
memset(nChunkSprite, -1, sizeof(nChunkSprite));
|
||||
memset(nChunkSprite, 0, sizeof(nChunkSprite));
|
||||
memset(nBodyGunSprite, -1, sizeof(nBodyGunSprite));
|
||||
memset(nBodySprite, 0, sizeof(nBodySprite));
|
||||
nCurBodyNum = 0;
|
||||
|
@ -1367,7 +1367,7 @@ int GrabBodyGunSprite()
|
|||
return nSprite;
|
||||
}
|
||||
|
||||
DExhumedActor GrabBody()
|
||||
DExhumedActor* GrabBody()
|
||||
{
|
||||
DExhumedActor* pActor = nullptr;
|
||||
spritetype* pSprite = nullptr;
|
||||
|
@ -1400,24 +1400,22 @@ DExhumedActor GrabBody()
|
|||
return pActor;
|
||||
}
|
||||
|
||||
int GrabChunkSprite()
|
||||
DExhumedActor* GrabChunkSprite()
|
||||
{
|
||||
int nSprite = nChunkSprite[nCurChunkNum];
|
||||
auto pSprite = &sprite[nSprite];
|
||||
auto pActor = nChunkSprite[nCurChunkNum];
|
||||
|
||||
if (nSprite == -1)
|
||||
if (pActor == nullptr)
|
||||
{
|
||||
nSprite = insertsprite(0, 899);
|
||||
pSprite = &sprite[nSprite];
|
||||
nChunkSprite[nCurChunkNum] = nSprite;
|
||||
pActor = insertActor(0, 899);
|
||||
nChunkSprite[nCurChunkNum] = pActor;
|
||||
}
|
||||
else if (pSprite->statnum)
|
||||
else if (pActor->s().statnum)
|
||||
{
|
||||
// TODO MonoOut("too many chunks being used at once!\n");
|
||||
return -1;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
changespritestat(nSprite, 899);
|
||||
ChangeActorStat(pActor, 899);
|
||||
|
||||
nCurChunkNum++;
|
||||
if (nCurChunkNum >= kMaxMoveChunks)
|
||||
|
@ -1426,9 +1424,9 @@ int GrabChunkSprite()
|
|||
if (nChunkTotal < kMaxMoveChunks)
|
||||
nChunkTotal++;
|
||||
|
||||
pSprite->cstat = 0x80;
|
||||
pActor->s().cstat = 0x80;
|
||||
|
||||
return nSprite;
|
||||
return pActor;
|
||||
}
|
||||
|
||||
int BuildCreatureChunk(int nVal, int nPic)
|
||||
|
|
|
@ -177,11 +177,12 @@ int FindFood(short nSprite)
|
|||
|
||||
if (nChunkTotal)
|
||||
{
|
||||
int nSprite2 = nChunkSprite[RandomSize(7) % nChunkTotal];
|
||||
if (nSprite2 != -1)
|
||||
{
|
||||
if (cansee(x, y, z2, nSector, sprite[nSprite2].x, sprite[nSprite2].y, sprite[nSprite2].z, sprite[nSprite2].sectnum)) {
|
||||
return nSprite2;
|
||||
auto pActor2 = nChunkSprite[RandomSize(7) % nChunkTotal];
|
||||
if (pActor2 != nullptr)
|
||||
{
|
||||
auto pSprite2 = &pActor2->s();
|
||||
if (cansee(x, y, z2, nSector, pSprite2->x, pSprite2->y, pSprite2->z, pSprite2->sectnum)) {
|
||||
return pActor2->GetSpriteIndex();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue