diff --git a/asm/code_8040094.s b/asm/code_8040094.s index 8a8f947bc..daab66dfd 100644 --- a/asm/code_8040094.s +++ b/asm/code_8040094.s @@ -2501,7 +2501,7 @@ _080414A0: _080414A4: adds r0, r4, 0 adds r1, r5, 0 - bl MoveMatchesChargingStatus + bl MoveMatchesBideClassStatus adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 diff --git a/asm/code_8069E0C.s b/asm/code_8069E0C.s index 0f955d488..7aa4695da 100644 --- a/asm/code_8069E0C.s +++ b/asm/code_8069E0C.s @@ -346,7 +346,7 @@ _0806A650: bne _0806A6D2 adds r0, r6, 0 adds r1, r6, 0 - bl SendNonVolatileEndMessage + bl EndBurnClassStatus b _0806A6D2 _0806A664: cmp r1, 0 @@ -1072,7 +1072,7 @@ sub_806ABAC: bne _0806ABD4 adds r0, r6, 0 adds r1, r4, 0 - bl SendNonVolatileEndMessage + bl EndBurnClassStatus _0806ABD4: adds r0, r4, 0 movs r1, 0x40 @@ -1087,7 +1087,7 @@ _0806ABD4: bne _0806ABF4 adds r0, r6, 0 adds r1, r4, 0 - bl SendVolatileEndMessage + bl EndCringeClassStatus _0806ABF4: adds r0, r4, 0 movs r1, 0x42 @@ -1102,7 +1102,7 @@ _0806ABF4: bne _0806AC14 adds r0, r6, 0 adds r1, r4, 0 - bl SendNonVolatileEndMessage + bl EndBurnClassStatus _0806AC14: adds r0, r4, 0 movs r1, 0x29 @@ -1117,7 +1117,7 @@ _0806AC14: bne _0806AC34 adds r0, r6, 0 adds r1, r4, 0 - bl SendVolatileEndMessage + bl EndCringeClassStatus _0806AC34: adds r0, r4, 0 movs r1, 0x36 @@ -1147,7 +1147,7 @@ _0806AC66: adds r1, r4, 0 movs r2, 0 movs r3, 0x1 - bl SendSleepEndMessage + bl EndSleepClassStatus _0806AC72: adds r0, r4, 0 movs r1, 0x41 @@ -1180,7 +1180,7 @@ _0806AC92: bhi _0806ACB8 adds r0, r6, 0 adds r1, r4, 0 - bl SendNonVolatileEndMessage + bl EndBurnClassStatus _0806ACB8: adds r0, r4, 0 movs r1, 0x25 @@ -1199,7 +1199,7 @@ _0806ACB8: bne _0806ACE0 adds r0, r6, 0 adds r1, r4, 0 - bl SendProtectionEndMessage + bl EndReflectClassStatus _0806ACE0: pop {r4-r6} pop {r0} diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s index 99c6433b4..3d35898d4 100644 --- a/data/data_80F59C8.s +++ b/data/data_80F59C8.s @@ -308,8 +308,8 @@ gUnknown_80F6624: @ 80F6624 .byte 0xb9, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0xbb, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 -.global gStatusSpriteMasks_SleepStatus -gStatusSpriteMasks_SleepStatus: @ 80F669C +.global gStatusSpriteMasks_SleepClassStatus +gStatusSpriteMasks_SleepClassStatus: @ 80F669C .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_SLEEP @ STATUS_SLEEP .4byte STATUS_SPRITE_SLEEPLESS @ STATUS_SLEEPLESS @@ -317,16 +317,16 @@ gStatusSpriteMasks_SleepStatus: @ 80F669C .4byte 0 @ STATUS_YAWNING .4byte STATUS_SPRITE_SLEEP @ STATUS_NAPPING -.global gStatusSpriteMasks_NonVolatileStatus -gStatusSpriteMasks_NonVolatileStatus: @ 80F66B4 +.global gStatusSpriteMasks_BurnClassStatus +gStatusSpriteMasks_BurnClassStatus: @ 80F66B4 .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_BURNED @ STATUS_BURN .4byte STATUS_SPRITE_POISONED @ STATUS_POISONED .4byte STATUS_SPRITE_BADLY_POISONED @ STATUS_BADLY_POISONED .4byte 0 @ STATUS_PARALYSIS -.global gStatusSpriteMasks_ImmobilizeStatus -gStatusSpriteMasks_ImmobilizeStatus: @ 80F66C8 +.global gStatusSpriteMasks_FrozenClassStatus +gStatusSpriteMasks_FrozenClassStatus: @ 80F66C8 .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_FROZEN @ STATUS_FROZEN .4byte 0 @ STATUS_SHADOW_HOLD @@ -336,8 +336,8 @@ gStatusSpriteMasks_ImmobilizeStatus: @ 80F66C8 .4byte 0 @ STATUS_PETRIFIED .4byte 0 @ STATUS_CONSTRICTION -.global gStatusSpriteMasks_VolatileStatus -gStatusSpriteMasks_VolatileStatus: @ 80F66E8 +.global gStatusSpriteMasks_CringeClassStatus +gStatusSpriteMasks_CringeClassStatus: @ 80F66E8 .4byte 0 @ STATUS_NONE .4byte 0 @ STATUS_CRINGE .4byte STATUS_SPRITE_CONFUSED @ STATUS_CONFUSED @@ -347,8 +347,8 @@ gStatusSpriteMasks_VolatileStatus: @ 80F66E8 .4byte STATUS_SPRITE_ENCORE @ STATUS_ENCORE .4byte 0 @ STATUS_INFATUATED -.global gStatusSpriteMasks_ChargingStatus -gStatusSpriteMasks_ChargingStatus: @ 80F6708 +.global gStatusSpriteMasks_BideClassStatus +gStatusSpriteMasks_BideClassStatus: @ 80F6708 .4byte 0 @ STATUS_NONE .4byte 0 @ STATUS_BIDE .4byte 0 @ STATUS_SOLARBEAM @@ -363,8 +363,8 @@ gStatusSpriteMasks_ChargingStatus: @ 80F6708 .4byte 0 @ STATUS_CHARGING .4byte 0 @ STATUS_ENRAGED -.global gStatusSpriteMasks_ProtectionStatus -gStatusSpriteMasks_ProtectionStatus: @ 80F673C +.global gStatusSpriteMasks_ReflectClassStatus +gStatusSpriteMasks_ReflectClassStatus: @ 80F673C .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_REFLECT .4byte STATUS_SPRITE_SHIELD_RED @ STATUS_SAFEGUARD @@ -381,42 +381,42 @@ gStatusSpriteMasks_ProtectionStatus: @ 80F673C .4byte STATUS_SPRITE_SHIELD_GREEN @ STATUS_VITAL_THROW .4byte STATUS_SPRITE_SHIELD_BLUE @ STATUS_MIST -.global gStatusSpriteMasks_WaitingStatus -gStatusSpriteMasks_WaitingStatus: @ 80F6778 +.global gStatusSpriteMasks_CurseClassStatus +gStatusSpriteMasks_CurseClassStatus: @ 80F6778 .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_CURSED @ STATUS_CURSED .4byte 0 @ STATUS_DECOY .4byte STATUS_SPRITE_SNATCH @ STATUS_SNATCH -.global gStatusSpriteMasks_LinkedStatus -gStatusSpriteMasks_LinkedStatus: @ 80F6788 +.global gStatusSpriteMasks_LeechSeedClassStatus +gStatusSpriteMasks_LeechSeedClassStatus: @ 80F6788 .4byte 0 @ STATUS_NONE .4byte 0 @ STATUS_LEECH_SEED .4byte 0 @ STATUS_DESTINY_BOND -.global gStatusSpriteMasks_MoveStatus -gStatusSpriteMasks_MoveStatus: @ 80F6794 +.global gStatusSpriteMasks_SureShotClassStatus +gStatusSpriteMasks_SureShotClassStatus: @ 80F6794 .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_SURE_SHOT @ STATUS_SURE_SHOT .4byte STATUS_SPRITE_WHIFFER @ STATUS_WHIFFER .4byte STATUS_SPRITE_SET_DAMAGE @ STATUS_SET_DAMAGE .4byte STATUS_SPRITE_FOCUS_ENERGY @ STATUS_FOCUS_ENERGY -.global gStatusSpriteMasks_ItemStatus -gStatusSpriteMasks_ItemStatus: @ 80F67A8 +.global gStatusSpriteMasks_LongTossClassStatus +gStatusSpriteMasks_LongTossClassStatus: @ 80F67A8 .4byte 0 @ STATUS_NONE .4byte 0 @ STATUS_LONG_TOSS .4byte 0 @ STATUS_PIERCE -.global gStatusSpriteMasks_TransformStatus -gStatusSpriteMasks_TransformStatus: @ 80F67B4 +.global gStatusSpriteMasks_InvisibleClassStatus +gStatusSpriteMasks_InvisibleClassStatus: @ 80F67B4 .4byte 0 @ STATUS_NONE .4byte 0 @ STATUS_INVISIBLE .4byte 0 @ STATUS_TRANSFORMED .4byte 0 @ STATUS_MOBILE -.global gStatusSpriteMasks_EyesightStatus -gStatusSpriteMasks_EyesightStatus: @ 80F67C4 +.global gStatusSpriteMasks_BlinkerClassStatus +gStatusSpriteMasks_BlinkerClassStatus: @ 80F67C4 .4byte 0 @ STATUS_NONE .4byte STATUS_SPRITE_BLINKER @ STATUS_BLINKER .4byte STATUS_SPRITE_CROSS_EYED @ STATUS_CROSS_EYED diff --git a/include/charge_move.h b/include/charge_move.h index 0fd75d5db..56c9bb8e0 100644 --- a/include/charge_move.h +++ b/include/charge_move.h @@ -3,7 +3,7 @@ #include "structs/dungeon_entity.h" -bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move); +bool8 MoveMatchesBideClassStatus(Entity *pokemon, Move *move); // checkCharge = Check for the move named Charge. bool8 IsChargingAnyTwoTurnMove(Entity *pokemon, bool8 checkCharge); diff --git a/include/code_8077274_1.h b/include/code_8077274_1.h index cc9712be4..92c1882ac 100644 --- a/include/code_8077274_1.h +++ b/include/code_8077274_1.h @@ -35,13 +35,13 @@ void Conversion2StatusTarget(Entity * pokemon, Entity * target); void VitalThrowStatusTarget(Entity * pokemon, Entity * target); void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4); void sub_807A0CC(Entity * pokemon, Entity * target); -void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8 param_4); -void SendNonVolatileEndMessage(Entity * pokemon, Entity * target); +void EndSleepClassStatus(Entity * pokemon, Entity * target, bool8 param_3, bool8 param_4); +void EndBurnClassStatus(Entity * pokemon, Entity * target); void EndFrozenClassStatus(Entity * pokemon, Entity *target); -void SendVolatileEndMessage(Entity * pokemon, Entity *target); -void SendProtectionEndMessage(Entity * pokemon, Entity *target); -void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus); -void SendLinkedEndMessage(Entity * pokemon, Entity * target); +void EndCringeClassStatus(Entity * pokemon, Entity *target); +void EndReflectClassStatus(Entity * pokemon, Entity *target); +void EndCurseClassStatus(Entity * pokemon, Entity * target, u8 curseClassStatus); +void EndLeechSeedClassStatus(Entity * pokemon, Entity * target); void SendMoveEndMessage(Entity * pokemon, Entity * target); void SendTransformEndMessage(Entity * pokemon, Entity *target); void SendEyesightEndMessage(Entity * pokemon,Entity * target); diff --git a/include/constants/status.h b/include/constants/status.h index 8fb8b3b7a..32ab62db7 100644 --- a/include/constants/status.h +++ b/include/constants/status.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_STATUS_H #define GUARD_CONSTANTS_STATUS_H -// Sleep statuses +// Sleep class statuses #define STATUS_NONE 0 #define STATUS_SLEEP 1 #define STATUS_SLEEPLESS 2 @@ -9,13 +9,13 @@ #define STATUS_YAWNING 4 #define STATUS_NAPPING 5 -// Non-volatile statuses +// Burn class statuses #define STATUS_BURN 1 #define STATUS_POISONED 2 #define STATUS_BADLY_POISONED 3 #define STATUS_PARALYSIS 4 -// Immobilize statuses +// Frozen class statuses #define STATUS_FROZEN 1 #define STATUS_SHADOW_HOLD 2 #define STATUS_WRAP 3 @@ -24,7 +24,7 @@ #define STATUS_PETRIFIED 6 #define STATUS_CONSTRICTION 7 -// Volatile statuses +// Cringe class statuses #define STATUS_CRINGE 1 #define STATUS_CONFUSED 2 #define STATUS_PAUSED 3 @@ -33,7 +33,7 @@ #define STATUS_ENCORE 6 #define STATUS_INFATUATED 7 -// Charging statuses +// Bide class statuses #define STATUS_BIDE 1 #define STATUS_SOLARBEAM 2 #define STATUS_SKY_ATTACK 3 @@ -47,7 +47,7 @@ #define STATUS_CHARGING 11 #define STATUS_ENRAGED 12 -// Protection statuses +// ReflectClassStatus statuses #define STATUS_REFLECT 1 #define STATUS_SAFEGUARD 2 #define STATUS_LIGHT_SCREEN 3 @@ -63,31 +63,31 @@ #define STATUS_VITAL_THROW 13 #define STATUS_MIST 14 -// Waiting statuses +// Curse class statuses #define STATUS_CURSED 1 #define STATUS_DECOY 2 #define STATUS_SNATCH 3 -// Linked statuses +// Leech Seed class statuses #define STATUS_LEECH_SEED 1 #define STATUS_DESTINY_BOND 2 -// Move statuses +// Sure Shot class statuses #define STATUS_SURE_SHOT 1 #define STATUS_WHIFFER 2 #define STATUS_SET_DAMAGE 3 #define STATUS_FOCUS_ENERGY 4 -// Item statuses +// Long Toss class statuses #define STATUS_LONG_TOSS 1 #define STATUS_PIERCE 2 -// Transform statuses +// Invisible class statuses #define STATUS_INVISIBLE 1 #define STATUS_TRANSFORMED 2 #define STATUS_MOBILE 3 -// Eyesight statuses +// Blinker class statuses #define STATUS_BLINKER 1 #define STATUS_CROSS_EYED 2 #define STATUS_EYEDROPS 3 diff --git a/include/move_effects_target.h b/include/move_effects_target.h index 76e7b646d..6c12cbf88 100644 --- a/include/move_effects_target.h +++ b/include/move_effects_target.h @@ -3,7 +3,7 @@ #include "structs/dungeon_entity.h" -u8 sub_8075BF4(Entity * pokemon, s32 sleepTurns); +u8 sub_8075BF4(Entity * pokemon, s32 sleepClassStatusTurns); void sub_8075C58(Entity * pokemon, Entity * target, s32 turns, bool8 displayMessage); bool8 CannotSleep(Entity * pokemon, Entity * target, u8 param_3, bool8 displayMessage); void NightmareStatusTarget(Entity * pokemon, Entity * target, s32 turns); diff --git a/include/structs/dungeon_entity.h b/include/structs/dungeon_entity.h index 24bdda795..5a5dcb0c5 100644 --- a/include/structs/dungeon_entity.h +++ b/include/structs/dungeon_entity.h @@ -69,93 +69,93 @@ typedef struct AITarget } AITarget; -typedef struct Sleep +typedef struct SleepClassStatus { - /* 0x0 */ u8 sleep; - /* 0x1 */ u8 sleepTurns; -} Sleep; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} SleepClassStatus; -typedef struct NonVolatile +typedef struct BurnClassStatus { - /* 0x0 */ u8 nonVolatileStatus; - /* 0x1 */ u8 nonVolatileStatusTurns; - /* 0x2 */ u8 nonVolatileStatusDamageCountdown; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; + /* 0x2 */ u8 damageCountdown; /* 0x3 */ u8 unk4; -} NonVolatile; +} BurnClassStatus; -typedef struct Immobilize +typedef struct FrozenClassStatus { - /* 0x0 */ u8 immobilizeStatus; + /* 0x0 */ u8 status; /* 0x4 */ s32 unk4; - /* 0x8 */ u8 immobilizeStatusTurns; - /* 0x9 */ u8 immobilizeStatusDamageCountdown; -} Immobilize; + /* 0x8 */ u8 turns; + /* 0x9 */ u8 damageCountdown; +} FrozenClassStatus; -typedef struct Volatile +typedef struct CringeClassStatus { - /* 0x0 */ u8 volatileStatus; - /* 0x1 */ u8 volatileStatusTurns; -} Volatile; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} CringeClassStatus; -typedef struct Charging +typedef struct BideClassStatus { - /* 0x0 */ u8 chargingStatus; - /* 0x1 */ u8 chargingStatusTurns; - /* 0x2 */ u8 chargingStatusMoveIndex; // The position of the move in the Pokémon's moveset that triggered the status. -} Charging; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; + /* 0x2 */ u8 moveSlot; // The position of the move in the Pokémon's moveset that triggered the status. +} BideClassStatus; -typedef struct Protection +typedef struct ReflectClassStatus { - /* 0x0 */ u8 protectionStatus; - /* 0x1 */ u8 protectionStatusTurns; -} Protection; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} ReflectClassStatus; -typedef struct Waiting +typedef struct CurseClassStatus { - /* 0xC8 */ u8 waitingStatus; - /* 0xC9 */ bool8 decoyApplierNonTeamMemberFlag; // True if the Pokémon is a decoy and a wild Pokémon (i.e., not an allied Pokémon). - u8 unkCA; - /* 0xCB */ u8 waitingStatusTurns; - /* 0xCC */ u8 curseDamageCountdown; -} Waiting; + /* 0x0 */ u8 status; + /* 0x1 */ bool8 applierNonTeamMemberFlag; // True if the Pokémon is a decoy and a wild Pokémon (i.e., not an allied Pokémon). + u8 unk2; + /* 0x3 */ u8 turns; + /* 0x4 */ u8 damageCountdown; +} CurseClassStatus; -typedef struct Linked +typedef struct LeechSeedClassStatus { - /* 0xD0 */ u8 linkedStatus; - /* 0xD4 */ u32 unkD4; - /* 0xD8 */ u8 unkD8; - /* 0xD9 */ u8 linkedStatusTurns; - /* 0xDA */ u8 linkedStatusDamageCountdown; -} Linked; + /* 0x0 */ u8 status; + /* 0x4 */ u32 unkD4; + /* 0x8 */ u8 unkD8; + /* 0x9 */ u8 turns; + /* 0xA */ u8 damageCountdown; +} LeechSeedClassStatus; -typedef struct MoveStatus +typedef struct SureShotClassStatus { - /* 0xDC */ u8 moveStatus; - /* 0xDD */ u8 moveStatusTurns; -} MoveStatus; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} SureShotClassStatus; -typedef struct ItemStatus +typedef struct LongTossClassStatus { - /* 0xE0 */ u8 itemStatus; -} ItemStatus; + /* 0x0 */ u8 status; +} LongTossClassStatus; -typedef struct TransformStatus +typedef struct InvisibleClassStatus { - /* 0xE4 */ u8 transformStatus; - /* 0xE5 */ u8 transformStatusTurns; -} TransformStatus; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} InvisibleClassStatus; -typedef struct EyesightStatus +typedef struct BlinkerClassStatus { - /* 0xE8 */ u8 eyesightStatus; - /* 0xE9 */ u8 eyesightStatusTurns; -} EyesightStatus; + /* 0x0 */ u8 status; + /* 0x1 */ u8 turns; +} BlinkerClassStatus; typedef struct Muzzled { - /* 0xEC */ bool8 muzzled; - /* 0xED */ u8 muzzledTurns; + /* 0x0 */ bool8 muzzled; + /* 0x1 */ u8 turns; } Muzzled; typedef struct Unk_Entity_x184 @@ -235,18 +235,18 @@ typedef struct EntityInfo u8 fillA5[0xA8 - 0xA5]; // Statuses are split into groups based on which ones can't overlap. // See status.h for which statuses are in each group. - /* 0xA8 */ Sleep sleep; - /* 0xAC */ NonVolatile nonVolatile; - /* 0xB0 */ Immobilize immobilize; - /* 0xBC */ Volatile volatileStatus; - /* 0xC0 */ Charging charging; - /* 0xC4 */ Protection protection; - /* 0xC8 */ Waiting waitingStruct; - /* 0xD0 */ Linked linked; - /* 0xDC */ MoveStatus moveStatus; - /* 0xE0 */ ItemStatus itemStatus; - /* 0xE4 */ TransformStatus transformStatus; - /* 0xE8 */ EyesightStatus eyesightStatus; + /* 0xA8 */ SleepClassStatus sleepClassStatus; + /* 0xAC */ BurnClassStatus burnClassStatus; + /* 0xB0 */ FrozenClassStatus frozenClassStatus; + /* 0xBC */ CringeClassStatus cringeClassStatus; + /* 0xC0 */ BideClassStatus bideClassStatus; + /* 0xC4 */ ReflectClassStatus reflectClassStatus; + /* 0xC8 */ CurseClassStatus curseClassStatus; + /* 0xD0 */ LeechSeedClassStatus linked; + /* 0xDC */ SureShotClassStatus sureShotClassStatus; + /* 0xE0 */ LongTossClassStatus longTossClassStatus; + /* 0xE4 */ InvisibleClassStatus invisibleClassStatus; + /* 0xE8 */ BlinkerClassStatus blinkerClassStatus; /* 0xEC */ Muzzled muzzled; /* 0xF0 */ bool8 powerEars; /* 0xF1 */ bool8 scanning; diff --git a/include/structs/str_dungeon.h b/include/structs/str_dungeon.h index c663aebc2..0551dddee 100644 --- a/include/structs/str_dungeon.h +++ b/include/structs/str_dungeon.h @@ -383,7 +383,7 @@ typedef struct Dungeon u8 fill1357A[0x1357C - 0x1357A]; /* 0x1357C */ Entity *teamPokemon[MAX_TEAM_MEMBERS]; /* 0x1358C */ Entity *wildPokemon[DUNGEON_MAX_WILD_POKEMON]; - /* 0x135CC */ Entity *activeMonsterPtrs[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon + /* 0x135CC */ Entity *activePokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon /* 0x1361C */ Entity *items[DUNGEON_MAX_ITEMS]; /* 0x1371C */ Entity *traps[DUNGEON_MAX_TRAPS]; /* 0x1381C */ Entity teamPokemonEntities[MAX_TEAM_MEMBERS]; diff --git a/src/code_803E724.c b/src/code_803E724.c index 4845e54c4..af89005c5 100644 --- a/src/code_803E724.c +++ b/src/code_803E724.c @@ -993,7 +993,7 @@ void sub_803F580(u8 a0) unk18214 = strPtr->unk18214; if (unk18214 == 0) { u32 unkVar; - if (info->eyesightStatus.eyesightStatus == STATUS_BLINKER) { + if (info->blinkerClassStatus.status == STATUS_BLINKER) { strPtr->blinded = 1; unkVar = 0xE; } @@ -1016,7 +1016,7 @@ void sub_803F580(u8 a0) } before = strPtr->hallucinating; - if (info->eyesightStatus.eyesightStatus == STATUS_CROSS_EYED) { + if (info->blinkerClassStatus.status == STATUS_CROSS_EYED) { strPtr->hallucinating = 1; } else { @@ -1066,7 +1066,7 @@ void sub_803F580(u8 a0) if (strPtr->cameraPos.x != strPtr->cameraPosMirror.x || strPtr->cameraPos.y != strPtr->cameraPosMirror.y) { for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *mon = gDungeon->activeMonsterPtrs[i]; + Entity *mon = gDungeon->activePokemon[i]; if (EntityExists(mon)) { sub_80402AC(mon->pos.x, mon->pos.y); } diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index 38142228b..b11ef6530 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -15,18 +15,18 @@ #include "structs/dungeon_entity.h" #include "structs/str_dungeon.h" -extern u32 gStatusSpriteMasks_SleepStatus[]; -extern u32 gStatusSpriteMasks_NonVolatileStatus[]; -extern u32 gStatusSpriteMasks_ImmobilizeStatus[]; -extern u32 gStatusSpriteMasks_VolatileStatus[]; -extern u32 gStatusSpriteMasks_ChargingStatus[]; -extern u32 gStatusSpriteMasks_ProtectionStatus[]; -extern u32 gStatusSpriteMasks_WaitingStatus[]; -extern u32 gStatusSpriteMasks_LinkedStatus[]; -extern u32 gStatusSpriteMasks_MoveStatus[]; -extern u32 gStatusSpriteMasks_ItemStatus[]; -extern u32 gStatusSpriteMasks_TransformStatus[]; -extern u32 gStatusSpriteMasks_EyesightStatus[]; +extern u32 gStatusSpriteMasks_SleepClassStatus[]; +extern u32 gStatusSpriteMasks_BurnClassStatus[]; +extern u32 gStatusSpriteMasks_FrozenClassStatus[]; +extern u32 gStatusSpriteMasks_CringeClassStatus[]; +extern u32 gStatusSpriteMasks_BideClassStatus[]; +extern u32 gStatusSpriteMasks_ReflectClassStatus[]; +extern u32 gStatusSpriteMasks_CurseClassStatus[]; +extern u32 gStatusSpriteMasks_LeechSeedClassStatus[]; +extern u32 gStatusSpriteMasks_SureShotClassStatus[]; +extern u32 gStatusSpriteMasks_LongTossClassStatus[]; +extern u32 gStatusSpriteMasks_InvisibleClassStatus[]; +extern u32 gStatusSpriteMasks_BlinkerClassStatus[]; extern u32 gStatusSpriteMasks_MuzzledStatus[]; @@ -155,7 +155,7 @@ void sub_8041888(u8 param_1) EntityInfo *entityInfo; for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if(EntityExists(entity)) { entityInfo = GetEntInfo(entity); @@ -183,26 +183,26 @@ void EntityUpdateStatusSprites(Entity *entity) if (entityInfo->id == 0xb9) { // NOTE: clean this up sometime - temp = entityInfo->sleep.sleepTurns; + temp = entityInfo->sleepClassStatus.turns; flag = 0x7f; temp ^= flag; flag = (temp) != 0; } if (flag) { - spriteStatus = gStatusSpriteMasks_SleepStatus[entityInfo->sleep.sleep]; + spriteStatus = gStatusSpriteMasks_SleepClassStatus[entityInfo->sleepClassStatus.status]; } spriteStatus = spriteStatus | - gStatusSpriteMasks_NonVolatileStatus[entityInfo->nonVolatile.nonVolatileStatus] | - gStatusSpriteMasks_ImmobilizeStatus[entityInfo->immobilize.immobilizeStatus] | - gStatusSpriteMasks_VolatileStatus[entityInfo->volatileStatus.volatileStatus] | - gStatusSpriteMasks_ChargingStatus[entityInfo->charging.chargingStatus] | - gStatusSpriteMasks_ProtectionStatus[entityInfo->protection.protectionStatus] | - gStatusSpriteMasks_WaitingStatus[entityInfo->waitingStruct.waitingStatus] | - gStatusSpriteMasks_LinkedStatus[entityInfo->linked.linkedStatus] | - gStatusSpriteMasks_MoveStatus[entityInfo->moveStatus.moveStatus] | - gStatusSpriteMasks_ItemStatus[entityInfo->itemStatus.itemStatus] | - gStatusSpriteMasks_TransformStatus[entityInfo->transformStatus.transformStatus] | - gStatusSpriteMasks_EyesightStatus[entityInfo->eyesightStatus.eyesightStatus] | + gStatusSpriteMasks_BurnClassStatus[entityInfo->burnClassStatus.status] | + gStatusSpriteMasks_FrozenClassStatus[entityInfo->frozenClassStatus.status] | + gStatusSpriteMasks_CringeClassStatus[entityInfo->cringeClassStatus.status] | + gStatusSpriteMasks_BideClassStatus[entityInfo->bideClassStatus.status] | + gStatusSpriteMasks_ReflectClassStatus[entityInfo->reflectClassStatus.status] | + gStatusSpriteMasks_CurseClassStatus[entityInfo->curseClassStatus.status] | + gStatusSpriteMasks_LeechSeedClassStatus[entityInfo->linked.status] | + gStatusSpriteMasks_SureShotClassStatus[entityInfo->sureShotClassStatus.status] | + gStatusSpriteMasks_LongTossClassStatus[entityInfo->longTossClassStatus.status] | + gStatusSpriteMasks_InvisibleClassStatus[entityInfo->invisibleClassStatus.status] | + gStatusSpriteMasks_BlinkerClassStatus[entityInfo->blinkerClassStatus.status] | gStatusSpriteMasks_MuzzledStatus[entityInfo->muzzled.muzzled]; if (entityInfo->grudge) { diff --git a/src/code_804267C.c b/src/code_804267C.c index 845a20266..b37cc31dd 100644 --- a/src/code_804267C.c +++ b/src/code_804267C.c @@ -104,7 +104,7 @@ void sub_80427AC(void) s32 i; for (i = 0; i < 20; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (EntityExists(entity)) { enInfo = GetEntInfo(entity); if (enInfo->unkF3) { diff --git a/src/code_8045A00.c b/src/code_8045A00.c index 943820e42..d6ef76284 100644 --- a/src/code_8045A00.c +++ b/src/code_8045A00.c @@ -32,7 +32,7 @@ void sub_8045ACC(void) { entity = gDungeon->teamPokemon[index]; if (EntityExists(entity)) { - gDungeon->activeMonsterPtrs[pokeCount] = entity; + gDungeon->activePokemon[pokeCount] = entity; pokeCount++; } } @@ -41,12 +41,12 @@ void sub_8045ACC(void) { entity = gDungeon->wildPokemon[index]; if (EntityExists(entity)) { - gDungeon->activeMonsterPtrs[pokeCount] = entity; + gDungeon->activePokemon[pokeCount] = entity; pokeCount++; } } for (; pokeCount < DUNGEON_MAX_POKEMON; pokeCount++) { - gDungeon->activeMonsterPtrs[pokeCount] = NULL; + gDungeon->activePokemon[pokeCount] = NULL; } } diff --git a/src/code_8048480.c b/src/code_8048480.c index 2759d2cde..38a0191c9 100644 --- a/src/code_8048480.c +++ b/src/code_8048480.c @@ -537,8 +537,8 @@ void EyedropSeedItemAction(Entity *pokemon, Entity *target) void CheriBerryItemAction(Entity *pokemon, Entity *target) { - if(GetEntInfo(target)->nonVolatile.nonVolatileStatus == STATUS_PARALYSIS) - SendNonVolatileEndMessage(pokemon, target); + if(GetEntInfo(target)->burnClassStatus.status == STATUS_PARALYSIS) + EndBurnClassStatus(pokemon, target); else // Pointer to "But nothing happened!" TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F89F4); @@ -547,8 +547,8 @@ void CheriBerryItemAction(Entity *pokemon, Entity *target) void PechaBerryItemAction(Entity *pokemon, Entity *target) { EntityInfo *entInfo = GetEntInfo(target); - if(entInfo->nonVolatile.nonVolatileStatus == STATUS_POISONED || entInfo->nonVolatile.nonVolatileStatus == STATUS_BADLY_POISONED) - SendNonVolatileEndMessage(pokemon, target); + if(entInfo->burnClassStatus.status == STATUS_POISONED || entInfo->burnClassStatus.status == STATUS_BADLY_POISONED) + EndBurnClassStatus(pokemon, target); else // Pointer to "But nothing happened!" TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80F89F4); @@ -592,8 +592,8 @@ void DoomSeedItemAction(Entity *pokemon, Entity *target) void RawstBerryItemAction(Entity *pokemon, Entity *target) { - if(GetEntInfo(target)->nonVolatile.nonVolatileStatus == STATUS_BURN) - SendNonVolatileEndMessage(pokemon, target); + if(GetEntInfo(target)->burnClassStatus.status == STATUS_BURN) + EndBurnClassStatus(pokemon, target); else { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], target, 0); @@ -694,7 +694,7 @@ void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3) else { uVar1 = gUnknown_80F4FA4; } - if (entityInfo_1->immobilize.immobilizeStatus == STATUS_FROZEN) { + if (entityInfo_1->frozenClassStatus.status == STATUS_FROZEN) { EndFrozenClassStatus(pokemon, target); } sub_806F370(pokemon, target, uVar1, 1, auStack28, 0, 0x216, 0, 0, 0); @@ -717,7 +717,7 @@ void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3) else { uVar1 = gUnknown_80F4FA6; } - if (entityInfo->immobilize.immobilizeStatus == STATUS_FROZEN) { + if (entityInfo->frozenClassStatus.status == STATUS_FROZEN) { EndFrozenClassStatus(pokemon, entity); } sub_806F370(pokemon, entity, uVar1, 1, auStack28, 0, 0x216, 0, 0, 0); diff --git a/src/code_805D8C8.c b/src/code_805D8C8.c index 771fc0e69..de3122197 100644 --- a/src/code_805D8C8.c +++ b/src/code_805D8C8.c @@ -20,7 +20,7 @@ void sub_8068768(void) s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (entity != NULL && EntityExists(entity)) LoadPokemonSprite(GetEntInfo(entity)->apparentID, FALSE); diff --git a/src/code_805D8C8_1.c b/src/code_805D8C8_1.c index 0c6b6cb95..07224cc2b 100644 --- a/src/code_805D8C8_1.c +++ b/src/code_805D8C8_1.c @@ -503,19 +503,19 @@ void DungeonHandlePlayerInput(void) if (sub_805EC4C(leader, 1)) break; - if (leaderInfo->immobilize.immobilizeStatus == STATUS_SHADOW_HOLD) { + if (leaderInfo->frozenClassStatus.status == STATUS_SHADOW_HOLD) { immobilizedMsg = gUnknown_80F8A84, canMoveFlags |= 1; } - else if (leaderInfo->immobilize.immobilizeStatus == STATUS_CONSTRICTION) { + else if (leaderInfo->frozenClassStatus.status == STATUS_CONSTRICTION) { immobilizedMsg = gUnknown_80F8A6C, canMoveFlags |= 1; } - else if (leaderInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) { + else if (leaderInfo->frozenClassStatus.status == STATUS_INGRAIN) { immobilizedMsg = gUnknown_80F8AB0, canMoveFlags |= 1; } - else if (leaderInfo->immobilize.immobilizeStatus == STATUS_WRAP) { + else if (leaderInfo->frozenClassStatus.status == STATUS_WRAP) { immobilizedMsg = gUnknown_80F8ADC, canMoveFlags |= 1; } - else if (leaderInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + else if (leaderInfo->frozenClassStatus.status == STATUS_WRAPPED) { immobilizedMsg = gUnknown_80F8B0C, canMoveFlags |= 1; } @@ -537,7 +537,7 @@ void DungeonHandlePlayerInput(void) else { sub_8044C50(2); if ((gRealInputs.held & B_BUTTON || bPress) && FixedPointToInt(leaderInfo->belly) != 0) { - if (GetEntInfo(leader)->volatileStatus.volatileStatus != STATUS_CONFUSED) { + if (GetEntInfo(leader)->cringeClassStatus.status != STATUS_CONFUSED) { gDungeon->unk66C = 1; } leaderInfo->action.unk4[0].actionUseIndex = 0; @@ -1350,7 +1350,7 @@ void sub_805E738(Entity *a0) Tile *tile; s32 i, j; EntityInfo *entityInfo = GetEntInfo(a0); - if (entityInfo->eyesightStatus.eyesightStatus != 1 && entityInfo->eyesightStatus.eyesightStatus != 2) { + if (entityInfo->blinkerClassStatus.status != 1 && entityInfo->blinkerClassStatus.status != 2) { // What??? for (i = 0; i < 1; i++) { bool8 r9 = FALSE; @@ -1549,25 +1549,25 @@ bool8 sub_805EC4C(Entity *a0, u8 a1) return FALSE; } - if (entityInfo->immobilize.immobilizeStatus == STATUS_SHADOW_HOLD) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_FROZEN) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_CONSTRICTION) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_SHADOW_HOLD) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_FROZEN) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_CONSTRICTION) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_INGRAIN) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_WRAP) return FALSE; + if (entityInfo->frozenClassStatus.status == STATUS_WRAPPED) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_SHADOW_HOLD) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_FROZEN) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_CONSTRICTION) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_WRAP) return FALSE; - if (tileMonsterInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_SHADOW_HOLD) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_FROZEN) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_CONSTRICTION) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_INGRAIN) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_WRAP) return FALSE; + if (tileMonsterInfo->frozenClassStatus.status == STATUS_WRAPPED) return FALSE; - if (entityInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) return FALSE; - if (tileMonsterInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) return FALSE; + if (entityInfo->cringeClassStatus.status == STATUS_CONFUSED) return FALSE; + if (tileMonsterInfo->cringeClassStatus.status == STATUS_CONFUSED) return FALSE; - if (tileMonsterInfo->sleep.sleep != STATUS_NONE && tileMonsterInfo->sleep.sleep != STATUS_SLEEPLESS && tileMonsterInfo->sleep.sleep != STATUS_YAWNING) return FALSE; - if (entityInfo->sleep.sleep != STATUS_NONE && entityInfo->sleep.sleep != STATUS_SLEEPLESS && entityInfo->sleep.sleep != STATUS_YAWNING) return FALSE; + if (tileMonsterInfo->sleepClassStatus.status != STATUS_NONE && tileMonsterInfo->sleepClassStatus.status != STATUS_SLEEPLESS && tileMonsterInfo->sleepClassStatus.status != STATUS_YAWNING) return FALSE; + if (entityInfo->sleepClassStatus.status != STATUS_NONE && entityInfo->sleepClassStatus.status != STATUS_SLEEPLESS && entityInfo->sleepClassStatus.status != STATUS_YAWNING) return FALSE; if (IsChargingAnyTwoTurnMove(tileMonster, FALSE)) return FALSE; if (!sub_8070F80(a0, entityInfo->action.direction)) return FALSE; @@ -1604,7 +1604,7 @@ void sub_805EE30(void) return; tile = GetTileAtEntitySafe(leader); - if (IQSkillIsEnabled(leader, IQ_SUPER_MOBILE) && GetEntInfo(leader)->transformStatus.transformStatus != STATUS_MOBILE && !HasHeldItem(leader, ITEM_MOBILE_SCARF)) + if (IQSkillIsEnabled(leader, IQ_SUPER_MOBILE) && GetEntInfo(leader)->invisibleClassStatus.status != STATUS_MOBILE && !HasHeldItem(leader, ITEM_MOBILE_SCARF)) sub_804AE84(&leader->pos); if (tile->terrainType & TERRAIN_TYPE_STAIRS) gDungeon->unk1 = 1; @@ -1679,11 +1679,11 @@ void sub_805EFB4(Entity *a0, bool8 a1) { s32 i; EntityInfo *leaderInfo = GetLeaderInfo(); - if (a1 && leaderInfo->volatileStatus.volatileStatus == STATUS_COWERING) { + if (a1 && leaderInfo->cringeClassStatus.status == STATUS_COWERING) { leaderInfo->action.direction += 4; leaderInfo->action.direction &= 7; } - else if (leaderInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) { + else if (leaderInfo->cringeClassStatus.status == STATUS_CONFUSED) { s32 rnd = DungeonRandInt(8); for (i = 0; i < 8; i++) { if (a1 || CanMoveInDirection(a0, rnd)) { diff --git a/src/code_8069E0C.c b/src/code_8069E0C.c index 7abdbc1dd..55c0721a0 100644 --- a/src/code_8069E0C.c +++ b/src/code_8069E0C.c @@ -74,7 +74,7 @@ void TriggerWeatherAbilities(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { if (HasAbility(entity, ABILITY_DRIZZLE)) { gDungeon->weather.naturalWeather[WEATHER_RAIN] = 1; @@ -208,7 +208,7 @@ void sub_806A120(Entity * pokemon, Entity * target, Move* move) EntityInfo *entityInfo; if ((((EntityExists(pokemon)) && (EntityExists(target))) && (pokemon != target)) - && (entityInfo = GetEntInfo(target), entityInfo->protection.protectionStatus == STATUS_CONVERSION2)) { + && (entityInfo = GetEntInfo(target), entityInfo->reflectClassStatus.status == STATUS_CONVERSION2)) { moveType = GetMoveTypeForMonster(pokemon, move); uVar2_u32 = sub_8092364(moveType); if (uVar2_u32 != TYPE_NONE) { @@ -301,8 +301,8 @@ void sub_806A338(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; - if (EntityExists(entity) && (GetEntInfo(entity)->waitingStruct.waitingStatus == STATUS_SNATCH)) + entity = gDungeon->activePokemon[index]; + if (EntityExists(entity) && (GetEntInfo(entity)->curseClassStatus.status == STATUS_SNATCH)) { gDungeon->snatchPokemon = entity; ASM_MATCH_TRICK(entity); diff --git a/src/code_806CD90.c b/src/code_806CD90.c index 965c30a08..5d645ef0f 100644 --- a/src/code_806CD90.c +++ b/src/code_806CD90.c @@ -49,7 +49,7 @@ void sub_806CC10(void) s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (EntityExists(entity)) { entityInfo = GetEntInfo(entity); @@ -69,7 +69,7 @@ void sub_806CC70(void) Entity *entity; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (EntityExists(entity)) sub_806CCB4(entity, sub_806CEBC(entity)); @@ -95,7 +95,7 @@ void sub_806CCB4(Entity *entity, u8 a1) entity->axObj.unk47 = 0; sVar1 = entity->axObj.unk40_maybeAnimTimer; - if (info->waitingStruct.waitingStatus != STATUS_DECOY && !flag) + if (info->curseClassStatus.status != STATUS_DECOY && !flag) AxResInitFile(&entity->axObj.axdata, entity->axObj.spriteFile, entity->axObj.unk42_animId1, entity->axObj.unk44_direction1, sVar1, @@ -116,7 +116,7 @@ void sub_806CD90(void) Entity *entity; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (EntityExists(entity)) sub_806CCB4(entity, sub_806CEBC(entity)); @@ -176,19 +176,19 @@ void sub_806CE94(Entity *entity, u32 newDir) u8 sub_806CEBC(Entity *entity) { - u8 sleep; + u8 sleepClassStatus; EntityInfo *entityInfo; entityInfo = GetEntInfo(entity); - sleep = entityInfo->sleep.sleep; + sleepClassStatus = entityInfo->sleepClassStatus.status; - if (sleep == STATUS_SLEEP || sleep == STATUS_NAPPING || sleep == STATUS_NIGHTMARE) { - if (entityInfo->apparentID != MONSTER_SUDOWOODO || entityInfo->sleep.sleepTurns != 0x7F) + if (sleepClassStatus == STATUS_SLEEP || sleepClassStatus == STATUS_NAPPING || sleepClassStatus == STATUS_NIGHTMARE) { + if (entityInfo->apparentID != MONSTER_SUDOWOODO || entityInfo->sleepClassStatus.turns != 0x7F) return 5; else return 7; } - if (entityInfo->charging.chargingStatus == STATUS_BIDE) + if (entityInfo->bideClassStatus.status == STATUS_BIDE) return 11; return 7; } @@ -227,7 +227,7 @@ void sub_806CF60(void) s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - entity = gDungeon->activeMonsterPtrs[i]; + entity = gDungeon->activePokemon[i]; if (EntityExists(entity)) sub_806CF98(entity); @@ -342,19 +342,19 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct * return; r9 = arg8; - if (CheckVariousStatuses(target) || GetEntInfo(target)->charging.chargingStatus != 0) + if (CheckVariousStatuses(target) || GetEntInfo(target)->bideClassStatus.status != 0) r9 = FALSE; if (r9 && abs(attacker->pos.x - target->pos.x) <= 1 && abs(attacker->pos.y - target->pos.y) <= 1 && attacker != target && IsTypePhysical(dmgStruct->type) - && GetEntInfo(target)->protection.protectionStatus == STATUS_VITAL_THROW) + && GetEntInfo(target)->reflectClassStatus.status == STATUS_VITAL_THROW) { sub_8042730(target, attacker); sub_807F43C(target, attacker); } - if (GetEntInfo(target)->charging.chargingStatus == STATUS_ENRAGED) { + if (GetEntInfo(target)->bideClassStatus.status == STATUS_ENRAGED) { RaiseAttackStageTarget(attacker, target, gUnknown_8106A4C, 1); } @@ -366,15 +366,15 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct * && abs(attacker->pos.x - target->pos.x) <= 1 && abs(attacker->pos.y - target->pos.y) <= 1) { bool32 isPhysical = IsTypePhysical(dmgStruct->type); - if (GetEntInfo(target)->protection.protectionStatus == STATUS_COUNTER && isPhysical) { + if (GetEntInfo(target)->reflectClassStatus.status == STATUS_COUNTER && isPhysical) { sub_8041B18(target); returnDmg += 4; } - if (GetEntInfo(target)->protection.protectionStatus == STATUS_MINI_COUNTER && isPhysical) { + if (GetEntInfo(target)->reflectClassStatus.status == STATUS_MINI_COUNTER && isPhysical) { sub_8041B18(target); returnDmg += 1; } - if (GetEntInfo(target)->protection.protectionStatus == STATUS_MIRROR_COAT && !isPhysical) { + if (GetEntInfo(target)->reflectClassStatus.status == STATUS_MIRROR_COAT && !isPhysical) { sub_8041B90(target); returnDmg += 4; } @@ -472,13 +472,13 @@ void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct * // Destiny Bond if (r9) { EntityInfo *targetInfo = GetEntInfo(target); - if (targetInfo->linked.linkedStatus == STATUS_DESTINY_BOND) { - Entity *destBondTarget = gDungeon->activeMonsterPtrs[targetInfo->linked.unkD8]; + if (targetInfo->linked.status == STATUS_DESTINY_BOND) { + Entity *destBondTarget = gDungeon->activePokemon[targetInfo->linked.unkD8]; if (destBondTarget == NULL) { - targetInfo->linked.linkedStatus = 0; + targetInfo->linked.status = 0; } else if (GetEntInfo(destBondTarget)->unk98 != targetInfo->linked.unkD4) { - targetInfo->linked.linkedStatus = 0; + targetInfo->linked.status = 0; } else { sub_8041D00(destBondTarget, target); @@ -513,7 +513,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc TrySendImmobilizeSleepEndMsg(attacker, target); SetShopkeeperAggression(attacker, target); if (GetEntityType(attacker) == ENTITY_MONSTER - && GetEntInfo(attacker)->moveStatus.moveStatus == STATUS_SET_DAMAGE + && GetEntInfo(attacker)->sureShotClassStatus.status == STATUS_SET_DAMAGE && dmgStruct->unkE == 0) { dmgStruct->dmg = gUnknown_80F4F8C; @@ -526,7 +526,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc dmgStruct->tookNoDamage = TRUE; return FALSE; } - if (targetData->immobilize.immobilizeStatus == STATUS_FROZEN) { + if (targetData->frozenClassStatus.status == STATUS_FROZEN) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[1], target, 0); TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_80F9600); sub_8042238(attacker, target); @@ -534,8 +534,8 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc return FALSE; } - if ((targetData->sleep.sleep == STATUS_SLEEP || targetData->sleep.sleep == STATUS_NAPPING || targetData->sleep.sleep == STATUS_NIGHTMARE) - && targetData->sleep.sleepTurns == 0x7F) + if ((targetData->sleepClassStatus.status == STATUS_SLEEP || targetData->sleepClassStatus.status == STATUS_NAPPING || targetData->sleepClassStatus.status == STATUS_NIGHTMARE) + && targetData->sleepClassStatus.turns == 0x7F) { WakeUpPokemon(target); } @@ -639,7 +639,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc else { unkBool = FALSE; } - if (targetData->eyesightStatus.eyesightStatus == STATUS_BLINKER || targetData->eyesightStatus.eyesightStatus == STATUS_CROSS_EYED) + if (targetData->blinkerClassStatus.status == STATUS_BLINKER || targetData->blinkerClassStatus.status == STATUS_CROSS_EYED) unkBool = FALSE; if (unkBool) { EntityInfo *info = GetEntInfo(target); @@ -659,7 +659,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc else targetData->HP = 0; - if (targetData->protection.protectionStatus == STATUS_ENDURING) { + if (targetData->reflectClassStatus.status == STATUS_ENDURING) { if (targetData->HP == 0) { targetData->HP = 1; TryDisplayDungeonLoggableMessage3(attacker, target, gUnknown_8100548); @@ -694,7 +694,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc } // 0 HP - if (targetData->transformStatus.transformStatus == STATUS_TRANSFORMED) { + if (targetData->invisibleClassStatus.status == STATUS_TRANSFORMED) { SendTransformEndMessage(attacker, target); } @@ -758,7 +758,7 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc } } - if (targetData->immobilize.immobilizeStatus == STATUS_WRAP || targetData->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (targetData->frozenClassStatus.status == STATUS_WRAP || targetData->frozenClassStatus.status == STATUS_WRAPPED) { sub_8076CB4(targetData->unk9C); } @@ -779,11 +779,11 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc gDungeon->itemHoldersIdentified = 0; } ZeroOutItem(&targetData->heldItem); - if (targetData->waitingStruct.waitingStatus == STATUS_SNATCH) { - SendWaitingEndMessage(attacker, target, STATUS_SNATCH); + if (targetData->curseClassStatus.status == STATUS_SNATCH) { + EndCurseClassStatus(attacker, target, STATUS_SNATCH); } - else if (targetData->waitingStruct.waitingStatus == STATUS_DECOY) { - SendWaitingEndMessage(attacker, target, STATUS_DECOY); + else if (targetData->curseClassStatus.status == STATUS_DECOY) { + EndCurseClassStatus(attacker, target, STATUS_DECOY); } sub_8078084(target); sub_806BFC0(targetData, 0); @@ -836,11 +836,11 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc gDungeon->itemHoldersIdentified = 0; } ZeroOutItem(heldItem); - if (targetData->waitingStruct.waitingStatus == STATUS_SNATCH) { - SendWaitingEndMessage(attacker, target, STATUS_SNATCH); + if (targetData->curseClassStatus.status == STATUS_SNATCH) { + EndCurseClassStatus(attacker, target, STATUS_SNATCH); } - else if (targetData->waitingStruct.waitingStatus == STATUS_DECOY) { - SendWaitingEndMessage(attacker, target, STATUS_DECOY); + else if (targetData->curseClassStatus.status == STATUS_DECOY) { + EndCurseClassStatus(attacker, target, STATUS_DECOY); } sub_8078084(target); sub_806BFC0(targetData, 0); @@ -890,11 +890,11 @@ static bool8 HandleDealingDamageInternal(Entity *attacker, Entity *target, struc gDungeon->unk679 = 0; gDungeon->itemHoldersIdentified = 0; } - if (targetData->waitingStruct.waitingStatus == STATUS_SNATCH) { - SendWaitingEndMessage(attacker, target, STATUS_SNATCH); + if (targetData->curseClassStatus.status == STATUS_SNATCH) { + EndCurseClassStatus(attacker, target, STATUS_SNATCH); } - else if (targetData->waitingStruct.waitingStatus == STATUS_DECOY) { - SendWaitingEndMessage(attacker, target, STATUS_DECOY); + else if (targetData->curseClassStatus.status == STATUS_DECOY) { + EndCurseClassStatus(attacker, target, STATUS_DECOY); } sub_8078084(target); sub_806BFC0(targetData, 0); diff --git a/src/code_806E8B0.c b/src/code_806E8B0.c index c045dc576..06217bd81 100644 --- a/src/code_806E8B0.c +++ b/src/code_806E8B0.c @@ -214,7 +214,7 @@ void CalcDamage(Entity *attacker, Entity *target, u8 moveType, s32 movePower, s3 atkStat = statCalc / 256; defStatStage = targetInfo->defensiveStages[splitIndex]; - if (splitIndex == 0 && targetInfo->charging.chargingStatus == STATUS_SKULL_BASH) { + if (splitIndex == 0 && targetInfo->bideClassStatus.status == STATUS_SKULL_BASH) { gDungeon->unk134.unk17A = 1; defStatStage++; } @@ -332,12 +332,12 @@ void CalcDamage(Entity *attacker, Entity *target, u8 moveType, s32 movePower, s3 } } if (arg_10) { - if (splitIndex == 0 && targetInfo->protection.protectionStatus == STATUS_REFLECT) { + if (splitIndex == 0 && targetInfo->reflectClassStatus.status == STATUS_REFLECT) { sub_8041B74(target); F48_16_SMul(&unkSp9, &unkSp9, &gUnknown_8106F1C); gDungeon->unk134.unk166 = 1; } - if (splitIndex == 1 && targetInfo->protection.protectionStatus == STATUS_LIGHT_SCREEN) { + if (splitIndex == 1 && targetInfo->reflectClassStatus.status == STATUS_LIGHT_SCREEN) { sub_8041B5C(target); F48_16_SMul(&unkSp9, &unkSp9, &gUnknown_8106F1C); gDungeon->unk134.unk167 = 1; @@ -355,7 +355,7 @@ void CalcDamage(Entity *attacker, Entity *target, u8 moveType, s32 movePower, s3 critOdds = critChance; } - if (attackerInfo->moveStatus.moveStatus == STATUS_FOCUS_ENERGY) { + if (attackerInfo->sureShotClassStatus.status == STATUS_FOCUS_ENERGY) { critOdds = 999; gDungeon->unk134.unk168 = 1; } diff --git a/src/code_8073CF0.c b/src/code_8073CF0.c index 2ca957fd4..784f15a6d 100644 --- a/src/code_8073CF0.c +++ b/src/code_8073CF0.c @@ -422,19 +422,19 @@ void sub_8074094(Entity *entity) } // Statuses - if (entityInfo->sleep.sleep == STATUS_YAWNING) { + if (entityInfo->sleepClassStatus.status == STATUS_YAWNING) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; sub_80420B8(entity); } - if (entityInfo->nonVolatile.nonVolatileStatus == STATUS_BURN) { - if (entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0 || --entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0) { + if (entityInfo->burnClassStatus.status == STATUS_BURN) { + if (entityInfo->burnClassStatus.damageCountdown == 0 || --entityInfo->burnClassStatus.damageCountdown == 0) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = gUnknown_80F4F32; + entityInfo->burnClassStatus.damageCountdown = gUnknown_80F4F32; TrySendImmobilizeSleepEndMsg(entity, entity); DealDamageToEntity(entity, gUnknown_80F4F70, 1, 0x208); } @@ -442,24 +442,24 @@ void sub_8074094(Entity *entity) return; } - if (entityInfo->nonVolatile.nonVolatileStatus == STATUS_POISONED) { - if (entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0 || --entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0) { + if (entityInfo->burnClassStatus.status == STATUS_POISONED) { + if (entityInfo->burnClassStatus.damageCountdown == 0 || --entityInfo->burnClassStatus.damageCountdown == 0) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = gUnknown_80F4F34; + entityInfo->burnClassStatus.damageCountdown = gUnknown_80F4F34; TrySendImmobilizeSleepEndMsg(entity, entity); DealDamageToEntity(entity, gUnknown_80F4F72, 3, 0x20A); } if (!EntityExists(entity) || sub_8044B28()) return; } - else if (entityInfo->nonVolatile.nonVolatileStatus == STATUS_BADLY_POISONED) { - if (entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0 || --entityInfo->nonVolatile.nonVolatileStatusDamageCountdown == 0) { - s32 turns = entityInfo->nonVolatile.unk4; - if (entityInfo->nonVolatile.unk4 < 29) - entityInfo->nonVolatile.unk4++; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = gUnknown_80F4F36; + else if (entityInfo->burnClassStatus.status == STATUS_BADLY_POISONED) { + if (entityInfo->burnClassStatus.damageCountdown == 0 || --entityInfo->burnClassStatus.damageCountdown == 0) { + s32 turns = entityInfo->burnClassStatus.unk4; + if (entityInfo->burnClassStatus.unk4 < 29) + entityInfo->burnClassStatus.unk4++; + entityInfo->burnClassStatus.damageCountdown = gUnknown_80F4F36; if (turns >= 29) turns = 29; @@ -474,47 +474,47 @@ void sub_8074094(Entity *entity) return; } - if (entityInfo->immobilize.immobilizeStatus == STATUS_CONSTRICTION) { - if (entityInfo->immobilize.immobilizeStatusDamageCountdown == 0 || --entityInfo->immobilize.immobilizeStatusDamageCountdown == 0) { + if (entityInfo->frozenClassStatus.status == STATUS_CONSTRICTION) { + if (entityInfo->frozenClassStatus.damageCountdown == 0 || --entityInfo->frozenClassStatus.damageCountdown == 0) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; - entityInfo->immobilize.immobilizeStatusDamageCountdown = gUnknown_80F4F38; + entityInfo->frozenClassStatus.damageCountdown = gUnknown_80F4F38; TrySendImmobilizeSleepEndMsg(entity, entity); - sub_8041C4C(entity, entityInfo->immobilize.unk4); + sub_8041C4C(entity, entityInfo->frozenClassStatus.unk4); DealDamageToEntity(entity, gUnknown_80F4F74, 2, 0x209); } if (!EntityExists(entity) || sub_8044B28()) return; } - else if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { - if (entityInfo->immobilize.immobilizeStatusDamageCountdown == 0 || --entityInfo->immobilize.immobilizeStatusDamageCountdown == 0) { + else if (entityInfo->frozenClassStatus.status == STATUS_WRAPPED) { + if (entityInfo->frozenClassStatus.damageCountdown == 0 || --entityInfo->frozenClassStatus.damageCountdown == 0) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; - entityInfo->immobilize.immobilizeStatusDamageCountdown = gUnknown_80F4F3A; + entityInfo->frozenClassStatus.damageCountdown = gUnknown_80F4F3A; TrySendImmobilizeSleepEndMsg(entity, entity); DealDamageToEntity(entity, gUnknown_80F4F76, 5, 0x20B); } if (!EntityExists(entity) || sub_8044B28()) return; } - else if (entityInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) { - if (entityInfo->immobilize.immobilizeStatusDamageCountdown == 0 || --entityInfo->immobilize.immobilizeStatusDamageCountdown == 0) { + else if (entityInfo->frozenClassStatus.status == STATUS_INGRAIN) { + if (entityInfo->frozenClassStatus.damageCountdown == 0 || --entityInfo->frozenClassStatus.damageCountdown == 0) { UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; - entityInfo->immobilize.immobilizeStatusDamageCountdown = gUnknown_80F4F3C; + entityInfo->frozenClassStatus.damageCountdown = gUnknown_80F4F3C; HealTargetHP(entity, entity, gUnknown_80F4FB2, 0, TRUE); } } - if (entityInfo->waitingStruct.waitingStatus == STATUS_CURSED) { - if (entityInfo->waitingStruct.curseDamageCountdown == 0 || --entityInfo->waitingStruct.curseDamageCountdown == 0) { + if (entityInfo->curseClassStatus.status == STATUS_CURSED) { + if (entityInfo->curseClassStatus.damageCountdown == 0 || --entityInfo->curseClassStatus.damageCountdown == 0) { s32 dmg = entityInfo->maxHPStat / 4; if (dmg == 0) dmg = 1; - entityInfo->waitingStruct.curseDamageCountdown = gUnknown_80F4F3E; + entityInfo->curseClassStatus.damageCountdown = gUnknown_80F4F3E; UseAttack(NULL); if (!EntityExists(entity) || sub_8044B28()) return; @@ -526,19 +526,19 @@ void sub_8074094(Entity *entity) return; } - if (entityInfo->linked.linkedStatus == STATUS_LEECH_SEED) { - if (entityInfo->linked.linkedStatusDamageCountdown == 0 || --entityInfo->linked.linkedStatusDamageCountdown == 0) { + if (entityInfo->linked.status == STATUS_LEECH_SEED) { + if (entityInfo->linked.damageCountdown == 0 || --entityInfo->linked.damageCountdown == 0) { s32 hp = gUnknown_80F4FB4; - Entity *target = gDungeon->activeMonsterPtrs[entityInfo->linked.unkD8]; + Entity *target = gDungeon->activePokemon[entityInfo->linked.unkD8]; - entityInfo->linked.linkedStatusDamageCountdown = gUnknown_80F4F40; + entityInfo->linked.damageCountdown = gUnknown_80F4F40; if (target == NULL) { - entityInfo->linked.linkedStatus = 0; + entityInfo->linked.status = 0; } else { EntityInfo *targetInfo = GetEntInfo(target); if (targetInfo->unk98 != entityInfo->linked.unkD4) { - entityInfo->linked.linkedStatus = 0; + entityInfo->linked.status = 0; } else { bool8 dmgUser = HasAbility(entity, ABILITY_LIQUID_OOZE); @@ -547,7 +547,7 @@ void sub_8074094(Entity *entity) if (!EntityExists(entity) || !EntityExists(target) || sub_8044B28()) return; - if (entityInfo->immobilize.immobilizeStatus != STATUS_FROZEN) { + if (entityInfo->frozenClassStatus.status != STATUS_FROZEN) { TrySendImmobilizeSleepEndMsg(entity, entity); DealDamageToEntity(entity, hp, 9, 0x20D); if (dmgUser) { @@ -574,7 +574,7 @@ void sub_8074094(Entity *entity) SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[1], entity, 0); LogMessageByIdWithPopupCheckUser(entity, gUnknown_80FEB30); TrySendImmobilizeSleepEndMsg(entity, entity); - if (entityInfo->protection.protectionStatus == STATUS_PROTECT) { + if (entityInfo->reflectClassStatus.status == STATUS_PROTECT) { LogMessageByIdWithPopupCheckUser(entity, gPtrProtectSavedItMessage); } else { @@ -585,10 +585,10 @@ void sub_8074094(Entity *entity) } } - if (entityInfo->charging.chargingStatus == STATUS_BIDE) { - sub_80838EC(&entityInfo->charging.chargingStatusTurns); - if (entityInfo->charging.chargingStatusTurns == 0) { - entityInfo->charging.chargingStatus = 0; + if (entityInfo->bideClassStatus.status == STATUS_BIDE) { + sub_80838EC(&entityInfo->bideClassStatus.turns); + if (entityInfo->bideClassStatus.turns == 0) { + entityInfo->bideClassStatus.status = 0; if (!CheckVariousStatuses2(entity, FALSE) && !CannotAttack(entity, FALSE) && !CheckVariousStatuses(entity)) { Move bideMove; @@ -606,10 +606,10 @@ void sub_8074094(Entity *entity) if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->charging.chargingStatus == STATUS_ENRAGED) { - sub_80838EC(&entityInfo->charging.chargingStatusTurns); - if (entityInfo->charging.chargingStatusTurns == 0) { - entityInfo->charging.chargingStatus = 0; + if (entityInfo->bideClassStatus.status == STATUS_ENRAGED) { + sub_80838EC(&entityInfo->bideClassStatus.turns); + if (entityInfo->bideClassStatus.turns == 0) { + entityInfo->bideClassStatus.status = 0; entityInfo->unk14A = 0; SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], entity, 0); LogMessageByIdWithPopupCheckUser(entity, gUnknown_80FABD8); @@ -635,7 +635,7 @@ void TickStatusHeal(Entity *entity) entityInfo = GetEntInfo(entity); // HP heal - if (entityInfo->unk146 == 0 && entityInfo->nonVolatile.nonVolatileStatus != STATUS_POISONED && entityInfo->nonVolatile.nonVolatileStatus != STATUS_BADLY_POISONED) { + if (entityInfo->unk146 == 0 && entityInfo->burnClassStatus.status != STATUS_POISONED && entityInfo->burnClassStatus.status != STATUS_BADLY_POISONED) { s32 r4 = 0; if (!entityInfo->isNotTeamMember) @@ -644,7 +644,7 @@ void TickStatusHeal(Entity *entity) if (r4 != 0) { if (HasHeldItem(entity, ITEM_HEAL_RIBBON)) r4 += gUnknown_80F4FC4; - if (entityInfo->protection.protectionStatus == STATUS_WISH) + if (entityInfo->reflectClassStatus.status == STATUS_WISH) r4 += gUnknown_80F4FC0; if (HasAbility(entity, ABILITY_RAIN_DISH) && GetApparentWeather(entity) == WEATHER_RAIN) r4 += gUnknown_80F4FC2; @@ -665,90 +665,90 @@ void TickStatusHeal(Entity *entity) } } - if (entityInfo->sleep.sleep != 0) { - sub_80838EC(&entityInfo->sleep.sleepTurns); - if (entityInfo->sleep.sleepTurns == 0) { - SendSleepEndMessage(entity, entity, TRUE, TRUE); + if (entityInfo->sleepClassStatus.status != 0) { + sub_80838EC(&entityInfo->sleepClassStatus.turns); + if (entityInfo->sleepClassStatus.turns == 0) { + EndSleepClassStatus(entity, entity, TRUE, TRUE); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->nonVolatile.nonVolatileStatus != 0) { - sub_80838EC(&entityInfo->nonVolatile.nonVolatileStatusTurns); - if (entityInfo->nonVolatile.nonVolatileStatusTurns == 0) { - SendNonVolatileEndMessage(entity, entity); + if (entityInfo->burnClassStatus.status != 0) { + sub_80838EC(&entityInfo->burnClassStatus.turns); + if (entityInfo->burnClassStatus.turns == 0) { + EndBurnClassStatus(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->immobilize.immobilizeStatus != 0) { - sub_80838EC(&entityInfo->immobilize.immobilizeStatusTurns); - if (entityInfo->immobilize.immobilizeStatusTurns == 0) { + if (entityInfo->frozenClassStatus.status != 0) { + sub_80838EC(&entityInfo->frozenClassStatus.turns); + if (entityInfo->frozenClassStatus.turns == 0) { EndFrozenClassStatus(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->volatileStatus.volatileStatus != 0) { - sub_80838EC(&entityInfo->volatileStatus.volatileStatusTurns); - if (entityInfo->volatileStatus.volatileStatusTurns == 0) { - SendVolatileEndMessage(entity, entity); + if (entityInfo->cringeClassStatus.status != 0) { + sub_80838EC(&entityInfo->cringeClassStatus.turns); + if (entityInfo->cringeClassStatus.turns == 0) { + EndCringeClassStatus(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->protection.protectionStatus != 0) { - sub_80838EC(&entityInfo->protection.protectionStatusTurns); - if (entityInfo->protection.protectionStatusTurns == 0) { - SendProtectionEndMessage(entity, entity); + if (entityInfo->reflectClassStatus.status != 0) { + sub_80838EC(&entityInfo->reflectClassStatus.turns); + if (entityInfo->reflectClassStatus.turns == 0) { + EndReflectClassStatus(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->waitingStruct.waitingStatus != 0) { - sub_80838EC(&entityInfo->waitingStruct.waitingStatusTurns); - if (entityInfo->waitingStruct.waitingStatusTurns == 0) { - SendWaitingEndMessage(entity, entity, 0); + if (entityInfo->curseClassStatus.status != 0) { + sub_80838EC(&entityInfo->curseClassStatus.turns); + if (entityInfo->curseClassStatus.turns == 0) { + EndCurseClassStatus(entity, entity, 0); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->linked.linkedStatus != 0) { - sub_80838EC(&entityInfo->linked.linkedStatusTurns); - if (entityInfo->linked.linkedStatusTurns == 0) { - SendLinkedEndMessage(entity, entity); + if (entityInfo->linked.status != 0) { + sub_80838EC(&entityInfo->linked.turns); + if (entityInfo->linked.turns == 0) { + EndLeechSeedClassStatus(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->moveStatus.moveStatus != 0) { - sub_80838EC(&entityInfo->moveStatus.moveStatusTurns); - if (entityInfo->moveStatus.moveStatusTurns == 0) { + if (entityInfo->sureShotClassStatus.status != 0) { + sub_80838EC(&entityInfo->sureShotClassStatus.turns); + if (entityInfo->sureShotClassStatus.turns == 0) { SendMoveEndMessage(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->transformStatus.transformStatus != 0) { - sub_80838EC(&entityInfo->transformStatus.transformStatusTurns); - if (entityInfo->transformStatus.transformStatusTurns == 0) { + if (entityInfo->invisibleClassStatus.status != 0) { + sub_80838EC(&entityInfo->invisibleClassStatus.turns); + if (entityInfo->invisibleClassStatus.turns == 0) { SendTransformEndMessage(entity, entity); } } if (!EntityExists(entity) || sub_8044B28()) return; - if (entityInfo->eyesightStatus.eyesightStatus != 0) { - sub_80838EC(&entityInfo->eyesightStatus.eyesightStatusTurns); - if (entityInfo->eyesightStatus.eyesightStatusTurns == 0) { + if (entityInfo->blinkerClassStatus.status != 0) { + sub_80838EC(&entityInfo->blinkerClassStatus.turns); + if (entityInfo->blinkerClassStatus.turns == 0) { SendEyesightEndMessage(entity, entity); } } @@ -756,8 +756,8 @@ void TickStatusHeal(Entity *entity) return; if (entityInfo->muzzled.muzzled != 0) { - sub_80838EC(&entityInfo->muzzled.muzzledTurns); - if (entityInfo->muzzled.muzzledTurns == 0) { + sub_80838EC(&entityInfo->muzzled.turns); + if (entityInfo->muzzled.turns == 0) { SendMuzzledEndMessage(entity, entity); } } @@ -893,7 +893,7 @@ bool8 UseAttack(Entity *a0) gUnknown_202F378 = 1; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *mon = gDungeon->activeMonsterPtrs[i]; + Entity *mon = gDungeon->activePokemon[i]; if (EntityExists(mon)) { EntityInfo *monInfo = GetEntInfo(mon); if (monInfo->numMoveTiles == 0) { @@ -935,7 +935,7 @@ bool8 UseAttack(Entity *a0) for (loop = 0; loop < 24 / gUnknown_202F378; loop++) { sub_803E46C(7); for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *mon = gDungeon->activeMonsterPtrs[i]; + Entity *mon = gDungeon->activePokemon[i]; if (EntityExists(mon)) { EntityInfo *monInfo = GetEntInfo(mon); Unk_Entity_x184 *strPtr = &monInfo->unk184[monInfo->notMoving]; @@ -963,7 +963,7 @@ bool8 UseAttack(Entity *a0) } for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *mon = gDungeon->activeMonsterPtrs[i]; + Entity *mon = gDungeon->activePokemon[i]; if (EntityExists(mon)) { EntityInfo *monInfo = GetEntInfo(mon); monInfo->numMoveTiles = 0; @@ -979,7 +979,7 @@ bool8 UseAttack(Entity *a0) for (loop = 0; loop < DUNGEON_MAX_POKEMON; loop++) { Position monPosBefore; EntityInfo *monInfo; - Entity *mon = gDungeon->activeMonsterPtrs[loop]; + Entity *mon = gDungeon->activePokemon[loop]; if (!EntityExists(mon)) continue; diff --git a/src/code_8075708.c b/src/code_8075708.c index b1aa63c29..1ac3a42d5 100644 --- a/src/code_8075708.c +++ b/src/code_8075708.c @@ -30,7 +30,7 @@ void sub_8075680(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if ((EntityExists(entity)) && (info = GetEntInfo(entity), !info->isTeamLeader)) { targetPos = &(info->targetPos); @@ -67,7 +67,7 @@ void sub_8075708(Entity *entity) return; } tile = GetTileAtEntitySafe(entity); - if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->transformStatus.transformStatus != STATUS_MOBILE)) && + if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->invisibleClassStatus.status != STATUS_MOBILE)) && (!HasHeldItem(entity, ITEM_MOBILE_SCARF))) { sub_804AE84(&entity->pos); } diff --git a/src/code_8077274_1.c b/src/code_8077274_1.c index 16538c997..4533c5b5f 100644 --- a/src/code_8077274_1.c +++ b/src/code_8077274_1.c @@ -219,7 +219,7 @@ void MuzzleTarget(Entity *pokemon, Entity *target) SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); if (entityInfo->muzzled.muzzled != TRUE) { entityInfo->muzzled.muzzled = TRUE; - entityInfo->muzzled.muzzledTurns = CalculateStatusTurns(target,gUnknown_80F4F1C, TRUE) + 1; + entityInfo->muzzled.turns = CalculateStatusTurns(target,gUnknown_80F4F1C, TRUE) + 1; nullsub_86(target); TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBF68); } @@ -247,7 +247,7 @@ void TransformStatusTarget(Entity * pokemon, Entity * target) entityInfo = GetEntInfo(target); - if (entityInfo->transformStatus.transformStatus == STATUS_TRANSFORMED) + if (entityInfo->invisibleClassStatus.status == STATUS_TRANSFORMED) TryDisplayDungeonLoggableMessage3(pokemon, target, *gUnknown_80FBF04); else { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], target, 0); @@ -275,8 +275,8 @@ void TransformStatusTarget(Entity * pokemon, Entity * target) else { entityInfo->apparentID = apparentID; target->axObj.spriteFile = sprite; - entityInfo->transformStatus.transformStatus = STATUS_TRANSFORMED; - entityInfo->transformStatus.transformStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EFC, TRUE) + 1; + entityInfo->invisibleClassStatus.status = STATUS_TRANSFORMED; + entityInfo->invisibleClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EFC, TRUE) + 1; sub_806CF98(target); nullsub_87(target); sub_806CCB4(target, sub_806CEBC(target)); @@ -296,13 +296,13 @@ void MobileStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); - if (entityInfo->transformStatus.transformStatus == STATUS_TRANSFORMED) { + if (entityInfo->invisibleClassStatus.status == STATUS_TRANSFORMED) { SendTransformEndMessage(pokemon,target); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->transformStatus.transformStatus != STATUS_MOBILE) { - entityInfo->transformStatus.transformStatus = STATUS_MOBILE; - entityInfo->transformStatus.transformStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F04, FALSE) + 1; + if (entityInfo->invisibleClassStatus.status != STATUS_MOBILE) { + entityInfo->invisibleClassStatus.status = STATUS_MOBILE; + entityInfo->invisibleClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4F04, FALSE) + 1; nullsub_88(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBF28); } @@ -385,9 +385,9 @@ void BlindTarget(Entity *pokemon, Entity *target) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon, target, TRUE))) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->eyesightStatus.eyesightStatus != STATUS_BLINKER) { - entityInfo->eyesightStatus.eyesightStatus = STATUS_BLINKER; - entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F08, TRUE) + 1; + if (entityInfo->blinkerClassStatus.status != STATUS_BLINKER) { + entityInfo->blinkerClassStatus.status = STATUS_BLINKER; + entityInfo->blinkerClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4F08, TRUE) + 1; sub_8041E0C(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB7F4); sub_803E46C(0x31); @@ -412,11 +412,11 @@ void CrossEyeVisionTarget(Entity *pokemon, Entity *target) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->eyesightStatus.eyesightStatus != STATUS_CROSS_EYED) { + if (entityInfo->blinkerClassStatus.status != STATUS_CROSS_EYED) { sub_8041E1C(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB834); - entityInfo->eyesightStatus.eyesightStatus = STATUS_CROSS_EYED; - entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F0C, TRUE) + 1; + entityInfo->blinkerClassStatus.status = STATUS_CROSS_EYED; + entityInfo->blinkerClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4F0C, TRUE) + 1; sub_803F580(0x1); sub_8049ED4(); sub_8040A84(); @@ -438,9 +438,9 @@ void RestoreVisionTarget(Entity *pokemon, Entity *target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->eyesightStatus.eyesightStatus != STATUS_EYEDROPS) { - entityInfo->eyesightStatus.eyesightStatus = STATUS_EYEDROPS; - entityInfo->eyesightStatus.eyesightStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F10, FALSE) + 1; + if (entityInfo->blinkerClassStatus.status != STATUS_EYEDROPS) { + entityInfo->blinkerClassStatus.status = STATUS_EYEDROPS; + entityInfo->blinkerClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4F10, FALSE) + 1; sub_8041E3C(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB880); sub_803E46C(0x31); @@ -623,8 +623,8 @@ void LongTossStatusTarget(Entity * pokemon, Entity * target) entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[1],target,0); - if (entityInfo->itemStatus.itemStatus != STATUS_LONG_TOSS) { - entityInfo->itemStatus.itemStatus = STATUS_LONG_TOSS; + if (entityInfo->longTossClassStatus.status != STATUS_LONG_TOSS) { + entityInfo->longTossClassStatus.status = STATUS_LONG_TOSS; sub_8041EA4(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD20C); } @@ -640,8 +640,8 @@ void PierceStatusTarget(Entity * pokemon, Entity * target) entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[1],target,0); - if (entityInfo->itemStatus.itemStatus != STATUS_PIERCE) { - entityInfo->itemStatus.itemStatus = STATUS_PIERCE; + if (entityInfo->longTossClassStatus.status != STATUS_PIERCE) { + entityInfo->longTossClassStatus.status = STATUS_PIERCE; sub_8041EB4(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD254); } @@ -664,18 +664,18 @@ void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move * if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if ((entityInfo->charging.chargingStatus == newStatus) && (newStatus == STATUS_ENRAGED)) { + if ((entityInfo->bideClassStatus.status == newStatus) && (newStatus == STATUS_ENRAGED)) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FC074); } else { - entityInfo->charging.chargingStatus = newStatus; + entityInfo->bideClassStatus.status = newStatus; for(index = 0; index < MAX_MON_MOVES; index++) { movePtr = &entityInfo->moves.moves[index]; if(movePtr == move) { - entityInfo->charging.chargingStatusMoveIndex = index; + entityInfo->bideClassStatus.moveSlot = index; break; } } @@ -690,11 +690,11 @@ void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move * entityInfo->unkFF = 2; } if (newStatus == STATUS_BIDE) { - entityInfo->charging.chargingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E9C, FALSE) + 1; + entityInfo->bideClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E9C, FALSE) + 1; entityInfo->unkA0 = 0; } if (newStatus == STATUS_ENRAGED) { - entityInfo->charging.chargingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EA0, FALSE) + 1; + entityInfo->bideClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EA0, FALSE) + 1; } sub_8041BD0(target,uVar5); TryDisplayDungeonLoggableMessage3(pokemon,target,message); @@ -723,8 +723,8 @@ void sub_8079764(Entity * pokemon) if (EntityExists(pokemon)) { entityInfo = GetEntInfo(pokemon); - if ((entityInfo->charging.chargingStatus != STATUS_BIDE) && (entityInfo->charging.chargingStatus != STATUS_ENRAGED)) { - entityInfo->charging.chargingStatus = STATUS_NONE; + if ((entityInfo->bideClassStatus.status != STATUS_BIDE) && (entityInfo->bideClassStatus.status != STATUS_ENRAGED)) { + entityInfo->bideClassStatus.status = STATUS_NONE; entityInfo->unk14A = 0; entityInfo->unkFF = 0; } @@ -739,15 +739,15 @@ void CounterStatusTarget(Entity * pokemon, Entity * target, u8 newStatus) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus == newStatus) { + if (entityInfo->reflectClassStatus.status == newStatus) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB10C); } else { nullsub_57(target); - if ((entityInfo->protection.protectionStatus != STATUS_COUNTER) && (entityInfo->protection.protectionStatus != STATUS_MINI_COUNTER)) { - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E98, FALSE) + 1; + if ((entityInfo->reflectClassStatus.status != STATUS_COUNTER) && (entityInfo->reflectClassStatus.status != STATUS_MINI_COUNTER)) { + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E98, FALSE) + 1; } - entityInfo->protection.protectionStatus = newStatus; + entityInfo->reflectClassStatus.status = newStatus; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB0E0); EntityUpdateStatusSprites(target); } @@ -761,9 +761,9 @@ void SafeguardStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_SAFEGUARD) { - entityInfo->protection.protectionStatus = STATUS_SAFEGUARD; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E88, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_SAFEGUARD) { + entityInfo->reflectClassStatus.status = STATUS_SAFEGUARD; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E88, FALSE) + 1; nullsub_58(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB048); } @@ -781,9 +781,9 @@ void MistStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_MIST) { - entityInfo->protection.protectionStatus = STATUS_MIST; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E8C, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_MIST) { + entityInfo->reflectClassStatus.status = STATUS_MIST; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E8C, FALSE) + 1; nullsub_59(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB09C); } @@ -801,9 +801,9 @@ void WishStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_WISH) { - entityInfo->protection.protectionStatus = STATUS_WISH; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EB4, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_WISH) { + entityInfo->reflectClassStatus.status = STATUS_WISH; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EB4, FALSE) + 1; sub_8041B34(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAE1C); } @@ -821,9 +821,9 @@ void MagicCoatStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_MAGIC_COAT) { - entityInfo->protection.protectionStatus = STATUS_MAGIC_COAT; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E90, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_MAGIC_COAT) { + entityInfo->reflectClassStatus.status = STATUS_MAGIC_COAT; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E90, FALSE) + 1; nullsub_60(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAF5C); } @@ -841,9 +841,9 @@ void LightScreenStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_LIGHT_SCREEN) { - entityInfo->protection.protectionStatus = STATUS_LIGHT_SCREEN; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E84, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_LIGHT_SCREEN) { + entityInfo->reflectClassStatus.status = STATUS_LIGHT_SCREEN; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E84, FALSE) + 1; nullsub_61(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB130); } @@ -861,9 +861,9 @@ void ReflectStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_REFLECT) { - entityInfo->protection.protectionStatus = STATUS_REFLECT; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E80, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_REFLECT) { + entityInfo->reflectClassStatus.status = STATUS_REFLECT; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E80, FALSE) + 1; nullsub_62(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB17C); } @@ -881,9 +881,9 @@ void ProtectStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { nullsub_63(target); entityInfo = GetEntInfo(target); - if (entityInfo->protection.protectionStatus != STATUS_PROTECT) { - entityInfo->protection.protectionStatus = STATUS_PROTECT; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4ED4, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_PROTECT) { + entityInfo->reflectClassStatus.status = STATUS_PROTECT; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4ED4, FALSE) + 1; SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB9B0); } @@ -902,9 +902,9 @@ void MirrorCoatStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_MIRROR_COAT) { - entityInfo->protection.protectionStatus = STATUS_MIRROR_COAT; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EE8, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_MIRROR_COAT) { + entityInfo->reflectClassStatus.status = STATUS_MIRROR_COAT; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EE8, FALSE) + 1; nullsub_64(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBAC0); } @@ -922,9 +922,9 @@ void EndureStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_ENDURING) { - entityInfo->protection.protectionStatus = STATUS_ENDURING; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EF8, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_ENDURING) { + entityInfo->reflectClassStatus.status = STATUS_ENDURING; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EF8, FALSE) + 1; nullsub_65(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBBF0); } @@ -942,9 +942,9 @@ void MirrorMoveStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_MIRROR_MOVE) { - entityInfo->protection.protectionStatus = STATUS_MIRROR_MOVE; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F18, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_MIRROR_MOVE) { + entityInfo->reflectClassStatus.status = STATUS_MIRROR_MOVE; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4F18, FALSE) + 1; nullsub_66(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC38); } @@ -967,9 +967,9 @@ void Conversion2StatusTarget(Entity * pokemon, Entity * target) else { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_CONVERSION2) { - entityInfo->protection.protectionStatus = STATUS_CONVERSION2; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F20, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_CONVERSION2) { + entityInfo->reflectClassStatus.status = STATUS_CONVERSION2; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4F20, FALSE) + 1; nullsub_67(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBC7C); } @@ -988,9 +988,9 @@ void VitalThrowStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->protection.protectionStatus != STATUS_VITAL_THROW) { - entityInfo->protection.protectionStatus = STATUS_VITAL_THROW; - entityInfo->protection.protectionStatusTurns = CalculateStatusTurns(target, gUnknown_80F4F24, FALSE) + 1; + if (entityInfo->reflectClassStatus.status != STATUS_VITAL_THROW) { + entityInfo->reflectClassStatus.status = STATUS_VITAL_THROW; + entityInfo->reflectClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4F24, FALSE) + 1; nullsub_68(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBCC8); } @@ -1066,15 +1066,15 @@ void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4) entityInfo = GetEntInfo(target); if (HasNegativeStatus(target)) { bVar8 = TRUE; - SendSleepEndMessage(pokemon,target,0,0); + EndSleepClassStatus(pokemon,target,0,0); if (!EntityExists(target)) { return; } - SendNonVolatileEndMessage(pokemon,target); + EndBurnClassStatus(pokemon,target); EndFrozenClassStatus(pokemon,target); - SendVolatileEndMessage(pokemon,target); - SendWaitingEndMessage(pokemon,target,0); - SendLinkedEndMessage(pokemon,target); + EndCringeClassStatus(pokemon,target); + EndCurseClassStatus(pokemon,target,0); + EndLeechSeedClassStatus(pokemon,target); SendMoveEndMessage(pokemon,target); SendEyesightEndMessage(pokemon,target); SendMuzzledEndMessage(pokemon,target); @@ -1147,7 +1147,7 @@ void sub_807A0CC(Entity * pokemon, Entity * target) }; } -void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8 param_4) +void EndSleepClassStatus(Entity * pokemon, Entity * target, bool8 param_3, bool8 param_4) { EntityInfo *entityInfo; bool8 isAsleep; @@ -1158,7 +1158,7 @@ void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8 } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->sleep.sleep) { + switch(entityInfo->sleepClassStatus.status) { case STATUS_NONE: case 6: break; @@ -1180,26 +1180,26 @@ void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8 isAsleep = TRUE; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA710); HealTargetHP(pokemon,target,gUnknown_80F4F7A, 0, FALSE); - entityInfo->sleep.sleep = 0; + entityInfo->sleepClassStatus.status = 0; sub_8079F20(pokemon,target,1,1); break; case STATUS_YAWNING: if (param_3) { - entityInfo->sleep.sleep = STATUS_NONE; + entityInfo->sleepClassStatus.status = STATUS_NONE; sub_8075C58(pokemon,target,CalculateStatusTurns(target, gUnknown_80F4F2C, TRUE) + 1, TRUE); return; } TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA734); break; } - entityInfo->sleep.sleep = STATUS_NONE; + entityInfo->sleepClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); if (isAsleep) { sub_806CE68(target,8); } } -void SendNonVolatileEndMessage(Entity * pokemon, Entity * target) +void EndBurnClassStatus(Entity * pokemon, Entity * target) { EntityInfo *entityInfo; @@ -1208,7 +1208,7 @@ void SendNonVolatileEndMessage(Entity * pokemon, Entity * target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->nonVolatile.nonVolatileStatus) { + switch(entityInfo->burnClassStatus.status) { case STATUS_NONE: case 5: break; @@ -1224,7 +1224,7 @@ void SendNonVolatileEndMessage(Entity * pokemon, Entity * target) break; } - entityInfo->nonVolatile.nonVolatileStatus = STATUS_NONE; + entityInfo->burnClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); } @@ -1239,7 +1239,7 @@ void EndFrozenClassStatus(Entity * pokemon, Entity *target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->immobilize.immobilizeStatus) { + switch(entityInfo->frozenClassStatus.status) { case STATUS_NONE: case 8: break; @@ -1263,14 +1263,14 @@ void EndFrozenClassStatus(Entity * pokemon, Entity *target) TryDisplayDungeonLoggableMessage3(pokemon,target, *gPtrMonNoLongerPetrifiedMessage); break; } - entityInfo->immobilize.immobilizeStatus = STATUS_NONE; + entityInfo->frozenClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); if (isFrozen) { sub_8042A74(target); } } -void SendVolatileEndMessage(Entity * pokemon, Entity *target) +void EndCringeClassStatus(Entity * pokemon, Entity *target) { EntityInfo *entityInfo; @@ -1279,7 +1279,7 @@ void SendVolatileEndMessage(Entity * pokemon, Entity *target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->volatileStatus.volatileStatus) { + switch(entityInfo->cringeClassStatus.status) { case STATUS_NONE: case 8: break; @@ -1305,12 +1305,12 @@ void SendVolatileEndMessage(Entity * pokemon, Entity *target) TryDisplayDungeonLoggableMessage3(pokemon,target, *gPtrMonNoLongerCringingMessage); break; } - entityInfo->volatileStatus.volatileStatus = STATUS_NONE; + entityInfo->cringeClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); CalcSpeedStage(target); } -void SendProtectionEndMessage(Entity * pokemon, Entity *target) +void EndReflectClassStatus(Entity * pokemon, Entity *target) { EntityInfo *entityInfo; @@ -1319,7 +1319,7 @@ void SendProtectionEndMessage(Entity * pokemon, Entity *target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->protection.protectionStatus) { + switch(entityInfo->reflectClassStatus.status) { case STATUS_NONE: case 0xF: break; @@ -1364,11 +1364,11 @@ void SendProtectionEndMessage(Entity * pokemon, Entity *target) LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FAB40); break; } - entityInfo->protection.protectionStatus = STATUS_NONE; + entityInfo->reflectClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); } -void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus) +void EndCurseClassStatus(Entity * pokemon, Entity * target, u8 curseClassStatus) { u32 uVar3; EntityInfo *entityInfo; @@ -1376,46 +1376,46 @@ void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->waitingStruct.waitingStatus) { + switch(entityInfo->curseClassStatus.status) { case STATUS_NONE: case 4: break; case STATUS_CURSED: - if (waitingStatus != STATUS_CURSED) { + if (curseClassStatus != STATUS_CURSED) { LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FA7BC); } break; case STATUS_SNATCH: - if (waitingStatus != STATUS_SNATCH) { + if (curseClassStatus != STATUS_SNATCH) { LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FA7DC); } gDungeon->snatchPokemon = NULL; gDungeon->unk17B3C = 0; break; case STATUS_DECOY: - entityInfo->waitingStruct.waitingStatus = STATUS_NONE; + entityInfo->curseClassStatus.status = STATUS_NONE; uVar3 = sub_806CEBC(target); sub_806CCB4(target,uVar3); gDungeon->decoyIsActive = FALSE; - if (waitingStatus != STATUS_DECOY) { + if (curseClassStatus != STATUS_DECOY) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FA9A0); } break; } - entityInfo->waitingStruct.waitingStatus = STATUS_NONE; + entityInfo->curseClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); } } -void SendLinkedEndMessage(Entity * pokemon, Entity * target) +void EndLeechSeedClassStatus(Entity * pokemon, Entity * target) { EntityInfo *entityInfo; if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->linked.linkedStatus) + switch(entityInfo->linked.status) { case STATUS_NONE: break; @@ -1426,7 +1426,7 @@ void SendLinkedEndMessage(Entity * pokemon, Entity * target) LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FAA8C); break; } - entityInfo->linked.linkedStatus = STATUS_NONE; + entityInfo->linked.status = STATUS_NONE; entityInfo->linked.unkD8 = 0xff; EntityUpdateStatusSprites(target); } @@ -1441,7 +1441,7 @@ void SendMoveEndMessage(Entity * pokemon, Entity * target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->moveStatus.moveStatus) { + switch(entityInfo->sureShotClassStatus.status) { case STATUS_NONE: case 5: break; @@ -1458,7 +1458,7 @@ void SendMoveEndMessage(Entity * pokemon, Entity * target) LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FA95C); break; } - entityInfo->moveStatus.moveStatus = STATUS_NONE; + entityInfo->sureShotClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); } @@ -1474,7 +1474,7 @@ void SendTransformEndMessage(Entity * pokemon, Entity *target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->transformStatus.transformStatus) { + switch(entityInfo->invisibleClassStatus.status) { case STATUS_NONE: case 4: break; @@ -1493,7 +1493,7 @@ void SendTransformEndMessage(Entity * pokemon, Entity *target) LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FAB6C); break; } - entityInfo->transformStatus.transformStatus = STATUS_NONE; + entityInfo->invisibleClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); if (isInvisible) { sub_807EC28(TRUE); @@ -1509,7 +1509,7 @@ void SendEyesightEndMessage(Entity * pokemon,Entity * target) } entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - switch(entityInfo->eyesightStatus.eyesightStatus) { + switch(entityInfo->blinkerClassStatus.status) { case STATUS_NONE: case 4: break; @@ -1523,7 +1523,7 @@ void SendEyesightEndMessage(Entity * pokemon,Entity * target) LogMessageByIdWithPopupCheckUser(target,*gUnknown_80FAA48); break; } - entityInfo->eyesightStatus.eyesightStatus = STATUS_NONE; + entityInfo->blinkerClassStatus.status = STATUS_NONE; EntityUpdateStatusSprites(target); if (entityInfo->isTeamLeader) { sub_803E46C(0x31); @@ -1558,12 +1558,12 @@ bool8 TrySendImmobilizeSleepEndMsg(Entity * pokemon, Entity * target) EntityInfo *entityInfo = GetEntInfo(target); bool32 msg = FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED) { + if (entityInfo->frozenClassStatus.status == STATUS_PETRIFIED) { EndFrozenClassStatus(pokemon, target); msg = TRUE; } - if (entityInfo->sleep.sleep == STATUS_SLEEP && entityInfo->sleep.sleepTurns == 0x7f) { - SendSleepEndMessage(pokemon,target, FALSE, TRUE); + if (entityInfo->sleepClassStatus.status == STATUS_SLEEP && entityInfo->sleepClassStatus.turns == 0x7f) { + EndSleepClassStatus(pokemon,target, FALSE, TRUE); msg = TRUE; } return msg; @@ -1574,8 +1574,8 @@ void WakeUpPokemon(Entity * pokemon) EntityInfo *entityInfo; entityInfo = GetEntInfo(pokemon); - entityInfo->sleep.sleep = STATUS_NONE; - entityInfo->sleep.sleepTurns = 0; + entityInfo->sleepClassStatus.status = STATUS_NONE; + entityInfo->sleepClassStatus.turns = 0; sub_806A898(pokemon, 1, 1); EntityUpdateStatusSprites(pokemon); } @@ -1586,10 +1586,10 @@ void SendThawedMessage(Entity *pokemon, Entity *target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); - if (entityInfo->immobilize.immobilizeStatus == STATUS_FROZEN) { - entityInfo->immobilize.immobilizeStatus = STATUS_NONE; - entityInfo->immobilize.immobilizeStatusTurns = 0; - entityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + if (entityInfo->frozenClassStatus.status == STATUS_FROZEN) { + entityInfo->frozenClassStatus.status = STATUS_NONE; + entityInfo->frozenClassStatus.turns = 0; + entityInfo->frozenClassStatus.damageCountdown = 0; SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA8BC); // $m0 thawed out! EntityUpdateStatusSprites(target); @@ -1614,8 +1614,8 @@ void sub_807AA30(void) { wildEntity = gDungeon->wildPokemon[wildIndex]; if (EntityExists(wildEntity) && - (entityInfo = GetEntInfo(wildEntity), entityInfo->sleep.sleep == STATUS_SLEEP) && - (entityInfo->sleep.sleepTurns == 0x7F)) { + (entityInfo = GetEntInfo(wildEntity), entityInfo->sleepClassStatus.status == STATUS_SLEEP) && + (entityInfo->sleepClassStatus.turns == 0x7F)) { adjacentCheck = FALSE; forceWakeup = FALSE; room = GetEntityRoom(wildEntity); diff --git a/src/code_8083288.c b/src/code_8083288.c index 25277b261..5bfdfa0dd 100644 --- a/src/code_8083288.c +++ b/src/code_8083288.c @@ -29,7 +29,7 @@ void sub_8082B40(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { info = GetEntInfo(entity); entity->axObj.spriteFile = GetSpriteData(info->apparentID); @@ -158,69 +158,69 @@ void sub_8082D28(unkStruct_8094924 *param_1, u8 *param_2) sub_8082FE0(param_1, param_2, 3); } -void sub_8082D34(unkStruct_8094924 *param_1, Sleep *sleep) +void sub_8082D34(unkStruct_8094924 *param_1, SleepClassStatus *sleepClassStatus) { - sub_8082FE0(param_1, &sleep->sleep, 1); - sleep->sleepTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &sleepClassStatus->status, 1); + sleepClassStatus->turns = sub_8083188(param_1); } -void sub_8082D50(unkStruct_8094924 *param_1, NonVolatile *nonvoltaile) +void sub_8082D50(unkStruct_8094924 *param_1, BurnClassStatus *burnClassStatus) { - sub_8082FE0(param_1, &nonvoltaile->nonVolatileStatus, 1); - nonvoltaile->nonVolatileStatusTurns = sub_8083188(param_1); - nonvoltaile->nonVolatileStatusDamageCountdown = sub_8083188(param_1); - nonvoltaile->unk4 = sub_8083188(param_1); + sub_8082FE0(param_1, &burnClassStatus->status, 1); + burnClassStatus->turns = sub_8083188(param_1); + burnClassStatus->damageCountdown = sub_8083188(param_1); + burnClassStatus->unk4 = sub_8083188(param_1); } -void sub_8082D7C(unkStruct_8094924 *param_1, Immobilize *immobilze) +void sub_8082D7C(unkStruct_8094924 *param_1, FrozenClassStatus *frozenClassStatus) { - sub_8082FE0(param_1, &immobilze->immobilizeStatus, 1); - immobilze->immobilizeStatusTurns = sub_8083188(param_1); - immobilze->immobilizeStatusDamageCountdown = sub_8083188(param_1); - immobilze->unk4 = sub_80831A0(param_1); + sub_8082FE0(param_1, &frozenClassStatus->status, 1); + frozenClassStatus->turns = sub_8083188(param_1); + frozenClassStatus->damageCountdown = sub_8083188(param_1); + frozenClassStatus->unk4 = sub_80831A0(param_1); } -void sub_8082DA8(unkStruct_8094924 *param_1, Volatile *volatileStatus) +void sub_8082DA8(unkStruct_8094924 *param_1, CringeClassStatus *cringeClassStatus) { - sub_8082FE0(param_1, &volatileStatus->volatileStatus, 1); - volatileStatus->volatileStatusTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &cringeClassStatus->status, 1); + cringeClassStatus->turns = sub_8083188(param_1); } -void sub_8082DC4(unkStruct_8094924 *param_1, Charging *charging) +void sub_8082DC4(unkStruct_8094924 *param_1, BideClassStatus *bideClassStatus) { - sub_8082FE0(param_1, &charging->chargingStatus, 1); - charging->chargingStatusTurns = sub_8083188(param_1); - charging->chargingStatusMoveIndex = sub_8083188(param_1); + sub_8082FE0(param_1, &bideClassStatus->status, 1); + bideClassStatus->turns = sub_8083188(param_1); + bideClassStatus->moveSlot = sub_8083188(param_1); } -void sub_8082DE8(unkStruct_8094924 *param_1, Protection *protect) +void sub_8082DE8(unkStruct_8094924 *param_1, ReflectClassStatus *reflectClassStatus) { - sub_8082FE0(param_1, &protect->protectionStatus, 1); - protect->protectionStatusTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &reflectClassStatus->status, 1); + reflectClassStatus->turns = sub_8083188(param_1); } -void sub_8082E04(unkStruct_8094924 *param_1, Waiting *waiting) +void sub_8082E04(unkStruct_8094924 *param_1, CurseClassStatus *curseClassStatus) { - sub_8082FE0(param_1, &waiting->waitingStatus, 1); - waiting->decoyApplierNonTeamMemberFlag = sub_80831DC(param_1); - waiting->unkCA = sub_80831DC(param_1); - waiting->waitingStatusTurns = sub_8083188(param_1); - waiting->curseDamageCountdown = sub_8083188(param_1); + sub_8082FE0(param_1, &curseClassStatus->status, 1); + curseClassStatus->applierNonTeamMemberFlag = sub_80831DC(param_1); + curseClassStatus->unk2 = sub_80831DC(param_1); + curseClassStatus->turns = sub_8083188(param_1); + curseClassStatus->damageCountdown = sub_8083188(param_1); } -void sub_8082E38(unkStruct_8094924 *param_1, Linked *linked) +void sub_8082E38(unkStruct_8094924 *param_1, LeechSeedClassStatus *leechSeedClassStatus) { - sub_8082FE0(param_1, &linked->linkedStatus, 1); - linked->unkD4 = sub_80831A0(param_1); - linked->unkD8 = sub_8083188(param_1); - linked->linkedStatusTurns = sub_8083188(param_1); - linked->linkedStatusDamageCountdown = sub_8083188(param_1); + sub_8082FE0(param_1, &leechSeedClassStatus->status, 1); + leechSeedClassStatus->unkD4 = sub_80831A0(param_1); + leechSeedClassStatus->unkD8 = sub_8083188(param_1); + leechSeedClassStatus->turns = sub_8083188(param_1); + leechSeedClassStatus->damageCountdown = sub_8083188(param_1); } -void sub_8082E6C(unkStruct_8094924 *param_1, MoveStatus *moveStatus) +void sub_8082E6C(unkStruct_8094924 *param_1, SureShotClassStatus *sureShotClassStatus) { - sub_8082FE0(param_1, &moveStatus->moveStatus, 1); - moveStatus->moveStatusTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &sureShotClassStatus->status, 1); + sureShotClassStatus->turns = sub_8083188(param_1); } void sub_8082E88(unkStruct_8094924 *param_1, u8 *param_2, s32 size) @@ -228,22 +228,22 @@ void sub_8082E88(unkStruct_8094924 *param_1, u8 *param_2, s32 size) sub_8082FE0(param_1, param_2, 1); } -void sub_8082E94(unkStruct_8094924 *param_1, TransformStatus *transform) +void sub_8082E94(unkStruct_8094924 *param_1, InvisibleClassStatus *invisibleClassStatus) { - sub_8082FE0(param_1, &transform->transformStatus, 1); - transform->transformStatusTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &invisibleClassStatus->status, 1); + invisibleClassStatus->turns = sub_8083188(param_1); } -void sub_8082EB0(unkStruct_8094924 *param_1, EyesightStatus *eyesight) +void sub_8082EB0(unkStruct_8094924 *param_1, BlinkerClassStatus *blinkerClassStatus) { - sub_8082FE0(param_1, &eyesight->eyesightStatus, 1); - eyesight->eyesightStatusTurns = sub_8083188(param_1); + sub_8082FE0(param_1, &blinkerClassStatus->status, 1); + blinkerClassStatus->turns = sub_8083188(param_1); } void sub_8082ECC(unkStruct_8094924 *param_1, Muzzled *muzzle) { sub_8082FE0(param_1, (u8 *)&muzzle->muzzled, 1); - muzzle->muzzledTurns = sub_8083188(param_1); + muzzle->turns = sub_8083188(param_1); } void RestoreDungeonPokemonMove(unkStruct_8094924 *param_1, Move *move) diff --git a/src/dungeon_action.c b/src/dungeon_action.c index 7a4a7d439..1d5debc7a 100644 --- a/src/dungeon_action.c +++ b/src/dungeon_action.c @@ -118,7 +118,7 @@ void TrySpawnMonsterAndActivatePlusMinus(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { entityInfo = GetEntInfo(entity); entityInfo->attacking = FALSE; @@ -153,7 +153,7 @@ void sub_8044AB4(void) if (gSpeedTurns[1][gDungeon->fractionalTurn + 1] != 0) { for (index = 0; index < DUNGEON_MAX_POKEMON; index++) { - if (EntityExists(gDungeon->activeMonsterPtrs[index])) { + if (EntityExists(gDungeon->activePokemon[index])) { UseAttack(0); break; } diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c index 80684cf92..aed414a2b 100644 --- a/src/dungeon_ai.c +++ b/src/dungeon_ai.c @@ -74,7 +74,7 @@ void RunMonsterAI(Entity *pokemon, u32 unused) EntityInfo *pokemonInfo = GetEntInfo(pokemon); if (pokemonInfo->flags & MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY) { - if (pokemonInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED) + if (pokemonInfo->frozenClassStatus.status == STATUS_PETRIFIED) { EndFrozenClassStatus(pokemon, pokemon); } @@ -107,14 +107,14 @@ void RunMonsterAI(Entity *pokemon, u32 unused) Entity *target; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - target = gDungeon->activeMonsterPtrs[i]; + target = gDungeon->activePokemon[i]; if (EntityExists(target) && - GetEntInfo(target)->waitingStruct.waitingStatus == STATUS_DECOY && + GetEntInfo(target)->curseClassStatus.status == STATUS_DECOY && CanSeeTarget(pokemon, target)) { - bool8 decoyApplierNonTeamMemberFlag = GetEntInfo(target)->waitingStruct.decoyApplierNonTeamMemberFlag; + bool8 applierNonTeamMemberFlag = GetEntInfo(target)->curseClassStatus.applierNonTeamMemberFlag; u8 decoyAITracker = DECOY_AI_TEAM; - if (decoyApplierNonTeamMemberFlag) + if (applierNonTeamMemberFlag) { decoyAITracker = DECOY_AI_WILD; } @@ -143,7 +143,7 @@ void RunMonsterAI(Entity *pokemon, u32 unused) { return; } - if (pokemonInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) + if (pokemonInfo->cringeClassStatus.status == STATUS_CONFUSED) { SetActionPassTurnOrWalk(&pokemonInfo->action, pokemonInfo->id); } @@ -158,7 +158,7 @@ void RunMonsterAI(Entity *pokemon, u32 unused) } else { - if (pokemonInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) + if (pokemonInfo->cringeClassStatus.status == STATUS_CONFUSED) { SetActionPassTurnOrWalk(&pokemonInfo->action, pokemonInfo->id); } diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index 5fc15e1f1..d56aeb209 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -84,17 +84,17 @@ void ChooseAIMove(Entity *pokemon) if (CannotAttack(pokemon, FALSE) || ShouldMonsterRunAwayAndShowEffect(pokemon, TRUE) || HasTactic(pokemon, TACTIC_KEEP_YOUR_DISTANCE) || - (pokemonInfo->volatileStatus.volatileStatus == STATUS_CONFUSED && DungeonRandOutcome(gConfusedAttackChance))) + (pokemonInfo->cringeClassStatus.status == STATUS_CONFUSED && DungeonRandOutcome(gConfusedAttackChance))) { return; } - if (pokemonInfo->charging.chargingStatus != STATUS_NONE) + if (pokemonInfo->bideClassStatus.status != STATUS_NONE) { for (i = 0; i < MAX_MON_MOVES; i++) { if (pokemonInfo->moves.moves[i].moveFlags & MOVE_FLAG_EXISTS && - MoveMatchesChargingStatus(pokemon, &pokemonInfo->moves.moves[i]) && - pokemonInfo->charging.chargingStatusMoveIndex == i) + MoveMatchesBideClassStatus(pokemon, &pokemonInfo->moves.moves[i]) && + pokemonInfo->bideClassStatus.moveSlot == i) { s32 chosenMoveIndex; SetMonsterActionFields(&pokemonInfo->action, ACTION_USE_MOVE_AI); @@ -206,7 +206,7 @@ void ChooseAIMove(Entity *pokemon) move->moveFlags & MOVE_FLAG_ENABLED_FOR_AI) { aiPossibleMove[i].canBeUsed = TRUE; - if (pokemonInfo->charging.chargingStatus == chargeStatus) + if (pokemonInfo->bideClassStatus.status == chargeStatus) { if (move->id == MOVE_CHARGE) { @@ -235,10 +235,10 @@ void ChooseAIMove(Entity *pokemon) } } aiPossibleMove[REGULAR_ATTACK_INDEX].weight = 0; - if (!IQSkillIsEnabled(pokemon, IQ_EXCLUSIVE_MOVE_USER) && pokemonInfo->charging.chargingStatus != chargeStatus) + if (!IQSkillIsEnabled(pokemon, IQ_EXCLUSIVE_MOVE_USER) && pokemonInfo->bideClassStatus.status != chargeStatus) { aiPossibleMove[REGULAR_ATTACK_INDEX].canBeUsed = TRUE; - if (pokemonInfo->charging.chargingStatus == chargeStatus) + if (pokemonInfo->bideClassStatus.status == chargeStatus) { // Never reached? Charge already skips the regular attack in the outer block. aiPossibleMove[REGULAR_ATTACK_INDEX].weight = 1; @@ -370,7 +370,7 @@ s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move targetingFlags = GetMoveTargetAndRangeForPokemon(pokemon, move, TRUE); hasStatusChecker = IQSkillIsEnabled(pokemon, IQ_STATUS_CHECKER); aiPossibleMove->canBeUsed = FALSE; - if ((pokemonInfo->volatileStatus.volatileStatus == STATUS_TAUNTED && !MoveIgnoresTaunted(move)) || + if ((pokemonInfo->cringeClassStatus.status == STATUS_TAUNTED && !MoveIgnoresTaunted(move)) || (hasStatusChecker && !CanUseOnSelfWithStatusChecker(pokemon, move))) { return 1; @@ -380,7 +380,7 @@ s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move rangeTargetingFlags == TARGETING_FLAG_TARGET_FRONTAL_CONE || rangeTargetingFlags == TARGETING_FLAG_TARGET_AROUND) { - if (pokemonInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER) + if (pokemonInfo->blinkerClassStatus.status == STATUS_BLINKER) { u8 direction = pokemonInfo->action.direction; i = direction; // Fixes a regswap. @@ -422,7 +422,7 @@ s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *target = gDungeon->activeMonsterPtrs[i]; + Entity *target = gDungeon->activePokemon[i]; if (EntityExists(target) && CanSeeTarget(pokemon, target)) { numPotentialTargets = TryAddTargetToAITargetList(numPotentialTargets, targetingFlags, pokemon, target, move, hasStatusChecker); @@ -467,7 +467,7 @@ s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move } for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *target = gDungeon->activeMonsterPtrs[i]; + Entity *target = gDungeon->activePokemon[i]; if (EntityExists(target) && pokemon != target) { s32 direction = GetDirectionTowardsPosition(&pokemon->pos, &target->pos); @@ -491,7 +491,7 @@ s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *target = gDungeon->activeMonsterPtrs[i]; + Entity *target = gDungeon->activePokemon[i]; if (EntityExists(target)) { numPotentialTargets = TryAddTargetToAITargetList(numPotentialTargets, targetingFlags, pokemon, target, move, hasStatusChecker); @@ -805,7 +805,7 @@ bool8 TargetRegularAttack(Entity *pokemon, u32 *targetDir, bool8 checkPetrified) EntityInfo *pokemonInfo = GetEntInfo(pokemon); s32 numPotentialTargets = 0; s32 direction = pokemonInfo->action.direction; - s32 faceTurnLimit = pokemonInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER ? 1 : 8; + s32 faceTurnLimit = pokemonInfo->blinkerClassStatus.status == STATUS_BLINKER ? 1 : 8; s32 i; s32 potentialAttackTargetDirections[NUM_DIRECTIONS]; s32 potentialAttackTargetWeights[NUM_DIRECTIONS]; @@ -821,7 +821,7 @@ bool8 TargetRegularAttack(Entity *pokemon, u32 *targetDir, bool8 checkPetrified) GetEntityType(target) == ENTITY_MONSTER && CanAttackInDirection(pokemon, direction) && GetTreatmentBetweenMonsters(pokemon, target, FALSE, checkPetrified) == TREATMENT_TREAT_AS_ENEMY && - (!hasStatusChecker || GetEntInfo(target)->immobilize.immobilizeStatus != STATUS_FROZEN)) + (!hasStatusChecker || GetEntInfo(target)->frozenClassStatus.status != STATUS_FROZEN)) { potentialAttackTargetDirections[numPotentialTargets] = direction; potentialAttackTargetWeights[numPotentialTargets] = WeightMove(pokemon, TARGETING_FLAG_TARGET_OTHER, target, TYPE_NONE); @@ -1013,19 +1013,19 @@ void HandleUseOrbAction(Entity *pokemon) } } - if (entityInfo->volatileStatus.volatileStatus == 1) { + if (entityInfo->cringeClassStatus.status == 1) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], pokemon, 0); LogMessageByIdWithPopupCheckUser(pokemon, *gUnknown_80FC714); r4 = FALSE; r8 = FALSE; } - else if (entityInfo->volatileStatus.volatileStatus == 7) { + else if (entityInfo->cringeClassStatus.status == 7) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], pokemon, 0); LogMessageByIdWithPopupCheckUser(pokemon, *gUnknown_80FC718); r4 = FALSE; r8 = FALSE; } - else if (entityInfo->nonVolatile.nonVolatileStatus == 4) + else if (entityInfo->burnClassStatus.status == 4) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], pokemon, 0); LogMessageByIdWithPopupCheckUser(pokemon, *gUnknown_80FC6A8); diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c index 7c2a404fe..5ee42ce9f 100644 --- a/src/dungeon_ai_item_weight.c +++ b/src/dungeon_ai_item_weight.c @@ -202,7 +202,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_ALLURE_SEED: - if (pokemonInfo->eyesightStatus.eyesightStatus != STATUS_CROSS_EYED) + if (pokemonInfo->blinkerClassStatus.status != STATUS_CROSS_EYED) { if (IsAdjacentToEnemy(targetPokemon)) { @@ -219,7 +219,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_CHERI_BERRY: - if (pokemonInfo->nonVolatile.nonVolatileStatus != STATUS_PARALYSIS) + if (pokemonInfo->burnClassStatus.status != STATUS_PARALYSIS) { return 0; } @@ -233,7 +233,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_TOTTER_SEED: - if (pokemonInfo->volatileStatus.volatileStatus != STATUS_CONFUSED) + if (pokemonInfo->cringeClassStatus.status != STATUS_CONFUSED) { if (IsAdjacentToEnemy(targetPokemon)) { @@ -250,8 +250,8 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_PECHA_BERRY: - if (pokemonInfo->nonVolatile.nonVolatileStatus != STATUS_POISONED && - pokemonInfo->nonVolatile.nonVolatileStatus != STATUS_BADLY_POISONED) + if (pokemonInfo->burnClassStatus.status != STATUS_POISONED && + pokemonInfo->burnClassStatus.status != STATUS_BADLY_POISONED) { return 0; } @@ -265,7 +265,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_BLINKER_SEED: - if (pokemonInfo->eyesightStatus.eyesightStatus != STATUS_BLINKER) + if (pokemonInfo->blinkerClassStatus.status != STATUS_BLINKER) { if (IsAdjacentToEnemy(targetPokemon)) { @@ -316,9 +316,9 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla itemWeight = 40; break; case ITEM_SLEEP_SEED: - if (pokemonInfo->sleep.sleep != STATUS_SLEEP && - pokemonInfo->sleep.sleep != STATUS_NAPPING && - pokemonInfo->sleep.sleep != STATUS_NIGHTMARE) + if (pokemonInfo->sleepClassStatus.status != STATUS_SLEEP && + pokemonInfo->sleepClassStatus.status != STATUS_NAPPING && + pokemonInfo->sleepClassStatus.status != STATUS_NIGHTMARE) { if (IsAdjacentToEnemy(targetPokemon)) { @@ -335,7 +335,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_CHESTO_BERRY: - if (pokemonInfo->sleep.sleep != STATUS_SLEEPLESS) + if (pokemonInfo->sleepClassStatus.status != STATUS_SLEEPLESS) { itemWeight = 5; } @@ -358,7 +358,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla itemWeight = 80; break; case ITEM_RAWST_BERRY: - if (pokemonInfo->nonVolatile.nonVolatileStatus == STATUS_BURN) + if (pokemonInfo->burnClassStatus.status == STATUS_BURN) { return 50; } @@ -388,7 +388,7 @@ u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFla } break; case ITEM_STUN_SEED: - if (pokemonInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED) + if (pokemonInfo->frozenClassStatus.status == STATUS_PETRIFIED) { return 0; } diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index 974d90f1a..948b357fc 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -49,7 +49,7 @@ void sub_807360C(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if(EntityExists(entity)) { if(GetEntInfo(entity)->unk152 != 0) @@ -281,7 +281,7 @@ void GetPossibleAIThrownItemDirections(Entity *pokemon, s32 thrownAIFlag, Item * } for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *targetPokemon = gDungeon->activeMonsterPtrs[i]; + Entity *targetPokemon = gDungeon->activePokemon[i]; if (EntityExists(targetPokemon) && pokemon != targetPokemon) { s32 targetingFlags; @@ -318,7 +318,7 @@ void GetPossibleAIArcItemTargets(Entity *pokemon, Item *item, Position potential gAIThrowItemActionChoiceCount = 0; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *targetPokemon = gDungeon->activeMonsterPtrs[i]; + Entity *targetPokemon = gDungeon->activePokemon[i]; if (EntityExists(targetPokemon) && pokemon != targetPokemon && CanSeeTarget(pokemon, targetPokemon) && GetTreatmentBetweenMonsters(pokemon, targetPokemon, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY) { @@ -366,7 +366,7 @@ void TargetThrownItem(Entity *pokemon, Entity *targetPokemon, Item *item, s32 ta distanceX = distanceX < 0 ? -distanceX : distanceX; distanceY = pokemon->pos.y - targetPokemon->pos.y; distanceY = distanceY < 0 ? -distanceY : distanceY; - if (GetEntInfo(pokemon)->itemStatus.itemStatus == STATUS_NONE) + if (GetEntInfo(pokemon)->longTossClassStatus.status == STATUS_NONE) { s32 distance = distanceY < distanceX ? distanceX : distanceY; if (distance > RANGED_ATTACK_RANGE) diff --git a/src/dungeon_ai_leader.c b/src/dungeon_ai_leader.c index 15d34b63c..10024ad29 100644 --- a/src/dungeon_ai_leader.c +++ b/src/dungeon_ai_leader.c @@ -96,7 +96,7 @@ Entity* GetLeaderIfVisible(Entity *pokemon) { Entity *leader = GetLeader(); if (leader && - GetEntInfo(leader)->waitingStruct.waitingStatus != STATUS_DECOY && + GetEntInfo(leader)->curseClassStatus.status != STATUS_DECOY && GetTreatmentBetweenMonsters(pokemon, leader, FALSE, FALSE) == TREATMENT_TREAT_AS_ALLY && CanTargetEntity(pokemon, leader)) { @@ -169,23 +169,23 @@ bool8 sub_8072CF4(Entity *entity) gUnknown_202F222 = 0; switch(info->action.action) { case ACTION_WALK: - if(info->immobilize.immobilizeStatus == STATUS_SHADOW_HOLD) + if(info->frozenClassStatus.status == STATUS_SHADOW_HOLD) { goto _282; } - else if(info->immobilize.immobilizeStatus == STATUS_CONSTRICTION) + else if(info->frozenClassStatus.status == STATUS_CONSTRICTION) { goto _282; } - else if(info->immobilize.immobilizeStatus == STATUS_INGRAIN) + else if(info->frozenClassStatus.status == STATUS_INGRAIN) { goto _282; } - else if(info->immobilize.immobilizeStatus == STATUS_WRAP) + else if(info->frozenClassStatus.status == STATUS_WRAP) { goto _282; } - else if(info->immobilize.immobilizeStatus == STATUS_WRAPPED) + else if(info->frozenClassStatus.status == STATUS_WRAPPED) { _282: info->action.action = ACTION_NOTHING; @@ -210,7 +210,7 @@ bool8 sub_8072CF4(Entity *entity) pos.y = entity->pos.y; sub_80694C0(entity,pos1.x,pos1.y,0); sub_8074FB0(entity,(info->action).direction,&pos); - if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->transformStatus.transformStatus != STATUS_MOBILE)) && + if (((IQSkillIsEnabled(entity, IQ_SUPER_MOBILE)) && (info->invisibleClassStatus.status != STATUS_MOBILE)) && (!HasHeldItem(entity,ITEM_MOBILE_SCARF))) { sub_804AE08(&entity->pos); } diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index c4d14e44b..ea641c4e9 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -150,7 +150,7 @@ bool8 ChooseTargetPosition(Entity *pokemon) s32 i; if (gDungeon->decoyIsActive) { - possibleTargets = gDungeon->activeMonsterPtrs; + possibleTargets = gDungeon->activePokemon; maxPossibleTargets = DUNGEON_MAX_POKEMON; } else if (pokemonInfo->isNotTeamMember) @@ -178,7 +178,7 @@ bool8 ChooseTargetPosition(Entity *pokemon) continue; } } - else if (!pokemonInfo->isNotTeamMember && GetEntInfo(target)->immobilize.immobilizeStatus == STATUS_PETRIFIED) + else if (!pokemonInfo->isNotTeamMember && GetEntInfo(target)->frozenClassStatus.status == STATUS_PETRIFIED) { continue; } @@ -513,7 +513,7 @@ bool8 AvoidEnemies(Entity *pokemon) s32 i; if (gDungeon->decoyIsActive) { - possibleTargets = gDungeon->activeMonsterPtrs; + possibleTargets = gDungeon->activePokemon; numPossibleTargets = DUNGEON_MAX_POKEMON; } else if (pokemonInfo->isNotTeamMember) diff --git a/src/dungeon_ai_targeting.c b/src/dungeon_ai_targeting.c index 0b2372c0c..2139a487a 100644 --- a/src/dungeon_ai_targeting.c +++ b/src/dungeon_ai_targeting.c @@ -74,7 +74,7 @@ bool8 sub_8070F3C(Entity * pokemon, Position *pos, s32 direction) (((tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))))) { if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { terrain = CROSSABLE_TERRAIN_WALL; @@ -137,7 +137,7 @@ bool8 sub_8070F80(Entity * pokemon, s32 direction) (((tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))))) { if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { terrain = CROSSABLE_TERRAIN_WALL; @@ -183,7 +183,7 @@ bool8 sub_8071058(Entity * pokemon, s32 direction) (!GetEntInfo(tile->monster)->isNotTeamMember)))) { if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { terrain = CROSSABLE_TERRAIN_WALL; @@ -230,7 +230,7 @@ bool8 CanAttackInDirection(Entity *pokemon, s32 direction) { if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { crossableTerrain = CROSSABLE_TERRAIN_WALL; @@ -282,7 +282,7 @@ bool8 CanAIMonsterMoveInDirection(Entity *pokemon, s32 direction, bool8 *pokemon if (frontTile->object != NULL && IQSkillIsEnabled(pokemon, IQ_TRAP_AVOIDER) && GetEntityType(frontTile->object) == ENTITY_TRAP && - (frontTile->object->isVisible || GetEntInfo(pokemon)->eyesightStatus.eyesightStatus == STATUS_EYEDROPS)) + (frontTile->object->isVisible || GetEntInfo(pokemon)->blinkerClassStatus.status == STATUS_EYEDROPS)) { return FALSE; } @@ -294,7 +294,7 @@ bool8 CanAIMonsterMoveInDirection(Entity *pokemon, s32 direction, bool8 *pokemon } if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { crossableTerrain = CROSSABLE_TERRAIN_WALL; @@ -337,7 +337,7 @@ bool8 IsAtJunction(Entity *pokemon) u32 crossableTerrain = GetCrossableTerrain(GetEntInfo(pokemon)->id); if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) { crossableTerrain = CROSSABLE_TERRAIN_WALL; } @@ -477,8 +477,8 @@ u8 GetTreatmentBetweenMonsters(Entity *pokemon, Entity *targetPokemon, bool8 ign targetData->monsterBehavior == BEHAVIOR_DIGLETT || pokemonInfo->monsterBehavior == BEHAVIOR_RESCUE_TARGET || targetData->monsterBehavior == BEHAVIOR_RESCUE_TARGET || - (checkPetrified && !pokemonInfo->isNotTeamMember && targetData->immobilize.immobilizeStatus == STATUS_PETRIFIED) || - (!ignoreInvisible && targetData->transformStatus.transformStatus == STATUS_INVISIBLE && !CanSeeInvisibleMonsters(pokemon))) + (checkPetrified && !pokemonInfo->isNotTeamMember && targetData->frozenClassStatus.status == STATUS_PETRIFIED) || + (!ignoreInvisible && targetData->invisibleClassStatus.status == STATUS_INVISIBLE && !CanSeeInvisibleMonsters(pokemon))) { return TREATMENT_IGNORE; } @@ -517,7 +517,7 @@ u8 GetTreatmentBetweenMonsters(Entity *pokemon, Entity *targetPokemon, bool8 ign targetIsEnemy = targetData->isNotTeamMember ? TRUE : FALSE; } targetIsDecoy = FALSE; - if (targetData->waitingStruct.waitingStatus == STATUS_DECOY) + if (targetData->curseClassStatus.status == STATUS_DECOY) { targetIsDecoy = TRUE; } diff --git a/src/dungeon_capabilities.c b/src/dungeon_capabilities.c index 8e4a6873c..94985585a 100644 --- a/src/dungeon_capabilities.c +++ b/src/dungeon_capabilities.c @@ -24,13 +24,13 @@ bool8 CheckVariousStatuses2(Entity *pokemon, bool8 checkBlinker) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); - if ((checkBlinker && pokemonInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER)) + if ((checkBlinker && pokemonInfo->blinkerClassStatus.status == STATUS_BLINKER)) return TRUE; - if (pokemonInfo->sleep.sleep == STATUS_SLEEP || pokemonInfo->sleep.sleep == STATUS_NAPPING || pokemonInfo->sleep.sleep == STATUS_NIGHTMARE) + if (pokemonInfo->sleepClassStatus.status == STATUS_SLEEP || pokemonInfo->sleepClassStatus.status == STATUS_NAPPING || pokemonInfo->sleepClassStatus.status == STATUS_NIGHTMARE) return TRUE; - if (pokemonInfo->volatileStatus.volatileStatus == STATUS_PAUSED || pokemonInfo->volatileStatus.volatileStatus == STATUS_INFATUATED) + if (pokemonInfo->cringeClassStatus.status == STATUS_PAUSED || pokemonInfo->cringeClassStatus.status == STATUS_INFATUATED) return TRUE; - if (pokemonInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED) + if (pokemonInfo->frozenClassStatus.status == STATUS_PETRIFIED) return TRUE; if (pokemonInfo->terrifiedTurns != 0) return TRUE; @@ -43,34 +43,34 @@ bool8 sub_8070BC0(Entity* entity) EntityInfo *entityInfo = GetEntInfo(entity); if (IsChargingAnyTwoTurnMove(entity, FALSE) - || entityInfo->sleep.sleep == STATUS_YAWNING - || entityInfo->sleep.sleep == STATUS_NIGHTMARE + || entityInfo->sleepClassStatus.status == STATUS_YAWNING + || entityInfo->sleepClassStatus.status == STATUS_NIGHTMARE || ShouldMonsterRunAway(entity) || entityInfo->muzzled.muzzled == TRUE - || entityInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED - || entityInfo->immobilize.immobilizeStatus == STATUS_FROZEN) + || entityInfo->frozenClassStatus.status == STATUS_PETRIFIED + || entityInfo->frozenClassStatus.status == STATUS_FROZEN) return FALSE; - if (entityInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) + if (entityInfo->cringeClassStatus.status == STATUS_CONFUSED) return FALSE; - if (entityInfo->sleep.sleep == STATUS_SLEEP) + if (entityInfo->sleepClassStatus.status == STATUS_SLEEP) return FALSE; - if (entityInfo->transformStatus.transformStatus == STATUS_INVISIBLE - || entityInfo->sleep.sleep == STATUS_NAPPING) + if (entityInfo->invisibleClassStatus.status == STATUS_INVISIBLE + || entityInfo->sleepClassStatus.status == STATUS_NAPPING) return FALSE; - if (entityInfo->volatileStatus.volatileStatus == STATUS_CRINGE) + if (entityInfo->cringeClassStatus.status == STATUS_CRINGE) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP) + if (entityInfo->frozenClassStatus.status == STATUS_WRAP) return FALSE; - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED - || entityInfo->eyesightStatus.eyesightStatus == STATUS_CROSS_EYED) + if (entityInfo->frozenClassStatus.status == STATUS_WRAPPED + || entityInfo->blinkerClassStatus.status == STATUS_CROSS_EYED) return FALSE; - if (entityInfo->waitingStruct.waitingStatus == STATUS_DECOY) + if (entityInfo->curseClassStatus.status == STATUS_DECOY) return FALSE; - if (entityInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER) + if (entityInfo->blinkerClassStatus.status == STATUS_BLINKER) return FALSE; - if (entityInfo->volatileStatus.volatileStatus != STATUS_INFATUATED - && entityInfo->volatileStatus.volatileStatus != STATUS_PAUSED) + if (entityInfo->cringeClassStatus.status != STATUS_INFATUATED + && entityInfo->cringeClassStatus.status != STATUS_PAUSED) return TRUE; return FALSE; @@ -97,11 +97,11 @@ bool8 CheckVariousStatuses(Entity *pokemon) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); - if ((pokemonInfo->sleep.sleep != STATUS_SLEEPLESS && pokemonInfo->sleep.sleep != STATUS_NONE)) + if ((pokemonInfo->sleepClassStatus.status != STATUS_SLEEPLESS && pokemonInfo->sleepClassStatus.status != STATUS_NONE)) return TRUE; - if (pokemonInfo->immobilize.immobilizeStatus == STATUS_FROZEN || pokemonInfo->immobilize.immobilizeStatus == STATUS_PETRIFIED) + if (pokemonInfo->frozenClassStatus.status == STATUS_FROZEN || pokemonInfo->frozenClassStatus.status == STATUS_PETRIFIED) return TRUE; - if (pokemonInfo->charging.chargingStatus == STATUS_BIDE) + if (pokemonInfo->bideClassStatus.status == STATUS_BIDE) return TRUE; return FALSE; @@ -112,17 +112,17 @@ bool8 CannotAttack(Entity *pokemon, bool8 skipSleep) EntityInfo *pokemonInfo = GetEntInfo(pokemon); if ((skipSleep || - pokemonInfo->sleep.sleep == STATUS_SLEEPLESS || - pokemonInfo->sleep.sleep == STATUS_YAWNING || - pokemonInfo->sleep.sleep == STATUS_NONE) && - pokemonInfo->immobilize.immobilizeStatus != STATUS_FROZEN && - pokemonInfo->immobilize.immobilizeStatus != STATUS_WRAP && - pokemonInfo->immobilize.immobilizeStatus != STATUS_WRAPPED && - pokemonInfo->immobilize.immobilizeStatus != STATUS_PETRIFIED && - pokemonInfo->volatileStatus.volatileStatus != STATUS_CRINGE && - pokemonInfo->volatileStatus.volatileStatus != STATUS_PAUSED && - pokemonInfo->volatileStatus.volatileStatus != STATUS_INFATUATED && - pokemonInfo->nonVolatile.nonVolatileStatus != STATUS_PARALYSIS && + pokemonInfo->sleepClassStatus.status == STATUS_SLEEPLESS || + pokemonInfo->sleepClassStatus.status == STATUS_YAWNING || + pokemonInfo->sleepClassStatus.status == STATUS_NONE) && + pokemonInfo->frozenClassStatus.status != STATUS_FROZEN && + pokemonInfo->frozenClassStatus.status != STATUS_WRAP && + pokemonInfo->frozenClassStatus.status != STATUS_WRAPPED && + pokemonInfo->frozenClassStatus.status != STATUS_PETRIFIED && + pokemonInfo->cringeClassStatus.status != STATUS_CRINGE && + pokemonInfo->cringeClassStatus.status != STATUS_PAUSED && + pokemonInfo->cringeClassStatus.status != STATUS_INFATUATED && + pokemonInfo->burnClassStatus.status != STATUS_PARALYSIS && !ShouldMonsterRunAway(pokemon)) return FALSE; @@ -140,7 +140,7 @@ bool8 CanMoveInDirection(Entity *pokemon, u32 direction) if (!IsCurrentFixedRoomBossFight()) { - if (GetEntInfo(pokemon)->transformStatus.transformStatus == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) + if (GetEntInfo(pokemon)->invisibleClassStatus.status == STATUS_MOBILE || HasHeldItem(pokemon, ITEM_MOBILE_SCARF)) crossableTerrain = CROSSABLE_TERRAIN_WALL; else if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) crossableTerrain = CROSSABLE_TERRAIN_CREVICE; diff --git a/src/dungeon_engine.c b/src/dungeon_engine.c index 75c8a423b..50d25d39c 100644 --- a/src/dungeon_engine.c +++ b/src/dungeon_engine.c @@ -182,7 +182,7 @@ static void sub_8044454(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if ((EntityExists(entity)) && (entityInfo = GetEntInfo(entity), (entityInfo->flags & MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY))) { if (sub_8044B28()) break; TickStatusHeal(entity); @@ -210,7 +210,7 @@ void sub_80444F4(Entity *pokemon) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if ((EntityExists(entity)) && (pokemon != entity) && (entityInfo = GetEntInfo(entity), (entityInfo->flags & MOVEMENT_FLAG_SWAPPING_PLACES_PETRIFIED_ALLY))) { if (sub_8044B28()) break; RunMonsterAI(entity, 0); diff --git a/src/dungeon_move.c b/src/dungeon_move.c index 8b4a89317..1d21951bb 100644 --- a/src/dungeon_move.c +++ b/src/dungeon_move.c @@ -513,12 +513,12 @@ static void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move sub_806A1E8(currTarget); TrySendImmobilizeSleepEndMsg(attacker, currTarget); r4 = FALSE; - if (!MoveMatchesChargingStatus(attacker, move)) { + if (!MoveMatchesBideClassStatus(attacker, move)) { r4 = (MoveRequiresCharging(attacker, move->id) != 0); } if (!lightRodRedirect) { - if (targetInfo->protection.protectionStatus == STATUS_MAGIC_COAT) { + if (targetInfo->reflectClassStatus.status == STATUS_MAGIC_COAT) { if (IsReflectedByMagicCoat(moveId) && sub_8055988(attacker, currTarget)) { TryDisplayDungeonLoggableMessage3(attacker, currTarget, gUnknown_80FC52C); // The target~27s Magic Coat bounced it back! sub_8041B48(currTarget); @@ -529,7 +529,7 @@ static void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move moveRedirected = TRUE; } } - else if (targetInfo->protection.protectionStatus == STATUS_MIRROR_MOVE) { + else if (targetInfo->reflectClassStatus.status == STATUS_MIRROR_MOVE) { s32 target = GetMoveTargetAndRangeForPokemon(attacker, move, FALSE); if (moveId != MOVE_REGULAR_ATTACK && moveId != MOVE_PROJECTILE @@ -548,7 +548,7 @@ static void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move } } if (!lightRodRedirect) { - if (targetInfo->protection.protectionStatus == STATUS_PROTECT) { + if (targetInfo->reflectClassStatus.status == STATUS_PROTECT) { s16 targetFlags = GetMoveTargetAndRangeForPokemon(attacker, move, FALSE); s32 targetFlagsAnd = targetFlags & 0xF; if ((targetFlagsAnd == 0 || targetFlagsAnd == 4 || targetFlagsAnd == 5 || targetFlagsAnd == 2) && !r4) { @@ -1804,17 +1804,17 @@ bool32 sub_8055A00(Entity *attacker, s32 firstMoveId, s32 var_34, s32 itemId, s3 attackerInfo->abilityEffectFlags = 0; attackerInfo->unk159 = 0; - if (attackerInfo->volatileStatus.volatileStatus == STATUS_CRINGE) { + if (attackerInfo->cringeClassStatus.status == STATUS_CRINGE) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], attacker, 0); LogMessageByIdWithPopupCheckUser(attacker, gUnknown_80FC714); // is cringing! return FALSE; } - else if (attackerInfo->volatileStatus.volatileStatus == STATUS_INFATUATED) { + else if (attackerInfo->cringeClassStatus.status == STATUS_INFATUATED) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], attacker, 0); LogMessageByIdWithPopupCheckUser(attacker, gUnknown_80FC718); // is infatuated! return FALSE; } - else if (attackerInfo->nonVolatile.nonVolatileStatus == STATUS_PARALYSIS) { + else if (attackerInfo->burnClassStatus.status == STATUS_PARALYSIS) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], attacker, 0); LogMessageByIdWithPopupCheckUser(attacker, gUnknown_80FC6A8); // is paralyzed! return FALSE; @@ -1860,7 +1860,7 @@ bool32 sub_8055A00(Entity *attacker, s32 firstMoveId, s32 var_34, s32 itemId, s3 if (MoveFlagExists(currMove)) { bool32 moveUsable = TRUE; bool32 var_28 = FALSE; - bool32 statusMoveMatch = MoveMatchesChargingStatus(attacker, currMove); + bool32 statusMoveMatch = MoveMatchesBideClassStatus(attacker, currMove); if (currMove->PP != 0) { if (!statusMoveMatch) { @@ -2068,7 +2068,7 @@ bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, { var_28 = 1; if ((move->id != MOVE_SOLARBEAM || GetApparentWeather(attacker) != WEATHER_SUNNY) && DoesMoveCharge(move->id)) { - if (!MoveMatchesChargingStatus(attacker, move)) { + if (!MoveMatchesBideClassStatus(attacker, move)) { var_28 = 0; } } @@ -2076,7 +2076,7 @@ bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, SetMessageArgument_2(gFormatBuffer_Monsters[0], GetEntInfo(attacker), 0); sub_80928C0(gFormatBuffer_Items[0], move, NULL); - if (MoveMatchesChargingStatus(attacker, move)) { + if (MoveMatchesBideClassStatus(attacker, move)) { msg = gUnknown_80FC72C; // mon loosed move GetEntInfo(attacker)->unkFF = 0; moveUsable = sub_805744C(attacker, move, TRUE); @@ -2171,7 +2171,7 @@ bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, sub_806A1E8(gUnknown_203B438); } - if (GetEntInfo(attacker)->volatileStatus.volatileStatus != STATUS_CONFUSED && GetEntInfo(attacker)->volatileStatus.volatileStatus != STATUS_COWERING) { + if (GetEntInfo(attacker)->cringeClassStatus.status != STATUS_CONFUSED && GetEntInfo(attacker)->cringeClassStatus.status != STATUS_COWERING) { EntityInfo *entInfo = GetEntInfo(attacker); entInfo->targetPos.x = 0; entInfo->targetPos.y = 0; @@ -2198,7 +2198,7 @@ bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, if (gUnknown_202F21A != 0) { EndFrozenClassStatus(attacker, attacker); - SendLinkedEndMessage(attacker, attacker); + EndLeechSeedClassStatus(attacker, attacker); } if (gUnknown_202F219 != 0 && EntityExists(attacker)) { @@ -2592,7 +2592,7 @@ void sub_80566F8(Entity *attacker, Move *move, s32 a2, bool8 a3, s32 itemId, s32 break; } - if (MoveRequiresCharging(attacker, move->id) && !MoveMatchesChargingStatus(attacker, move)) { + if (MoveRequiresCharging(attacker, move->id) && !MoveMatchesBideClassStatus(attacker, move)) { var_34 = -1; } else { @@ -2672,9 +2672,9 @@ void sub_80566F8(Entity *attacker, Move *move, s32 a2, bool8 a3, s32 itemId, s32 bool8 canHitAnyone = FALSE; s32 targetFlags; EntityInfo *attackerInfo = GetEntInfo(attacker); - if (attackerInfo->volatileStatus.volatileStatus == STATUS_CONFUSED - || attackerInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER - || attackerInfo->volatileStatus.volatileStatus == STATUS_COWERING) + if (attackerInfo->cringeClassStatus.status == STATUS_CONFUSED + || attackerInfo->blinkerClassStatus.status == STATUS_BLINKER + || attackerInfo->cringeClassStatus.status == STATUS_COWERING) { canHitAnyone = TRUE; } @@ -2714,9 +2714,9 @@ static bool8 AccuracyCalc(Entity *attacker, Entity *target, Move *move, s32 accu return TRUE; if (move->id == MOVE_REGULAR_ATTACK && IQSkillIsEnabled(attacker, IQ_SURE_HIT_ATTACKER)) return TRUE; - if (attackerInfo->moveStatus.moveStatus == STATUS_SURE_SHOT) + if (attackerInfo->sureShotClassStatus.status == STATUS_SURE_SHOT) return TRUE; - if (attackerInfo->moveStatus.moveStatus == STATUS_WHIFFER) + if (attackerInfo->sureShotClassStatus.status == STATUS_WHIFFER) return FALSE; if (accuracy > 100) return TRUE; @@ -2786,10 +2786,10 @@ static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *mov s32 targetFlags; s32 targetFlagsAnd; s32 arrId = 0; - bool8 canHitPartner = (GetEntInfo(attacker)->volatileStatus.volatileStatus == STATUS_CONFUSED - || GetEntInfo(attacker)->eyesightStatus.eyesightStatus == STATUS_BLINKER - || GetEntInfo(attacker)->volatileStatus.volatileStatus == STATUS_COWERING); - bool8 canHitSelf = (GetEntInfo(attacker)->volatileStatus.volatileStatus == STATUS_CONFUSED || GetEntInfo(attacker)->volatileStatus.volatileStatus == STATUS_COWERING); + bool8 canHitPartner = (GetEntInfo(attacker)->cringeClassStatus.status == STATUS_CONFUSED + || GetEntInfo(attacker)->blinkerClassStatus.status == STATUS_BLINKER + || GetEntInfo(attacker)->cringeClassStatus.status == STATUS_COWERING); + bool8 canHitSelf = (GetEntInfo(attacker)->cringeClassStatus.status == STATUS_CONFUSED || GetEntInfo(attacker)->cringeClassStatus.status == STATUS_COWERING); if (IQSkillIsEnabled(attacker, IQ_NONTRAITOR)) { canHitSelf = FALSE; @@ -2797,7 +2797,7 @@ static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *mov } targetFlags = GetMoveTargetAndRangeForPokemon(attacker, move, FALSE); if ((targetFlags & 0xF) == 4) { - bool32 usable = MoveMatchesChargingStatus(attacker, move); + bool32 usable = MoveMatchesBideClassStatus(attacker, move); if (move->id == MOVE_SOLARBEAM && GetApparentWeather(attacker) == WEATHER_SUNNY) { usable = TRUE; } @@ -2842,7 +2842,7 @@ static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *mov else if (targetFlagsAnd == 0x30) { s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *dungeonMon = gDungeon->activeMonsterPtrs[i]; + Entity *dungeonMon = gDungeon->activePokemon[i]; if (EntityExists(dungeonMon) && sub_8045A70(attacker, dungeonMon)) { if (dungeonMon == attacker) { arrId = SetNewTarget(arrId, targetsArray, targetFlags, attacker, attacker, move, canHitSelf); @@ -2880,7 +2880,7 @@ static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *mov else if (targetFlagsAnd == 0x60) { s32 i; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *dungeonMon = gDungeon->activeMonsterPtrs[i]; + Entity *dungeonMon = gDungeon->activePokemon[i]; if (EntityExists(dungeonMon)) { arrId = SetNewTarget(arrId, targetsArray, targetFlags, attacker, dungeonMon, move, canHitPartner); } @@ -2962,7 +2962,7 @@ static s32 SetNewTarget(s32 targetArrId, Entity **targetsArray, s32 targetFlags_ struct MultiTurnChargeMove { u16 moveID; - u8 chargingStatus; + u8 status; }; const struct MultiTurnChargeMove gMultiTurnChargeMoves[10] = { @@ -2978,7 +2978,7 @@ const struct MultiTurnChargeMove gMultiTurnChargeMoves[10] = { {MOVE_NOTHING, STATUS_NONE} }; -const u32 gMultiTurnChargingStatuses[10] = { +const u32 gMultiTurnBideClassStatuses[10] = { STATUS_SOLARBEAM, STATUS_SKY_ATTACK, STATUS_RAZOR_WIND, @@ -3010,7 +3010,7 @@ bool8 MoveCausesPaused(Move *move) return FALSE; } -bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move) +bool8 MoveMatchesBideClassStatus(Entity *pokemon, Move *move) { if (!EntityExists(pokemon)) { @@ -3027,7 +3027,7 @@ bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move) return FALSE; } if (move->id == gMultiTurnChargeMoves[i].moveID && - pokemonInfo->charging.chargingStatus == gMultiTurnChargeMoves[i].chargingStatus) + pokemonInfo->bideClassStatus.status == gMultiTurnChargeMoves[i].status) { return TRUE; } @@ -3046,26 +3046,26 @@ bool8 IsChargingAnyTwoTurnMove(Entity *pokemon, bool8 checkCharge) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); int i = 0; - u8 *chargingStatusPointer = &pokemonInfo->charging.chargingStatus; - u8 *chargingStatusPointer2; + u8 *bideClassStatusPointer = &pokemonInfo->bideClassStatus.status; + u8 *bideClassStatusPointer2; u8 chargeStatus = STATUS_CHARGING; for (; i < 100; i++) { - u8 currentStatus = gMultiTurnChargingStatuses[i]; - u8 chargingStatus; + u8 currentStatus = gMultiTurnBideClassStatuses[i]; + u8 bideClassStatus; if (currentStatus == STATUS_NONE) { return FALSE; } - chargingStatus = *chargingStatusPointer; - chargingStatusPointer2 = &pokemonInfo->charging.chargingStatus; - if (chargingStatus == currentStatus) + bideClassStatus = *bideClassStatusPointer; + bideClassStatusPointer2 = &pokemonInfo->bideClassStatus.status; + if (bideClassStatus == currentStatus) { return TRUE; } } - // BUG: This condition is never reached because the for loop terminates by returning FALSE at the end of the gMultiTurnChargingStatuses array. - if (checkCharge && *chargingStatusPointer2 == chargeStatus) + // BUG: This condition is never reached because the for loop terminates by returning FALSE at the end of the gMultiTurnBideClassStatuses array. + if (checkCharge && *bideClassStatusPointer2 == chargeStatus) { return TRUE; } @@ -3081,7 +3081,7 @@ u32 sub_8057144(Entity * pokemon) nMoves = 0; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { - Entity *dungeonMon = gDungeon->activeMonsterPtrs[i]; + Entity *dungeonMon = gDungeon->activePokemon[i]; if (EntityExists(dungeonMon)) { Move *moves = GetEntInfo(dungeonMon)->moves.moves; for (j = 0; j < MAX_MON_MOVES; j++) @@ -3120,10 +3120,10 @@ bool8 sub_80571F0(Entity * pokemon, Move *move) return TRUE; } else if (entityInfo->unkFF == 2) { - if (entityInfo->charging.chargingStatus == STATUS_DIVING) { + if (entityInfo->bideClassStatus.status == STATUS_DIVING) { if (move->id == MOVE_WHIRLPOOL || move->id == MOVE_SURF) return FALSE; } - else if (entityInfo->charging.chargingStatus == STATUS_DIGGING) { + else if (entityInfo->bideClassStatus.status == STATUS_DIGGING) { moveID = move->id; if (moveID == MOVE_EARTHQUAKE || moveID == MOVE_MAGNITUDE) return FALSE; if (moveID == MOVE_NATURE_POWER) { @@ -3227,11 +3227,11 @@ bool8 CanMonsterUseMove(Entity *pokemon, Move *move, bool8 hasPPChecker) { return FALSE; } - if (pokemonInfo->volatileStatus.volatileStatus == STATUS_TAUNTED && !MoveIgnoresTaunted(move)) + if (pokemonInfo->cringeClassStatus.status == STATUS_TAUNTED && !MoveIgnoresTaunted(move)) { return FALSE; } - if (pokemonInfo->volatileStatus.volatileStatus == STATUS_ENCORE) + if (pokemonInfo->cringeClassStatus.status == STATUS_ENCORE) { if (move->id == MOVE_STRUGGLE) { @@ -3259,8 +3259,8 @@ bool8 sub_805744C(Entity * pokemon, Move *move, bool8 param_3) return FALSE; } if (param_3 != 0) { - if ((entityInfo->volatileStatus.volatileStatus == STATUS_TAUNTED) && (!MoveIgnoresTaunted(move))) return FALSE; - if (entityInfo->volatileStatus.volatileStatus == STATUS_ENCORE) { + if ((entityInfo->cringeClassStatus.status == STATUS_TAUNTED) && (!MoveIgnoresTaunted(move))) return FALSE; + if (entityInfo->cringeClassStatus.status == STATUS_ENCORE) { if (move->id == MOVE_STRUGGLE) { if((entityInfo->moves.struggleMoveFlags & MOVE_FLAG_LAST_USED) == 0) return FALSE; } diff --git a/src/dungeon_movement.c b/src/dungeon_movement.c index 9a199d3ad..4239a27a1 100644 --- a/src/dungeon_movement.c +++ b/src/dungeon_movement.c @@ -80,7 +80,7 @@ u8 sub_80703A0(Entity *pokemon, Position *pos) if (pos->x >= DUNGEON_MAX_SIZE_X || pos->y >= DUNGEON_MAX_SIZE_Y) return TRUE; if (tile->monster == NULL && ((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) { - if ((IsCurrentFixedRoomBossFight()) || ((entityInfo->transformStatus.transformStatus != STATUS_MOBILE && (!HasHeldItem(pokemon, ITEM_MOBILE_SCARF))))) { + if ((IsCurrentFixedRoomBossFight()) || ((entityInfo->invisibleClassStatus.status != STATUS_MOBILE && (!HasHeldItem(pokemon, ITEM_MOBILE_SCARF))))) { crossableTerrain = GetCrossableTerrain(entityInfo->id); tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY); if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) { @@ -113,7 +113,7 @@ u8 sub_80703A0(Entity *pokemon, Position *pos) bool8 CanCrossWalls(Entity *pokemon) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); - if (pokemonInfo->transformStatus.transformStatus == STATUS_MOBILE) + if (pokemonInfo->invisibleClassStatus.status == STATUS_MOBILE) { return TRUE; } @@ -142,7 +142,7 @@ bool8 sub_807049C(Entity *pokemon, Position *pos) if (pos->x >= DUNGEON_MAX_SIZE_X || pos->y >= DUNGEON_MAX_SIZE_Y) return TRUE; if (((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0) && (tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) { - if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus.transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { + if (IsCurrentFixedRoomBossFight() || (entityInfo->invisibleClassStatus.status != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { crossableTerrain = GetCrossableTerrain(entityInfo->id); tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY); if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) { @@ -230,7 +230,7 @@ bool8 sub_80705F0(Entity *pokemon, Position *pos) if (pos->x >= DUNGEON_MAX_SIZE_X || pos->y >= DUNGEON_MAX_SIZE_Y) return TRUE; if (((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0) && (tile->monster == NULL || (GetEntityType(tile->monster) == ENTITY_MONSTER))) { - if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus.transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { + if (IsCurrentFixedRoomBossFight() || (entityInfo->invisibleClassStatus.status != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { crossableTerrain = GetCrossableTerrain(entityInfo->id); tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY); if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) { @@ -271,7 +271,7 @@ bool8 sub_80706A4(Entity *pokemon, Position *pos) return TRUE; if ((((tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL) == 0)) && (tile->monster == NULL || ((GetEntityType(tile->monster) == ENTITY_MONSTER) && (GetEntInfo(tile->monster) == entityInfo)))) { - if (IsCurrentFixedRoomBossFight() || (entityInfo->transformStatus.transformStatus != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { + if (IsCurrentFixedRoomBossFight() || (entityInfo->invisibleClassStatus.status != STATUS_MOBILE && !HasHeldItem(pokemon, ITEM_MOBILE_SCARF))) { crossableTerrain = GetCrossableTerrain(entityInfo->id); tileFlags = tile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY); if (IQSkillIsEnabled(pokemon, IQ_ALL_TERRAIN_HIKER)) { @@ -318,7 +318,7 @@ s32 CalcSpeedStage(Entity *pokemon) } } - if (entityInfo->nonVolatile.nonVolatileStatus == STATUS_PARALYSIS) { + if (entityInfo->burnClassStatus.status == STATUS_PARALYSIS) { speed--; } diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c index 814c08b5b..31ce41aa2 100644 --- a/src/dungeon_pokemon_attributes.c +++ b/src/dungeon_pokemon_attributes.c @@ -26,7 +26,7 @@ extern bool8 sub_805744C(Entity *, Move *, u32); bool8 HasSafeguardStatus(Entity * pokemon, Entity * target, bool8 displayMessage) { - if (GetEntInfo(target)->protection.protectionStatus == STATUS_SAFEGUARD) { + if (GetEntInfo(target)->reflectClassStatus.status == STATUS_SAFEGUARD) { if (displayMessage) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC2FC); @@ -38,7 +38,7 @@ bool8 HasSafeguardStatus(Entity * pokemon, Entity * target, bool8 displayMessage bool8 sub_8071728(Entity * pokemon, Entity * target, bool8 displayMessage) { - if (GetEntInfo(target)->protection.protectionStatus == STATUS_MIST) { + if (GetEntInfo(target)->reflectClassStatus.status == STATUS_MIST) { if (displayMessage) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], target, 0); TryDisplayDungeonLoggableMessage3(pokemon, target, gUnknown_80FC31C); @@ -63,7 +63,7 @@ bool8 sub_80717A4(Entity *pokemon, u16 moveID) s32 index; entityInfo = GetEntInfo(pokemon); - if ((entityInfo->sleep.sleep != STATUS_SLEEP) && (entityInfo->sleep.sleep != STATUS_NAPPING) && (entityInfo->sleep.sleep != STATUS_NIGHTMARE)) { + if ((entityInfo->sleepClassStatus.status != STATUS_SLEEP) && (entityInfo->sleepClassStatus.status != STATUS_NAPPING) && (entityInfo->sleepClassStatus.status != STATUS_NIGHTMARE)) { return FALSE; } else @@ -126,7 +126,7 @@ bool8 MonsterIsType(Entity *pokemon, u8 type) bool8 CanSeeInvisibleMonsters(Entity *pokemon) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); - if (pokemonInfo->eyesightStatus.eyesightStatus != STATUS_EYEDROPS) + if (pokemonInfo->blinkerClassStatus.status != STATUS_EYEDROPS) { if (!HasHeldItem(pokemon, ITEM_GOGGLE_SPECS)) return FALSE; diff --git a/src/dungeon_util.c b/src/dungeon_util.c index 2999379a1..350206f98 100644 --- a/src/dungeon_util.c +++ b/src/dungeon_util.c @@ -103,7 +103,7 @@ void sub_804513C(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - gDungeon->activeMonsterPtrs[index] = NULL; + gDungeon->activePokemon[index] = NULL; } for (index = 0; index < DUNGEON_MAX_ITEMS; index++) @@ -132,7 +132,7 @@ void sub_804522C(void) { { for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if(EntityExists(entity)) { if(entity == gDungeon->unk181e8.cameraTarget) diff --git a/src/dungeon_util_1.c b/src/dungeon_util_1.c index 5398c2c34..eea943e5c 100644 --- a/src/dungeon_util_1.c +++ b/src/dungeon_util_1.c @@ -157,7 +157,7 @@ Entity *GetEntityFromMonsterBehavior(u8 entityType) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if ((EntityExists(entity)) && (GetEntInfo(entity)->monsterBehavior == entityType)) return entity; } return NULL; @@ -219,7 +219,7 @@ void sub_80857B8(void) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { entityInfo = GetEntInfo(entity); if ((gDungeon->unk4 == 0) && (gDungeon->unk2 == 0)) { diff --git a/src/dungeon_visibility.c b/src/dungeon_visibility.c index 40fc29d26..f2c862684 100644 --- a/src/dungeon_visibility.c +++ b/src/dungeon_visibility.c @@ -16,16 +16,16 @@ bool8 CanSeeTarget(Entity *entity, Entity *targetEntity) { if (entity->type == ENTITY_MONSTER) { - if (!CanSeeInvisibleMonsters(entity) && GetEntInfo(targetEntity)->transformStatus.transformStatus == STATUS_INVISIBLE) + if (!CanSeeInvisibleMonsters(entity) && GetEntInfo(targetEntity)->invisibleClassStatus.status == STATUS_INVISIBLE) { return FALSE; } - if (GetEntInfo(entity)->eyesightStatus.eyesightStatus == STATUS_BLINKER) + if (GetEntInfo(entity)->blinkerClassStatus.status == STATUS_BLINKER) { return FALSE; } } - else if (GetEntInfo(targetEntity)->transformStatus.transformStatus == STATUS_INVISIBLE) + else if (GetEntInfo(targetEntity)->invisibleClassStatus.status == STATUS_INVISIBLE) { return FALSE; } @@ -43,16 +43,16 @@ bool8 CanTargetEntity(Entity *entity, Entity *targetEntity) { if (entity->type == ENTITY_MONSTER) { - if (!CanSeeInvisibleMonsters(entity) && GetEntInfo(targetEntity)->transformStatus.transformStatus == STATUS_INVISIBLE) + if (!CanSeeInvisibleMonsters(entity) && GetEntInfo(targetEntity)->invisibleClassStatus.status == STATUS_INVISIBLE) { return FALSE; } - if (GetEntInfo(entity)->eyesightStatus.eyesightStatus == STATUS_BLINKER) + if (GetEntInfo(entity)->blinkerClassStatus.status == STATUS_BLINKER) { return FALSE; } } - else if (GetEntInfo(targetEntity)->transformStatus.transformStatus == STATUS_INVISIBLE) + else if (GetEntInfo(targetEntity)->invisibleClassStatus.status == STATUS_INVISIBLE) { return FALSE; } diff --git a/src/move_actions.c b/src/move_actions.c index 6d0994dc4..3a77c3491 100644 --- a/src/move_actions.c +++ b/src/move_actions.c @@ -341,7 +341,7 @@ bool8 DigMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD14C); // It can only be used on land! } else { - if (MoveMatchesChargingStatus(pokemon,move)) { + if (MoveMatchesBideClassStatus(pokemon,move)) { HandleDamagingMove(pokemon,target,move,gUnknown_80F4F68,param_4); sub_8079764(pokemon); } @@ -505,8 +505,8 @@ bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 } if (isTormented) { - if(entityInfo->charging.chargingStatus == STATUS_BIDE) { - entityInfo->charging.chargingStatus = STATUS_NONE; + if(entityInfo->bideClassStatus.status == STATUS_BIDE) { + entityInfo->bideClassStatus.status = STATUS_NONE; } } else @@ -590,7 +590,7 @@ bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa u8 chargeStatus; flag = FALSE; - chargeStatus = GetEntInfo(target)->charging.chargingStatus; + chargeStatus = GetEntInfo(target)->bideClassStatus.status; uVar3 = 0x100; if (chargeStatus == STATUS_DIVING) { uVar3 = 0x200; @@ -852,7 +852,7 @@ bool8 sub_8058270(Entity *pokemon, Entity *target, Move *move, u32 param_4) r3 = 1; targetInfo = GetEntInfo(target); - if(targetInfo->charging.chargingStatus == STATUS_FLYING || targetInfo->charging.chargingStatus == STATUS_BOUNCING) + if(targetInfo->bideClassStatus.status == STATUS_FLYING || targetInfo->bideClassStatus.status == STATUS_BOUNCING) r3 = 2; flag = HandleDamagingMove(pokemon,target,move,r3 << 8,param_4) ? TRUE : FALSE; return flag; @@ -880,7 +880,7 @@ bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa { bool8 flag; - if (MoveMatchesChargingStatus(pokemon,move)) { + if (MoveMatchesBideClassStatus(pokemon,move)) { flag = HandleDamagingMove(pokemon,target,move,gUnknown_80F4F50,param_4) ? TRUE : FALSE; sub_8079764(pokemon); } @@ -985,7 +985,7 @@ bool8 sub_8058548(Entity *pokemon, Entity *target, Move *move, u32 param_4) u32 r5; r5 = 0x80 << 1; - if((GetEntInfo(pokemon)->nonVolatile.nonVolatileStatus) != STATUS_NONE) + if((GetEntInfo(pokemon)->burnClassStatus.status) != STATUS_NONE) r5 = gUnknown_80F4F6C; flag = HandleDamagingMove(pokemon,target,move,r5,param_4) ? TRUE : FALSE; return flag; @@ -1011,9 +1011,9 @@ bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para bool8 flag; flag = FALSE; - if ((GetEntInfo(target)->protection.protectionStatus == STATUS_REFLECT) || (GetEntInfo(target)->protection.protectionStatus == STATUS_LIGHT_SCREEN)) { + if ((GetEntInfo(target)->reflectClassStatus.status == STATUS_REFLECT) || (GetEntInfo(target)->reflectClassStatus.status == STATUS_LIGHT_SCREEN)) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD104); // The barrier was shattered - SendProtectionEndMessage(pokemon,target); + EndReflectClassStatus(pokemon,target); flag = TRUE; } @@ -1040,7 +1040,7 @@ bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, u32 p { bool8 flag; - if (MoveMatchesChargingStatus(pokemon,move)) { + if (MoveMatchesBideClassStatus(pokemon,move)) { flag = HandleDamagingMove(pokemon,target,move,gUnknown_80F4F54,param_4) ? TRUE : FALSE; sub_8079764(pokemon); } @@ -1109,9 +1109,9 @@ bool8 sub_80587E8(Entity * pokemon, Entity * target, Move * move, u32 param_4) { bool8 flag; - if (GetEntInfo(target)->nonVolatile.nonVolatileStatus == STATUS_PARALYSIS) { + if (GetEntInfo(target)->burnClassStatus.status == STATUS_PARALYSIS) { flag = HandleDamagingMove(pokemon,target,move,0x80 << 2,param_4) ? TRUE : FALSE; - SendNonVolatileEndMessage(pokemon, target); + EndBurnClassStatus(pokemon, target); } else { flag = HandleDamagingMove(pokemon,target,move,0x80 << 1,param_4) ? TRUE : FALSE; @@ -1237,7 +1237,7 @@ bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param { bool8 flag = FALSE; - if(MoveMatchesChargingStatus(pokemon, move)) + if(MoveMatchesBideClassStatus(pokemon, move)) { if (HandleDamagingMove(pokemon, target, move, gUnknown_80F4F4C, param_4) != 0) { flag = TRUE; @@ -1455,7 +1455,7 @@ bool32 sub_8058F04(Entity *pokemon, Entity *target, Move *move, s32 param_4) iVar3 = 1; gDungeon->unk181e8.unk18200 = 0xc; gDungeon->unk181e8.unk18204 = 0; - if (entityInfo->charging.chargingStatus == STATUS_DIGGING) { + if (entityInfo->bideClassStatus.status == STATUS_DIGGING) { iVar3 = 2; } flag = HandleDamagingMove(pokemon,target,move,iVar3 << 8,param_4); @@ -1799,7 +1799,7 @@ bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param s32 movePower; weather = GetApparentWeather(pokemon); - if ((weather == WEATHER_SUNNY) || (MoveMatchesChargingStatus(pokemon,move))) { + if ((weather == WEATHER_SUNNY) || (MoveMatchesBideClassStatus(pokemon,move))) { movePower = gSolarBeamMovePower; if (((weather == WEATHER_SANDSTORM) || (weather == WEATHER_RAIN)) || weather == WEATHER_HAIL) { @@ -1830,7 +1830,7 @@ bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) bool8 flag; flag = FALSE; - if (MoveMatchesChargingStatus(pokemon,move)) { + if (MoveMatchesBideClassStatus(pokemon,move)) { flag = HandleDamagingMove(pokemon,target,move,gUnknown_80F4F5C,param_4) != 0 ? TRUE : FALSE; sub_8079764(pokemon); } @@ -1855,7 +1855,7 @@ bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4 if (IsTileGround(GetTileAtEntitySafe(pokemon))) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FD128); } - else if (MoveMatchesChargingStatus(pokemon,move)) { + else if (MoveMatchesBideClassStatus(pokemon,move)) { flag = HandleDamagingMove(pokemon,target,move,gUnknown_80F4F64,param_4) != 0 ? TRUE : FALSE; sub_8079764(pokemon); } @@ -1894,7 +1894,7 @@ bool8 sub_8059928(Entity * pokemon,Entity * target,Move * move,u32 param_4) iVar2 = 1; flag = FALSE; - if ((u8)(GetEntInfo(target)->charging.chargingStatus - 7) <= 1){ + if ((u8)(GetEntInfo(target)->bideClassStatus.status - 7) <= 1){ iVar2 = 2; } if (HandleDamagingMove(pokemon,target,move,iVar2 << 8,param_4) != 0) @@ -2188,7 +2188,7 @@ bool8 sub_8059F38(Entity * pokemon,Entity * target,Move * move,u32 param_4) bool8 flag; flag = FALSE; - if (MoveMatchesChargingStatus(pokemon, move)) { + if (MoveMatchesBideClassStatus(pokemon, move)) { if (HandleDamagingMove(pokemon, target, move, gUnknown_80F4F60, param_4) != 0) { flag = TRUE; if (sub_805727C(pokemon, target, gUnknown_80F4DCC) != 0) { @@ -2378,7 +2378,7 @@ bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) u32 uVar2; flag = FALSE; - if (GetEntInfo(target)->charging.chargingStatus == STATUS_DIVING) { + if (GetEntInfo(target)->bideClassStatus.status == STATUS_DIVING) { uVar2 = 0x200; } else diff --git a/src/move_checks.c b/src/move_checks.c index b6138a831..d4f5c6555 100644 --- a/src/move_checks.c +++ b/src/move_checks.c @@ -114,20 +114,20 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_RAGE: - if (pokemonInfo->charging.chargingStatus == STATUS_ENRAGED) + if (pokemonInfo->bideClassStatus.status == STATUS_ENRAGED) { return FALSE; } break; case MOVE_COUNTER: case MOVE_PURSUIT: - if (pokemonInfo->protection.protectionStatus == STATUS_COUNTER) + if (pokemonInfo->reflectClassStatus.status == STATUS_COUNTER) { return FALSE; } break; case MOVE_MIRROR_MOVE: - if (pokemonInfo->protection.protectionStatus == STATUS_MIRROR_MOVE) + if (pokemonInfo->reflectClassStatus.status == STATUS_MIRROR_MOVE) { return FALSE; } @@ -159,7 +159,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) break; case MOVE_BIDE: case MOVE_REVENGE: - if (pokemonInfo->charging.chargingStatus == STATUS_BIDE) + if (pokemonInfo->bideClassStatus.status == STATUS_BIDE) { return FALSE; } @@ -181,7 +181,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } case MOVE_LOCK_ON: case MOVE_MIND_READER: - if (pokemonInfo->moveStatus.moveStatus == STATUS_SURE_SHOT) + if (pokemonInfo->sureShotClassStatus.status == STATUS_SURE_SHOT) { return FALSE; } @@ -193,25 +193,25 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_ENDURE: - if (pokemonInfo->protection.protectionStatus == STATUS_ENDURING) + if (pokemonInfo->reflectClassStatus.status == STATUS_ENDURING) { return FALSE; } break; case MOVE_CHARGE: - if (pokemonInfo->charging.chargingStatus == STATUS_CHARGING) + if (pokemonInfo->bideClassStatus.status == STATUS_CHARGING) { return FALSE; } break; case MOVE_MIST: - if (pokemonInfo->protection.protectionStatus == STATUS_MIST) + if (pokemonInfo->reflectClassStatus.status == STATUS_MIST) { return FALSE; } break; case MOVE_LIGHT_SCREEN: - if (pokemonInfo->protection.protectionStatus == STATUS_LIGHT_SCREEN) + if (pokemonInfo->reflectClassStatus.status == STATUS_LIGHT_SCREEN) { return FALSE; } @@ -223,7 +223,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_INGRAIN: - if (pokemonInfo->immobilize.immobilizeStatus == STATUS_INGRAIN || pokemonInfo->maxHPStat / 2 < pokemonInfo->HP) + if (pokemonInfo->frozenClassStatus.status == STATUS_INGRAIN || pokemonInfo->maxHPStat / 2 < pokemonInfo->HP) { return FALSE; } @@ -242,7 +242,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) break; case MOVE_DOOM_DESIRE: case MOVE_FUTURE_SIGHT: - if (pokemonInfo->moveStatus.moveStatus == STATUS_SET_DAMAGE) + if (pokemonInfo->sureShotClassStatus.status == STATUS_SET_DAMAGE) { return FALSE; } @@ -266,19 +266,19 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_DESTINY_BOND: - if (pokemonInfo->linked.linkedStatus == STATUS_DESTINY_BOND) + if (pokemonInfo->linked.status == STATUS_DESTINY_BOND) { return FALSE; } break; case MOVE_MIRROR_COAT: - if (pokemonInfo->protection.protectionStatus == STATUS_MIRROR_COAT) + if (pokemonInfo->reflectClassStatus.status == STATUS_MIRROR_COAT) { return FALSE; } break; case MOVE_REFLECT: - if (pokemonInfo->protection.protectionStatus == STATUS_REFLECT) + if (pokemonInfo->reflectClassStatus.status == STATUS_REFLECT) { return FALSE; } @@ -290,14 +290,14 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_MAGIC_COAT: - if (pokemonInfo->protection.protectionStatus == STATUS_MAGIC_COAT) + if (pokemonInfo->reflectClassStatus.status == STATUS_MAGIC_COAT) { return FALSE; } break; case MOVE_DETECT: case MOVE_PROTECT: - if (pokemonInfo->protection.protectionStatus == STATUS_PROTECT) + if (pokemonInfo->reflectClassStatus.status == STATUS_PROTECT) { return FALSE; } @@ -321,19 +321,19 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_SAFEGUARD: - if (pokemonInfo->protection.protectionStatus == STATUS_SAFEGUARD) + if (pokemonInfo->reflectClassStatus.status == STATUS_SAFEGUARD) { return FALSE; } break; case MOVE_INVISIFY: - if (pokemonInfo->transformStatus.transformStatus == STATUS_INVISIBLE) + if (pokemonInfo->invisibleClassStatus.status == STATUS_INVISIBLE) { return FALSE; } break; case MOVE_FOCUS_ENERGY: - if (pokemonInfo->moveStatus.moveStatus == STATUS_FOCUS_ENERGY) + if (pokemonInfo->sureShotClassStatus.status == STATUS_FOCUS_ENERGY) { return FALSE; } @@ -432,13 +432,13 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_WISH: - if (pokemonInfo->isNotTeamMember || pokemonInfo->protection.protectionStatus == STATUS_WISH) + if (pokemonInfo->isNotTeamMember || pokemonInfo->reflectClassStatus.status == STATUS_WISH) { return FALSE; } break; case MOVE_TRANSFORM: - if (pokemonInfo->transformStatus.transformStatus == STATUS_TRANSFORMED) + if (pokemonInfo->invisibleClassStatus.status == STATUS_TRANSFORMED) { return FALSE; } @@ -461,7 +461,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_SNATCH: - if (pokemonInfo->waitingStruct.waitingStatus == STATUS_SNATCH) + if (pokemonInfo->curseClassStatus.status == STATUS_SNATCH) { return FALSE; } @@ -483,7 +483,7 @@ bool8 CanUseOnSelfWithStatusChecker(Entity *pokemon, Move *move) } break; case MOVE_CONVERSION_2: - if (pokemonInfo->protection.protectionStatus == STATUS_CONVERSION2) + if (pokemonInfo->reflectClassStatus.status == STATUS_CONVERSION2) { return FALSE; } @@ -546,7 +546,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) EntityInfo *userData = GetEntInfo(user); EntityInfo *targetData = GetEntInfo(target); s32 i; - if (targetData->immobilize.immobilizeStatus == STATUS_FROZEN && MoveCannotHitFrozen(move)) + if (targetData->frozenClassStatus.status == STATUS_FROZEN && MoveCannotHitFrozen(move)) { return FALSE; } @@ -564,7 +564,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_YAWN: - if (targetData->sleep.sleep == STATUS_YAWNING) + if (targetData->sleepClassStatus.status == STATUS_YAWNING) { return FALSE; } @@ -574,7 +574,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_NIGHTMARE: - if (targetData->sleep.sleep == STATUS_NIGHTMARE) + if (targetData->sleepClassStatus.status == STATUS_NIGHTMARE) { return FALSE; } @@ -592,7 +592,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_ENCORE: - if (targetData->volatileStatus.volatileStatus == STATUS_ENCORE) + if (targetData->cringeClassStatus.status == STATUS_ENCORE) { return FALSE; } @@ -646,7 +646,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_SMOKESCREEN: - if (targetData->moveStatus.moveStatus == STATUS_WHIFFER) + if (targetData->sureShotClassStatus.status == STATUS_WHIFFER) { return FALSE; } @@ -659,7 +659,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_WILL_O_WISP: - if (targetData->nonVolatile.nonVolatileStatus == STATUS_BURN) + if (targetData->burnClassStatus.status == STATUS_BURN) { return FALSE; } @@ -682,7 +682,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) case MOVE_GLARE: case MOVE_STUN_SPORE: case MOVE_THUNDER_WAVE: - if (targetData->nonVolatile.nonVolatileStatus == STATUS_PARALYSIS) + if (targetData->burnClassStatus.status == STATUS_PARALYSIS) { return FALSE; } @@ -716,7 +716,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) case MOVE_BLOCK: case MOVE_MEAN_LOOK: case MOVE_SPIDER_WEB: - if (targetData->immobilize.immobilizeStatus == STATUS_SHADOW_HOLD) + if (targetData->frozenClassStatus.status == STATUS_SHADOW_HOLD) { return FALSE; } @@ -741,7 +741,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) break; } case MOVE_UPROAR: - if (targetData->sleep.sleep == STATUS_SLEEPLESS) + if (targetData->sleepClassStatus.status == STATUS_SLEEPLESS) { return FALSE; } @@ -774,7 +774,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_TAUNT: - if (targetData->volatileStatus.volatileStatus == STATUS_TAUNTED) + if (targetData->cringeClassStatus.status == STATUS_TAUNTED) { return FALSE; } @@ -809,7 +809,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) case MOVE_CURSE: if (MonsterIsType(user, TYPE_GHOST)) { - if (targetData->waitingStruct.waitingStatus == STATUS_CURSED) + if (targetData->curseClassStatus.status == STATUS_CURSED) { return FALSE; } @@ -825,7 +825,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) break; case MOVE_IMPRISON: case MOVE_OBSERVER: - if (targetData->volatileStatus.volatileStatus == STATUS_PAUSED) + if (targetData->cringeClassStatus.status == STATUS_PAUSED) { return FALSE; } @@ -837,7 +837,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_LEECH_SEED: - if (targetData->linked.linkedStatus == STATUS_LEECH_SEED) + if (targetData->linked.status == STATUS_LEECH_SEED) { return FALSE; } @@ -856,34 +856,34 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) } break; case MOVE_ATTRACT: - if (targetData->volatileStatus.volatileStatus == STATUS_INFATUATED) + if (targetData->cringeClassStatus.status == STATUS_INFATUATED) { return FALSE; } break; case MOVE_WRAP: - if (targetData->immobilize.immobilizeStatus == STATUS_WRAP) + if (targetData->frozenClassStatus.status == STATUS_WRAP) { return FALSE; } - if (targetData->immobilize.immobilizeStatus == STATUS_WRAPPED) + if (targetData->frozenClassStatus.status == STATUS_WRAPPED) { return FALSE; } break; case MOVE_TOXIC: - if (targetData->nonVolatile.nonVolatileStatus == STATUS_BADLY_POISONED) + if (targetData->burnClassStatus.status == STATUS_BADLY_POISONED) { return FALSE; } break; case MOVE_POISON_GAS: case MOVE_POISONPOWDER: - if (targetData->nonVolatile.nonVolatileStatus == STATUS_POISONED) + if (targetData->burnClassStatus.status == STATUS_POISONED) { return FALSE; } - if (targetData->nonVolatile.nonVolatileStatus == STATUS_BADLY_POISONED) + if (targetData->burnClassStatus.status == STATUS_BADLY_POISONED) { return FALSE; } @@ -895,7 +895,7 @@ bool8 CanUseOnTargetWithStatusChecker(Entity *user, Entity *target, Move *move) case MOVE_SWEET_KISS: case MOVE_TEETER_DANCE: case MOVE_TOTTER: - if (targetData->volatileStatus.volatileStatus == STATUS_CONFUSED) + if (targetData->cringeClassStatus.status == STATUS_CONFUSED) { return FALSE; } diff --git a/src/move_effects_target.c b/src/move_effects_target.c index 34a43fb88..ec2624629 100644 --- a/src/move_effects_target.c +++ b/src/move_effects_target.c @@ -151,17 +151,17 @@ void sub_8075BA4(Entity *param_1, u8 param_2) { EntityInfo * entityInfo = GetEntInfo(param_1); - if ((param_2 != 0) && (entityInfo->volatileStatus.volatileStatus == STATUS_COWERING)) { + if ((param_2 != 0) && (entityInfo->cringeClassStatus.status == STATUS_COWERING)) { entityInfo->action.direction = (entityInfo->action.direction + 4) & DIRECTION_MASK; TargetTileInFront(param_1); } - else if (entityInfo->volatileStatus.volatileStatus == STATUS_CONFUSED) { + else if (entityInfo->cringeClassStatus.status == STATUS_CONFUSED) { entityInfo->action.direction = DungeonRandInt(NUM_DIRECTIONS); TargetTileInFront(param_1); } } -u8 sub_8075BF4(Entity * pokemon, s32 sleepTurns) +u8 sub_8075BF4(Entity * pokemon, s32 sleepClassStatusTurns) { EntityInfo *entityInfo; u32 uVar4; @@ -174,18 +174,18 @@ u8 sub_8075BF4(Entity * pokemon, s32 sleepTurns) { entityInfo = GetEntInfo(pokemon); - if(entityInfo->sleep.sleep != STATUS_NIGHTMARE && entityInfo->sleep.sleep != STATUS_SLEEP) + if(entityInfo->sleepClassStatus.status != STATUS_NIGHTMARE && entityInfo->sleepClassStatus.status != STATUS_SLEEP) { - entityInfo->sleep.sleep = STATUS_SLEEP; - if ((sleepTurns != 0x7f) && HasAbility(pokemon, ABILITY_EARLY_BIRD) && - (sleepTurns = sleepTurns / 2, sleepTurns < 1)) { - sleepTurns = 1; + entityInfo->sleepClassStatus.status = STATUS_SLEEP; + if ((sleepClassStatusTurns != 0x7f) && HasAbility(pokemon, ABILITY_EARLY_BIRD) && + (sleepClassStatusTurns = sleepClassStatusTurns / 2, sleepClassStatusTurns < 1)) { + sleepClassStatusTurns = 1; } - entityInfo->sleep.sleepTurns = sleepTurns; + entityInfo->sleepClassStatus.turns = sleepClassStatusTurns; } - else if(entityInfo->sleep.sleep == STATUS_SLEEP) + else if(entityInfo->sleepClassStatus.status == STATUS_SLEEP) uVar4 = 1; - else if(entityInfo->sleep.sleep == STATUS_NIGHTMARE) + else if(entityInfo->sleepClassStatus.status == STATUS_NIGHTMARE) uVar4 = 2; EntityUpdateStatusSprites(pokemon); } @@ -199,7 +199,7 @@ void sub_8075C58(Entity * pokemon, Entity * target, s32 turns, u8 displayMessage if (!CannotSleep(pokemon,target,1,displayMessage)) { - sleep = GetEntInfo(target)->sleep.sleep; + sleep = GetEntInfo(target)->sleepClassStatus.status; if (sleep == STATUS_SLEEPLESS) { if (displayMessage) TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB380); @@ -265,19 +265,19 @@ void NightmareStatusTarget(Entity * pokemon, Entity * target, s32 turns) hasNightmare = FALSE; if (!CannotSleep(pokemon, target, 1, TRUE)) { entityInfo = GetEntInfo(target); - if (entityInfo->sleep.sleep != STATUS_SLEEPLESS) { + if (entityInfo->sleepClassStatus.status != STATUS_SLEEPLESS) { sub_8041EC8(target); - if (entityInfo->sleep.sleep != STATUS_NIGHTMARE) { - entityInfo->sleep.sleepTurns = turns; - if ((HasAbility(target, ABILITY_EARLY_BIRD)) && (entityInfo->sleep.sleepTurns >>= 1, entityInfo->sleep.sleepTurns == 0)) { - entityInfo->sleep.sleepTurns = 1; + if (entityInfo->sleepClassStatus.status != STATUS_NIGHTMARE) { + entityInfo->sleepClassStatus.turns = turns; + if ((HasAbility(target, ABILITY_EARLY_BIRD)) && (entityInfo->sleepClassStatus.turns >>= 1, entityInfo->sleepClassStatus.turns == 0)) { + entityInfo->sleepClassStatus.turns = 1; } } else { hasNightmare = TRUE; } - entityInfo->sleep.sleep = STATUS_NIGHTMARE; + entityInfo->sleepClassStatus.status = STATUS_NIGHTMARE; sub_806CE68(target,8); if (hasNightmare) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB3CC); @@ -302,19 +302,19 @@ void NappingStatusTarget(Entity * pokemon, Entity * target, s32 turns) isSleeping = FALSE; if (!CannotSleep(pokemon, target, 0, TRUE)) { entityInfo = GetEntInfo(target); - if (entityInfo->sleep.sleep != STATUS_SLEEPLESS) { + if (entityInfo->sleepClassStatus.status != STATUS_SLEEPLESS) { sub_8041ED8(target); - if (entityInfo->sleep.sleep == STATUS_NONE || entityInfo->sleep.sleep == STATUS_YAWNING) { - entityInfo->sleep.sleepTurns = turns; - if ((HasAbility(target, ABILITY_EARLY_BIRD)) && (entityInfo->sleep.sleepTurns >>= 1, entityInfo->sleep.sleepTurns == 0)) { - entityInfo->sleep.sleepTurns = 1; + if (entityInfo->sleepClassStatus.status == STATUS_NONE || entityInfo->sleepClassStatus.status == STATUS_YAWNING) { + entityInfo->sleepClassStatus.turns = turns; + if ((HasAbility(target, ABILITY_EARLY_BIRD)) && (entityInfo->sleepClassStatus.turns >>= 1, entityInfo->sleepClassStatus.turns == 0)) { + entityInfo->sleepClassStatus.turns = 1; } } else { isSleeping = TRUE; } - entityInfo->sleep.sleep = STATUS_NAPPING; + entityInfo->sleepClassStatus.status = STATUS_NAPPING; sub_806CE68(target, 8); if (isSleeping) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB360); @@ -339,21 +339,21 @@ void YawnedStatusTarget(Entity * pokemon, Entity * target, s32 turns) return; } entityInfo = GetEntInfo(target); - if (entityInfo->sleep.sleep == STATUS_NONE) { - entityInfo->sleep.sleep = STATUS_YAWNING; - entityInfo->sleep.sleepTurns = turns; + if (entityInfo->sleepClassStatus.status == STATUS_NONE) { + entityInfo->sleepClassStatus.status = STATUS_YAWNING; + entityInfo->sleepClassStatus.turns = turns; nullsub_91(target); sub_806CE68(target, 8); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB3E0); } - else if (((entityInfo->sleep.sleep == STATUS_SLEEP) || (entityInfo->sleep.sleep == STATUS_NIGHTMARE)) || (entityInfo->sleep.sleep == STATUS_NAPPING)) { + else if (((entityInfo->sleepClassStatus.status == STATUS_SLEEP) || (entityInfo->sleepClassStatus.status == STATUS_NIGHTMARE)) || (entityInfo->sleepClassStatus.status == STATUS_NAPPING)) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB418); } - else if (entityInfo->sleep.sleep == STATUS_SLEEPLESS) { + else if (entityInfo->sleepClassStatus.status == STATUS_SLEEPLESS) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB3F8); } else { - if (entityInfo->sleep.sleep == STATUS_YAWNING) + if (entityInfo->sleepClassStatus.status == STATUS_YAWNING) TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB414); else TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB3E0); @@ -372,15 +372,15 @@ void SleeplessStatusTarget(Entity * pokemon, Entity * target) } entityInfo = GetEntInfo(target); - if ((entityInfo->sleep.sleep == STATUS_SLEEP) || (entityInfo->sleep.sleep == STATUS_NAPPING) || (entityInfo->sleep.sleep == STATUS_NIGHTMARE)) { + if ((entityInfo->sleepClassStatus.status == STATUS_SLEEP) || (entityInfo->sleepClassStatus.status == STATUS_NAPPING) || (entityInfo->sleepClassStatus.status == STATUS_NIGHTMARE)) { isAsleep = TRUE; } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], target, 0); - if (entityInfo->sleep.sleep != STATUS_SLEEPLESS) + if (entityInfo->sleepClassStatus.status != STATUS_SLEEPLESS) { - entityInfo->sleep.sleep = STATUS_SLEEPLESS; - entityInfo->sleep.sleepTurns = CalculateStatusTurns(target, gUnknown_80F4E7C, FALSE) + 1; + entityInfo->sleepClassStatus.status = STATUS_SLEEPLESS; + entityInfo->sleepClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E7C, FALSE) + 1; entityInfo->unk165 = 0xFF; entityInfo->unk164 = 0xFF; sub_8041EE8(target); @@ -408,9 +408,9 @@ void PausedStatusTarget(Entity * pokemon, Entity * target, u8 param_3, s32 turns return; } SetMessageArgument_2(gFormatBuffer_Monsters[0],entityInfo,0); - if (entityInfo->volatileStatus.volatileStatus != STATUS_PAUSED) { - entityInfo->volatileStatus.volatileStatus = STATUS_PAUSED; - entityInfo->volatileStatus.volatileStatusTurns = turns + 1; + if (entityInfo->cringeClassStatus.status != STATUS_PAUSED) { + entityInfo->cringeClassStatus.status = STATUS_PAUSED; + entityInfo->cringeClassStatus.turns = turns + 1; nullsub_72(target); if (turns == 1) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB480); @@ -448,9 +448,9 @@ void InfatuateStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessa else { SetMessageArgument_2(gFormatBuffer_Monsters[0],entityInfo,0); - if (entityInfo->volatileStatus.volatileStatus != STATUS_INFATUATED) { - entityInfo->volatileStatus.volatileStatus = STATUS_INFATUATED; - entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4F00,TRUE) + 1; + if (entityInfo->cringeClassStatus.status != STATUS_INFATUATED) { + entityInfo->cringeClassStatus.status = STATUS_INFATUATED; + entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4F00,TRUE) + 1; sub_8041EF8(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB50C); } @@ -501,11 +501,11 @@ void BurnedStatusTarget(Entity * pokemon, Entity * target, u8 param_3, bool8 dis else { isNotBurned = TRUE; - if (entityInfo->nonVolatile.nonVolatileStatus != STATUS_BURN) { - entityInfo->nonVolatile.nonVolatileStatus = STATUS_BURN; - entityInfo->nonVolatile.nonVolatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E30,TRUE) + 1; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = 0; - entityInfo->nonVolatile.unk4 = 0; + if (entityInfo->burnClassStatus.status != STATUS_BURN) { + entityInfo->burnClassStatus.status = STATUS_BURN; + entityInfo->burnClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E30,TRUE) + 1; + entityInfo->burnClassStatus.damageCountdown = 0; + entityInfo->burnClassStatus.unk4 = 0; isNotBurned = FALSE; if (param_3 != 0) { sub_8041C34(target); @@ -587,14 +587,14 @@ void PoisonedStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessag { isNotPoisoned = TRUE; - if(entityInfo->nonVolatile.nonVolatileStatus != STATUS_BADLY_POISONED) + if(entityInfo->burnClassStatus.status != STATUS_BADLY_POISONED) { - if(entityInfo->nonVolatile.nonVolatileStatus != STATUS_POISONED) + if(entityInfo->burnClassStatus.status != STATUS_POISONED) { - entityInfo->nonVolatile.nonVolatileStatus = STATUS_POISONED; - entityInfo->nonVolatile.nonVolatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E34,TRUE) + 1; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = 0; - entityInfo->nonVolatile.unk4 = 0; + entityInfo->burnClassStatus.status = STATUS_POISONED; + entityInfo->burnClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E34,TRUE) + 1; + entityInfo->burnClassStatus.damageCountdown = 0; + entityInfo->burnClassStatus.unk4 = 0; isNotPoisoned = FALSE; sub_8041C6C(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB598); @@ -676,12 +676,12 @@ void BadlyPoisonedStatusTarget(Entity * pokemon, Entity * target, bool8 displayM { isNotBadlyPoisoned = TRUE; - if(entityInfo->nonVolatile.nonVolatileStatus != STATUS_BADLY_POISONED) + if(entityInfo->burnClassStatus.status != STATUS_BADLY_POISONED) { - entityInfo->nonVolatile.nonVolatileStatus = STATUS_BADLY_POISONED; - entityInfo->nonVolatile.nonVolatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E38,TRUE) + 1; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = 0; - entityInfo->nonVolatile.unk4 = 0; + entityInfo->burnClassStatus.status = STATUS_BADLY_POISONED; + entityInfo->burnClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E38,TRUE) + 1; + entityInfo->burnClassStatus.damageCountdown = 0; + entityInfo->burnClassStatus.unk4 = 0; isNotBadlyPoisoned = FALSE; sub_8041C7C(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB5B4); @@ -734,7 +734,7 @@ void FrozenStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage) SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], target, 0); entityInfo = GetEntInfo(target); - if ((entityInfo->immobilize.immobilizeStatus != STATUS_FROZEN) && !HasSafeguardStatus(pokemon,target,displayMessage)) { + if ((entityInfo->frozenClassStatus.status != STATUS_FROZEN) && !HasSafeguardStatus(pokemon,target,displayMessage)) { if (HasAbility(target, ABILITY_MAGMA_ARMOR)) { if (displayMessage) TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FCDE0); @@ -755,13 +755,13 @@ void FrozenStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage) } else { - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP || entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (entityInfo->frozenClassStatus.status == STATUS_WRAP || entityInfo->frozenClassStatus.status == STATUS_WRAPPED) { sub_8076CB4(entityInfo->unk9C); } sub_8041F08(target); - entityInfo->immobilize.immobilizeStatus = STATUS_FROZEN; - entityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E2C,TRUE) + 1; - entityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + entityInfo->frozenClassStatus.status = STATUS_FROZEN; + entityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E2C,TRUE) + 1; + entityInfo->frozenClassStatus.damageCountdown = 0; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB610); EntityUpdateStatusSprites(target); } @@ -778,19 +778,19 @@ void SqueezedStatusTarget(Entity * pokemon, Entity * target, s16 param_3, bool32 if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,displayMessage_u8))) { entityInfo = GetEntInfo(target); - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP || entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (entityInfo->frozenClassStatus.status == STATUS_WRAP || entityInfo->frozenClassStatus.status == STATUS_WRAPPED) { sub_8076CB4(entityInfo->unk9C); } - else if (entityInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) { + else if (entityInfo->frozenClassStatus.status == STATUS_INGRAIN) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA844); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->immobilize.immobilizeStatus != STATUS_CONSTRICTION) { - entityInfo->immobilize.immobilizeStatus = STATUS_CONSTRICTION; - entityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E58,TRUE) + 1; - entityInfo->immobilize.immobilizeStatusDamageCountdown = 0; - entityInfo->immobilize.unk4 = param_3_s32; + if (entityInfo->frozenClassStatus.status != STATUS_CONSTRICTION) { + entityInfo->frozenClassStatus.status = STATUS_CONSTRICTION; + entityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E58,TRUE) + 1; + entityInfo->frozenClassStatus.damageCountdown = 0; + entityInfo->frozenClassStatus.unk4 = param_3_s32; nullsub_71(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB628); sub_806CE94(target,8); @@ -808,18 +808,18 @@ void ImmobilizedStatusTarget(Entity * pokemon, Entity * target) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,TRUE))) { entityInfo = GetEntInfo(target); - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP || entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (entityInfo->frozenClassStatus.status == STATUS_WRAP || entityInfo->frozenClassStatus.status == STATUS_WRAPPED) { sub_8076CB4(entityInfo->unk9C); } - else if (entityInfo->immobilize.immobilizeStatus == STATUS_INGRAIN) { + else if (entityInfo->frozenClassStatus.status == STATUS_INGRAIN) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA844); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->immobilize.immobilizeStatus != STATUS_SHADOW_HOLD) { - entityInfo->immobilize.immobilizeStatus = STATUS_SHADOW_HOLD; - entityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E54,TRUE) + 1; - entityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + if (entityInfo->frozenClassStatus.status != STATUS_SHADOW_HOLD) { + entityInfo->frozenClassStatus.status = STATUS_SHADOW_HOLD; + entityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E54,TRUE) + 1; + entityInfo->frozenClassStatus.damageCountdown = 0; nullsub_70(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB668); sub_806CE94(target,8); @@ -837,14 +837,14 @@ void IngrainedStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); - if (entityInfo->immobilize.immobilizeStatus == STATUS_WRAP || entityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (entityInfo->frozenClassStatus.status == STATUS_WRAP || entityInfo->frozenClassStatus.status == STATUS_WRAPPED) { sub_8076CB4(entityInfo->unk9C); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->immobilize.immobilizeStatus != STATUS_INGRAIN) { - entityInfo->immobilize.immobilizeStatus = STATUS_INGRAIN; - entityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E60,TRUE) + 1; - entityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + if (entityInfo->frozenClassStatus.status != STATUS_INGRAIN) { + entityInfo->frozenClassStatus.status = STATUS_INGRAIN; + entityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E60,TRUE) + 1; + entityInfo->frozenClassStatus.damageCountdown = 0; nullsub_90(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB6A4); } @@ -871,16 +871,16 @@ void WrapTarget(Entity * pokemon, Entity * target) } pokemonEntityData = GetEntInfo(pokemon); targetEntityInfo = GetEntInfo(target); - if ((u8)(pokemonEntityData->immobilize.immobilizeStatus - 3U) > 1) { - if ((targetEntityInfo->immobilize.immobilizeStatus != STATUS_WRAP)) + if ((u8)(pokemonEntityData->frozenClassStatus.status - 3U) > 1) { + if ((targetEntityInfo->frozenClassStatus.status != STATUS_WRAP)) { - if(targetEntityInfo->immobilize.immobilizeStatus != STATUS_WRAPPED) { - pokemonEntityData->immobilize.immobilizeStatus = STATUS_WRAP; - pokemonEntityData->immobilize.immobilizeStatusTurns = 0x7f; - pokemonEntityData->immobilize.immobilizeStatusDamageCountdown = 0; - targetEntityInfo->immobilize.immobilizeStatus = STATUS_WRAPPED; - targetEntityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E5C, TRUE) + 1; - targetEntityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + if(targetEntityInfo->frozenClassStatus.status != STATUS_WRAPPED) { + pokemonEntityData->frozenClassStatus.status = STATUS_WRAP; + pokemonEntityData->frozenClassStatus.turns = 0x7f; + pokemonEntityData->frozenClassStatus.damageCountdown = 0; + targetEntityInfo->frozenClassStatus.status = STATUS_WRAPPED; + targetEntityInfo->frozenClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E5C, TRUE) + 1; + targetEntityInfo->frozenClassStatus.damageCountdown = 0; iVar5 = &pokemonEntityData->unk9C; piVar3 = &gDungeon->unk37F4; *iVar5 = *piVar3; @@ -894,19 +894,19 @@ void WrapTarget(Entity * pokemon, Entity * target) } } } - if (pokemonEntityData->immobilize.immobilizeStatus == STATUS_WRAP) { + if (pokemonEntityData->frozenClassStatus.status == STATUS_WRAP) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],pokemon,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB6FC); } - if (targetEntityInfo->immobilize.immobilizeStatus == STATUS_WRAP) { + if (targetEntityInfo->frozenClassStatus.status == STATUS_WRAP) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB6FC); } - if (pokemonEntityData->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (pokemonEntityData->frozenClassStatus.status == STATUS_WRAPPED) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],pokemon,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB718); } - if (targetEntityInfo->immobilize.immobilizeStatus == STATUS_WRAPPED) { + if (targetEntityInfo->frozenClassStatus.status == STATUS_WRAPPED) { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB718); } @@ -922,12 +922,12 @@ void sub_8076CB4(s32 param_1) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { entityInfo = GetEntInfo(entity); if (entityInfo->unk9C == param_1) { - if ((u8)(entityInfo->immobilize.immobilizeStatus - 3U) < 2) { - entityInfo->immobilize.immobilizeStatus = STATUS_NONE; + if ((u8)(entityInfo->frozenClassStatus.status - 3U) < 2) { + entityInfo->frozenClassStatus.status = STATUS_NONE; } entityInfo->unk9C = 0; } @@ -946,19 +946,19 @@ void PetrifiedStatusTarget(Entity * pokemon, Entity * target) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,TRUE))) { sub_8041C08(target); targetEntityInfo = GetEntInfo(target); - if ((u8)(targetEntityInfo->immobilize.immobilizeStatus - 3U) < 2) { + if ((u8)(targetEntityInfo->frozenClassStatus.status - 3U) < 2) { sub_8076CB4(targetEntityInfo->unk9C); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (targetEntityInfo->immobilize.immobilizeStatus != STATUS_PETRIFIED) { - targetEntityInfo->immobilize.immobilizeStatus = STATUS_PETRIFIED; + if (targetEntityInfo->frozenClassStatus.status != STATUS_PETRIFIED) { + targetEntityInfo->frozenClassStatus.status = STATUS_PETRIFIED; if (targetEntityInfo->isTeamLeader) { - targetEntityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EBC,TRUE) + 1; + targetEntityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EBC,TRUE) + 1; } else { - targetEntityInfo->immobilize.immobilizeStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EC0,TRUE) + 1; + targetEntityInfo->frozenClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EC0,TRUE) + 1; } - targetEntityInfo->immobilize.immobilizeStatusDamageCountdown = 0; + targetEntityInfo->frozenClassStatus.damageCountdown = 0; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB7BC); } diff --git a/src/status.c b/src/status.c index 920d89ec7..e0c71b1b0 100644 --- a/src/status.c +++ b/src/status.c @@ -414,10 +414,10 @@ void CringeStatusTarget(Entity * pokemon,Entity * target, bool8 displayMessage) else { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if(entityInfo->volatileStatus.volatileStatus != STATUS_CRINGE) + if(entityInfo->cringeClassStatus.status != STATUS_CRINGE) { - entityInfo->volatileStatus.volatileStatus = STATUS_CRINGE; - entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E3C, TRUE) + 1; + entityInfo->cringeClassStatus.status = STATUS_CRINGE; + entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E3C, TRUE) + 1; sub_80420A0(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB2E0); } @@ -452,11 +452,11 @@ void ParalyzeStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessag bVar6 = TRUE; entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->nonVolatile.nonVolatileStatus != STATUS_PARALYSIS) { - entityInfo->nonVolatile.nonVolatileStatus = STATUS_PARALYSIS; - entityInfo->nonVolatile.nonVolatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E50,TRUE) + 1; - entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = 0; - entityInfo->nonVolatile.unk4 = 0; + if (entityInfo->burnClassStatus.status != STATUS_PARALYSIS) { + entityInfo->burnClassStatus.status = STATUS_PARALYSIS; + entityInfo->burnClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E50,TRUE) + 1; + entityInfo->burnClassStatus.damageCountdown = 0; + entityInfo->burnClassStatus.unk4 = 0; bVar6 = FALSE; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB2AC); sub_8041C1C(target); @@ -606,9 +606,9 @@ void ConfuseStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage { sub_8041BE8(target); entityInfo = GetEntInfo(target); - if (entityInfo->volatileStatus.volatileStatus != STATUS_CONFUSED) { - entityInfo->volatileStatus.volatileStatus = STATUS_CONFUSED; - entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E4C,TRUE) + 1; + if (entityInfo->cringeClassStatus.status != STATUS_CONFUSED) { + entityInfo->cringeClassStatus.status = STATUS_CONFUSED; + entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E4C,TRUE) + 1; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB25C); } else { @@ -626,9 +626,9 @@ void CowerStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,displayMessage))) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->volatileStatus.volatileStatus != STATUS_COWERING) { - entityInfo->volatileStatus.volatileStatus = STATUS_COWERING; - entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ECC,TRUE) + 1; + if (entityInfo->cringeClassStatus.status != STATUS_COWERING) { + entityInfo->cringeClassStatus.status = STATUS_COWERING; + entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ECC,TRUE) + 1; sub_8041BF8(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB940); } @@ -807,14 +807,14 @@ void HandleLeechSeed(Entity * pokemon, Entity * target, bool8 displayMessage) } else { - switch(entityInfo->linked.linkedStatus) + switch(entityInfo->linked.status) { case STATUS_DESTINY_BOND: TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAA8C); default: - entityInfo->linked.linkedStatus = STATUS_LEECH_SEED; - entityInfo->linked.linkedStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EB0, TRUE) + 1; - entityInfo->linked.linkedStatusDamageCountdown = 0; + entityInfo->linked.status = STATUS_LEECH_SEED; + entityInfo->linked.turns = CalculateStatusTurns(target, gUnknown_80F4EB0, TRUE) + 1; + entityInfo->linked.damageCountdown = 0; nullsub_78(target); entityInfo->linked.unkD8 = 0xff; break; @@ -824,7 +824,7 @@ void HandleLeechSeed(Entity * pokemon, Entity * target, bool8 displayMessage) } for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - if (pokemon == gDungeon->activeMonsterPtrs[index]) { + if (pokemon == gDungeon->activePokemon[index]) { entityInfo->linked.unkD8 = index; entityInfo2 = GetEntInfo(pokemon); entityInfo->linked.unkD4 = entityInfo2->unk98; @@ -847,14 +847,14 @@ void sub_8078084(Entity * pokemon) entityInfo = GetEntInfo(pokemon); for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - target = gDungeon->activeMonsterPtrs[index]; + target = gDungeon->activePokemon[index]; if (EntityExists(target)) { entityInfo2 = GetEntInfo(target); - if((u8)(entityInfo2->linked.linkedStatus - 1) <= 1) + if((u8)(entityInfo2->linked.status - 1) <= 1) { if(entityInfo2->linked.unkD4 == entityInfo->unk98) { - entityInfo2->linked.linkedStatus = STATUS_NONE; + entityInfo2->linked.status = STATUS_NONE; EntityUpdateStatusSprites(target); } } @@ -867,22 +867,22 @@ void DestinyBondStatusTarget(Entity * pokemon, Entity * target) EntityInfo *entityInfo; EntityInfo *entityInfo2; s32 index; - u8 *linkedStatus; + u8 *status; s32 zero; if (((EntityExists(target)) && (GetEntityType(pokemon) == ENTITY_MONSTER)) && (GetEntityType(target) == ENTITY_MONSTER)) { entityInfo = GetEntInfo(pokemon); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],pokemon,0); - linkedStatus = &entityInfo->linked.linkedStatus; - if (entityInfo->linked.linkedStatus != STATUS_DESTINY_BOND) + status = &entityInfo->linked.status; + if (entityInfo->linked.status != STATUS_DESTINY_BOND) { - if (entityInfo->linked.linkedStatus == STATUS_LEECH_SEED) + if (entityInfo->linked.status == STATUS_LEECH_SEED) TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA79C); zero = 0; - *linkedStatus = STATUS_DESTINY_BOND; - entityInfo->linked.linkedStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EF0,TRUE) + 1; - entityInfo->linked.linkedStatusDamageCountdown = zero; + *status = STATUS_DESTINY_BOND; + entityInfo->linked.turns = CalculateStatusTurns(target,gUnknown_80F4EF0,TRUE) + 1; + entityInfo->linked.damageCountdown = zero; nullsub_74(target); entityInfo->linked.unkD8 = 0xff; } @@ -893,7 +893,7 @@ void DestinyBondStatusTarget(Entity * pokemon, Entity * target) } for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - if (target == gDungeon->activeMonsterPtrs[index]) { + if (target == gDungeon->activePokemon[index]) { entityInfo->linked.unkD8 = index; entityInfo2 = GetEntInfo(target); entityInfo->linked.unkD4 = entityInfo2->unk98; @@ -911,9 +911,9 @@ void SureShotStatusTarget(Entity *pokemon, Entity * target, s32 turns) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->moveStatus.moveStatus != STATUS_SURE_SHOT) { - entityInfo->moveStatus.moveStatus = STATUS_SURE_SHOT; - entityInfo->moveStatus.moveStatusTurns = turns + 1; + if (entityInfo->sureShotClassStatus.status != STATUS_SURE_SHOT) { + entityInfo->sureShotClassStatus.status = STATUS_SURE_SHOT; + entityInfo->sureShotClassStatus.turns = turns + 1; sub_8041CDC(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB73C); } @@ -931,9 +931,9 @@ void WhifferStatusTarget(Entity *pokemon, Entity * target, s32 turns) if (EntityExists(target) && !HasSafeguardStatus(pokemon, target, TRUE)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->moveStatus.moveStatus != STATUS_WHIFFER) { - entityInfo->moveStatus.moveStatus = STATUS_WHIFFER; - entityInfo->moveStatus.moveStatusTurns = turns + 1; + if (entityInfo->sureShotClassStatus.status != STATUS_WHIFFER) { + entityInfo->sureShotClassStatus.status = STATUS_WHIFFER; + entityInfo->sureShotClassStatus.turns = turns + 1; sub_8041CEC(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB780); } @@ -951,9 +951,9 @@ void FixedDamageStatusTarget(Entity *pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->moveStatus.moveStatus != STATUS_SET_DAMAGE) { - entityInfo->moveStatus.moveStatus = STATUS_SET_DAMAGE; - entityInfo->moveStatus.moveStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EC4, FALSE) + 1; + if (entityInfo->sureShotClassStatus.status != STATUS_SET_DAMAGE) { + entityInfo->sureShotClassStatus.status = STATUS_SET_DAMAGE; + entityInfo->sureShotClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EC4, FALSE) + 1; nullsub_79(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB8BC); } @@ -971,9 +971,9 @@ void FocusEnergyStatusTarget(Entity *pokemon, Entity * target) if (EntityExists(target)) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->moveStatus.moveStatus != STATUS_FOCUS_ENERGY) { - entityInfo->moveStatus.moveStatus = STATUS_FOCUS_ENERGY; - entityInfo->moveStatus.moveStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EC8, FALSE) + 1; + if (entityInfo->sureShotClassStatus.status != STATUS_FOCUS_ENERGY) { + entityInfo->sureShotClassStatus.status = STATUS_FOCUS_ENERGY; + entityInfo->sureShotClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EC8, FALSE) + 1; nullsub_80(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB900); } @@ -996,36 +996,36 @@ void sub_80783C4(Entity * pokemon, Entity * target, u8 param_3) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon, target, TRUE))) { targetEntityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (targetEntityInfo->waitingStruct.waitingStatus == STATUS_DECOY) { + if (targetEntityInfo->curseClassStatus.status == STATUS_DECOY) { TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB994); } else { for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if ((((EntityExists(entity)) && (target != entity)) && - (u8)(GetEntInfo(entity)->waitingStruct.waitingStatus - 2U) < 2)) { - SendWaitingEndMessage(pokemon,entity,STATUS_NONE); + (u8)(GetEntInfo(entity)->curseClassStatus.status - 2U) < 2)) { + EndCurseClassStatus(pokemon,entity,STATUS_NONE); sub_803E46C(0x2a); } } sub_8041D38(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_NONE) { - SendWaitingEndMessage(pokemon,target, STATUS_DECOY); + if (targetEntityInfo->curseClassStatus.status != STATUS_NONE) { + EndCurseClassStatus(pokemon,target, STATUS_DECOY); } - targetEntityInfo->waitingStruct.waitingStatus = STATUS_DECOY; - targetEntityInfo->waitingStruct.decoyApplierNonTeamMemberFlag = GetEntInfo(pokemon)->isNotTeamMember; - targetEntityInfo->waitingStruct.unkCA = param_3; - targetEntityInfo->waitingStruct.waitingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ED0,TRUE) + 1; - targetEntityInfo->waitingStruct.curseDamageCountdown = 0; + targetEntityInfo->curseClassStatus.status = STATUS_DECOY; + targetEntityInfo->curseClassStatus.applierNonTeamMemberFlag = GetEntInfo(pokemon)->isNotTeamMember; + targetEntityInfo->curseClassStatus.unk2 = param_3; + targetEntityInfo->curseClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ED0,TRUE) + 1; + targetEntityInfo->curseClassStatus.damageCountdown = 0; sub_806CCB4(target,sub_806CEBC(target)); gDungeon->decoyIsActive = TRUE; TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB978); for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity2 = gDungeon->activeMonsterPtrs[index]; + entity2 = gDungeon->activePokemon[index]; if (EntityExists(entity2)) { entityInfo = GetEntInfo(entity2); entityInfo->aiTarget.aiObjective = AI_STAND_STILL; @@ -1058,17 +1058,17 @@ void CurseStatusTarget(Entity *pokemon, Entity * target) if (HasSafeguardStatus(pokemon,target, TRUE)) { return; } - SendWaitingEndMessage(pokemon,target,STATUS_CURSED); + EndCurseClassStatus(pokemon,target,STATUS_CURSED); sub_8041D48(target); HP = pokemonEntityData->HP / 2; pokemonEntityData->HP = HP; if (HP == 0) { pokemonEntityData->HP = 1; } - if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_CURSED) { - targetEntityInfo->waitingStruct.waitingStatus = STATUS_CURSED; - targetEntityInfo->waitingStruct.waitingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EA4,TRUE) + 1; - targetEntityInfo->waitingStruct.curseDamageCountdown = 0; + if (targetEntityInfo->curseClassStatus.status != STATUS_CURSED) { + targetEntityInfo->curseClassStatus.status = STATUS_CURSED; + targetEntityInfo->curseClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EA4,TRUE) + 1; + targetEntityInfo->curseClassStatus.damageCountdown = 0; } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB004); @@ -1090,22 +1090,22 @@ void SnatchStatusTarget(Entity * pokemon, Entity * target) EntityInfo *targetEntityInfo; if (EntityExists(target)) { - SendWaitingEndMessage(pokemon,target,STATUS_SNATCH); + EndCurseClassStatus(pokemon,target,STATUS_SNATCH); for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; - if ((EntityExists(entity)) && (GetEntInfo(entity)->waitingStruct.waitingStatus == STATUS_SNATCH)) { - SendWaitingEndMessage(pokemon, entity, STATUS_NONE); + entity = gDungeon->activePokemon[index]; + if ((EntityExists(entity)) && (GetEntInfo(entity)->curseClassStatus.status == STATUS_SNATCH)) { + EndCurseClassStatus(pokemon, entity, STATUS_NONE); } } nullsub_81(target); targetEntityInfo = GetEntInfo(target); - if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_SNATCH) { - targetEntityInfo->waitingStruct.waitingStatus = STATUS_SNATCH; - targetEntityInfo->waitingStruct.waitingStatusTurns= CalculateStatusTurns(target,gUnknown_80F4EA8,FALSE) + 1; - targetEntityInfo->waitingStruct.curseDamageCountdown = 0; + if (targetEntityInfo->curseClassStatus.status != STATUS_SNATCH) { + targetEntityInfo->curseClassStatus.status = STATUS_SNATCH; + targetEntityInfo->curseClassStatus.turns= CalculateStatusTurns(target,gUnknown_80F4EA8,FALSE) + 1; + targetEntityInfo->curseClassStatus.damageCountdown = 0; } gDungeon->snatchPokemon = target; @@ -1123,9 +1123,9 @@ void TauntStatusTarget(Entity * pokemon, Entity * target) if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,TRUE))) { entityInfo = GetEntInfo(target); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (entityInfo->volatileStatus.volatileStatus != STATUS_TAUNTED) { - entityInfo->volatileStatus.volatileStatus = STATUS_TAUNTED; - entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ED8,TRUE) + 1; + if (entityInfo->cringeClassStatus.status != STATUS_TAUNTED) { + entityInfo->cringeClassStatus.status = STATUS_TAUNTED; + entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ED8,TRUE) + 1; nullsub_73(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB9F0); } @@ -1163,13 +1163,13 @@ void InvisibleStatusTarget(Entity * pokemon, Entity * target) if (EntityExists(target)) { targetEntityInfo = GetEntInfo(target); - if (targetEntityInfo->transformStatus.transformStatus == STATUS_TRANSFORMED) { + if (targetEntityInfo->invisibleClassStatus.status == STATUS_TRANSFORMED) { SendTransformEndMessage(pokemon,target); } SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (targetEntityInfo->transformStatus.transformStatus != STATUS_INVISIBLE) { - targetEntityInfo->transformStatus.transformStatus = STATUS_INVISIBLE; - targetEntityInfo->transformStatus.transformStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EE4,FALSE) + 1; + if (targetEntityInfo->invisibleClassStatus.status != STATUS_INVISIBLE) { + targetEntityInfo->invisibleClassStatus.status = STATUS_INVISIBLE; + targetEntityInfo->invisibleClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EE4,FALSE) + 1; sub_8041D84(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBA80); } @@ -1218,9 +1218,9 @@ void EncoreStatusTarget(Entity *pokemon,Entity *target) } else { SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0); - if (EntityInfo->volatileStatus.volatileStatus != STATUS_ENCORE) { - EntityInfo->volatileStatus.volatileStatus = STATUS_ENCORE; - EntityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EF4,TRUE) + 1; + if (EntityInfo->cringeClassStatus.status != STATUS_ENCORE) { + EntityInfo->cringeClassStatus.status = STATUS_ENCORE; + EntityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EF4,TRUE) + 1; nullsub_83(target); TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBB94); } diff --git a/src/status_actions.c b/src/status_actions.c index b43d8805f..62587f497 100644 --- a/src/status_actions.c +++ b/src/status_actions.c @@ -315,7 +315,7 @@ bool8 sub_805B264(Entity * pokemon, Entity * target, Move *move, s32 param_4) gDungeon->unk181e8.unk18200 = gUnknown_8106A8C[r3]; gDungeon->unk181e8.unk18204 = 0; iVar5 = gUnknown_80F4F94[r3]; - if (entityInfo->charging.chargingStatus == STATUS_DIGGING) { + if (entityInfo->bideClassStatus.status == STATUS_DIGGING) { iVar5 *= 2; } r6 = sub_8055864(pokemon,target,move,iVar5,param_4) ? TRUE : FALSE; @@ -602,7 +602,7 @@ bool8 SkullBashMoveAction(Entity * pokemon, Entity * target, Move * move, s32 pa { bool8 flag; - if (MoveMatchesChargingStatus(pokemon,move)) { + if (MoveMatchesBideClassStatus(pokemon,move)) { flag = HandleDamagingMove(pokemon,target,move,gUnknown_80F4F58,param_4) != 0 ? 1 : 0; sub_8079764(pokemon); } diff --git a/src/status_checks.c b/src/status_checks.c index 43b6893b7..f44553b64 100644 --- a/src/status_checks.c +++ b/src/status_checks.c @@ -29,14 +29,14 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon) EntityInfo *pokemonInfo = GetEntInfo(pokemon); SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], pokemon, 0); SetMonsterActionFields(&pokemonInfo->action, ACTION_PASS_TURN); - switch (pokemonInfo->sleep.sleep) + switch (pokemonInfo->sleepClassStatus.status) { case STATUS_NIGHTMARE: case STATUS_SLEEP: case STATUS_NAPPING: return TRUE; } - switch (pokemonInfo->immobilize.immobilizeStatus) + switch (pokemonInfo->frozenClassStatus.status) { case STATUS_FROZEN: LogMessageByIdWithPopupCheckUser(pokemon, *gPtrFrozenMessage); @@ -50,7 +50,7 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon) case STATUS_PETRIFIED: return TRUE; } - switch (pokemonInfo->volatileStatus.volatileStatus) + switch (pokemonInfo->cringeClassStatus.status) { case STATUS_PAUSED: LogMessageByIdWithPopupCheckUser(pokemon, *gPtrPausedMessage); @@ -59,12 +59,12 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon) LogMessageByIdWithPopupCheckUser(pokemon, *gPtrInfatuatedMessage); return TRUE; } - if (pokemonInfo->charging.chargingStatus == STATUS_BIDE) + if (pokemonInfo->bideClassStatus.status == STATUS_BIDE) { LogMessageByIdWithPopupCheckUser(pokemon, *gPtrBideMessage); return TRUE; } - if (pokemonInfo->waitingStruct.waitingStatus == STATUS_DECOY) + if (pokemonInfo->curseClassStatus.status == STATUS_DECOY) { SetActionPassTurnOrWalk(&pokemonInfo->action, pokemonInfo->id); pokemonInfo->action.direction = DungeonRandInt(NUM_DIRECTIONS); @@ -76,7 +76,7 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon) { return TRUE; } - if (pokemonInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER) + if (pokemonInfo->blinkerClassStatus.status == STATUS_BLINKER) { if (!CanMoveInDirection(pokemon, pokemonInfo->action.direction)) { @@ -96,7 +96,7 @@ bool8 HasStatusThatPreventsActing(Entity *pokemon) ChooseAIMove(pokemon); return TRUE; } - if (pokemonInfo->eyesightStatus.eyesightStatus == STATUS_CROSS_EYED) + if (pokemonInfo->blinkerClassStatus.status == STATUS_CROSS_EYED) { SetActionPassTurnOrWalk(&pokemonInfo->action, pokemonInfo->id); pokemonInfo->action.direction = DungeonRandInt(NUM_DIRECTIONS); @@ -119,7 +119,7 @@ bool8 sub_80701A4(Entity *pokemon) flag = FALSE; SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], pokemon, 0); SetMonsterActionFields(&pokemonInfo->action, ACTION_PASS_TURN); - switch(pokemonInfo->sleep.sleep) + switch(pokemonInfo->sleepClassStatus.status) { case STATUS_SLEEP: case STATUS_NIGHTMARE: @@ -128,7 +128,7 @@ bool8 sub_80701A4(Entity *pokemon) return TRUE; } - switch(pokemonInfo->immobilize.immobilizeStatus) + switch(pokemonInfo->frozenClassStatus.status) { case STATUS_FROZEN: LogMessageByIdWithPopupCheckUser(pokemon,*gPtrFrozenMessage); @@ -143,7 +143,7 @@ bool8 sub_80701A4(Entity *pokemon) return TRUE; } - switch(pokemonInfo->volatileStatus.volatileStatus) { + switch(pokemonInfo->cringeClassStatus.status) { case STATUS_CONFUSED: flag = TRUE; goto _0807026C; @@ -158,19 +158,19 @@ bool8 sub_80701A4(Entity *pokemon) case STATUS_CRINGE: case 8: _0807026C: - if (pokemonInfo->charging.chargingStatus == STATUS_BIDE) { + if (pokemonInfo->bideClassStatus.status == STATUS_BIDE) { LogMessageByIdWithPopupCheckUser(pokemon,*gPtrBideMessage); return TRUE; } - else if (((pokemonInfo->charging.chargingStatus != STATUS_NONE) && (pokemonInfo->charging.chargingStatus != STATUS_CHARGING)) && (pokemonInfo->charging.chargingStatus != STATUS_ENRAGED)) { + else if (((pokemonInfo->bideClassStatus.status != STATUS_NONE) && (pokemonInfo->bideClassStatus.status != STATUS_CHARGING)) && (pokemonInfo->bideClassStatus.status != STATUS_ENRAGED)) { if (flag) { LogMessageByIdWithPopupCheckUser(pokemon,*gPtrMoveInterruptedMessage); } else { for(index = 0, move = pokemonInfo->moves.moves; index < MAX_MON_MOVES; move++, index++) { if ((move->moveFlags & MOVE_FLAG_EXISTS) && - (MoveMatchesChargingStatus(pokemon,move)) && - (pokemonInfo->charging.chargingStatusMoveIndex == index)) { + (MoveMatchesBideClassStatus(pokemon,move)) && + (pokemonInfo->bideClassStatus.moveSlot == index)) { SetMonsterActionFields(&pokemonInfo->action, ACTION_USE_MOVE_PLAYER); index_1 = index; r7 = &pokemonInfo->action.unk4[1].actionUseIndex; diff --git a/src/status_checks_1.c b/src/status_checks_1.c index 89efecdce..f958d1afc 100644 --- a/src/status_checks_1.c +++ b/src/status_checks_1.c @@ -59,14 +59,14 @@ void SetMessageArgument_2(u8 *buffer, EntityInfo *param_2, s32 colorNum) { if (((gDungeon->unk181e8.blinded || gDungeon->unk181e8.hallucinating) || - (param_2->transformStatus.transformStatus == STATUS_INVISIBLE)) && + (param_2->invisibleClassStatus.status == STATUS_INVISIBLE)) && (param_2->isNotTeamMember)) { strcpy(buffer, *gUnknown_80F8988); } else { - if (param_2->waitingStruct.waitingStatus == STATUS_DECOY) { + if (param_2->curseClassStatus.status == STATUS_DECOY) { strcpy(buffer, *gUnknown_80F8968); } else @@ -88,7 +88,7 @@ void SetMessageArgument_2(u8 *buffer, EntityInfo *param_2, s32 colorNum) void sub_8070968(u8 *buffer, EntityInfo *entityInfo, s32 colorNum) { - if (entityInfo->waitingStruct.waitingStatus == STATUS_DECOY) { + if (entityInfo->curseClassStatus.status == STATUS_DECOY) { sprintfStatic(buffer, gUnknown_8106FA4, colorNum + 0x30, *gUnknown_80F8974); } else if (entityInfo->isNotTeamMember) { @@ -103,14 +103,14 @@ void sub_80709C8(u8 *buffer, EntityInfo *entityInfo) { if (((gDungeon->unk181e8.blinded || gDungeon->unk181e8.hallucinating) || - (entityInfo->transformStatus.transformStatus == STATUS_INVISIBLE)) && + (entityInfo->invisibleClassStatus.status == STATUS_INVISIBLE)) && (entityInfo->isNotTeamMember)) { strcpy(buffer, *gUnknown_80F8994); } else { - if (entityInfo->waitingStruct.waitingStatus == STATUS_DECOY) { + if (entityInfo->curseClassStatus.status == STATUS_DECOY) { strcpy(buffer, *gUnknown_80F8974); } else @@ -130,18 +130,18 @@ bool8 HasNegativeStatus(Entity *pokemon) { EntityInfo *pokemonInfo = GetEntInfo(pokemon); s32 i; - if (pokemonInfo->sleep.sleep == STATUS_SLEEP || - pokemonInfo->sleep.sleep == STATUS_NIGHTMARE || - pokemonInfo->sleep.sleep == STATUS_YAWNING || - pokemonInfo->nonVolatile.nonVolatileStatus != STATUS_NONE || - (pokemonInfo->immobilize.immobilizeStatus != STATUS_INGRAIN && pokemonInfo->immobilize.immobilizeStatus != STATUS_NONE) || - pokemonInfo->volatileStatus.volatileStatus != STATUS_NONE || - pokemonInfo->waitingStruct.waitingStatus == STATUS_CURSED || - pokemonInfo->waitingStruct.waitingStatus == STATUS_DECOY || - pokemonInfo->linked.linkedStatus == STATUS_LEECH_SEED || - pokemonInfo->moveStatus.moveStatus == STATUS_WHIFFER || - pokemonInfo->eyesightStatus.eyesightStatus == STATUS_BLINKER || - pokemonInfo->eyesightStatus.eyesightStatus == STATUS_CROSS_EYED || + if (pokemonInfo->sleepClassStatus.status == STATUS_SLEEP || + pokemonInfo->sleepClassStatus.status == STATUS_NIGHTMARE || + pokemonInfo->sleepClassStatus.status == STATUS_YAWNING || + pokemonInfo->burnClassStatus.status != STATUS_NONE || + (pokemonInfo->frozenClassStatus.status != STATUS_INGRAIN && pokemonInfo->frozenClassStatus.status != STATUS_NONE) || + pokemonInfo->cringeClassStatus.status != STATUS_NONE || + pokemonInfo->curseClassStatus.status == STATUS_CURSED || + pokemonInfo->curseClassStatus.status == STATUS_DECOY || + pokemonInfo->linked.status == STATUS_LEECH_SEED || + pokemonInfo->sureShotClassStatus.status == STATUS_WHIFFER || + pokemonInfo->blinkerClassStatus.status == STATUS_BLINKER || + pokemonInfo->blinkerClassStatus.status == STATUS_CROSS_EYED || pokemonInfo->muzzled.muzzled == TRUE || pokemonInfo->exposed || pokemonInfo->perishSongTurns != 0) @@ -168,9 +168,9 @@ bool8 HasNegativeStatus(Entity *pokemon) bool8 IsSleeping(Entity *pokemon) { - if (GetEntInfo(pokemon)->sleep.sleep != STATUS_SLEEP && - GetEntInfo(pokemon)->sleep.sleep != STATUS_NAPPING && - GetEntInfo(pokemon)->sleep.sleep != STATUS_NIGHTMARE) + if (GetEntInfo(pokemon)->sleepClassStatus.status != STATUS_SLEEP && + GetEntInfo(pokemon)->sleepClassStatus.status != STATUS_NAPPING && + GetEntInfo(pokemon)->sleepClassStatus.status != STATUS_NIGHTMARE) { return FALSE; } diff --git a/src/tile_types.c b/src/tile_types.c index a4ff0bd23..e2394e43b 100644 --- a/src/tile_types.c +++ b/src/tile_types.c @@ -145,7 +145,7 @@ bool8 sub_804AD34(Position *pos) if (iVar8 != 0) { for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { sub_806CF98(entity); } @@ -206,7 +206,7 @@ void sub_804AE84(Position *pos) for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - entity = gDungeon->activeMonsterPtrs[index]; + entity = gDungeon->activePokemon[index]; if (EntityExists(entity)) { sub_806CF98(entity); } diff --git a/src/trap_1.c b/src/trap_1.c index 1d0fb49d4..3802291c6 100644 --- a/src/trap_1.c +++ b/src/trap_1.c @@ -54,20 +54,20 @@ void SaveSpeedStage(unkStruct_8094924 *param_1, s32 param_2); void sub_8081854(unkStruct_8094924 *param_1, s32 param_2); void sub_808183C(unkStruct_8094924 *param_1, s32 param_2); void SaveMuzzledStatus(unkStruct_8094924 *param_1, Muzzled *param_2); -void SaveEyesightStatus(unkStruct_8094924 *param_1, EyesightStatus *param_2); -void SaveTransformStatus(unkStruct_8094924 *param_1, TransformStatus *param_2); -void SaveItemStatus(unkStruct_8094924 *param_1, ItemStatus *param_2); -void SaveMoveStatus(unkStruct_8094924 *param_1, MoveStatus* param_2); -void SaveLinkedStatus(unkStruct_8094924 *param_1, Linked *param_2); -void SaveVolatileStatus(unkStruct_8094924 *param_1, Volatile *param_2); -void SaveImmobilizeStatus(unkStruct_8094924 *param_1, Immobilize *param_2); -void SaveNonVolatileStatus(unkStruct_8094924 *param_1, NonVolatile *param_2); -void SaveEntitySleep(unkStruct_8094924 *param_1, Sleep* param_2); +void SaveBlinkerClassStatus(unkStruct_8094924 *param_1, BlinkerClassStatus *param_2); +void SaveInvisibleClassStatus(unkStruct_8094924 *param_1, InvisibleClassStatus *param_2); +void SaveLongTossClassStatus(unkStruct_8094924 *param_1, LongTossClassStatus *param_2); +void SaveSureShotClassStatus(unkStruct_8094924 *param_1, SureShotClassStatus* param_2); +void SaveLeechSeedClassStatus(unkStruct_8094924 *param_1, LeechSeedClassStatus *param_2); +void SaveCringeClassStatus(unkStruct_8094924 *param_1, CringeClassStatus *param_2); +void SaveFrozenClassStatus(unkStruct_8094924 *param_1, FrozenClassStatus *param_2); +void SaveBurnClassStatus(unkStruct_8094924 *param_1, BurnClassStatus *param_2); +void SaveSleepClassStatus(unkStruct_8094924 *param_1, SleepClassStatus* param_2); void SaveTactic(unkStruct_8094924 *param_1, u8 param_2); void SaveDungeonHiddenPower(unkStruct_8094924 *param_1, HiddenPower *param_2); -void SaveChargingStatus(unkStruct_8094924 *param_1, Charging *param_2); -void SaveProtectionStatus(unkStruct_8094924 *param_1, Protection *param_2); -void SaveWaitingStatus(unkStruct_8094924 *param_1, Waiting *param_2); +void SaveBideClassStatus(unkStruct_8094924 *param_1, BideClassStatus *param_2); +void SaveReflectClassStatus(unkStruct_8094924 *param_1, ReflectClassStatus *param_2); +void SaveCurseClassStatus(unkStruct_8094924 *param_1, CurseClassStatus *param_2); void SaveSpeedCounters(unkStruct_8094924 *param_1, u8 *speedCounters, u32 numCounters); void SaveClientType(unkStruct_8094924 *param_1, u8 param_2); void sub_80421C0(Entity *, u16); @@ -270,18 +270,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2) u32 *puStack_98; u32 *puStack_94; u8 *puStack_90; - Sleep *puStack_8c; - NonVolatile *puStack_88; - Immobilize *puStack_84; - Volatile *puStack_80; - Charging *puStack_7c; - Protection *puStack_78; - Waiting *puStack_74; - Linked *puStack_70; - MoveStatus *puStack_6c; - ItemStatus *puStack_68; - TransformStatus *puStack_64; - EyesightStatus *puStack_60; + SleepClassStatus *puStack_8c; + BurnClassStatus *puStack_88; + FrozenClassStatus *puStack_84; + CringeClassStatus *puStack_80; + BideClassStatus *puStack_7c; + ReflectClassStatus *puStack_78; + CurseClassStatus *puStack_74; + LeechSeedClassStatus *puStack_70; + SureShotClassStatus *puStack_6c; + LongTossClassStatus *puStack_68; + InvisibleClassStatus *puStack_64; + BlinkerClassStatus *puStack_60; Muzzled *pbStack_5c; bool8 *pbStack_58; bool8 *pbStack_54; @@ -364,18 +364,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2) puStack_9c = &info->unk98; puStack_98 = &info->unk9C; puStack_94 = &info->unkA0; - puStack_8c = &info->sleep; - puStack_88 = &info->nonVolatile; - puStack_84 = &info->immobilize; - puStack_80 = &info->volatileStatus; - puStack_7c = &info->charging; - puStack_78 = &info->protection; - puStack_74 = &info->waitingStruct; + puStack_8c = &info->sleepClassStatus; + puStack_88 = &info->burnClassStatus; + puStack_84 = &info->frozenClassStatus; + puStack_80 = &info->cringeClassStatus; + puStack_7c = &info->bideClassStatus; + puStack_78 = &info->reflectClassStatus; + puStack_74 = &info->curseClassStatus; puStack_70 = &info->linked; - puStack_6c = &info->moveStatus; - puStack_68 = &info->itemStatus; - puStack_64 = &info->transformStatus; - puStack_60 = &info->eyesightStatus; + puStack_6c = &info->sureShotClassStatus; + puStack_68 = &info->longTossClassStatus; + puStack_64 = &info->invisibleClassStatus; + puStack_60 = &info->blinkerClassStatus; pbStack_5c = &info->muzzled; pbStack_58 = &info->powerEars; pbStack_54 = &info->scanning; @@ -408,18 +408,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2) sub_8083078(param_1,*puStack_9c); sub_8083078(param_1,*puStack_98); sub_8083078(param_1,*puStack_94); - SaveEntitySleep(param_1,puStack_8c); - SaveNonVolatileStatus(param_1,puStack_88); - SaveImmobilizeStatus(param_1,puStack_84); - SaveVolatileStatus(param_1,puStack_80); - SaveChargingStatus(param_1,puStack_7c); - SaveProtectionStatus(param_1,puStack_78); - SaveWaitingStatus(param_1,puStack_74); - SaveLinkedStatus(param_1,puStack_70); - SaveMoveStatus(param_1,puStack_6c); - SaveItemStatus(param_1,puStack_68); - SaveTransformStatus(param_1,puStack_64); - SaveEyesightStatus(param_1,puStack_60); + SaveSleepClassStatus(param_1,puStack_8c); + SaveBurnClassStatus(param_1,puStack_88); + SaveFrozenClassStatus(param_1,puStack_84); + SaveCringeClassStatus(param_1,puStack_80); + SaveBideClassStatus(param_1,puStack_7c); + SaveReflectClassStatus(param_1,puStack_78); + SaveCurseClassStatus(param_1,puStack_74); + SaveLeechSeedClassStatus(param_1,puStack_70); + SaveSureShotClassStatus(param_1,puStack_6c); + SaveLongTossClassStatus(param_1,puStack_68); + SaveInvisibleClassStatus(param_1,puStack_64); + SaveBlinkerClassStatus(param_1,puStack_60); SaveMuzzledStatus(param_1,pbStack_5c); sub_80830B4(param_1,*pbStack_58); sub_80830B4(param_1,*pbStack_54); @@ -646,92 +646,92 @@ void SaveAITargetStatus(unkStruct_8094924 *param_1, AITarget* param_2) SavePosition(param_1, ¶m_2->aiTargetPos); } -void SaveEntitySleep(unkStruct_8094924 *param_1, Sleep* param_2) +void SaveSleepClassStatus(unkStruct_8094924 *param_1, SleepClassStatus* param_2) { - sub_8082FA8(param_1, ¶m_2->sleep, 1); - sub_8083060(param_1, param_2->sleepTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } -void SaveNonVolatileStatus(unkStruct_8094924 *param_1, NonVolatile *param_2) +void SaveBurnClassStatus(unkStruct_8094924 *param_1, BurnClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->nonVolatileStatus, 1); - sub_8083060(param_1, param_2->nonVolatileStatusTurns); - sub_8083060(param_1, param_2->nonVolatileStatusDamageCountdown); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); + sub_8083060(param_1, param_2->damageCountdown); sub_8083060(param_1, param_2->unk4); } -void SaveImmobilizeStatus(unkStruct_8094924 *param_1, Immobilize *param_2) +void SaveFrozenClassStatus(unkStruct_8094924 *param_1, FrozenClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->immobilizeStatus, 1); - sub_8083060(param_1, param_2->immobilizeStatusTurns); - sub_8083060(param_1, param_2->immobilizeStatusDamageCountdown); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); + sub_8083060(param_1, param_2->damageCountdown); sub_8083078(param_1, param_2->unk4); } -void SaveVolatileStatus(unkStruct_8094924 *param_1, Volatile *param_2) +void SaveCringeClassStatus(unkStruct_8094924 *param_1, CringeClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->volatileStatus, 1); - sub_8083060(param_1, param_2->volatileStatusTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } -void SaveChargingStatus(unkStruct_8094924 *param_1, Charging *param_2) +void SaveBideClassStatus(unkStruct_8094924 *param_1, BideClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->chargingStatus, 1); - sub_8083060(param_1, param_2->chargingStatusTurns); - sub_8083060(param_1, param_2->chargingStatusMoveIndex); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); + sub_8083060(param_1, param_2->moveSlot); } -void SaveProtectionStatus(unkStruct_8094924 *param_1, Protection *param_2) +void SaveReflectClassStatus(unkStruct_8094924 *param_1, ReflectClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->protectionStatus, 1); - sub_8083060(param_1, param_2->protectionStatusTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } -void SaveWaitingStatus(unkStruct_8094924 *param_1, Waiting *param_2) +void SaveCurseClassStatus(unkStruct_8094924 *param_1, CurseClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->waitingStatus, 1); - sub_80830B4(param_1, param_2->decoyApplierNonTeamMemberFlag); - sub_80830B4(param_1, param_2->unkCA); - sub_8083060(param_1, param_2->waitingStatusTurns); - sub_8083060(param_1, param_2->curseDamageCountdown); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_80830B4(param_1, param_2->applierNonTeamMemberFlag); + sub_80830B4(param_1, param_2->unk2); + sub_8083060(param_1, param_2->turns); + sub_8083060(param_1, param_2->damageCountdown); } -void SaveLinkedStatus(unkStruct_8094924 *param_1, Linked *param_2) +void SaveLeechSeedClassStatus(unkStruct_8094924 *param_1, LeechSeedClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->linkedStatus, 1); + sub_8082FA8(param_1, ¶m_2->status, 1); sub_8083078(param_1, param_2->unkD4); sub_8083060(param_1, param_2->unkD8); - sub_8083060(param_1, param_2->linkedStatusTurns); - sub_8083060(param_1, param_2->linkedStatusDamageCountdown); + sub_8083060(param_1, param_2->turns); + sub_8083060(param_1, param_2->damageCountdown); } -void SaveMoveStatus(unkStruct_8094924 *param_1, MoveStatus* param_2) +void SaveSureShotClassStatus(unkStruct_8094924 *param_1, SureShotClassStatus* param_2) { - sub_8082FA8(param_1, ¶m_2->moveStatus, 1); - sub_8083060(param_1, param_2->moveStatusTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } -void SaveItemStatus(unkStruct_8094924 *param_1, ItemStatus *param_2) +void SaveLongTossClassStatus(unkStruct_8094924 *param_1, LongTossClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->itemStatus, 1); + sub_8082FA8(param_1, ¶m_2->status, 1); } -void SaveTransformStatus(unkStruct_8094924 *param_1, TransformStatus *param_2) +void SaveInvisibleClassStatus(unkStruct_8094924 *param_1, InvisibleClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->transformStatus, 1); - sub_8083060(param_1, param_2->transformStatusTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } -void SaveEyesightStatus(unkStruct_8094924 *param_1, EyesightStatus *param_2) +void SaveBlinkerClassStatus(unkStruct_8094924 *param_1, BlinkerClassStatus *param_2) { - sub_8082FA8(param_1, ¶m_2->eyesightStatus, 1); - sub_8083060(param_1, param_2->eyesightStatusTurns); + sub_8082FA8(param_1, ¶m_2->status, 1); + sub_8083060(param_1, param_2->turns); } void SaveMuzzledStatus(unkStruct_8094924 *param_1, Muzzled *param_2) { sub_8082FA8(param_1, ¶m_2->muzzled, 1); - sub_8083060(param_1, param_2->muzzledTurns); + sub_8083060(param_1, param_2->turns); } void SaveEntityMove(unkStruct_8094924 *r0, Move *r1) diff --git a/src/type_effectiveness.c b/src/type_effectiveness.c index a22bef924..9f5f57f7b 100644 --- a/src/type_effectiveness.c +++ b/src/type_effectiveness.c @@ -237,7 +237,7 @@ bool8 sub_806E100(unkStruct_80943A8 *param_1, Entity *pokemon, Entity *target, u gDungeon->unk134.fill16E[8] = TRUE; F48_16_SMul(param_1,param_1, &gUnknown_8106F1C); } - if ((type == TYPE_ELECTRIC) && (pokemonInfo->charging.chargingStatus == STATUS_CHARGING)) { + if ((type == TYPE_ELECTRIC) && (pokemonInfo->bideClassStatus.status == STATUS_CHARGING)) { gDungeon->unk134.fill16E[9] = TRUE; F48_16_SMul(param_1,param_1, &gUnknown_8106F0C); } @@ -394,7 +394,7 @@ s32 WeightWeakTypePicker(Entity *user, Entity *target, u8 moveType) { return 2; } - if (moveType == TYPE_ELECTRIC && userData->charging.chargingStatus == STATUS_CHARGING) + if (moveType == TYPE_ELECTRIC && userData->bideClassStatus.status == STATUS_CHARGING) { weight *= 2; }