mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-31 04:20:42 +00:00
- Exhumed short review, part 2.
Down to 350.
This commit is contained in:
parent
1790ced1f8
commit
033a73bce0
23 changed files with 187 additions and 212 deletions
|
@ -66,7 +66,7 @@ struct bulletInfo
|
|||
|
||||
extern bulletInfo BulletInfo[];
|
||||
|
||||
extern short nRadialBullet;
|
||||
extern int nRadialBullet;
|
||||
extern int lasthitsect;
|
||||
extern int lasthitz;
|
||||
extern int lasthitx;
|
||||
|
@ -95,7 +95,6 @@ void FuncFishLimb(int a, int b, int c);
|
|||
enum { kMaxGrenades = 50 };
|
||||
|
||||
void BuildGrenade(int nPlayer);
|
||||
void DestroyGrenade(short nGrenade);
|
||||
void ThrowGrenade(int nPlayer, int edx, int ebx, int ecx, int push1);
|
||||
void FuncGrenade(int, int, int, int);
|
||||
|
||||
|
@ -117,17 +116,16 @@ enum
|
|||
|
||||
struct Weapon
|
||||
{
|
||||
short nSeq;
|
||||
short b[12]; // seq offsets?
|
||||
short nAmmoType;
|
||||
short c;
|
||||
short d; // default or min ammo? or ammo used per 'shot' ?
|
||||
short bFireUnderwater;
|
||||
// short pad[15];
|
||||
int16_t nSeq;
|
||||
int16_t b[12]; // seq offsets?
|
||||
int16_t nAmmoType;
|
||||
int16_t c;
|
||||
int16_t d; // default or min ammo? or ammo used per 'shot' ?
|
||||
int16_t bFireUnderwater;
|
||||
};
|
||||
|
||||
extern Weapon WeaponInfo[];
|
||||
extern short nTemperature[];
|
||||
extern int16_t nTemperature[];
|
||||
|
||||
void RestoreMinAmmo(int nPlayer);
|
||||
void FillWeapons(int nPlayer);
|
||||
|
@ -155,7 +153,7 @@ enum
|
|||
kItemMask,
|
||||
};
|
||||
|
||||
extern short nItemMagic[];
|
||||
extern const int16_t nItemMagic[];
|
||||
|
||||
void BuildItemAnim(DExhumedActor* nSprite);
|
||||
void ItemFlash();
|
||||
|
@ -177,7 +175,6 @@ void FuncLava(int, int, int, int);
|
|||
|
||||
// lighting
|
||||
|
||||
extern short nFlashDepth;
|
||||
|
||||
void InitLights();
|
||||
void AddFlash(int nSector, int x, int y, int z, int val);
|
||||
|
@ -189,7 +186,6 @@ void BuildFlash(int nPlayer, int nVal);
|
|||
void AddGlow(int nSector, int nVal);
|
||||
void AddFlicker(int nSector, int nVal);
|
||||
|
||||
extern short bTorch;
|
||||
|
||||
// lion
|
||||
|
||||
|
@ -260,8 +256,10 @@ enum kStatus
|
|||
|
||||
};
|
||||
|
||||
extern short nSmokeSparks;
|
||||
extern short nDronePitch;
|
||||
extern int nFlashDepth;
|
||||
extern int bTorch;
|
||||
extern int nSmokeSparks;
|
||||
extern int nDronePitch;
|
||||
extern int lFinaleStart;
|
||||
extern DExhumedActor* pFinaleSpr;
|
||||
|
||||
|
@ -294,7 +292,7 @@ void BuildDrip(DExhumedActor* nSprite);
|
|||
DExhumedActor* BuildEnergyBlock(int nSector);
|
||||
int BuildElevC(int arg1, int nChannel, int nSector, DExhumedActor* nWallSprite, int arg5, int arg6, int nCount, ...);
|
||||
int BuildElevF(int nChannel, int nSector, DExhumedActor* nWallSprite, int arg_4, int arg_5, int nCount, ...);
|
||||
int BuildWallFace(short nChannel, int nWall, int nCount, ...);
|
||||
int BuildWallFace(int nChannel, int nWall, int nCount, ...);
|
||||
int BuildSlide(int nChannel, int edx, int ebx, int ecx, int arg1, int arg2, int arg3);
|
||||
|
||||
// queen
|
||||
|
@ -312,11 +310,10 @@ struct RA
|
|||
DExhumedActor* pActor;
|
||||
DExhumedActor* pTarget;
|
||||
|
||||
short nAction;
|
||||
short nFrame;
|
||||
short nRun;
|
||||
short field_A;
|
||||
short field_C;
|
||||
int16_t nAction;
|
||||
int16_t nFrame;
|
||||
int16_t nRun;
|
||||
int16_t nState;
|
||||
int nPlayer;
|
||||
};
|
||||
|
||||
|
@ -358,16 +355,16 @@ struct RunStruct
|
|||
int nAIType; // todo later: replace this with an AI pointer
|
||||
int nObjIndex; // If object is a non-actor / not refactored yet.
|
||||
DExhumedActor* pObjActor; // If object is an actor
|
||||
short next;
|
||||
short prev;
|
||||
int next;
|
||||
int prev;
|
||||
};
|
||||
|
||||
struct RunChannel
|
||||
{
|
||||
short a;
|
||||
short b;
|
||||
short c;
|
||||
short d;
|
||||
int16_t a;
|
||||
int16_t b;
|
||||
int16_t c;
|
||||
int16_t d;
|
||||
};
|
||||
|
||||
|
||||
|
@ -676,7 +673,7 @@ typedef void(*AiFunc)(int, int, int, int nRun);
|
|||
extern FreeListArray<RunStruct, kMaxRuns> RunData;
|
||||
|
||||
extern RunChannel sRunChannels[kMaxChannels];
|
||||
extern short NewRun;
|
||||
extern int NewRun;
|
||||
|
||||
void runlist_InitRun();
|
||||
|
||||
|
@ -687,16 +684,16 @@ int runlist_AddRunRec(int index, DExhumedActor* object, int aitype);
|
|||
int runlist_AddRunRec(int index, RunStruct* other);
|
||||
int runlist_HeadRun();
|
||||
void runlist_InitChan();
|
||||
void runlist_ChangeChannel(int eax, short dx);
|
||||
void runlist_ReadyChannel(short eax);
|
||||
void runlist_ChangeChannel(int eax, int dx);
|
||||
void runlist_ReadyChannel(int eax);
|
||||
void runlist_ProcessSectorTag(int nSector, int nLotag, int nHitag);
|
||||
int runlist_AllocChannel(int a);
|
||||
void runlist_DoSubRunRec(int RunPtr);
|
||||
void runlist_SubRunRec(int RunPtr);
|
||||
void runlist_ProcessWallTag(int nWall, short nLotag, short nHitag);
|
||||
void runlist_ProcessWallTag(int nWall, int nLotag, int nHitag);
|
||||
int runlist_CheckRadialDamage(DExhumedActor* actor);
|
||||
void runlist_RadialDamageEnemy(DExhumedActor* pActor, short nDamage, short nRadius);
|
||||
void runlist_DamageEnemy(DExhumedActor* nSprite, DExhumedActor* nSprite2, short nDamage);
|
||||
void runlist_RadialDamageEnemy(DExhumedActor* pActor, int nDamage, int nRadius);
|
||||
void runlist_DamageEnemy(DExhumedActor* nSprite, DExhumedActor* nSprite2, int nDamage);
|
||||
void runlist_SignalRun(int NxtPtr, int edx, void(ExhumedAI::* func)(RunListEvent*), RunListEvent* ev = nullptr);
|
||||
|
||||
void runlist_CleanRunRecs();
|
||||
|
@ -723,13 +720,12 @@ struct Snake
|
|||
DExhumedActor* pEnemy; // nRun
|
||||
DExhumedActor* pSprites[kSnakeSprites];
|
||||
|
||||
short nCountdown;
|
||||
short sC;
|
||||
short nRun;
|
||||
int16_t nCountdown;
|
||||
int16_t nRun;
|
||||
|
||||
uint8_t c[8];
|
||||
short sE;
|
||||
short nSnakePlayer;
|
||||
int16_t nAngle;
|
||||
int16_t nSnakePlayer;
|
||||
};
|
||||
|
||||
enum { kMaxSnakes = 50 };
|
||||
|
@ -737,8 +733,8 @@ enum { kMaxSnakes = 50 };
|
|||
extern FreeListArray<Snake, kMaxSnakes> SnakeList;
|
||||
|
||||
void InitSnakes();
|
||||
short GrabSnake();
|
||||
void BuildSnake(int nPlayer, short zVal);
|
||||
int GrabSnake();
|
||||
void BuildSnake(int nPlayer, int zVal);
|
||||
void FuncSnake(int, int, int, int);
|
||||
|
||||
// spider
|
||||
|
|
|
@ -25,9 +25,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
BEGIN_PS_NS
|
||||
|
||||
short nMagicSeq = -1;
|
||||
short nPreMagicSeq = -1;
|
||||
short nSavePointSeq = -1;
|
||||
int nMagicSeq = -1;
|
||||
int nPreMagicSeq = -1;
|
||||
int nSavePointSeq = -1;
|
||||
//FreeListArray<Anim, kMaxAnims> AnimList;
|
||||
|
||||
|
||||
|
@ -126,10 +126,10 @@ void AIAnim::Tick(RunListEvent* ev)
|
|||
auto pActor = ev->pObjActor;
|
||||
if (!pActor) return;
|
||||
|
||||
short nIndex2 = pActor->nIndex2;
|
||||
int nIndex2 = pActor->nIndex2;
|
||||
auto pSprite = &pActor->s();
|
||||
|
||||
short nIndex = pActor->nIndex;
|
||||
int nIndex = pActor->nIndex;
|
||||
|
||||
if (!(pSprite->cstat & 0x8000))
|
||||
{
|
||||
|
@ -164,7 +164,7 @@ void AIAnim::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (pSpriteB->cstat != 0x8000)
|
||||
{
|
||||
short hitag2 = pSpriteB->hitag;
|
||||
int hitag2 = pSpriteB->hitag;
|
||||
pSpriteB->hitag--;
|
||||
|
||||
if (hitag2 >= 15)
|
||||
|
@ -229,7 +229,7 @@ void AIAnim::Draw(RunListEvent* ev)
|
|||
{
|
||||
auto pActor = ev->pObjActor;
|
||||
if (!pActor) return;
|
||||
short nIndex2 = pActor->nIndex2;
|
||||
int nIndex2 = pActor->nIndex2;
|
||||
|
||||
seq_PlotSequence(ev->nParam, nIndex2, pActor->nIndex, 0x101);
|
||||
ev->pTSprite->owner = -1;
|
||||
|
|
|
@ -123,7 +123,7 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
Gravity(ap);
|
||||
}
|
||||
|
||||
short nSeq = SeqOffsets[kSeqAnubis] + AnubisSeq[nAction].a;
|
||||
int nSeq = SeqOffsets[kSeqAnubis] + AnubisSeq[nAction].a;
|
||||
|
||||
seq_MoveSequence(ap, nSeq, ap->nFrame);
|
||||
|
||||
|
@ -138,8 +138,8 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
|
||||
auto pTarget = ap->pTarget;
|
||||
|
||||
short nFrame = SeqBase[nSeq] + ap->nFrame;
|
||||
short nFlag = FrameFlag[nFrame];
|
||||
int nFrame = SeqBase[nSeq] + ap->nFrame;
|
||||
int nFlag = FrameFlag[nFrame];
|
||||
|
||||
Collision move(0);
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ void AIBubble::Tick(RunListEvent* ev)
|
|||
auto pActor = ev->pObjActor;
|
||||
if (!pActor) return;
|
||||
|
||||
short nSeq = pActor->nIndex;
|
||||
int nSeq = pActor->nIndex;
|
||||
auto pSprite = &pActor->s();
|
||||
|
||||
seq_MoveSequence(pActor, nSeq, pActor->nFrame);
|
||||
|
|
|
@ -43,7 +43,7 @@ struct Bullet
|
|||
int16_t nRunRec2;
|
||||
int16_t nType;
|
||||
int16_t nPitch;
|
||||
short field_E;
|
||||
int16_t field_E;
|
||||
uint16_t field_10;
|
||||
uint8_t field_12;
|
||||
uint8_t nDoubleDamage;
|
||||
|
@ -56,7 +56,7 @@ FreeListArray<Bullet, kMaxBullets> BulletList;
|
|||
int lasthitz, lasthitx, lasthity;
|
||||
int lasthitsect;
|
||||
|
||||
short nRadialBullet = 0;
|
||||
int nRadialBullet = 0;
|
||||
|
||||
FSerializer& Serialize(FSerializer& arc, const char* keyname, Bullet& w, Bullet* def)
|
||||
{
|
||||
|
@ -164,7 +164,7 @@ void IgniteSprite(DExhumedActor* pActor)
|
|||
pAnimActor->pTarget = pActor;
|
||||
ChangeActorStat(pAnimActor, kStatIgnited);
|
||||
|
||||
short yRepeat = (tileHeight(pAnimActor->s().picnum) * 32) / nFlameHeight;
|
||||
int yRepeat = (tileHeight(pAnimActor->s().picnum) * 32) / nFlameHeight;
|
||||
if (yRepeat < 1)
|
||||
yRepeat = 1;
|
||||
|
||||
|
@ -179,7 +179,7 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo
|
|||
bulletInfo *pBulletInfo = &BulletInfo[pBullet->nType];
|
||||
|
||||
auto pHitSprite = &pHitActor->s();
|
||||
short nStat = pHitSprite->statnum;
|
||||
int nStat = pHitSprite->statnum;
|
||||
|
||||
switch (pBullet->nType)
|
||||
{
|
||||
|
@ -256,7 +256,7 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo
|
|||
}
|
||||
|
||||
// BHS_switchBreak:
|
||||
short nDamage = pBulletInfo->nDamage;
|
||||
int nDamage = pBulletInfo->nDamage;
|
||||
|
||||
if (pBullet->nDoubleDamage > 1) {
|
||||
nDamage *= 2;
|
||||
|
@ -304,7 +304,7 @@ int MoveBullet(int nBullet)
|
|||
DExhumedActor* hitactor = nullptr;
|
||||
|
||||
Bullet *pBullet = &BulletList[nBullet];
|
||||
short nType = pBullet->nType;
|
||||
int nType = pBullet->nType;
|
||||
bulletInfo *pBulletInfo = &BulletInfo[nType];
|
||||
|
||||
auto pActor = BulletList[nBullet].pActor;
|
||||
|
@ -313,7 +313,7 @@ int MoveBullet(int nBullet)
|
|||
int x = pSprite->x;
|
||||
int y = pSprite->y;
|
||||
int z = pSprite->z; // ebx
|
||||
short nSectFlag = pSprite->sector()->Flag;
|
||||
int nSectFlag = pSprite->sector()->Flag;
|
||||
|
||||
int x2, y2, z2;
|
||||
|
||||
|
@ -412,7 +412,7 @@ MOVEEND:
|
|||
nVal = coll.type || coll.exbits? 1:0;
|
||||
|
||||
// pSprite->sectnum may have changed since we set nSectFlag ?
|
||||
short nFlagVal = nSectFlag ^ pSprite->sector()->Flag;
|
||||
int nFlagVal = nSectFlag ^ pSprite->sector()->Flag;
|
||||
if (nFlagVal & kSectUnderwater)
|
||||
{
|
||||
DestroyBullet(nBullet);
|
||||
|
@ -490,7 +490,7 @@ HITWALL:
|
|||
int nSector =wall[hitwall].nextsector;
|
||||
if (nSector > -1)
|
||||
{
|
||||
short nDamage = BulletInfo[pBullet->nType].nDamage;
|
||||
int nDamage = BulletInfo[pBullet->nType].nDamage;
|
||||
if (pBullet->nDoubleDamage > 1) {
|
||||
nDamage *= 2;
|
||||
}
|
||||
|
|
|
@ -56,14 +56,14 @@ enum {
|
|||
extern int initx;
|
||||
extern int inity;
|
||||
extern int initz;
|
||||
extern short inita;
|
||||
extern int16_t inita;
|
||||
extern int initsect;
|
||||
|
||||
extern short nCurChunkNum;
|
||||
extern int nCurChunkNum;
|
||||
extern DExhumedActor* nBodyGunSprite[50];
|
||||
extern int movefifoend;
|
||||
extern int movefifopos;
|
||||
extern short nCurBodyGunNum;
|
||||
extern int nCurBodyGunNum;
|
||||
|
||||
// all static counters combined in an array for easier maintenance.
|
||||
enum ECounter
|
||||
|
@ -98,15 +98,13 @@ void FixPalette();
|
|||
int HavePLURemap();
|
||||
uint8_t RemapPLU(uint8_t pal);
|
||||
|
||||
extern short overscanindex;
|
||||
|
||||
extern char *origpalookup[];
|
||||
|
||||
extern short nPalDiff;
|
||||
extern int nPalDiff;
|
||||
|
||||
// map
|
||||
|
||||
extern short bShowTowers;
|
||||
extern bool bShowTowers;
|
||||
|
||||
void GrabMap();
|
||||
void UpdateMap();
|
||||
|
@ -130,7 +128,7 @@ int RandomSize(int nSize);
|
|||
|
||||
int GetMyAngle(int x, int y);
|
||||
|
||||
int AngleDiff(short a, short b);
|
||||
int AngleDiff(int a, int b);
|
||||
int AngleDelta(int a, int b, int c);
|
||||
|
||||
END_PS_NS
|
||||
|
|
|
@ -80,10 +80,9 @@ void GameInterface::loadPalette()
|
|||
LoadPaletteLookups();
|
||||
}
|
||||
|
||||
void CopyTileToBitmap(short nSrcTile, short nDestTile, int xPos, int yPos);
|
||||
void CopyTileToBitmap(int nSrcTile, int nDestTile, int xPos, int yPos);
|
||||
|
||||
// void TestSaveLoad();
|
||||
void EraseScreen(int nVal);
|
||||
void LoadStatus();
|
||||
void MySetView(int x1, int y1, int x2, int y2);
|
||||
|
||||
|
@ -93,53 +92,51 @@ int nFontFirstChar;
|
|||
int nBackgroundPic;
|
||||
int nShadowPic;
|
||||
|
||||
short nCreaturesKilled = 0, nCreaturesTotal = 0;
|
||||
int nCreaturesKilled = 0, nCreaturesTotal = 0;
|
||||
|
||||
short nFreeze;
|
||||
int nFreeze;
|
||||
|
||||
short nSnakeCam = -1;
|
||||
int nSnakeCam = -1;
|
||||
|
||||
int nNetPlayerCount = 0;
|
||||
|
||||
short nClockVal;
|
||||
short nRedTicks;
|
||||
short nAlarmTicks;
|
||||
short nButtonColor;
|
||||
short nEnergyChan;
|
||||
int nClockVal;
|
||||
int nRedTicks;
|
||||
int nAlarmTicks;
|
||||
int nButtonColor;
|
||||
int nEnergyChan;
|
||||
|
||||
int lCountDown = 0;
|
||||
short nEnergyTowers = 0;
|
||||
int nEnergyTowers = 0;
|
||||
|
||||
short nCfgNetPlayers = 0;
|
||||
int nCfgNetPlayers = 0;
|
||||
|
||||
int lLocalCodes = 0;
|
||||
|
||||
short bCoordinates = false;
|
||||
bool bCoordinates = false;
|
||||
|
||||
int nNetTime = -1;
|
||||
|
||||
int flash;
|
||||
int totalmoves;
|
||||
|
||||
short nCurBodyNum = 0;
|
||||
int nCurBodyNum = 0;
|
||||
|
||||
short nBodyTotal = 0;
|
||||
int nBodyTotal = 0;
|
||||
|
||||
short nTotalPlayers = 1;
|
||||
int nTotalPlayers = 1;
|
||||
// TODO: Rename this (or make it static) so it doesn't conflict with library function
|
||||
|
||||
|
||||
short bSnakeCam = false;
|
||||
short bRecord = false;
|
||||
short bPlayback = false;
|
||||
short bInDemo = false;
|
||||
short bSlipMode = false;
|
||||
short bDoFlashes = true;
|
||||
bool bSnakeCam = false;
|
||||
bool bRecord = false;
|
||||
bool bPlayback = false;
|
||||
bool bInDemo = false;
|
||||
bool bSlipMode = false;
|
||||
bool bDoFlashes = true;
|
||||
|
||||
DExhumedActor* bestTarget;
|
||||
|
||||
short scan_char = 0;
|
||||
|
||||
int nStartLevel;
|
||||
int nTimeLimit;
|
||||
|
||||
|
@ -511,7 +508,7 @@ void DeleteActor(DExhumedActor* actor)
|
|||
|
||||
|
||||
|
||||
void CopyTileToBitmap(short nSrcTile, short nDestTile, int xPos, int yPos)
|
||||
void CopyTileToBitmap(int nSrcTile, int nDestTile, int xPos, int yPos)
|
||||
{
|
||||
int nOffs = tileHeight(nDestTile) * xPos;
|
||||
|
||||
|
|
|
@ -100,50 +100,50 @@ extern int nNetPlayerCount;
|
|||
|
||||
extern int nNetTime;
|
||||
|
||||
extern short nTotalPlayers;
|
||||
extern int nTotalPlayers;
|
||||
|
||||
extern int nFontFirstChar;
|
||||
extern int nBackgroundPic;
|
||||
extern int nShadowPic;
|
||||
|
||||
extern short nCreaturesTotal, nCreaturesKilled;
|
||||
extern int nCreaturesTotal, nCreaturesKilled;
|
||||
|
||||
extern int lLocalButtons;
|
||||
|
||||
extern short nEnergyTowers;
|
||||
extern int nEnergyTowers;
|
||||
|
||||
extern short nEnergyChan;
|
||||
extern int nEnergyChan;
|
||||
|
||||
extern DExhumedActor* pSpiritSprite;
|
||||
|
||||
extern short bInDemo;
|
||||
extern bool bInDemo;
|
||||
|
||||
extern short nFreeze;
|
||||
extern int nFreeze;
|
||||
|
||||
extern short nCurBodyNum;
|
||||
extern short nBodyTotal;
|
||||
extern int nCurBodyNum;
|
||||
extern int nBodyTotal;
|
||||
|
||||
extern short bSnakeCam;
|
||||
extern bool bSnakeCam;
|
||||
|
||||
extern short nButtonColor;
|
||||
extern int nButtonColor;
|
||||
|
||||
extern int nHeadStage;
|
||||
|
||||
extern int flash;
|
||||
|
||||
extern short nSnakeCam;
|
||||
extern int nSnakeCam;
|
||||
|
||||
extern short bCoordinates;
|
||||
extern bool bCoordinates;
|
||||
|
||||
extern int totalmoves;
|
||||
|
||||
extern int lCountDown;
|
||||
extern short nAlarmTicks;
|
||||
extern short nRedTicks;
|
||||
extern short nClockVal;
|
||||
extern int nAlarmTicks;
|
||||
extern int nRedTicks;
|
||||
extern int nClockVal;
|
||||
|
||||
extern short bSlipMode;
|
||||
extern short bDoFlashes;
|
||||
extern bool bSlipMode;
|
||||
extern bool bDoFlashes;
|
||||
|
||||
extern int bVanilla;
|
||||
|
||||
|
|
|
@ -85,17 +85,17 @@ class DExhumedActor
|
|||
public:
|
||||
DExhumedActor* pTarget;
|
||||
|
||||
short nPhase;
|
||||
int16_t nPhase;
|
||||
|
||||
short nHealth;
|
||||
short nFrame;
|
||||
short nAction;
|
||||
short nCount;
|
||||
short nRun;
|
||||
union { short nIndex; short nAngle; }; // angle is for wasp.
|
||||
union { short nIndex2; short nAngle2; }; // index2 is for scorpion, angle2 is for wasp.
|
||||
union { short nChannel; short nVel; }; // channel is for scorpion, vel is for wasp.
|
||||
union { short nDamage; short nAction2; }; // nAction2 is for the queen.
|
||||
int16_t nHealth;
|
||||
int16_t nFrame;
|
||||
int16_t nAction;
|
||||
int16_t nCount;
|
||||
int16_t nRun;
|
||||
union { int16_t nIndex; int16_t nAngle; }; // angle is for wasp.
|
||||
union { int16_t nIndex2; int16_t nAngle2; }; // index2 is for scorpion, angle2 is for wasp.
|
||||
union { int16_t nChannel; int16_t nVel; }; // channel is for scorpion, vel is for wasp.
|
||||
union { int16_t nDamage; int16_t nAction2; }; // nAction2 is for the queen.
|
||||
|
||||
// for the grenade.
|
||||
int nTurn;
|
||||
|
|
|
@ -31,17 +31,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
|
||||
BEGIN_PS_NS
|
||||
|
||||
/*
|
||||
struct Weapon
|
||||
{
|
||||
short nSeq;
|
||||
short b[12]; // seq offsets?
|
||||
short nAmmoType;
|
||||
short c;
|
||||
short d;
|
||||
short bFireUnderwater;
|
||||
};
|
||||
*/
|
||||
|
||||
Weapon WeaponInfo[] = {
|
||||
{ kSeqSword, { 0, 1, 3, 7, -1, 2, 4, 5, 6, 8, 9, 10 }, 0, 0, 0, true },
|
||||
|
@ -57,8 +46,8 @@ Weapon WeaponInfo[] = {
|
|||
{ kSeqDeadBrn, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 0, 1, 0, false }
|
||||
};
|
||||
|
||||
short nTemperature[kMaxPlayers];
|
||||
short nMinAmmo[] = { 0, 24, 51, 50, 1, 0, 0 };
|
||||
int16_t nTemperature[kMaxPlayers];
|
||||
static const uint8_t nMinAmmo[] = { 0, 24, 51, 50, 1, 0, 0 };
|
||||
short isRed = 0;
|
||||
|
||||
|
||||
|
@ -410,7 +399,7 @@ void MoveWeapons(int nPlayer)
|
|||
|
||||
Ra[nPlayer].nAction = 0;
|
||||
Ra[nPlayer].nFrame = 0;
|
||||
Ra[nPlayer].field_C = 1;
|
||||
Ra[nPlayer].nState = 1;
|
||||
}
|
||||
|
||||
PlayerList[nPlayer].nState = 2;
|
||||
|
@ -530,7 +519,7 @@ void MoveWeapons(int nPlayer)
|
|||
SelectNewWeapon(nPlayer);
|
||||
}
|
||||
|
||||
Ra[nPlayer].field_C = 0;
|
||||
Ra[nPlayer].nState = 0;
|
||||
break;
|
||||
}
|
||||
else if (nWeapon == kWeaponM60)
|
||||
|
|
|
@ -40,16 +40,16 @@ enum
|
|||
};
|
||||
|
||||
int initx, inity, initz;
|
||||
short inita;
|
||||
int16_t inita;
|
||||
int initsect;
|
||||
|
||||
short nCurChunkNum = 0;
|
||||
int nCurChunkNum = 0;
|
||||
|
||||
DExhumedActor* nBodyGunSprite[50];
|
||||
int movefifoend;
|
||||
int movefifopos;
|
||||
|
||||
short nCurBodyGunNum;
|
||||
int nCurBodyGunNum;
|
||||
|
||||
int Counters[kNumCounters];
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ AnimInfo nItemAnimInfo[] = {
|
|||
{ -1, 32 }
|
||||
};
|
||||
|
||||
short nItemMagic[] = { 500, 1000, 100, 500, 400, 200, 700, 0 };
|
||||
const int16_t nItemMagic[] = { 500, 1000, 100, 500, 400, 200, 700, 0 };
|
||||
|
||||
/*
|
||||
|
||||
|
|
|
@ -49,9 +49,8 @@ int btint = 0;
|
|||
|
||||
palette_t *fadedestpal;
|
||||
palette_t *fadecurpal;
|
||||
short nPalDelay;
|
||||
short nPalDiff;
|
||||
short overscanindex;
|
||||
int nPalDelay;
|
||||
int nPalDiff;
|
||||
int bGreenPal = 0;
|
||||
|
||||
// keep a local copy of the palette that would have been sent to the VGA display adapter
|
||||
|
|
|
@ -80,13 +80,13 @@ Flicker sFlicker[kMaxFlickers];
|
|||
Flow sFlowInfo[kMaxFlows];
|
||||
int flickermask[kMaxFlickerMask];
|
||||
|
||||
short bTorch = 0;
|
||||
short nFirstFlash = -1;
|
||||
short nLastFlash = -1;
|
||||
short nFlashDepth = 2;
|
||||
short nFlowCount;
|
||||
short nFlickerCount;
|
||||
short nGlowCount;
|
||||
int bTorch = 0;
|
||||
int nFirstFlash = -1;
|
||||
int nLastFlash = -1;
|
||||
int nFlashDepth = 2;
|
||||
int nFlowCount;
|
||||
int nFlickerCount;
|
||||
int nGlowCount;
|
||||
|
||||
int bDoFlicks = 0;
|
||||
int bDoGlows = 0;
|
||||
|
|
|
@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
BEGIN_PS_NS
|
||||
|
||||
|
||||
short bShowTowers = false;
|
||||
bool bShowTowers = false;
|
||||
|
||||
void GrabMap()
|
||||
{
|
||||
|
|
|
@ -179,11 +179,11 @@ TArray<DExhumedActor*> EnergyBlocks;
|
|||
|
||||
int lFinaleStart;
|
||||
|
||||
short nFinaleStage;
|
||||
int nFinaleStage;
|
||||
DExhumedActor* pFinaleSpr;
|
||||
|
||||
short nDronePitch = 0;
|
||||
short nSmokeSparks = 0;
|
||||
int nDronePitch = 0;
|
||||
int nSmokeSparks = 0;
|
||||
|
||||
FSerializer& Serialize(FSerializer& arc, const char* keyname, Trail& w, Trail* def)
|
||||
{
|
||||
|
@ -894,7 +894,7 @@ void InitWallFace()
|
|||
WallFace.Clear();
|
||||
}
|
||||
|
||||
int BuildWallFace(short nChannel, int nWall, int nCount, ...)
|
||||
int BuildWallFace(int nChannel, int nWall, int nCount, ...)
|
||||
{
|
||||
auto WallFaceCount = WallFace.Reserve(1);
|
||||
|
||||
|
|
|
@ -46,8 +46,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, RA& w, RA* def)
|
|||
("sprite", w.pActor)
|
||||
("target", w.pTarget)
|
||||
("run", w.nRun)
|
||||
("ata", w.field_A)
|
||||
("atc", w.field_C)
|
||||
("atc", w.nState)
|
||||
("player", w.nPlayer)
|
||||
.EndObject();
|
||||
}
|
||||
|
@ -102,7 +101,7 @@ void BuildRa(int nPlayer)
|
|||
Ra[nPlayer].pTarget = nullptr;
|
||||
Ra[nPlayer].nFrame = 0;
|
||||
Ra[nPlayer].nAction = 0;
|
||||
Ra[nPlayer].field_C = 0;
|
||||
Ra[nPlayer].nState = 0;
|
||||
Ra[nPlayer].nPlayer = nPlayer;
|
||||
}
|
||||
|
||||
|
@ -198,7 +197,7 @@ void AIRa::Tick(RunListEvent* ev)
|
|||
{
|
||||
MoveRaToEnemy(nPlayer);
|
||||
|
||||
if (!Ra[nPlayer].field_C || Ra[nPlayer].pTarget == nullptr)
|
||||
if (!Ra[nPlayer].nState || Ra[nPlayer].pTarget == nullptr)
|
||||
{
|
||||
pSprite->cstat = 0x8000;
|
||||
}
|
||||
|
@ -214,7 +213,7 @@ void AIRa::Tick(RunListEvent* ev)
|
|||
|
||||
case 1:
|
||||
{
|
||||
if (!Ra[nPlayer].field_C)
|
||||
if (!Ra[nPlayer].nState)
|
||||
{
|
||||
Ra[nPlayer].nAction = 3;
|
||||
Ra[nPlayer].nFrame = 0;
|
||||
|
@ -278,7 +277,7 @@ void AIRa::Tick(RunListEvent* ev)
|
|||
pSprite->cstat |= 0x8000;
|
||||
Ra[nPlayer].nAction = 0;
|
||||
Ra[nPlayer].nFrame = 0;
|
||||
Ra[nPlayer].field_C = 0;
|
||||
Ra[nPlayer].nState = 0;
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
@ -41,7 +41,7 @@ short ChannelLast = -1;
|
|||
int nDamageRadius;
|
||||
int nRadialDamage;
|
||||
short RunChain;
|
||||
short NewRun;
|
||||
int NewRun;
|
||||
|
||||
int sRunStack[kMaxRunStack];
|
||||
RunChannel sRunChannels[kMaxChannels];
|
||||
|
@ -463,11 +463,11 @@ void runlist_InitChan()
|
|||
}
|
||||
}
|
||||
|
||||
void runlist_ChangeChannel(int eax, short nVal)
|
||||
void runlist_ChangeChannel(int eax, int nVal)
|
||||
{
|
||||
if (sRunChannels[eax].b < 0)
|
||||
{
|
||||
short nChannel = ChannelList;
|
||||
int nChannel = ChannelList;
|
||||
ChannelList = eax;
|
||||
sRunChannels[eax].b = nChannel;
|
||||
}
|
||||
|
@ -476,11 +476,11 @@ void runlist_ChangeChannel(int eax, short nVal)
|
|||
sRunChannels[eax].d |= 2;
|
||||
}
|
||||
|
||||
void runlist_ReadyChannel(short eax)
|
||||
void runlist_ReadyChannel(int eax)
|
||||
{
|
||||
if (sRunChannels[eax].b < 0)
|
||||
{
|
||||
short nChannel = ChannelList;
|
||||
int nChannel = ChannelList;
|
||||
ChannelList = eax;
|
||||
sRunChannels[eax].b = nChannel;
|
||||
}
|
||||
|
@ -601,7 +601,7 @@ void runlist_ProcessChannels()
|
|||
#endif
|
||||
}
|
||||
|
||||
int runlist_FindChannel(short ax)
|
||||
int runlist_FindChannel(int ax)
|
||||
{
|
||||
for (int i = 0; i < kMaxChannels; i++)
|
||||
{
|
||||
|
@ -1515,7 +1515,7 @@ void runlist_ProcessSectorTag(int nSector, int nLotag, int nHitag)
|
|||
}
|
||||
}
|
||||
|
||||
void runlist_ProcessWallTag(int nWall, short nLotag, short nHitag)
|
||||
void runlist_ProcessWallTag(int nWall, int nLotag, int nHitag)
|
||||
{
|
||||
int nChannel = runlist_AllocChannel(nHitag % 1000);
|
||||
assert(nChannel >= 0 && nChannel < kMaxChannels);
|
||||
|
@ -1730,7 +1730,7 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor)
|
|||
return edi;
|
||||
}
|
||||
|
||||
void runlist_RadialDamageEnemy(DExhumedActor* pActor, short nDamage, short nRadius)
|
||||
void runlist_RadialDamageEnemy(DExhumedActor* pActor, int nDamage, int nRadius)
|
||||
{
|
||||
if (!nRadius) {
|
||||
return;
|
||||
|
@ -1748,7 +1748,7 @@ void runlist_RadialDamageEnemy(DExhumedActor* pActor, short nDamage, short nRadi
|
|||
}
|
||||
}
|
||||
|
||||
void runlist_DamageEnemy(DExhumedActor* pActor, DExhumedActor* pActor2, short nDamage)
|
||||
void runlist_DamageEnemy(DExhumedActor* pActor, DExhumedActor* pActor2, int nDamage)
|
||||
{
|
||||
auto pSprite = &pActor->s();
|
||||
|
||||
|
|
|
@ -51,19 +51,19 @@ short nPilotLightBase;
|
|||
short nShadowWidth = 1;
|
||||
short nFlameHeight = 1;
|
||||
|
||||
short SeqBase[kMaxSequences];
|
||||
short SeqSize[kMaxSequences];
|
||||
short SeqFlag[kMaxSequences];
|
||||
int16_t SeqBase[kMaxSequences];
|
||||
int16_t SeqSize[kMaxSequences];
|
||||
int16_t SeqFlag[kMaxSequences];
|
||||
|
||||
short FrameSound[kMaxSEQFrames];
|
||||
short FrameSize[kMaxSEQFrames];
|
||||
short FrameBase[kMaxSEQFrames];
|
||||
short FrameFlag[kMaxSEQFrames];
|
||||
int16_t FrameSound[kMaxSEQFrames];
|
||||
int16_t FrameSize[kMaxSEQFrames];
|
||||
int16_t FrameBase[kMaxSEQFrames];
|
||||
int16_t FrameFlag[kMaxSEQFrames];
|
||||
|
||||
short ChunkYpos[kMaxSEQChunks];
|
||||
short ChunkXpos[kMaxSEQChunks];
|
||||
short ChunkPict[kMaxSEQChunks];
|
||||
short ChunkFlag[kMaxSEQChunks];
|
||||
int16_t ChunkYpos[kMaxSEQChunks];
|
||||
int16_t ChunkXpos[kMaxSEQChunks];
|
||||
int16_t ChunkPict[kMaxSEQChunks];
|
||||
int16_t ChunkFlag[kMaxSEQChunks];
|
||||
|
||||
|
||||
const char *SeqNames[kMaxSEQFiles] =
|
||||
|
|
|
@ -110,11 +110,10 @@ struct actionSeq
|
|||
|
||||
extern short frames;
|
||||
|
||||
extern short SeqBase[];
|
||||
extern short SeqSize[];
|
||||
extern short SeqOffsets[];
|
||||
|
||||
extern short FrameFlag[];
|
||||
extern int16_t SeqBase[];
|
||||
extern int16_t SeqSize[];
|
||||
extern int16_t SeqOffsets[];
|
||||
extern int16_t FrameFlag[];
|
||||
|
||||
extern short nShadowWidth;
|
||||
extern short nFlameHeight;
|
||||
|
@ -122,12 +121,12 @@ extern short nFlameHeight;
|
|||
extern short nPilotLightFrame;
|
||||
extern short nPilotLightCount;
|
||||
|
||||
extern short ChunkYpos[];
|
||||
extern short ChunkXpos[];
|
||||
extern short ChunkPict[];
|
||||
extern short ChunkFlag[];
|
||||
extern short FrameSize[];
|
||||
extern short FrameBase[];
|
||||
extern int16_t ChunkYpos[];
|
||||
extern int16_t ChunkXpos[];
|
||||
extern int16_t ChunkPict[];
|
||||
extern int16_t ChunkFlag[];
|
||||
extern int16_t FrameSize[];
|
||||
extern int16_t FrameBase[];
|
||||
|
||||
|
||||
void seq_LoadSequences();
|
||||
|
|
|
@ -31,7 +31,7 @@ BEGIN_PS_NS
|
|||
|
||||
FreeListArray<Snake, kMaxSnakes> SnakeList;
|
||||
|
||||
short nPlayerSnake[kMaxPlayers];
|
||||
int16_t nPlayerSnake[kMaxPlayers];
|
||||
|
||||
FSerializer& Serialize(FSerializer& arc, const char* keyname, Snake& w, Snake* def)
|
||||
{
|
||||
|
@ -40,10 +40,9 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, Snake& w, Snake* d
|
|||
arc("enemy", w.pEnemy)
|
||||
("countdown", w.nCountdown)
|
||||
.Array("sprites", w.pSprites, kSnakeSprites)
|
||||
("sc", w.sC)
|
||||
("run", w.nRun)
|
||||
.Array("c", w.c, countof(w.c))
|
||||
("se", w.sE)
|
||||
("se", w.nAngle)
|
||||
("player", w.nSnakePlayer)
|
||||
.EndObject();
|
||||
}
|
||||
|
@ -63,14 +62,14 @@ void InitSnakes()
|
|||
memset(nPlayerSnake, 0, sizeof(nPlayerSnake));
|
||||
}
|
||||
|
||||
short GrabSnake()
|
||||
int GrabSnake()
|
||||
{
|
||||
return SnakeList.Get();
|
||||
}
|
||||
|
||||
void DestroySnake(int nSnake)
|
||||
{
|
||||
short nRun = SnakeList[nSnake].nRun;
|
||||
int nRun = SnakeList[nSnake].nRun;
|
||||
runlist_SubRunRec(nRun);
|
||||
|
||||
for (int i = 0; i < kSnakeSprites; i++)
|
||||
|
@ -95,7 +94,7 @@ void DestroySnake(int nSnake)
|
|||
void ExplodeSnakeSprite(DExhumedActor* pActor, int nPlayer)
|
||||
{
|
||||
auto pSprite = &pActor->s();
|
||||
short nDamage = BulletInfo[kWeaponStaff].nDamage;
|
||||
int nDamage = BulletInfo[kWeaponStaff].nDamage;
|
||||
|
||||
if (PlayerList[nPlayer].nDouble > 0) {
|
||||
nDamage *= 2;
|
||||
|
@ -116,22 +115,22 @@ void ExplodeSnakeSprite(DExhumedActor* pActor, int nPlayer)
|
|||
StopActorSound(pActor);
|
||||
}
|
||||
|
||||
void BuildSnake(int nPlayer, short zVal)
|
||||
void BuildSnake(int nPlayer, int zVal)
|
||||
{
|
||||
|
||||
zVal -= 1280;
|
||||
|
||||
auto pPlayerActor = PlayerList[nPlayer].Actor();
|
||||
auto pPlayerSprite = &pPlayerActor->s();
|
||||
short nViewSect = PlayerList[nPlayer].nPlayerViewSect;
|
||||
short nPic = seq_GetSeqPicnum(kSeqSnakBody, 0, 0);
|
||||
int nViewSect = PlayerList[nPlayer].nPlayerViewSect;
|
||||
int nPic = seq_GetSeqPicnum(kSeqSnakBody, 0, 0);
|
||||
|
||||
int x = pPlayerSprite->x;
|
||||
int y = pPlayerSprite->y;
|
||||
int z = (pPlayerSprite->z + zVal) - 2560;
|
||||
int nAngle = pPlayerSprite->ang;
|
||||
|
||||
short hitsect;
|
||||
int hitsect;
|
||||
int hitx, hity, hitz;
|
||||
DExhumedActor* hitactor;
|
||||
|
||||
|
@ -183,7 +182,7 @@ void BuildSnake(int nPlayer, short zVal)
|
|||
pTarget = sPlayerInput[nPlayer].pTarget;
|
||||
}
|
||||
|
||||
short nSnake = GrabSnake();
|
||||
int nSnake = GrabSnake();
|
||||
if (nSnake == -1) return;
|
||||
|
||||
// GrabTimeSlot(3);
|
||||
|
@ -248,8 +247,7 @@ void BuildSnake(int nPlayer, short zVal)
|
|||
SnakeList[nSnake].c[7] = 7;
|
||||
SnakeList[nSnake].pEnemy = pTarget;
|
||||
SnakeList[nSnake].nCountdown = 0;
|
||||
SnakeList[nSnake].sC = 1200;
|
||||
SnakeList[nSnake].sE = 0;
|
||||
SnakeList[nSnake].nAngle = 0;
|
||||
SnakeList[nSnake].nSnakePlayer = nPlayer;
|
||||
nPlayerSnake[nPlayer] = nSnake;
|
||||
|
||||
|
@ -264,7 +262,7 @@ void BuildSnake(int nPlayer, short zVal)
|
|||
}
|
||||
}
|
||||
|
||||
DExhumedActor* FindSnakeEnemy(short nSnake)
|
||||
DExhumedActor* FindSnakeEnemy(int nSnake)
|
||||
{
|
||||
int nPlayer = SnakeList[nSnake].nSnakePlayer;
|
||||
auto pPlayerActor = PlayerList[nPlayer].Actor();
|
||||
|
@ -317,7 +315,7 @@ DExhumedActor* FindSnakeEnemy(short nSnake)
|
|||
|
||||
void AISnake::Tick(RunListEvent* ev)
|
||||
{
|
||||
short nSnake = RunData[ev->nRun].nObjIndex;
|
||||
int nSnake = RunData[ev->nRun].nObjIndex;
|
||||
assert(nSnake >= 0 && nSnake < kMaxSnakes);
|
||||
|
||||
auto pActor = SnakeList[nSnake].pSprites[0];
|
||||
|
@ -336,7 +334,7 @@ void AISnake::Tick(RunListEvent* ev)
|
|||
nMov = movesprite(pActor,
|
||||
600 * bcos(pSprite->ang),
|
||||
600 * bsin(pSprite->ang),
|
||||
bsin(SnakeList[nSnake].sE, -5),
|
||||
bsin(SnakeList[nSnake].nAngle, -5),
|
||||
0, 0, CLIPMASK1);
|
||||
|
||||
FindSnakeEnemy(nSnake);
|
||||
|
@ -353,7 +351,7 @@ void AISnake::Tick(RunListEvent* ev)
|
|||
|
||||
zVal = pSprite->z;
|
||||
|
||||
nMov = AngleChase(pActor, pEnemySprite, 1200, SnakeList[nSnake].sE, 32);
|
||||
nMov = AngleChase(pActor, pEnemySprite, 1200, SnakeList[nSnake].nAngle, 32);
|
||||
|
||||
zVal = pSprite->z - zVal;
|
||||
}
|
||||
|
@ -374,9 +372,9 @@ void AISnake::Tick(RunListEvent* ev)
|
|||
int var_30 = -bcos(nAngle, 6);
|
||||
int var_34 = -bsin(nAngle, 6);
|
||||
|
||||
int var_20 = SnakeList[nSnake].sE;
|
||||
int var_20 = SnakeList[nSnake].nAngle;
|
||||
|
||||
SnakeList[nSnake].sE = (SnakeList[nSnake].sE + 64) & 0x7FF;
|
||||
SnakeList[nSnake].nAngle = (SnakeList[nSnake].nAngle + 64) & 0x7FF;
|
||||
|
||||
int var_28 = (nAngle + 512) & kAngleMask;
|
||||
int nSector =pSprite->sectnum;
|
||||
|
|
|
@ -120,7 +120,7 @@ int GetMyAngle(int x, int y)
|
|||
}
|
||||
|
||||
// 100% done
|
||||
int AngleDiff(short a, short b)
|
||||
int AngleDiff(int a, int b)
|
||||
{
|
||||
int diff = (b - a) & kAngleMask;
|
||||
|
||||
|
|
|
@ -189,7 +189,7 @@ static void analyzesprites(spritetype* tsprite, int& spritesortcnt, int x, int y
|
|||
|
||||
void ResetView()
|
||||
{
|
||||
EraseScreen(overscanindex);
|
||||
EraseScreen(0);
|
||||
#ifdef USE_OPENGL
|
||||
videoTintBlood(0, 0, 0);
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue