diff --git a/Source/missiles.cpp b/Source/missiles.cpp index dfafd1b64..2a1816348 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -209,7 +209,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t } if (monster.MType->mtype == MT_ILLWEAV && monster._mgoal == MGOAL_RETREAT) return false; - if (monster._mmode == MonsterMode::MM_CHARGE) + if (monster._mmode == MonsterMode::Charge) return false; uint8_t mor = monster.mMagicRes; @@ -246,7 +246,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t hper = clamp(hper, 5, 95); - if (monster._mmode == MonsterMode::MM_STONE) + if (monster._mmode == MonsterMode::Petrified) hit = 0; bool ret = false; @@ -289,7 +289,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t monster._mFlags |= MFLAG_NOHEAL; if (monster._mhitpoints >> 6 <= 0) { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { M_StartKill(m, pnum); monster.Petrify(); } else { @@ -298,7 +298,7 @@ bool MonsterMHit(int pnum, int m, int mindam, int maxdam, int dist, missile_id t } else { if (resist) { PlayEffect(monster, 1); - } else if (monster._mmode == MonsterMode::MM_STONE) { + } else if (monster._mmode == MonsterMode::Petrified) { if (m > MAX_PLRS - 1) M_StartHit(m, pnum, dam); monster.Petrify(); @@ -446,7 +446,7 @@ void CheckMissileCol(MissileStruct &missile, int mindam, int maxdam, bool shift, } } else if (mid < 0) { mid = -(mid + 1); - if (Monsters[mid]._mmode == MonsterMode::MM_STONE + if (Monsters[mid]._mmode == MonsterMode::Petrified && MonsterMHit( missile._misource, mid, @@ -975,7 +975,7 @@ bool MonsterTrapHit(int m, int mindam, int maxdam, int dist, missile_id t, bool } if (monster.MType->mtype == MT_ILLWEAV && monster._mgoal == MGOAL_RETREAT) return false; - if (monster._mmode == MonsterMode::MM_CHARGE) + if (monster._mmode == MonsterMode::Charge) return false; missile_resistance mir = MissileData[t].mResist; @@ -999,7 +999,7 @@ bool MonsterTrapHit(int m, int mindam, int maxdam, int dist, missile_id t, bool if (CheckMonsterHit(monster, &ret)) { return ret; } - if (hit >= hper && monster._mmode != MonsterMode::MM_STONE) { + if (hit >= hper && monster._mmode != MonsterMode::Petrified) { #ifdef _DEBUG if (!DebugGodMode) #endif @@ -1018,7 +1018,7 @@ bool MonsterTrapHit(int m, int mindam, int maxdam, int dist, missile_id t, bool monster._mhitpoints = 0; #endif if (monster._mhitpoints >> 6 <= 0) { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { M_StartKill(m, -1); monster.Petrify(); } else { @@ -1027,7 +1027,7 @@ bool MonsterTrapHit(int m, int mindam, int maxdam, int dist, missile_id t, bool } else { if (resist) { PlayEffect(monster, 1); - } else if (monster._mmode == MonsterMode::MM_STONE) { + } else if (monster._mmode == MonsterMode::Petrified) { if (m > MAX_PLRS - 1) M_StartHit(m, -1, dam); monster.Petrify(); @@ -1342,13 +1342,13 @@ void AddBerserk(MissileStruct &missile, Point dst, Direction /*midir*/) if (monster._uniqtype != 0 || monster._mAi == AI_DIABLO) continue; - if (monster._mmode == MonsterMode::MM_FADEIN || monster._mmode == MonsterMode::MM_FADEOUT) + if (monster._mmode == MonsterMode::FadeIn || monster._mmode == MonsterMode::FadeOut) continue; if ((monster.mMagicRes & IMMUNE_MAGIC) != 0) continue; if ((monster.mMagicRes & RESIST_MAGIC) != 0 && ((monster.mMagicRes & RESIST_MAGIC) != 1 || GenerateRnd(2) != 0)) continue; - if (monster._mmode == MonsterMode::MM_CHARGE) + if (monster._mmode == MonsterMode::Charge) continue; i = 6; @@ -2365,7 +2365,7 @@ void AddStone(MissileStruct &missile, Point dst, Direction /*midir*/) if (IsAnyOf(monster.MType->mtype, MT_GOLEM, MT_DIABLO, MT_NAKRUL)) continue; - if (IsAnyOf(monster._mmode, MonsterMode::MM_FADEIN, MonsterMode::MM_FADEOUT, MonsterMode::MM_CHARGE)) + if (IsAnyOf(monster._mmode, MonsterMode::FadeIn, MonsterMode::FadeOut, MonsterMode::Charge)) continue; found = true; @@ -3777,7 +3777,7 @@ void MI_Stone(MissileStruct &missile) SetMissAnim(missile, MFILE_SHATTER1); missile._mirange = 11; } - if (monster._mmode != MonsterMode::MM_STONE) { + if (monster._mmode != MonsterMode::Petrified) { missile._miDelFlag = true; return; } @@ -3811,7 +3811,7 @@ void MI_Rhino(MissileStruct &missile) { int monst = missile._misource; auto &monster = Monsters[monst]; - if (monster._mmode != MonsterMode::MM_CHARGE) { + if (monster._mmode != MonsterMode::Charge) { missile._miDelFlag = true; return; } diff --git a/Source/monster.cpp b/Source/monster.cpp index e97ccdac9..d5b924796 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -169,7 +169,7 @@ void InitMonster(MonsterStruct &monster, Direction rd, int mtype, Point position monster.position.future = position; monster.position.old = position; monster._mMTidx = mtype; - monster._mmode = MonsterMode::MM_STAND; + monster._mmode = MonsterMode::Stand; monster.mName = _(monsterType.MData->mName); monster.MType = &monsterType; monster.MData = monsterType.MData; @@ -223,7 +223,7 @@ void InitMonster(MonsterStruct &monster, Direction rd, int mtype, Point position monster.AnimInfo.pCelSprite = &*monsterType.GetAnimData(MonsterGraphic::Special).CelSpritesForDirections[rd]; monster.AnimInfo.CurrentFrame = 1; monster._mFlags |= MFLAG_ALLOW_SPECIAL; - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; } if (sgGameInitInfo.nDifficulty == DIFF_NIGHTMARE) { @@ -364,7 +364,7 @@ void PlaceGroup(int mtype, int num, UniqueMonsterPack uniqueMonsterPack, int lea minion.AnimInfo.pCelSprite = &*minion.MType->GetAnimData(MonsterGraphic::Stand).CelSpritesForDirections[minion._mdir]; minion.AnimInfo.CurrentFrame = GenerateRnd(minion.AnimInfo.NumberOfFrames - 1) + 1; minion._mFlags &= ~MFLAG_ALLOW_SPECIAL; - minion._mmode = MonsterMode::MM_STAND; + minion._mmode = MonsterMode::Stand; } } ActiveMonsterCount++; @@ -599,7 +599,7 @@ void PlaceUniqueMonst(int uniqindex, int miniontype, int bosspacksize) monster.AnimInfo.pCelSprite = &*monster.MType->GetAnimData(MonsterGraphic::Stand).CelSpritesForDirections[monster._mdir]; monster.AnimInfo.CurrentFrame = GenerateRnd(monster.AnimInfo.NumberOfFrames - 1) + 1; monster._mFlags &= ~MFLAG_ALLOW_SPECIAL; - monster._mmode = MonsterMode::MM_STAND; + monster._mmode = MonsterMode::Stand; } } @@ -642,7 +642,7 @@ void ClrAllMonsters() ClearMVars(monster); monster.mName = "Invalid Monster"; monster._mgoal = MGOAL_NONE; - monster._mmode = MonsterMode::MM_STAND; + monster._mmode = MonsterMode::Stand; monster._mVar1 = 0; monster._mVar2 = 0; monster.position.tile = { 0, 0 }; @@ -811,7 +811,7 @@ void StartMonsterGotHit(int monsterId) auto animationFlags = gGameLogicStep < GameLogicStep::ProcessMonsters ? AnimationDistributionFlags::ProcessAnimationPending : AnimationDistributionFlags::None; int numSkippedFrames = (gbIsHellfire && monster.MType->mtype == MT_DIABLO) ? 4 : 0; NewMonsterAnim(monster, MonsterGraphic::GotHit, monster._mdir, animationFlags, numSkippedFrames); - monster._mmode = MonsterMode::MM_GOTHIT; + monster._mmode = MonsterMode::HitRecovery; } monster.position.offset = { 0, 0 }; monster.position.tile = monster.position.old; @@ -910,7 +910,7 @@ void AiDelay(MonsterStruct &monster, int len) } monster._mVar2 = len; - monster._mmode = MonsterMode::MM_DELAY; + monster._mmode = MonsterMode::Delay; } /** @@ -924,7 +924,7 @@ Direction GetMonsterDirection(MonsterStruct &monster) void StartSpecialStand(MonsterStruct &monster, Direction md) { NewMonsterAnim(monster, MonsterGraphic::Special, md); - monster._mmode = MonsterMode::MM_SPSTAND; + monster._mmode = MonsterMode::SpecialStand; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -938,7 +938,7 @@ void StartWalk(int i, int xvel, int yvel, int xadd, int yadd, Direction endDir) int fy = yadd + monster.position.tile.y; dMonster[fx][fy] = -(i + 1); - monster._mmode = MonsterMode::MM_WALK; + monster._mmode = MonsterMode::MoveNorthwards; monster.position.old = monster.position.tile; monster.position.future = { fx, fy }; monster.position.velocity = { xvel, yvel }; @@ -966,7 +966,7 @@ void StartWalk2(int i, int xvel, int yvel, int xoff, int yoff, int xadd, int yad if (monster.mlid != NO_LIGHT) ChangeLightXY(monster.mlid, monster.position.tile); monster.position.offset = { xoff, yoff }; - monster._mmode = MonsterMode::MM_WALK2; + monster._mmode = MonsterMode::MoveSouthwards; monster.position.velocity = { xvel, yvel }; monster._mVar3 = endDir; NewMonsterAnim(monster, MonsterGraphic::Walk, endDir, AnimationDistributionFlags::ProcessAnimationPending, -1); @@ -992,7 +992,7 @@ void StartWalk3(int i, int xvel, int yvel, int xoff, int yoff, int xadd, int yad monster.position.old = monster.position.tile; monster.position.future = { fx, fy }; monster.position.offset = { xoff, yoff }; - monster._mmode = MonsterMode::MM_WALK3; + monster._mmode = MonsterMode::MoveSideways; monster.position.velocity = { xvel, yvel }; monster._mVar1 = fx; monster._mVar2 = fy; @@ -1005,7 +1005,7 @@ void StartAttack(MonsterStruct &monster) { Direction md = GetMonsterDirection(monster); NewMonsterAnim(monster, MonsterGraphic::Attack, md, AnimationDistributionFlags::ProcessAnimationPending); - monster._mmode = MonsterMode::MM_ATTACK; + monster._mmode = MonsterMode::MeleeAttack; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -1015,7 +1015,7 @@ void StartRangedAttack(MonsterStruct &monster, missile_id missileType, int dam) { Direction md = GetMonsterDirection(monster); NewMonsterAnim(monster, MonsterGraphic::Attack, md, AnimationDistributionFlags::ProcessAnimationPending); - monster._mmode = MonsterMode::MM_RATTACK; + monster._mmode = MonsterMode::RangedAttack; monster._mVar1 = missileType; monster._mVar2 = dam; monster.position.offset = { 0, 0 }; @@ -1030,7 +1030,7 @@ void StartRangedSpecialAttack(MonsterStruct &monster, missile_id missileType, in if (monster._mAi == AI_MEGA) distributeFramesBeforeFrame = monster.MData->mAFNum2; NewMonsterAnim(monster, MonsterGraphic::Special, md, AnimationDistributionFlags::ProcessAnimationPending, 0, distributeFramesBeforeFrame); - monster._mmode = MonsterMode::MM_RSPATTACK; + monster._mmode = MonsterMode::SpecialRangedAttack; monster._mVar1 = missileType; monster._mVar2 = 0; monster._mVar3 = dam; @@ -1043,7 +1043,7 @@ void StartSpecialAttack(MonsterStruct &monster) { Direction md = GetMonsterDirection(monster); NewMonsterAnim(monster, MonsterGraphic::Special, md); - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -1052,7 +1052,7 @@ void StartSpecialAttack(MonsterStruct &monster) void StartEating(MonsterStruct &monster) { NewMonsterAnim(monster, MonsterGraphic::Special, monster._mdir); - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -1074,7 +1074,7 @@ void DiabloDeath(MonsterStruct &diablo, bool sendmsg) continue; NewMonsterAnim(monster, MonsterGraphic::Death, monster._mdir); - monster._mmode = MonsterMode::MM_DEATH; + monster._mmode = MonsterMode::Death; monster.position.offset = { 0, 0 }; monster._mVar1 = 0; monster.position.tile = monster.position.old; @@ -1131,7 +1131,7 @@ void Teleport(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode == MonsterMode::MM_STONE) + if (monster._mmode == MonsterMode::Petrified) return; int mx = monster.enemyPosition.x; @@ -1195,7 +1195,7 @@ void MonsterHitMonster(int mid, int i, int dam) monster._mgoalvar2 = 0; } - if (monster._mmode != MonsterMode::MM_STONE) { + if (monster._mmode != MonsterMode::Petrified) { StartMonsterGotHit(mid); } } @@ -1222,7 +1222,7 @@ void StartMonsterDeath(int i, int pnum, bool sendmsg) Direction md = pnum >= 0 ? GetMonsterDirection(monster) : monster._mdir; NewMonsterAnim(monster, MonsterGraphic::Death, md, gGameLogicStep < GameLogicStep::ProcessMonsters ? AnimationDistributionFlags::ProcessAnimationPending : AnimationDistributionFlags::None); - monster._mmode = MonsterMode::MM_DEATH; + monster._mmode = MonsterMode::Death; monster._mgoal = MGOAL_NONE; monster.position.offset = { 0, 0 }; monster._mVar1 = 0; @@ -1269,7 +1269,7 @@ void StartDeathFromMonster(int i, int mid) md = DIR_S; NewMonsterAnim(monster, MonsterGraphic::Death, md, gGameLogicStep < GameLogicStep::ProcessMonsters ? AnimationDistributionFlags::ProcessAnimationPending : AnimationDistributionFlags::None); - monster._mmode = MonsterMode::MM_DEATH; + monster._mmode = MonsterMode::Death; monster.position.offset = { 0, 0 }; monster.position.tile = monster.position.old; monster.position.future = monster.position.old; @@ -1287,7 +1287,7 @@ void StartDeathFromMonster(int i, int mid) void StartFadein(MonsterStruct &monster, Direction md, bool backwards) { NewMonsterAnim(monster, MonsterGraphic::Special, md); - monster._mmode = MonsterMode::MM_FADEIN; + monster._mmode = MonsterMode::FadeIn; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -1301,7 +1301,7 @@ void StartFadein(MonsterStruct &monster, Direction md, bool backwards) void StartFadeout(MonsterStruct &monster, Direction md, bool backwards) { NewMonsterAnim(monster, MonsterGraphic::Special, md); - monster._mmode = MonsterMode::MM_FADEOUT; + monster._mmode = MonsterMode::FadeOut; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -1316,7 +1316,7 @@ void StartHeal(MonsterStruct &monster) monster.AnimInfo.pCelSprite = &*monster.MType->GetAnimData(MonsterGraphic::Special).CelSpritesForDirections[monster._mdir]; monster.AnimInfo.CurrentFrame = monster.MType->GetAnimData(MonsterGraphic::Special).Frames; monster._mFlags |= MFLAG_LOCK_ANIMATION; - monster._mmode = MonsterMode::MM_HEAL; + monster._mmode = MonsterMode::Heal; monster._mVar1 = monster._mmaxhp / (16 * (GenerateRnd(5) + 4)); } @@ -1357,16 +1357,16 @@ bool MonsterWalk(int i, MonsterMode variant) bool isAnimationEnd = monster.AnimInfo.CurrentFrame == monster.AnimInfo.NumberOfFrames; if (isAnimationEnd) { switch (variant) { - case MonsterMode::MM_WALK: + case MonsterMode::MoveNorthwards: dMonster[monster.position.tile.x][monster.position.tile.y] = 0; monster.position.tile.x += monster._mVar1; monster.position.tile.y += monster._mVar2; dMonster[monster.position.tile.x][monster.position.tile.y] = i + 1; break; - case MonsterMode::MM_WALK2: + case MonsterMode::MoveSouthwards: dMonster[monster._mVar1][monster._mVar2] = 0; break; - case MonsterMode::MM_WALK3: + case MonsterMode::MoveSideways: dMonster[monster.position.tile.x][monster.position.tile.y] = 0; monster.position.tile = { monster._mVar1, monster._mVar2 }; dFlags[monster.position.temp.x][monster.position.temp.y] &= ~BFLAG_MONSTLR; @@ -1400,21 +1400,21 @@ void MonsterAttackMonster(int i, int mid, int hper, int mind, int maxd) if (monster._mhitpoints >> 6 > 0 && (monster.MType->mtype != MT_ILLWEAV || monster._mgoal != MGOAL_RETREAT)) { int hit = GenerateRnd(100); - if (monster._mmode == MonsterMode::MM_STONE) + if (monster._mmode == MonsterMode::Petrified) hit = 0; bool unused; if (!CheckMonsterHit(monster, &unused) && hit < hper) { int dam = (mind + GenerateRnd(maxd - mind + 1)) << 6; monster._mhitpoints -= dam; if (monster._mhitpoints >> 6 <= 0) { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { StartDeathFromMonster(i, mid); monster.Petrify(); } else { StartDeathFromMonster(i, mid); } } else { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { MonsterHitMonster(mid, i, dam); monster.Petrify(); } else { @@ -1707,7 +1707,7 @@ bool MonsterHeal(MonsterStruct &monster) { if ((monster._mFlags & MFLAG_NOHEAL) != 0) { monster._mFlags &= ~MFLAG_ALLOW_SPECIAL; - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; return false; } @@ -1719,7 +1719,7 @@ bool MonsterHeal(MonsterStruct &monster) } else { monster._mhitpoints = monster._mmaxhp; monster._mFlags &= ~MFLAG_ALLOW_SPECIAL; - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; } } return false; @@ -1938,7 +1938,7 @@ void GroupUnity(MonsterStruct &monster) } if (leader._mAi == AI_GARG && (leader._mFlags & MFLAG_ALLOW_SPECIAL) != 0) { leader._mFlags &= ~MFLAG_ALLOW_SPECIAL; - leader._mmode = MonsterMode::MM_SATTACK; + leader._mmode = MonsterMode::SpecialMeleeAttack; } } } @@ -2105,7 +2105,7 @@ bool AiPlanPath(int i) if (monster.MType->mtype != MT_GOLEM) { if (monster._msquelch == 0) return false; - if (monster._mmode != MonsterMode::MM_STAND) + if (monster._mmode != MonsterMode::Stand) return false; if (monster._mgoal != MGOAL_NORMAL && monster._mgoal != MGOAL_MOVE && monster._mgoal != MGOAL_ATTACK2) return false; @@ -2138,7 +2138,7 @@ void AiAvoidance(int i, bool special) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2170,7 +2170,7 @@ void AiAvoidance(int i, bool special) if (monster._mgoal == MGOAL_NORMAL) { if (abs(mx) >= 2 || abs(my) >= 2) { if ((monster._mVar2 > 20 && v < 2 * monster._mint + 28) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 2 * monster._mint + 78)) { RandomWalk(i, md); @@ -2192,7 +2192,7 @@ void AiRanged(int i, missile_id missileType, bool special) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -2205,13 +2205,13 @@ void AiRanged(int i, missile_id missileType, bool special) if (monster._msquelch < UINT8_MAX) MonstCheckDoors(monster); monster._mdir = md; - if (static_cast(monster._mVar1) == MonsterMode::MM_RATTACK) { + if (static_cast(monster._mVar1) == MonsterMode::RangedAttack) { AiDelay(monster, GenerateRnd(20)); } else if (abs(mx) < 4 && abs(my) < 4) { if (GenerateRnd(100) < 10 * (monster._mint + 7)) RandomWalk(i, opposite[md]); } - if (monster._mmode == MonsterMode::MM_STAND) { + if (monster._mmode == MonsterMode::Stand) { if (LineClearMissile(monster.position.tile, { fx, fy })) { if (special) StartRangedSpecialAttack(monster, missileType, 4); @@ -2237,7 +2237,7 @@ void AiRangedAvoidance(int i, missile_id missileType, bool checkdoors, int dam, assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2277,7 +2277,7 @@ void AiRangedAvoidance(int i, missile_id missileType, bool checkdoors, int dam, } else if (dist >= 2) { v = GenerateRnd(100); if (v < 1000 * (monster._mint + 5) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) && monster._mVar2 == 0 && v < 1000 * (monster._mint + 8))) { + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 1000 * (monster._mint + 8))) { RandomWalk(i, md); } } else if (v < 1000 * (monster._mint + 6)) { @@ -2285,7 +2285,7 @@ void AiRangedAvoidance(int i, missile_id missileType, bool checkdoors, int dam, StartAttack(monster); } } - if (monster._mmode == MonsterMode::MM_STAND) { + if (monster._mmode == MonsterMode::Stand) { AiDelay(monster, GenerateRnd(10) + 5); } } @@ -2295,7 +2295,7 @@ void ZombieAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -2330,7 +2330,7 @@ void OverlordAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2341,7 +2341,7 @@ void OverlordAi(int i) int v = GenerateRnd(100); if (abs(mx) >= 2 || abs(my) >= 2) { if ((monster._mVar2 > 20 && v < 4 * monster._mint + 20) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 4 * monster._mint + 70)) { RandomWalk(i, md); @@ -2360,7 +2360,7 @@ void SkeletonAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2369,13 +2369,13 @@ void SkeletonAi(int i) Direction md = GetDirection(monster.position.tile, monster.position.last); monster._mdir = md; if (abs(x) >= 2 || abs(y) >= 2) { - if (static_cast(monster._mVar1) == MonsterMode::MM_DELAY || (GenerateRnd(100) >= 35 - 4 * monster._mint)) { + if (static_cast(monster._mVar1) == MonsterMode::Delay || (GenerateRnd(100) >= 35 - 4 * monster._mint)) { RandomWalk(i, md); } else { AiDelay(monster, 15 - 2 * monster._mint + GenerateRnd(10)); } } else { - if (static_cast(monster._mVar1) == MonsterMode::MM_DELAY || (GenerateRnd(100) < 2 * monster._mint + 20)) { + if (static_cast(monster._mVar1) == MonsterMode::Delay || (GenerateRnd(100) < 2 * monster._mint + 20)) { StartAttack(monster); } else { AiDelay(monster, 2 * (5 - monster._mint) + GenerateRnd(10)); @@ -2390,7 +2390,7 @@ void SkeletonBowAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2405,7 +2405,7 @@ void SkeletonBowAi(int i) if (abs(mx) < 4 && abs(my) < 4) { if ((monster._mVar2 > 20 && v < 2 * monster._mint + 13) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 2 * monster._mint + 63)) { walking = DumbWalk(i, opposite[md]); @@ -2427,7 +2427,7 @@ void ScavengerAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) + if (monster._mmode != MonsterMode::Stand) return; if (monster._mhitpoints < (monster._mmaxhp / 2) && monster._mgoal != MGOAL_HEALING) { if (monster.leaderRelation != LeaderRelation::None) { @@ -2509,7 +2509,7 @@ void ScavengerAi(int i) } } - if (monster._mmode == MonsterMode::MM_STAND) + if (monster._mmode == MonsterMode::Stand) SkeletonAi(i); } @@ -2518,7 +2518,7 @@ void RhinoAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2555,13 +2555,13 @@ void RhinoAi(int i) if (monster.MData->snd_special) PlayEffect(monster, 3); dMonster[monster.position.tile.x][monster.position.tile.y] = -(i + 1); - monster._mmode = MonsterMode::MM_CHARGE; + monster._mmode = MonsterMode::Charge; } } else { if (dist >= 2) { v = GenerateRnd(100); if (v >= 2 * monster._mint + 33 - && (IsNoneOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + && (IsNoneOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) || monster._mVar2 != 0 || v >= 2 * monster._mint + 83)) { AiDelay(monster, GenerateRnd(10) + 10); @@ -2599,7 +2599,7 @@ void FallenAi(int i) else monster._mgoal = MGOAL_NORMAL; } - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2663,7 +2663,7 @@ void LeoricAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2705,7 +2705,7 @@ void LeoricAi(int i) if (dist >= 2) { v = GenerateRnd(100); if (v >= monster._mint + 25 - && (IsNoneOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) || monster._mVar2 != 0 || (v >= monster._mint + 75))) { + && (IsNoneOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) || monster._mVar2 != 0 || (v >= monster._mint + 75))) { AiDelay(monster, GenerateRnd(10) + 10); } else { RandomWalk(i, md); @@ -2725,7 +2725,7 @@ void BatAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2756,11 +2756,11 @@ void BatAi(int i) && LineClear([&monster](Point position) { return IsTileAvailable(monster, position); }, monster.position.tile, { fx, fy })) { if (AddMissile(monster.position.tile, { fx, fy }, md, MIS_RHINO, TARGET_PLAYERS, i, 0, 0) != -1) { dMonster[monster.position.tile.x][monster.position.tile.y] = -(i + 1); - monster._mmode = MonsterMode::MM_CHARGE; + monster._mmode = MonsterMode::Charge; } } else if (abs(xd) >= 2 || abs(yd) >= 2) { if ((monster._mVar2 > 20 && v < monster._mint + 13) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < monster._mint + 63)) { RandomWalk(i, md); @@ -2795,7 +2795,7 @@ void GargoyleAi(int i) return; } - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2818,7 +2818,7 @@ void ButcherAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -2848,7 +2848,7 @@ void SneakAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } int mx = monster.position.tile.x; @@ -2860,7 +2860,7 @@ void SneakAi(int i) my -= monster.enemyPosition.y; int dist = 5 - monster._mint; - if (static_cast(monster._mVar1) == MonsterMode::MM_GOTHIT) { + if (static_cast(monster._mVar1) == MonsterMode::HitRecovery) { monster._mgoal = MGOAL_RETREAT; monster._mgoalvar1 = 0; } else if (abs(mx) >= dist + 3 || abs(my) >= dist + 3 || monster._mgoalvar1 > 8) { @@ -2890,13 +2890,13 @@ void SneakAi(int i) StartFadeout(monster, md, true); } else { if (monster._mgoal == MGOAL_RETREAT - || ((abs(mx) >= 2 || abs(my) >= 2) && ((monster._mVar2 > 20 && v < 4 * monster._mint + 14) || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) && monster._mVar2 == 0 && v < 4 * monster._mint + 64)))) { + || ((abs(mx) >= 2 || abs(my) >= 2) && ((monster._mVar2 > 20 && v < 4 * monster._mint + 14) || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 4 * monster._mint + 64)))) { monster._mgoalvar1++; RandomWalk(i, md); } } } - if (monster._mmode == MonsterMode::MM_STAND) { + if (monster._mmode == MonsterMode::Stand) { if (abs(mx) >= 2 || abs(my) >= 2 || v >= 4 * monster._mint + 10) monster.AnimInfo.pCelSprite = &*monster.MType->GetAnimData(MonsterGraphic::Stand).CelSpritesForDirections[md]; else @@ -2914,7 +2914,7 @@ void GharbadAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -2973,7 +2973,7 @@ void SnotSpilAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -3017,7 +3017,7 @@ void SnakeAi(int i) auto &monster = Monsters[i]; char pattern[6] = { 1, 1, 0, -1, -1, 0 }; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) return; int fx = monster.enemyPosition.x; int fy = monster.enemyPosition.y; @@ -3026,13 +3026,13 @@ void SnakeAi(int i) Direction md = GetDirection(monster.position.tile, monster.position.last); monster._mdir = md; if (abs(mx) >= 2 || abs(my) >= 2) { - if (abs(mx) < 3 && abs(my) < 3 && LineClear([&monster](Point position) { return IsTileAvailable(monster, position); }, monster.position.tile, { fx, fy }) && static_cast(monster._mVar1) != MonsterMode::MM_CHARGE) { + if (abs(mx) < 3 && abs(my) < 3 && LineClear([&monster](Point position) { return IsTileAvailable(monster, position); }, monster.position.tile, { fx, fy }) && static_cast(monster._mVar1) != MonsterMode::Charge) { if (AddMissile(monster.position.tile, { fx, fy }, md, MIS_RHINO, TARGET_PLAYERS, i, 0, 0) != -1) { PlayEffect(monster, 0); dMonster[monster.position.tile.x][monster.position.tile.y] = -(i + 1); - monster._mmode = MonsterMode::MM_CHARGE; + monster._mmode = MonsterMode::Charge; } - } else if (static_cast(monster._mVar1) == MonsterMode::MM_DELAY || GenerateRnd(100) >= 35 - 2 * monster._mint) { + } else if (static_cast(monster._mVar1) == MonsterMode::Delay || GenerateRnd(100) >= 35 - 2 * monster._mint) { if (pattern[monster._mgoalvar1] == -1) md = left[md]; else if (pattern[monster._mgoalvar1] == 1) @@ -3060,7 +3060,7 @@ void SnakeAi(int i) AiDelay(monster, 15 - monster._mint + GenerateRnd(10)); } } else { - if (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_DELAY, MonsterMode::MM_CHARGE) + if (IsAnyOf(static_cast(monster._mVar1), MonsterMode::Delay, MonsterMode::Charge) || (GenerateRnd(100) < monster._mint + 20)) { StartAttack(monster); } else @@ -3075,7 +3075,7 @@ void CounselorAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } int fx = monster.enemyPosition.x; @@ -3123,7 +3123,7 @@ void CounselorAi(int i) monster._mgoal = MGOAL_RETREAT; monster._mgoalvar1 = 0; StartFadeout(monster, md, false); - } else if (static_cast(monster._mVar1) == MonsterMode::MM_DELAY + } else if (static_cast(monster._mVar1) == MonsterMode::Delay || GenerateRnd(100) < 2 * monster._mint + 20) { StartRangedAttack(monster, MIS_NULL, 0); AddMissile(monster.position.tile, { 0, 0 }, monster._mdir, MIS_FLASH, TARGET_PLAYERS, i, 4, 0); @@ -3132,7 +3132,7 @@ void CounselorAi(int i) AiDelay(monster, GenerateRnd(10) + 2 * (5 - monster._mint)); } } - if (monster._mmode == MonsterMode::MM_STAND) { + if (monster._mmode == MonsterMode::Stand) { AiDelay(monster, GenerateRnd(10) + 5); } } @@ -3142,7 +3142,7 @@ void ZharAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -3182,7 +3182,7 @@ void MegaAi(int i) return; } - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -3218,7 +3218,7 @@ void MegaAi(int i) } else if (dist >= 2) { v = GenerateRnd(100); if (v < 2 * (5 * monster._mint + 25) - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 2 * (5 * monster._mint + 40))) { RandomWalk(i, md); @@ -3234,7 +3234,7 @@ void MegaAi(int i) } monster._mgoalvar3 = 1; } - if (monster._mmode == MonsterMode::MM_STAND) { + if (monster._mmode == MonsterMode::Stand) { AiDelay(monster, GenerateRnd(10) + 5); } } @@ -3249,7 +3249,7 @@ void LazarusAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -3261,7 +3261,7 @@ void LazarusAi(int i) auto &myPlayer = Players[MyPlayerId]; if (monster.mtalkmsg == TEXT_VILE13 && monster._mgoal == MGOAL_INQUIRING && myPlayer.position.tile.x == 35 && myPlayer.position.tile.y == 46) { PlayInGameMovie("gendata\\fprst3.smk"); - monster._mmode = MonsterMode::MM_TALK; + monster._mmode = MonsterMode::Talk; Quests[Q_BETRAYER]._qvar1 = 5; } @@ -3276,7 +3276,7 @@ void LazarusAi(int i) } if (gbIsMultiplayer && monster.mtalkmsg == TEXT_VILE13 && monster._mgoal == MGOAL_INQUIRING && Quests[Q_BETRAYER]._qvar1 <= 3) { - monster._mmode = MonsterMode::MM_TALK; + monster._mmode = MonsterMode::Talk; } } @@ -3298,7 +3298,7 @@ void LazarusMinionAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) + if (monster._mmode != MonsterMode::Stand) return; int mx = monster.position.tile.x; @@ -3327,7 +3327,7 @@ void LachdananAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -3358,7 +3358,7 @@ void WarlordAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND) { + if (monster._mmode != MonsterMode::Stand) { return; } @@ -3367,7 +3367,7 @@ void WarlordAi(int i) Direction md = GetMonsterDirection(monster); if ((dFlags[mx][my] & BFLAG_VISIBLE) != 0) { if (monster.mtalkmsg == TEXT_WARLRD9 && monster._mgoal == MGOAL_INQUIRING) - monster._mmode = MonsterMode::MM_TALK; + monster._mmode = MonsterMode::Talk; if (monster.mtalkmsg == TEXT_WARLRD9 && !effect_is_playing(USFX_WARLRD1) && monster._mgoal == MGOAL_TALKING) { monster._msquelch = UINT8_MAX; monster.mtalkmsg = TEXT_NONE; @@ -3396,7 +3396,7 @@ void HorkDemonAi(int i) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mmode != MonsterMode::MM_STAND || monster._msquelch == 0) { + if (monster._mmode != MonsterMode::Stand || monster._msquelch == 0) { return; } @@ -3442,7 +3442,7 @@ void HorkDemonAi(int i) } else { v = GenerateRnd(100); if (v < 2 * monster._mint + 33 - || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MM_WALK, MonsterMode::MM_WALK2, MonsterMode::MM_WALK3) && monster._mVar2 == 0 && v < 2 * monster._mint + 83)) { + || (IsAnyOf(static_cast(monster._mVar1), MonsterMode::MoveNorthwards, MonsterMode::MoveSouthwards, MonsterMode::MoveSideways) && monster._mVar2 == 0 && v < 2 * monster._mint + 83)) { RandomWalk(i, md); } else { AiDelay(monster, GenerateRnd(10) + 10); @@ -3943,7 +3943,7 @@ void M_StartStand(MonsterStruct &monster, Direction md) NewMonsterAnim(monster, MonsterGraphic::Stand, md); monster._mVar1 = static_cast(monster._mmode); monster._mVar2 = 0; - monster._mmode = MonsterMode::MM_STAND; + monster._mmode = MonsterMode::Stand; monster.position.offset = { 0, 0 }; monster.position.future = monster.position.tile; monster.position.old = monster.position.tile; @@ -4014,7 +4014,7 @@ void M_StartHit(int i, int pnum, int dam) monster._mgoalvar1 = 0; monster._mgoalvar2 = 0; } - if (monster._mmode != MonsterMode::MM_STONE) { + if (monster._mmode != MonsterMode::Petrified) { StartMonsterGotHit(i); } } @@ -4042,7 +4042,7 @@ void M_SyncStartKill(int i, Point position, int pnum) assert(i >= 0 && i < MAXMONSTERS); auto &monster = Monsters[i]; - if (monster._mhitpoints == 0 || monster._mmode == MonsterMode::MM_DEATH) { + if (monster._mhitpoints == 0 || monster._mmode == MonsterMode::Death) { return; } @@ -4052,7 +4052,7 @@ void M_SyncStartKill(int i, Point position, int pnum) monster.position.old = position; } - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { StartMonsterDeath(i, pnum, false); monster.Petrify(); } else { @@ -4187,8 +4187,8 @@ void GolumAi(int i) return; } - if (golem._mmode == MonsterMode::MM_DEATH - || golem._mmode == MonsterMode::MM_SPSTAND + if (golem._mmode == MonsterMode::Death + || golem._mmode == MonsterMode::SpecialStand || golem.IsWalking()) { return; } @@ -4196,7 +4196,7 @@ void GolumAi(int i) if ((golem._mFlags & MFLAG_TARGETS_MONSTER) == 0) UpdateEnemy(golem); - if (golem._mmode == MonsterMode::MM_ATTACK) { + if (golem._mmode == MonsterMode::MeleeAttack) { return; } @@ -4328,54 +4328,54 @@ void ProcessMonsters() AiProc[monster._mAi](mi); } switch (monster._mmode) { - case MonsterMode::MM_STAND: + case MonsterMode::Stand: raflag = MonsterIdle(monster); break; - case MonsterMode::MM_WALK: - case MonsterMode::MM_WALK2: - case MonsterMode::MM_WALK3: + case MonsterMode::MoveNorthwards: + case MonsterMode::MoveSouthwards: + case MonsterMode::MoveSideways: raflag = MonsterWalk(mi, monster._mmode); break; - case MonsterMode::MM_ATTACK: + case MonsterMode::MeleeAttack: raflag = MonsterAttack(mi); break; - case MonsterMode::MM_GOTHIT: + case MonsterMode::HitRecovery: raflag = MonsterGotHit(monster); break; - case MonsterMode::MM_DEATH: + case MonsterMode::Death: raflag = MonsterDeath(mi); break; - case MonsterMode::MM_SATTACK: + case MonsterMode::SpecialMeleeAttack: raflag = MonsterSpecialAttack(mi); break; - case MonsterMode::MM_FADEIN: + case MonsterMode::FadeIn: raflag = MonsterFadein(monster); break; - case MonsterMode::MM_FADEOUT: + case MonsterMode::FadeOut: raflag = MonsterFadeout(monster); break; - case MonsterMode::MM_RATTACK: + case MonsterMode::RangedAttack: raflag = MonaterRangedAttack(mi); break; - case MonsterMode::MM_SPSTAND: + case MonsterMode::SpecialStand: raflag = MonsterSpecialStand(monster); break; - case MonsterMode::MM_RSPATTACK: + case MonsterMode::SpecialRangedAttack: raflag = MonsterRangedSpecialAttack(mi); break; - case MonsterMode::MM_DELAY: + case MonsterMode::Delay: raflag = MonsterDelay(monster); break; - case MonsterMode::MM_CHARGE: + case MonsterMode::Charge: raflag = false; break; - case MonsterMode::MM_STONE: + case MonsterMode::Petrified: raflag = MonsterPetrified(monster); break; - case MonsterMode::MM_HEAL: + case MonsterMode::Heal: raflag = MonsterHeal(monster); break; - case MonsterMode::MM_TALK: + case MonsterMode::Talk: raflag = MonsterTalk(monster); break; } @@ -4383,7 +4383,7 @@ void ProcessMonsters() GroupUnity(monster); } } while (raflag); - if (monster._mmode != MonsterMode::MM_STONE) { + if (monster._mmode != MonsterMode::Petrified) { monster.AnimInfo.ProcessAnimation((monster._mFlags & MFLAG_LOCK_ANIMATION) != 0, (monster._mFlags & MFLAG_ALLOW_SPECIAL) != 0); } } @@ -4547,34 +4547,34 @@ void SyncMonsterAnim(MonsterStruct &monster) MonsterGraphic graphic = MonsterGraphic::Stand; switch (monster._mmode) { - case MonsterMode::MM_STAND: - case MonsterMode::MM_DELAY: - case MonsterMode::MM_TALK: + case MonsterMode::Stand: + case MonsterMode::Delay: + case MonsterMode::Talk: break; - case MonsterMode::MM_WALK: - case MonsterMode::MM_WALK2: - case MonsterMode::MM_WALK3: + case MonsterMode::MoveNorthwards: + case MonsterMode::MoveSouthwards: + case MonsterMode::MoveSideways: graphic = MonsterGraphic::Walk; break; - case MonsterMode::MM_ATTACK: - case MonsterMode::MM_RATTACK: + case MonsterMode::MeleeAttack: + case MonsterMode::RangedAttack: graphic = MonsterGraphic::Attack; break; - case MonsterMode::MM_GOTHIT: + case MonsterMode::HitRecovery: graphic = MonsterGraphic::GotHit; break; - case MonsterMode::MM_DEATH: + case MonsterMode::Death: graphic = MonsterGraphic::Death; break; - case MonsterMode::MM_SATTACK: - case MonsterMode::MM_FADEIN: - case MonsterMode::MM_FADEOUT: - case MonsterMode::MM_SPSTAND: - case MonsterMode::MM_RSPATTACK: - case MonsterMode::MM_HEAL: + case MonsterMode::SpecialMeleeAttack: + case MonsterMode::FadeIn: + case MonsterMode::FadeOut: + case MonsterMode::SpecialStand: + case MonsterMode::SpecialRangedAttack: + case MonsterMode::Heal: graphic = MonsterGraphic::Special; break; - case MonsterMode::MM_CHARGE: + case MonsterMode::Charge: graphic = MonsterGraphic::Attack; monster.AnimInfo.CurrentFrame = 1; monster.AnimInfo.NumberOfFrames = monster.MType->GetAnimData(MonsterGraphic::Attack).Frames; @@ -4907,7 +4907,7 @@ int PreSpawnSkeleton() void TalktoMonster(MonsterStruct &monster) { auto &player = Players[monster._menemy]; - monster._mmode = MonsterMode::MM_TALK; + monster._mmode = MonsterMode::Talk; if (monster._mAi != AI_SNOTSPIL && monster._mAi != AI_LACHDAN) { return; } @@ -4967,7 +4967,7 @@ bool CheckMonsterHit(MonsterStruct &monster, bool *ret) { if (monster._mAi == AI_GARG && (monster._mFlags & MFLAG_ALLOW_SPECIAL) != 0) { monster._mFlags &= ~MFLAG_ALLOW_SPECIAL; - monster._mmode = MonsterMode::MM_SATTACK; + monster._mmode = MonsterMode::SpecialMeleeAttack; *ret = true; return true; } @@ -5006,7 +5006,7 @@ void decode_enemy(MonsterStruct &monster, int enemy) void MonsterStruct::CheckStandAnimationIsLoaded(Direction mdir) { - if (_mmode == MonsterMode::MM_STAND || _mmode == MonsterMode::MM_TALK) { + if (_mmode == MonsterMode::Stand || _mmode == MonsterMode::Talk) { _mdir = mdir; AnimInfo.pCelSprite = &*MType->GetAnimData(MonsterGraphic::Stand).CelSpritesForDirections[mdir]; } @@ -5014,16 +5014,16 @@ void MonsterStruct::CheckStandAnimationIsLoaded(Direction mdir) void MonsterStruct::Petrify() { - _mmode = MonsterMode::MM_STONE; + _mmode = MonsterMode::Petrified; AnimInfo.IsPetrified = true; } bool MonsterStruct::IsWalking() const { switch (_mmode) { - case MonsterMode::MM_WALK: - case MonsterMode::MM_WALK2: - case MonsterMode::MM_WALK3: + case MonsterMode::MoveNorthwards: + case MonsterMode::MoveSouthwards: + case MonsterMode::MoveSideways: return true; default: return false; diff --git a/Source/monster.h b/Source/monster.h index b9dae75f4..858f78a45 100644 --- a/Source/monster.h +++ b/Source/monster.h @@ -63,27 +63,27 @@ enum : uint8_t { }; enum class MonsterMode { - MM_STAND, + Stand, /** Movement towards N, NW, or NE */ - MM_WALK, + MoveNorthwards, /** Movement towards S, SW, or SE */ - MM_WALK2, + MoveSouthwards, /** Movement towards W or E */ - MM_WALK3, - MM_ATTACK, - MM_GOTHIT, - MM_DEATH, - MM_SATTACK, - MM_FADEIN, - MM_FADEOUT, - MM_RATTACK, - MM_SPSTAND, - MM_RSPATTACK, - MM_DELAY, - MM_CHARGE, - MM_STONE, - MM_HEAL, - MM_TALK, + MoveSideways, + MeleeAttack, + HitRecovery, + Death, + SpecialMeleeAttack, + FadeIn, + FadeOut, + RangedAttack, + SpecialStand, + SpecialRangedAttack, + Delay, + Charge, + Petrified, + Heal, + Talk, }; enum class MonsterGraphic { @@ -220,7 +220,7 @@ struct MonsterStruct { // note: missing field _mAFNum void CheckStandAnimationIsLoaded(Direction mdir); /** - * @brief Sets _mmode to MonsterMode::MM_STONE + * @brief Sets _mmode to MonsterMode::Petrified */ void Petrify(); diff --git a/Source/objects.cpp b/Source/objects.cpp index 2d6ce44d5..0552ae72e 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -3758,14 +3758,14 @@ void OperateBookCase(int pnum, int i, bool sendmsg) if (Quests[Q_ZHAR].IsAvailable()) { auto &zhar = Monsters[MAX_PLRS]; - if (zhar._mmode == MonsterMode::MM_STAND // prevents playing the "angry" message for the second time if zhar got aggroed by losing vision and talking again + if (zhar._mmode == MonsterMode::Stand // prevents playing the "angry" message for the second time if zhar got aggroed by losing vision and talking again && zhar._uniqtype - 1 == UMT_ZHAR && zhar._msquelch == UINT8_MAX && zhar._mhitpoints > 0) { zhar.mtalkmsg = TEXT_ZHAR2; M_StartStand(zhar, zhar._mdir); // BUGFIX: first parameter in call to M_StartStand should be MAX_PLRS, not 0. (fixed) zhar._mgoal = MGOAL_ATTACK2; - zhar._mmode = MonsterMode::MM_TALK; + zhar._mmode = MonsterMode::Talk; } } if (pnum == MyPlayerId) diff --git a/Source/player.cpp b/Source/player.cpp index 97f64b6c4..e2ef44f72 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -882,7 +882,7 @@ bool PlrHitMonst(int pnum, int m) return false; } - if (monster._mmode == MonsterMode::MM_CHARGE) { + if (monster._mmode == MonsterMode::Charge) { return false; } @@ -900,7 +900,7 @@ bool PlrHitMonst(int pnum, int m) } int hit = GenerateRnd(100); - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { hit = 0; } @@ -1052,14 +1052,14 @@ bool PlrHitMonst(int pnum, int m) } #endif if ((monster._mhitpoints >> 6) <= 0) { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { M_StartKill(m, pnum); monster.Petrify(); } else { M_StartKill(m, pnum); } } else { - if (monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Petrified) { M_StartHit(m, pnum, dam); monster.Petrify(); } else { diff --git a/Source/scrollrt.cpp b/Source/scrollrt.cpp index 7befd475f..caa05d266 100644 --- a/Source/scrollrt.cpp +++ b/Source/scrollrt.cpp @@ -358,58 +358,58 @@ void DrawMonster(const Surface &out, int x, int y, int mx, int my, const Monster constexpr auto getMonsterModeDisplayName = [](MonsterMode monsterMode) { switch (monsterMode) { - case MonsterMode::MM_STAND: + case MonsterMode::Stand: return "standing"; - case MonsterMode::MM_WALK: - return "walking (1)"; + case MonsterMode::MoveNorthwards: + return "moving (northwards)"; - case MonsterMode::MM_WALK2: - return "walking (2)"; + case MonsterMode::MoveSouthwards: + return "moving (southwards)"; - case MonsterMode::MM_WALK3: - return "walking (3)"; + case MonsterMode::MoveSideways: + return "moving (sideways)"; - case MonsterMode::MM_ATTACK: - return "attacking"; + case MonsterMode::MeleeAttack: + return "attacking (melee)"; - case MonsterMode::MM_GOTHIT: + case MonsterMode::HitRecovery: return "getting hit"; - case MonsterMode::MM_DEATH: + case MonsterMode::Death: return "dying"; - case MonsterMode::MM_SATTACK: - return "attacking (special)"; + case MonsterMode::SpecialMeleeAttack: + return "attacking (special melee)"; - case MonsterMode::MM_FADEIN: + case MonsterMode::FadeIn: return "fading in"; - case MonsterMode::MM_FADEOUT: + case MonsterMode::FadeOut: return "fading out"; - case MonsterMode::MM_RATTACK: + case MonsterMode::RangedAttack: return "attacking (ranged)"; - case MonsterMode::MM_SPSTAND: + case MonsterMode::SpecialStand: return "standing (special)"; - case MonsterMode::MM_RSPATTACK: + case MonsterMode::SpecialRangedAttack: return "attacking (special ranged)"; - case MonsterMode::MM_DELAY: + case MonsterMode::Delay: return "delaying"; - case MonsterMode::MM_CHARGE: + case MonsterMode::Charge: return "charging"; - case MonsterMode::MM_STONE: - return "stoned"; + case MonsterMode::Petrified: + return "petrified"; - case MonsterMode::MM_HEAL: + case MonsterMode::Heal: return "healing"; - case MonsterMode::MM_TALK: + case MonsterMode::Talk: return "talking"; default: @@ -443,7 +443,7 @@ void DrawMonster(const Surface &out, int x, int y, int mx, int my, const Monster int trans = 0; if (monster._uniqtype != 0) trans = monster._uniqtrans + 4; - if (monster._mmode == MonsterMode::MM_STONE) + if (monster._mmode == MonsterMode::Petrified) trans = 2; if (Players[MyPlayerId]._pInfraFlag && LightTableIndex > 8) trans = 1; diff --git a/Source/sync.cpp b/Source/sync.cpp index 7b9573ce4..3fd38173d 100644 --- a/Source/sync.cpp +++ b/Source/sync.cpp @@ -167,7 +167,7 @@ void SyncMonster(int pnum, const TSyncMonster *p) if (monster.position.future.x == p->_mx && monster.position.future.y == p->_my) { return; } - if (monster._mmode == MonsterMode::MM_CHARGE || monster._mmode == MonsterMode::MM_STONE) { + if (monster._mmode == MonsterMode::Charge || monster._mmode == MonsterMode::Petrified) { return; }