Rename statuses and activePokemon

This commit is contained in:
AnonymousRandomPerson
2024-11-15 21:36:36 -05:00
parent 5f48654c20
commit 583b4df544
49 changed files with 1025 additions and 1025 deletions

View File

@@ -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

View File

@@ -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}

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -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);

View File

@@ -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;

View File

@@ -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];

View File

@@ -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);
}

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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)) {

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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);
}

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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--;
}

View File

@@ -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;

View File

@@ -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)

View File

@@ -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)) {

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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, &param_2->aiTargetPos);
}
void SaveEntitySleep(unkStruct_8094924 *param_1, Sleep* param_2)
void SaveSleepClassStatus(unkStruct_8094924 *param_1, SleepClassStatus* param_2)
{
sub_8082FA8(param_1, &param_2->sleep, 1);
sub_8083060(param_1, param_2->sleepTurns);
sub_8082FA8(param_1, &param_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, &param_2->nonVolatileStatus, 1);
sub_8083060(param_1, param_2->nonVolatileStatusTurns);
sub_8083060(param_1, param_2->nonVolatileStatusDamageCountdown);
sub_8082FA8(param_1, &param_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, &param_2->immobilizeStatus, 1);
sub_8083060(param_1, param_2->immobilizeStatusTurns);
sub_8083060(param_1, param_2->immobilizeStatusDamageCountdown);
sub_8082FA8(param_1, &param_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, &param_2->volatileStatus, 1);
sub_8083060(param_1, param_2->volatileStatusTurns);
sub_8082FA8(param_1, &param_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, &param_2->chargingStatus, 1);
sub_8083060(param_1, param_2->chargingStatusTurns);
sub_8083060(param_1, param_2->chargingStatusMoveIndex);
sub_8082FA8(param_1, &param_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, &param_2->protectionStatus, 1);
sub_8083060(param_1, param_2->protectionStatusTurns);
sub_8082FA8(param_1, &param_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, &param_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, &param_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, &param_2->linkedStatus, 1);
sub_8082FA8(param_1, &param_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, &param_2->moveStatus, 1);
sub_8083060(param_1, param_2->moveStatusTurns);
sub_8082FA8(param_1, &param_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, &param_2->itemStatus, 1);
sub_8082FA8(param_1, &param_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, &param_2->transformStatus, 1);
sub_8083060(param_1, param_2->transformStatusTurns);
sub_8082FA8(param_1, &param_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, &param_2->eyesightStatus, 1);
sub_8083060(param_1, param_2->eyesightStatusTurns);
sub_8082FA8(param_1, &param_2->status, 1);
sub_8083060(param_1, param_2->turns);
}
void SaveMuzzledStatus(unkStruct_8094924 *param_1, Muzzled *param_2)
{
sub_8082FA8(param_1, &param_2->muzzled, 1);
sub_8083060(param_1, param_2->muzzledTurns);
sub_8083060(param_1, param_2->turns);
}
void SaveEntityMove(unkStruct_8094924 *r0, Move *r1)

View File

@@ -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;
}