From 7674b7245be24e47d6213cb4aa4947586f2af94a Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 15 Oct 2023 16:33:12 +0200 Subject: [PATCH] header cleanup --- source/games/blood/src/actor.cpp | 13 +---- source/games/blood/src/ai.cpp | 32 +--------- source/games/blood/src/aiburn.cpp | 10 ++-- source/games/blood/src/loadsave.cpp | 4 +- source/games/blood/src/nnexts.h | 90 ++++++++--------------------- 5 files changed, 35 insertions(+), 114 deletions(-) diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index b5240f24a..04e5f2ac2 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -891,7 +891,6 @@ static void actInitDudes() switch (act->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: act->spr.cstat |= CSTAT_SPRITE_BLOOD_BIT1 | CSTAT_SPRITE_BLOCK_ALL; if (act->xspr.data2 > 0 && getSequence(act->xspr.data2)) seqStartId = act->xspr.data2; // Custom Dude stores it's SEQ in data2 @@ -975,7 +974,7 @@ static void ConcussSprite(DBloodActor* source, DBloodActor* actor, const DVector { mass = getDudeInfo(actor)->mass; #ifdef NOONE_EXTENSIONS - if (actor->GetType() == kDudeModernCustom || actor->GetType() == kDudeModernCustomBurning) + if (actor->GetType() == kDudeModernCustom) { mass = getSpriteMassBySize(actor); } @@ -1311,7 +1310,6 @@ static int checkDamageType(DBloodActor* actor, DAMAGE_TYPE damageType) { #ifdef NOONE_EXTENSIONS case kDudeModernCustom: - case kDudeModernCustomBurning: { playGenDudeSound(actor, kGenDudeSndDeathExplode); GENDUDEEXTRA* pExtra = &actor->genDudeExtra; @@ -1553,10 +1551,6 @@ void actKillDude(DBloodActor* killerActor, DBloodActor* actor, DAMAGE_TYPE damag genDudePostDeath(actor, damageType, damage); return; - case kDudeModernCustomBurning: - modernCustomDudeBurningDeath(actor, nSeq); - genDudePostDeath(actor, kDamageExplode, damage); - return; #endif case kDudeBurningZombieAxe: @@ -2278,7 +2272,6 @@ static void checkCeilHit(DBloodActor* actor) switch (actor->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: mass2 = getSpriteMassBySize(actor); break; } @@ -2302,7 +2295,6 @@ static void checkCeilHit(DBloodActor* actor) break; #ifdef NOONE_EXTENSIONS case kDudeModernCustom: - case kDudeModernCustomBurning: int dmg = 0; if (!actor->IsDudeActor() || (dmg = ClipLow((getSpriteMassBySize(actor2) - getSpriteMassBySize(actor)) >> 1, 0)) == 0) break; @@ -2395,7 +2387,6 @@ static void checkHit(DBloodActor* actor) switch (actor2->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: mass2 = getSpriteMassBySize(actor2); break; } @@ -2467,7 +2458,6 @@ static void checkFloorHit(DBloodActor* actor) switch (actor2->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: mass2 = getSpriteMassBySize(actor2); break; } @@ -4655,7 +4645,6 @@ void actFireVector(DBloodActor* shooter, double offset, double zoffset, DVector3 switch (actor->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: mass = getSpriteMassBySize(actor); break; } diff --git a/source/games/blood/src/ai.cpp b/source/games/blood/src/ai.cpp index d2192eb8d..d0201f541 100644 --- a/source/games/blood/src/ai.cpp +++ b/source/games/blood/src/ai.cpp @@ -222,7 +222,6 @@ bool CanMove(DBloodActor* actor, DBloodActor* target, DAngle nAngle, double nRan break; #ifdef NOONE_EXTENSIONS case kDudeModernCustom: - case kDudeModernCustomBurning: if ((Crusher && !nnExtIsImmune(actor, pXSector->damageType)) || ((Water || Underwater) && !canSwim(actor))) return false; return true; [[fallthrough]]; @@ -437,7 +436,6 @@ void aiActivateDude(DBloodActor* actor) } break; } - case kDudeModernCustomBurning: if (actor->GetTarget() == nullptr) aiGenDudeNewState(actor, &genDudeBurnSearch); else aiGenDudeNewState(actor, &genDudeBurnChase); break; @@ -993,26 +991,6 @@ int aiDamageSprite(DBloodActor* source, DBloodActor* actor, DAMAGE_TYPE nDmgType return nDamage; } - if (actor->GetType() == kDudeModernCustomBurning) - { - if (Chance(0x2000) && actor->dudeExtra.time < PlayClock) { - playGenDudeSound(actor,kGenDudeSndBurning); - actor->dudeExtra.time = PlayClock + 360; - } - - if (actor->xspr.burnTime == 0) actor->xspr.burnTime = 2400; - if (spriteIsUnderwater(actor, false)) - { - actor->ChangeType(kDudeModernCustom); - actor->xspr.burnTime = 0; - actor->xspr.health = 1; // so it can be killed with flame weapons while underwater and if already was burning dude before. - aiGenDudeNewState(actor, &genDudeGotoW); - } - - return nDamage; - - } - if (actor->GetType() == kDudeModernCustom) { GENDUDEEXTRA* pExtra = &actor->genDudeExtra; @@ -1039,7 +1017,7 @@ int aiDamageSprite(DBloodActor* source, DBloodActor* actor, DAMAGE_TYPE nDmgType aiPlay3DSound(actor, 361, AI_SFX_PRIORITY_0, -1); playGenDudeSound(actor,kGenDudeSndBurning); - actor->ChangeType(kDudeModernCustomBurning); + //actor->ChangeType(kDudeModernCustomBurning); if (actor->xspr.data2 == kGenDudeDefaultSeq) // don't inherit palette for burning if using default animation actor->spr.pal = 0; @@ -1317,11 +1295,6 @@ void RecoilDude(DBloodActor* actor) case kDudeBurningCultist: aiNewState(actor, &cultistBurnGoto); break; -#ifdef NOONE_EXTENSIONS - case kDudeModernCustomBurning: - aiGenDudeNewState(actor, &genDudeBurnGoto); - break; -#endif case kDudeZombieButcher: aiPlay3DSound(actor, 1202, AI_SFX_PRIORITY_2, -1); if (pDudeExtra->teslaHit) @@ -1615,7 +1588,7 @@ void aiProcessDudes(void) #ifdef NOONE_EXTENSIONS switch (actor->GetType()) { case kDudeModernCustom: - case kDudeModernCustomBurning: { + { GENDUDEEXTRA* pExtra = &actor->genDudeExtra; if (pExtra->slaveCount > 0) updateTargetOfSlaves(actor); if (pExtra->pLifeLeech != nullptr) updateTargetOfLeech(actor); @@ -1842,7 +1815,6 @@ void aiInitSprite(DBloodActor* actor) break; #ifdef NOONE_EXTENSIONS case kDudeModernCustom: - case kDudeModernCustomBurning: if (!gModernMap) break; aiGenDudeInitSprite(actor); genDudePrepare(actor, kGenDudePropertyAll); diff --git a/source/games/blood/src/aiburn.cpp b/source/games/blood/src/aiburn.cpp index 5bf8bfaa5..5489f6e2d 100644 --- a/source/games/blood/src/aiburn.cpp +++ b/source/games/blood/src/aiburn.cpp @@ -107,7 +107,7 @@ void burnThinkGoto(DBloodActor* actor) case kDudeBurningTinyCaleb: aiNewState(actor, &tinycalebBurnSearch); break; -#ifdef NOONE_EXTENSIONS +#if 0//def NOONE_EXTENSIONS case kDudeModernCustomBurning: aiNewState(actor, &genDudeBurnSearch); break; @@ -141,7 +141,7 @@ void burnThinkChase(DBloodActor* actor) case kDudeBurningTinyCaleb: aiNewState(actor, &tinycalebBurnGoto); break; -#ifdef NOONE_EXTENSIONS +#if 0//def NOONE_EXTENSIONS case kDudeModernCustomBurning: aiNewState(actor, &genDudeBurnGoto); break; @@ -180,7 +180,7 @@ void burnThinkChase(DBloodActor* actor) case kDudeBurningTinyCaleb: aiNewState(actor, &tinycalebBurnSearch); break; -#ifdef NOONE_EXTENSIONS +#if 0//def NOONE_EXTENSIONS case kDudeModernCustomBurning: aiNewState(actor, &genDudeBurnSearch); break; @@ -220,7 +220,7 @@ void burnThinkChase(DBloodActor* actor) case kDudeBurningTinyCaleb: aiNewState(actor, &tinycalebBurnAttack); break; -#ifdef NOONE_EXTENSIONS +#if 0//def NOONE_EXTENSIONS case kDudeModernCustomBurning: aiNewState(actor, &genDudeBurnSearch); break; @@ -252,7 +252,7 @@ void burnThinkChase(DBloodActor* actor) case kDudeBurningTinyCaleb: aiNewState(actor, &tinycalebBurnGoto); break; -#ifdef NOONE_EXTENSIONS +#if 0//def NOONE_EXTENSIONS case kDudeModernCustomBurning: aiNewState(actor, &genDudeBurnSearch); break; diff --git a/source/games/blood/src/loadsave.cpp b/source/games/blood/src/loadsave.cpp index 59692192a..ad15e78e9 100644 --- a/source/games/blood/src/loadsave.cpp +++ b/source/games/blood/src/loadsave.cpp @@ -496,13 +496,13 @@ void DBloodActor::Serialize(FSerializer& arc) #ifdef NOONE_EXTENSIONS if (gModernMap) { - arc//("spritemass", spriteMass) + arc//("spritemass", spriteMass) // should always be cached and not written out. ("prevmarker", prevmarker) .Array("conditions", condition, 2); // GenDudeExtra only contains valid info for kDudeModernCustom and kDudeModernCustomBurning so only save when needed as these are not small. - if (GetType() == kDudeModernCustom || GetType() == kDudeModernCustomBurning) + if (GetType() == kDudeModernCustom) { arc("gendudeextra", genDudeExtra); } diff --git a/source/games/blood/src/nnexts.h b/source/games/blood/src/nnexts.h index 72203f155..3ec4b79af 100644 --- a/source/games/blood/src/nnexts.h +++ b/source/games/blood/src/nnexts.h @@ -45,8 +45,6 @@ enum // CONSTANTS // additional non-thing proximity, sight and physics sprites kMaxSuperXSprites = 512, - kMaxTrackingConditions = 64, - kMaxTracedObjects = 32, // per one tracking condition // additional physics attributes for debris sprites kPhysDebrisFloat = 0x0008, // *debris* slowly goes up and down from it's position @@ -67,6 +65,7 @@ enum kModernTypeFlag32 = 0x0020, kModernTypeFlag64 = 0x0040, kModernTypeFlag128 = 0x0080, + kModernTypeFlag256 = 0x0100, kMaxRandomizeRetries = 16, kCondRange = 100, @@ -143,7 +142,6 @@ enum { kModernRandom2 = 80, kItemModernMapLevel = 150, // once picked up, draws whole minimap kDudeModernCustom = kDudeVanillaMax, - kDudeModernCustomBurning = 255, kModernThingTNTProx = 433, // detects only players kModernThingThrowableRock = 434, // does small damage if hits target kModernThingEnemyLifeLeech = 435, // the same as normal, except it aims in specified target only @@ -170,30 +168,6 @@ enum { OBJ_SECTOR = 6, }; -enum { - kCondGameBase = 1, - kCondGameMax = 50, - kCondMixedBase = 100, - kCondMixedMax = 200, - kCondWallBase = 200, - kCondWallMax = 300, - kCondSectorBase = 300, - kCondSectorMax = 400, - kCondPlayerBase = 400, - kCondPlayerMax = 450, - kCondDudeBase = 450, - kCondDudeMax = 500, - kCondSpriteBase = 500, - kCondSpriteMax = 600, -}; - -enum { - kCondSerialSector = 100000, - kCondSerialWall = 200000, - kCondSerialSprite = 300000, - kCondSerialMax = 400000, -}; - enum { kPatrolMoveForward = 0, kPatrolMoveBackward = 1, @@ -201,13 +175,6 @@ enum { // - STRUCTS ------------------------------------------------------------------ -struct EXTERNAL_FILES_LIST -{ - const char* name; - const char* ext; -}; - - struct SPRITEMASS { // sprite mass info for getSpriteMassBySize(); int seqId; FTextureID texid; // mainly needs for moving debris @@ -218,16 +185,6 @@ struct SPRITEMASS { // sprite mass info for getSpriteMassBySize(); int fraction; // mainly needs for moving debris }; -struct QAVSCENE { // this one stores qavs anims that can be played by trigger - DBloodActor* initiator = nullptr; // index of sprite which triggered qav scene - QAV* qavResrc = nullptr; - short dummy = -1; -}; - -struct THINGINFO_EXTRA { - bool allowThrow; // indicates if kDudeModernCustom can throw it -}; - struct EXPLOSION_EXTRA { uint8_t seq; @@ -235,6 +192,11 @@ struct EXPLOSION_EXTRA bool ground; }; +struct THINGINFO_EXTRA { + bool allowThrow; // indicates if kDudeModernCustom can throw it +}; + + struct VECTORINFO_EXTRA { int fireSound[2]; // predefined fire sounds. used by kDudeModernCustom, but can be used for something else. }; @@ -257,10 +219,6 @@ struct DUDEINFO_EXTRA { }; -struct TRPLAYERCTRL { // this one for controlling the player using triggers (movement speed, jumps and other stuff) - QAVSCENE qavScene; -}; - struct PATROL_FOUND_SOUNDS { FSoundID snd; @@ -269,16 +227,22 @@ struct PATROL_FOUND_SOUNDS { }; -struct CONDITION_TYPE_NAMES { - - int rng1; - int rng2; - char name[32]; - +struct QAVSCENE { // this one stores qavs anims that can be played by trigger + DBloodActor* initiator = nullptr; // index of sprite which triggered qav scene + QAV* qavResrc = nullptr; + short dummy = -1; +}; +struct TRPLAYERCTRL { // this one for controlling the player using triggers (movement speed, jumps and other stuff) + QAVSCENE qavScene; }; -// - VARIABLES ------------------------------------------------------------------ +inline bool rngok(int val, int rngA, int rngB) { return (val >= rngA && val < rngB); } +inline bool irngok(int val, int rngA, int rngB) { return (val >= rngA && val <= rngB); } extern uint8_t gModernMap; +inline bool mapRev1() { return (gModernMap == 1); } +inline bool mapRev2() { return (gModernMap == 2); } + +// - VARIABLES ------------------------------------------------------------------ extern bool gTeamsSpawnUsed; extern bool gEventRedirectsUsed; extern ZONE gStartZoneTeam1[kMaxPlayers]; @@ -286,24 +250,28 @@ extern ZONE gStartZoneTeam2[kMaxPlayers]; extern const THINGINFO_EXTRA gThingInfoExtra[kThingMax]; extern const VECTORINFO_EXTRA gVectorInfoExtra[kVectorMax]; extern const MISSILEINFO_EXTRA gMissileInfoExtra[kMissileMax]; +extern const EXPLOSION_EXTRA gExplodeExtra[kExplosionMax]; extern const DUDEINFO_EXTRA gDudeInfoExtra[kDudeMax]; extern TRPLAYERCTRL gPlayerCtrl[kMaxPlayers]; +extern AISTATE genPatrolStates[kPatrolStateSize]; + inline TArray> gProxySpritesList; inline TArray> gSightSpritesList; inline TArray> gPhysSpritesList; inline TArray> gFlwSpritesList; inline TArray> gImpactSpritesList; -extern AISTATE genPatrolStates[kPatrolStateSize]; - // - FUNCTIONS ------------------------------------------------------------------ +bool xsprIsFine(DBloodActor* pSpr); bool nnExtEraseModernStuff(DBloodActor* actor); void nnExtInitModernStuff(TArray& actors); void nnExtProcessSuperSprites(void); bool nnExtIsImmune(DBloodActor* pSprite, int dmgType, int minScale = 16); int nnExtRandom(int a, int b); void nnExtResetGlobals(); +void nnExtTriggerObject(EventObject& eob, int command, DBloodActor* initiator); // ------------------------------------------------------------------------- // +DBloodActor* randomSpawnDude(DBloodActor* sourceactor, DBloodActor* origin, double dist, double zadd); void sfxPlayMissileSound(DBloodActor* pSprite, int missileId); void sfxPlayVectorSound(DBloodActor* pSprite, int vectorId); // ------------------------------------------------------------------------- // @@ -419,7 +387,6 @@ int getSpritesNearWalls(int nSrcSect, int* spriOut, int nMax, int nDist); bool isMovableSector(int nType); bool isMovableSector(sectortype* pSect); void killEffectGenCallbacks(DBloodActor* actor); -bool xsprIsFine(DBloodActor* pSpr); bool isOnRespawn(DBloodActor* pSpr); void nnExtOffsetPos(const DVector3& opos, DAngle nAng, DVector3& pos); void actPropagateSpriteOwner(DBloodActor* pShot, DBloodActor* pSpr); @@ -439,19 +406,12 @@ void useDripGenerator(DBloodActor* pXSource, DBloodActor* pSprite); int nnExtGetStartHealth(DBloodActor* actor); int nnExtResAddExternalFiles(); -inline bool mapRev1() { return (gModernMap == 1); } -inline bool mapRev2() { return (gModernMap == 2); } - inline bool valueIsBetween(int val, int min, int max) { return (val > min && val < max); } -inline bool rngok(int val, int min, int max) -{ - return (val > min && val < max); -} inline int EVTIME2TICKS(int x) { return ((x * 120) / 10); }