mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-20 07:45:13 -05:00
Rename statuses and activePokemon
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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--;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
154
src/status.c
154
src/status.c
@@ -414,10 +414,10 @@ void CringeStatusTarget(Entity * pokemon,Entity * target, bool8 displayMessage)
|
||||
else {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if(entityInfo->volatileStatus.volatileStatus != STATUS_CRINGE)
|
||||
if(entityInfo->cringeClassStatus.status != STATUS_CRINGE)
|
||||
{
|
||||
entityInfo->volatileStatus.volatileStatus = STATUS_CRINGE;
|
||||
entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target, gUnknown_80F4E3C, TRUE) + 1;
|
||||
entityInfo->cringeClassStatus.status = STATUS_CRINGE;
|
||||
entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4E3C, TRUE) + 1;
|
||||
sub_80420A0(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB2E0);
|
||||
}
|
||||
@@ -452,11 +452,11 @@ void ParalyzeStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessag
|
||||
bVar6 = TRUE;
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->nonVolatile.nonVolatileStatus != STATUS_PARALYSIS) {
|
||||
entityInfo->nonVolatile.nonVolatileStatus = STATUS_PARALYSIS;
|
||||
entityInfo->nonVolatile.nonVolatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E50,TRUE) + 1;
|
||||
entityInfo->nonVolatile.nonVolatileStatusDamageCountdown = 0;
|
||||
entityInfo->nonVolatile.unk4 = 0;
|
||||
if (entityInfo->burnClassStatus.status != STATUS_PARALYSIS) {
|
||||
entityInfo->burnClassStatus.status = STATUS_PARALYSIS;
|
||||
entityInfo->burnClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E50,TRUE) + 1;
|
||||
entityInfo->burnClassStatus.damageCountdown = 0;
|
||||
entityInfo->burnClassStatus.unk4 = 0;
|
||||
bVar6 = FALSE;
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB2AC);
|
||||
sub_8041C1C(target);
|
||||
@@ -606,9 +606,9 @@ void ConfuseStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage
|
||||
{
|
||||
sub_8041BE8(target);
|
||||
entityInfo = GetEntInfo(target);
|
||||
if (entityInfo->volatileStatus.volatileStatus != STATUS_CONFUSED) {
|
||||
entityInfo->volatileStatus.volatileStatus = STATUS_CONFUSED;
|
||||
entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4E4C,TRUE) + 1;
|
||||
if (entityInfo->cringeClassStatus.status != STATUS_CONFUSED) {
|
||||
entityInfo->cringeClassStatus.status = STATUS_CONFUSED;
|
||||
entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4E4C,TRUE) + 1;
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB25C);
|
||||
}
|
||||
else {
|
||||
@@ -626,9 +626,9 @@ void CowerStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage)
|
||||
if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,displayMessage))) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->volatileStatus.volatileStatus != STATUS_COWERING) {
|
||||
entityInfo->volatileStatus.volatileStatus = STATUS_COWERING;
|
||||
entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ECC,TRUE) + 1;
|
||||
if (entityInfo->cringeClassStatus.status != STATUS_COWERING) {
|
||||
entityInfo->cringeClassStatus.status = STATUS_COWERING;
|
||||
entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ECC,TRUE) + 1;
|
||||
sub_8041BF8(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB940);
|
||||
}
|
||||
@@ -807,14 +807,14 @@ void HandleLeechSeed(Entity * pokemon, Entity * target, bool8 displayMessage)
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(entityInfo->linked.linkedStatus)
|
||||
switch(entityInfo->linked.status)
|
||||
{
|
||||
case STATUS_DESTINY_BOND:
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FAA8C);
|
||||
default:
|
||||
entityInfo->linked.linkedStatus = STATUS_LEECH_SEED;
|
||||
entityInfo->linked.linkedStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EB0, TRUE) + 1;
|
||||
entityInfo->linked.linkedStatusDamageCountdown = 0;
|
||||
entityInfo->linked.status = STATUS_LEECH_SEED;
|
||||
entityInfo->linked.turns = CalculateStatusTurns(target, gUnknown_80F4EB0, TRUE) + 1;
|
||||
entityInfo->linked.damageCountdown = 0;
|
||||
nullsub_78(target);
|
||||
entityInfo->linked.unkD8 = 0xff;
|
||||
break;
|
||||
@@ -824,7 +824,7 @@ void HandleLeechSeed(Entity * pokemon, Entity * target, bool8 displayMessage)
|
||||
}
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
if (pokemon == gDungeon->activeMonsterPtrs[index]) {
|
||||
if (pokemon == gDungeon->activePokemon[index]) {
|
||||
entityInfo->linked.unkD8 = index;
|
||||
entityInfo2 = GetEntInfo(pokemon);
|
||||
entityInfo->linked.unkD4 = entityInfo2->unk98;
|
||||
@@ -847,14 +847,14 @@ void sub_8078084(Entity * pokemon)
|
||||
entityInfo = GetEntInfo(pokemon);
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
target = gDungeon->activeMonsterPtrs[index];
|
||||
target = gDungeon->activePokemon[index];
|
||||
if (EntityExists(target)) {
|
||||
entityInfo2 = GetEntInfo(target);
|
||||
if((u8)(entityInfo2->linked.linkedStatus - 1) <= 1)
|
||||
if((u8)(entityInfo2->linked.status - 1) <= 1)
|
||||
{
|
||||
if(entityInfo2->linked.unkD4 == entityInfo->unk98)
|
||||
{
|
||||
entityInfo2->linked.linkedStatus = STATUS_NONE;
|
||||
entityInfo2->linked.status = STATUS_NONE;
|
||||
EntityUpdateStatusSprites(target);
|
||||
}
|
||||
}
|
||||
@@ -867,22 +867,22 @@ void DestinyBondStatusTarget(Entity * pokemon, Entity * target)
|
||||
EntityInfo *entityInfo;
|
||||
EntityInfo *entityInfo2;
|
||||
s32 index;
|
||||
u8 *linkedStatus;
|
||||
u8 *status;
|
||||
s32 zero;
|
||||
|
||||
if (((EntityExists(target)) && (GetEntityType(pokemon) == ENTITY_MONSTER)) &&
|
||||
(GetEntityType(target) == ENTITY_MONSTER)) {
|
||||
entityInfo = GetEntInfo(pokemon);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],pokemon,0);
|
||||
linkedStatus = &entityInfo->linked.linkedStatus;
|
||||
if (entityInfo->linked.linkedStatus != STATUS_DESTINY_BOND)
|
||||
status = &entityInfo->linked.status;
|
||||
if (entityInfo->linked.status != STATUS_DESTINY_BOND)
|
||||
{
|
||||
if (entityInfo->linked.linkedStatus == STATUS_LEECH_SEED)
|
||||
if (entityInfo->linked.status == STATUS_LEECH_SEED)
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FA79C);
|
||||
zero = 0;
|
||||
*linkedStatus = STATUS_DESTINY_BOND;
|
||||
entityInfo->linked.linkedStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EF0,TRUE) + 1;
|
||||
entityInfo->linked.linkedStatusDamageCountdown = zero;
|
||||
*status = STATUS_DESTINY_BOND;
|
||||
entityInfo->linked.turns = CalculateStatusTurns(target,gUnknown_80F4EF0,TRUE) + 1;
|
||||
entityInfo->linked.damageCountdown = zero;
|
||||
nullsub_74(target);
|
||||
entityInfo->linked.unkD8 = 0xff;
|
||||
}
|
||||
@@ -893,7 +893,7 @@ void DestinyBondStatusTarget(Entity * pokemon, Entity * target)
|
||||
}
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
if (target == gDungeon->activeMonsterPtrs[index]) {
|
||||
if (target == gDungeon->activePokemon[index]) {
|
||||
entityInfo->linked.unkD8 = index;
|
||||
entityInfo2 = GetEntInfo(target);
|
||||
entityInfo->linked.unkD4 = entityInfo2->unk98;
|
||||
@@ -911,9 +911,9 @@ void SureShotStatusTarget(Entity *pokemon, Entity * target, s32 turns)
|
||||
if (EntityExists(target)) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->moveStatus.moveStatus != STATUS_SURE_SHOT) {
|
||||
entityInfo->moveStatus.moveStatus = STATUS_SURE_SHOT;
|
||||
entityInfo->moveStatus.moveStatusTurns = turns + 1;
|
||||
if (entityInfo->sureShotClassStatus.status != STATUS_SURE_SHOT) {
|
||||
entityInfo->sureShotClassStatus.status = STATUS_SURE_SHOT;
|
||||
entityInfo->sureShotClassStatus.turns = turns + 1;
|
||||
sub_8041CDC(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB73C);
|
||||
}
|
||||
@@ -931,9 +931,9 @@ void WhifferStatusTarget(Entity *pokemon, Entity * target, s32 turns)
|
||||
if (EntityExists(target) && !HasSafeguardStatus(pokemon, target, TRUE)) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->moveStatus.moveStatus != STATUS_WHIFFER) {
|
||||
entityInfo->moveStatus.moveStatus = STATUS_WHIFFER;
|
||||
entityInfo->moveStatus.moveStatusTurns = turns + 1;
|
||||
if (entityInfo->sureShotClassStatus.status != STATUS_WHIFFER) {
|
||||
entityInfo->sureShotClassStatus.status = STATUS_WHIFFER;
|
||||
entityInfo->sureShotClassStatus.turns = turns + 1;
|
||||
sub_8041CEC(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB780);
|
||||
}
|
||||
@@ -951,9 +951,9 @@ void FixedDamageStatusTarget(Entity *pokemon, Entity * target)
|
||||
if (EntityExists(target)) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->moveStatus.moveStatus != STATUS_SET_DAMAGE) {
|
||||
entityInfo->moveStatus.moveStatus = STATUS_SET_DAMAGE;
|
||||
entityInfo->moveStatus.moveStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EC4, FALSE) + 1;
|
||||
if (entityInfo->sureShotClassStatus.status != STATUS_SET_DAMAGE) {
|
||||
entityInfo->sureShotClassStatus.status = STATUS_SET_DAMAGE;
|
||||
entityInfo->sureShotClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EC4, FALSE) + 1;
|
||||
nullsub_79(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB8BC);
|
||||
}
|
||||
@@ -971,9 +971,9 @@ void FocusEnergyStatusTarget(Entity *pokemon, Entity * target)
|
||||
if (EntityExists(target)) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->moveStatus.moveStatus != STATUS_FOCUS_ENERGY) {
|
||||
entityInfo->moveStatus.moveStatus = STATUS_FOCUS_ENERGY;
|
||||
entityInfo->moveStatus.moveStatusTurns = CalculateStatusTurns(target, gUnknown_80F4EC8, FALSE) + 1;
|
||||
if (entityInfo->sureShotClassStatus.status != STATUS_FOCUS_ENERGY) {
|
||||
entityInfo->sureShotClassStatus.status = STATUS_FOCUS_ENERGY;
|
||||
entityInfo->sureShotClassStatus.turns = CalculateStatusTurns(target, gUnknown_80F4EC8, FALSE) + 1;
|
||||
nullsub_80(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB900);
|
||||
}
|
||||
@@ -996,36 +996,36 @@ void sub_80783C4(Entity * pokemon, Entity * target, u8 param_3)
|
||||
if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon, target, TRUE))) {
|
||||
targetEntityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (targetEntityInfo->waitingStruct.waitingStatus == STATUS_DECOY) {
|
||||
if (targetEntityInfo->curseClassStatus.status == STATUS_DECOY) {
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB994);
|
||||
}
|
||||
else {
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->activeMonsterPtrs[index];
|
||||
entity = gDungeon->activePokemon[index];
|
||||
if ((((EntityExists(entity)) && (target != entity)) &&
|
||||
(u8)(GetEntInfo(entity)->waitingStruct.waitingStatus - 2U) < 2)) {
|
||||
SendWaitingEndMessage(pokemon,entity,STATUS_NONE);
|
||||
(u8)(GetEntInfo(entity)->curseClassStatus.status - 2U) < 2)) {
|
||||
EndCurseClassStatus(pokemon,entity,STATUS_NONE);
|
||||
sub_803E46C(0x2a);
|
||||
}
|
||||
}
|
||||
sub_8041D38(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_NONE) {
|
||||
SendWaitingEndMessage(pokemon,target, STATUS_DECOY);
|
||||
if (targetEntityInfo->curseClassStatus.status != STATUS_NONE) {
|
||||
EndCurseClassStatus(pokemon,target, STATUS_DECOY);
|
||||
}
|
||||
targetEntityInfo->waitingStruct.waitingStatus = STATUS_DECOY;
|
||||
targetEntityInfo->waitingStruct.decoyApplierNonTeamMemberFlag = GetEntInfo(pokemon)->isNotTeamMember;
|
||||
targetEntityInfo->waitingStruct.unkCA = param_3;
|
||||
targetEntityInfo->waitingStruct.waitingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ED0,TRUE) + 1;
|
||||
targetEntityInfo->waitingStruct.curseDamageCountdown = 0;
|
||||
targetEntityInfo->curseClassStatus.status = STATUS_DECOY;
|
||||
targetEntityInfo->curseClassStatus.applierNonTeamMemberFlag = GetEntInfo(pokemon)->isNotTeamMember;
|
||||
targetEntityInfo->curseClassStatus.unk2 = param_3;
|
||||
targetEntityInfo->curseClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ED0,TRUE) + 1;
|
||||
targetEntityInfo->curseClassStatus.damageCountdown = 0;
|
||||
sub_806CCB4(target,sub_806CEBC(target));
|
||||
gDungeon->decoyIsActive = TRUE;
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB978);
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity2 = gDungeon->activeMonsterPtrs[index];
|
||||
entity2 = gDungeon->activePokemon[index];
|
||||
if (EntityExists(entity2)) {
|
||||
entityInfo = GetEntInfo(entity2);
|
||||
entityInfo->aiTarget.aiObjective = AI_STAND_STILL;
|
||||
@@ -1058,17 +1058,17 @@ void CurseStatusTarget(Entity *pokemon, Entity * target)
|
||||
if (HasSafeguardStatus(pokemon,target, TRUE)) {
|
||||
return;
|
||||
}
|
||||
SendWaitingEndMessage(pokemon,target,STATUS_CURSED);
|
||||
EndCurseClassStatus(pokemon,target,STATUS_CURSED);
|
||||
sub_8041D48(target);
|
||||
HP = pokemonEntityData->HP / 2;
|
||||
pokemonEntityData->HP = HP;
|
||||
if (HP == 0) {
|
||||
pokemonEntityData->HP = 1;
|
||||
}
|
||||
if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_CURSED) {
|
||||
targetEntityInfo->waitingStruct.waitingStatus = STATUS_CURSED;
|
||||
targetEntityInfo->waitingStruct.waitingStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EA4,TRUE) + 1;
|
||||
targetEntityInfo->waitingStruct.curseDamageCountdown = 0;
|
||||
if (targetEntityInfo->curseClassStatus.status != STATUS_CURSED) {
|
||||
targetEntityInfo->curseClassStatus.status = STATUS_CURSED;
|
||||
targetEntityInfo->curseClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EA4,TRUE) + 1;
|
||||
targetEntityInfo->curseClassStatus.damageCountdown = 0;
|
||||
}
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB004);
|
||||
@@ -1090,22 +1090,22 @@ void SnatchStatusTarget(Entity * pokemon, Entity * target)
|
||||
EntityInfo *targetEntityInfo;
|
||||
|
||||
if (EntityExists(target)) {
|
||||
SendWaitingEndMessage(pokemon,target,STATUS_SNATCH);
|
||||
EndCurseClassStatus(pokemon,target,STATUS_SNATCH);
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->activeMonsterPtrs[index];
|
||||
if ((EntityExists(entity)) && (GetEntInfo(entity)->waitingStruct.waitingStatus == STATUS_SNATCH)) {
|
||||
SendWaitingEndMessage(pokemon, entity, STATUS_NONE);
|
||||
entity = gDungeon->activePokemon[index];
|
||||
if ((EntityExists(entity)) && (GetEntInfo(entity)->curseClassStatus.status == STATUS_SNATCH)) {
|
||||
EndCurseClassStatus(pokemon, entity, STATUS_NONE);
|
||||
}
|
||||
}
|
||||
nullsub_81(target);
|
||||
|
||||
targetEntityInfo = GetEntInfo(target);
|
||||
if (targetEntityInfo->waitingStruct.waitingStatus != STATUS_SNATCH) {
|
||||
targetEntityInfo->waitingStruct.waitingStatus = STATUS_SNATCH;
|
||||
targetEntityInfo->waitingStruct.waitingStatusTurns= CalculateStatusTurns(target,gUnknown_80F4EA8,FALSE) + 1;
|
||||
targetEntityInfo->waitingStruct.curseDamageCountdown = 0;
|
||||
if (targetEntityInfo->curseClassStatus.status != STATUS_SNATCH) {
|
||||
targetEntityInfo->curseClassStatus.status = STATUS_SNATCH;
|
||||
targetEntityInfo->curseClassStatus.turns= CalculateStatusTurns(target,gUnknown_80F4EA8,FALSE) + 1;
|
||||
targetEntityInfo->curseClassStatus.damageCountdown = 0;
|
||||
}
|
||||
|
||||
gDungeon->snatchPokemon = target;
|
||||
@@ -1123,9 +1123,9 @@ void TauntStatusTarget(Entity * pokemon, Entity * target)
|
||||
if ((EntityExists(target)) && (!HasSafeguardStatus(pokemon,target,TRUE))) {
|
||||
entityInfo = GetEntInfo(target);
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (entityInfo->volatileStatus.volatileStatus != STATUS_TAUNTED) {
|
||||
entityInfo->volatileStatus.volatileStatus = STATUS_TAUNTED;
|
||||
entityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4ED8,TRUE) + 1;
|
||||
if (entityInfo->cringeClassStatus.status != STATUS_TAUNTED) {
|
||||
entityInfo->cringeClassStatus.status = STATUS_TAUNTED;
|
||||
entityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4ED8,TRUE) + 1;
|
||||
nullsub_73(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FB9F0);
|
||||
}
|
||||
@@ -1163,13 +1163,13 @@ void InvisibleStatusTarget(Entity * pokemon, Entity * target)
|
||||
|
||||
if (EntityExists(target)) {
|
||||
targetEntityInfo = GetEntInfo(target);
|
||||
if (targetEntityInfo->transformStatus.transformStatus == STATUS_TRANSFORMED) {
|
||||
if (targetEntityInfo->invisibleClassStatus.status == STATUS_TRANSFORMED) {
|
||||
SendTransformEndMessage(pokemon,target);
|
||||
}
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (targetEntityInfo->transformStatus.transformStatus != STATUS_INVISIBLE) {
|
||||
targetEntityInfo->transformStatus.transformStatus = STATUS_INVISIBLE;
|
||||
targetEntityInfo->transformStatus.transformStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EE4,FALSE) + 1;
|
||||
if (targetEntityInfo->invisibleClassStatus.status != STATUS_INVISIBLE) {
|
||||
targetEntityInfo->invisibleClassStatus.status = STATUS_INVISIBLE;
|
||||
targetEntityInfo->invisibleClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EE4,FALSE) + 1;
|
||||
sub_8041D84(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBA80);
|
||||
}
|
||||
@@ -1218,9 +1218,9 @@ void EncoreStatusTarget(Entity *pokemon,Entity *target)
|
||||
}
|
||||
else {
|
||||
SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0],target,0);
|
||||
if (EntityInfo->volatileStatus.volatileStatus != STATUS_ENCORE) {
|
||||
EntityInfo->volatileStatus.volatileStatus = STATUS_ENCORE;
|
||||
EntityInfo->volatileStatus.volatileStatusTurns = CalculateStatusTurns(target,gUnknown_80F4EF4,TRUE) + 1;
|
||||
if (EntityInfo->cringeClassStatus.status != STATUS_ENCORE) {
|
||||
EntityInfo->cringeClassStatus.status = STATUS_ENCORE;
|
||||
EntityInfo->cringeClassStatus.turns = CalculateStatusTurns(target,gUnknown_80F4EF4,TRUE) + 1;
|
||||
nullsub_83(target);
|
||||
TryDisplayDungeonLoggableMessage3(pokemon,target,*gUnknown_80FBB94);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
180
src/trap_1.c
180
src/trap_1.c
@@ -54,20 +54,20 @@ void SaveSpeedStage(unkStruct_8094924 *param_1, s32 param_2);
|
||||
void sub_8081854(unkStruct_8094924 *param_1, s32 param_2);
|
||||
void sub_808183C(unkStruct_8094924 *param_1, s32 param_2);
|
||||
void SaveMuzzledStatus(unkStruct_8094924 *param_1, Muzzled *param_2);
|
||||
void SaveEyesightStatus(unkStruct_8094924 *param_1, EyesightStatus *param_2);
|
||||
void SaveTransformStatus(unkStruct_8094924 *param_1, TransformStatus *param_2);
|
||||
void SaveItemStatus(unkStruct_8094924 *param_1, ItemStatus *param_2);
|
||||
void SaveMoveStatus(unkStruct_8094924 *param_1, MoveStatus* param_2);
|
||||
void SaveLinkedStatus(unkStruct_8094924 *param_1, Linked *param_2);
|
||||
void SaveVolatileStatus(unkStruct_8094924 *param_1, Volatile *param_2);
|
||||
void SaveImmobilizeStatus(unkStruct_8094924 *param_1, Immobilize *param_2);
|
||||
void SaveNonVolatileStatus(unkStruct_8094924 *param_1, NonVolatile *param_2);
|
||||
void SaveEntitySleep(unkStruct_8094924 *param_1, Sleep* param_2);
|
||||
void SaveBlinkerClassStatus(unkStruct_8094924 *param_1, BlinkerClassStatus *param_2);
|
||||
void SaveInvisibleClassStatus(unkStruct_8094924 *param_1, InvisibleClassStatus *param_2);
|
||||
void SaveLongTossClassStatus(unkStruct_8094924 *param_1, LongTossClassStatus *param_2);
|
||||
void SaveSureShotClassStatus(unkStruct_8094924 *param_1, SureShotClassStatus* param_2);
|
||||
void SaveLeechSeedClassStatus(unkStruct_8094924 *param_1, LeechSeedClassStatus *param_2);
|
||||
void SaveCringeClassStatus(unkStruct_8094924 *param_1, CringeClassStatus *param_2);
|
||||
void SaveFrozenClassStatus(unkStruct_8094924 *param_1, FrozenClassStatus *param_2);
|
||||
void SaveBurnClassStatus(unkStruct_8094924 *param_1, BurnClassStatus *param_2);
|
||||
void SaveSleepClassStatus(unkStruct_8094924 *param_1, SleepClassStatus* param_2);
|
||||
void SaveTactic(unkStruct_8094924 *param_1, u8 param_2);
|
||||
void SaveDungeonHiddenPower(unkStruct_8094924 *param_1, HiddenPower *param_2);
|
||||
void SaveChargingStatus(unkStruct_8094924 *param_1, Charging *param_2);
|
||||
void SaveProtectionStatus(unkStruct_8094924 *param_1, Protection *param_2);
|
||||
void SaveWaitingStatus(unkStruct_8094924 *param_1, Waiting *param_2);
|
||||
void SaveBideClassStatus(unkStruct_8094924 *param_1, BideClassStatus *param_2);
|
||||
void SaveReflectClassStatus(unkStruct_8094924 *param_1, ReflectClassStatus *param_2);
|
||||
void SaveCurseClassStatus(unkStruct_8094924 *param_1, CurseClassStatus *param_2);
|
||||
void SaveSpeedCounters(unkStruct_8094924 *param_1, u8 *speedCounters, u32 numCounters);
|
||||
void SaveClientType(unkStruct_8094924 *param_1, u8 param_2);
|
||||
void sub_80421C0(Entity *, u16);
|
||||
@@ -270,18 +270,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2)
|
||||
u32 *puStack_98;
|
||||
u32 *puStack_94;
|
||||
u8 *puStack_90;
|
||||
Sleep *puStack_8c;
|
||||
NonVolatile *puStack_88;
|
||||
Immobilize *puStack_84;
|
||||
Volatile *puStack_80;
|
||||
Charging *puStack_7c;
|
||||
Protection *puStack_78;
|
||||
Waiting *puStack_74;
|
||||
Linked *puStack_70;
|
||||
MoveStatus *puStack_6c;
|
||||
ItemStatus *puStack_68;
|
||||
TransformStatus *puStack_64;
|
||||
EyesightStatus *puStack_60;
|
||||
SleepClassStatus *puStack_8c;
|
||||
BurnClassStatus *puStack_88;
|
||||
FrozenClassStatus *puStack_84;
|
||||
CringeClassStatus *puStack_80;
|
||||
BideClassStatus *puStack_7c;
|
||||
ReflectClassStatus *puStack_78;
|
||||
CurseClassStatus *puStack_74;
|
||||
LeechSeedClassStatus *puStack_70;
|
||||
SureShotClassStatus *puStack_6c;
|
||||
LongTossClassStatus *puStack_68;
|
||||
InvisibleClassStatus *puStack_64;
|
||||
BlinkerClassStatus *puStack_60;
|
||||
Muzzled *pbStack_5c;
|
||||
bool8 *pbStack_58;
|
||||
bool8 *pbStack_54;
|
||||
@@ -364,18 +364,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2)
|
||||
puStack_9c = &info->unk98;
|
||||
puStack_98 = &info->unk9C;
|
||||
puStack_94 = &info->unkA0;
|
||||
puStack_8c = &info->sleep;
|
||||
puStack_88 = &info->nonVolatile;
|
||||
puStack_84 = &info->immobilize;
|
||||
puStack_80 = &info->volatileStatus;
|
||||
puStack_7c = &info->charging;
|
||||
puStack_78 = &info->protection;
|
||||
puStack_74 = &info->waitingStruct;
|
||||
puStack_8c = &info->sleepClassStatus;
|
||||
puStack_88 = &info->burnClassStatus;
|
||||
puStack_84 = &info->frozenClassStatus;
|
||||
puStack_80 = &info->cringeClassStatus;
|
||||
puStack_7c = &info->bideClassStatus;
|
||||
puStack_78 = &info->reflectClassStatus;
|
||||
puStack_74 = &info->curseClassStatus;
|
||||
puStack_70 = &info->linked;
|
||||
puStack_6c = &info->moveStatus;
|
||||
puStack_68 = &info->itemStatus;
|
||||
puStack_64 = &info->transformStatus;
|
||||
puStack_60 = &info->eyesightStatus;
|
||||
puStack_6c = &info->sureShotClassStatus;
|
||||
puStack_68 = &info->longTossClassStatus;
|
||||
puStack_64 = &info->invisibleClassStatus;
|
||||
puStack_60 = &info->blinkerClassStatus;
|
||||
pbStack_5c = &info->muzzled;
|
||||
pbStack_58 = &info->powerEars;
|
||||
pbStack_54 = &info->scanning;
|
||||
@@ -408,18 +408,18 @@ void SaveEntity(unkStruct_8094924 *param_1, Entity *param_2)
|
||||
sub_8083078(param_1,*puStack_9c);
|
||||
sub_8083078(param_1,*puStack_98);
|
||||
sub_8083078(param_1,*puStack_94);
|
||||
SaveEntitySleep(param_1,puStack_8c);
|
||||
SaveNonVolatileStatus(param_1,puStack_88);
|
||||
SaveImmobilizeStatus(param_1,puStack_84);
|
||||
SaveVolatileStatus(param_1,puStack_80);
|
||||
SaveChargingStatus(param_1,puStack_7c);
|
||||
SaveProtectionStatus(param_1,puStack_78);
|
||||
SaveWaitingStatus(param_1,puStack_74);
|
||||
SaveLinkedStatus(param_1,puStack_70);
|
||||
SaveMoveStatus(param_1,puStack_6c);
|
||||
SaveItemStatus(param_1,puStack_68);
|
||||
SaveTransformStatus(param_1,puStack_64);
|
||||
SaveEyesightStatus(param_1,puStack_60);
|
||||
SaveSleepClassStatus(param_1,puStack_8c);
|
||||
SaveBurnClassStatus(param_1,puStack_88);
|
||||
SaveFrozenClassStatus(param_1,puStack_84);
|
||||
SaveCringeClassStatus(param_1,puStack_80);
|
||||
SaveBideClassStatus(param_1,puStack_7c);
|
||||
SaveReflectClassStatus(param_1,puStack_78);
|
||||
SaveCurseClassStatus(param_1,puStack_74);
|
||||
SaveLeechSeedClassStatus(param_1,puStack_70);
|
||||
SaveSureShotClassStatus(param_1,puStack_6c);
|
||||
SaveLongTossClassStatus(param_1,puStack_68);
|
||||
SaveInvisibleClassStatus(param_1,puStack_64);
|
||||
SaveBlinkerClassStatus(param_1,puStack_60);
|
||||
SaveMuzzledStatus(param_1,pbStack_5c);
|
||||
sub_80830B4(param_1,*pbStack_58);
|
||||
sub_80830B4(param_1,*pbStack_54);
|
||||
@@ -646,92 +646,92 @@ void SaveAITargetStatus(unkStruct_8094924 *param_1, AITarget* param_2)
|
||||
SavePosition(param_1, ¶m_2->aiTargetPos);
|
||||
}
|
||||
|
||||
void SaveEntitySleep(unkStruct_8094924 *param_1, Sleep* param_2)
|
||||
void SaveSleepClassStatus(unkStruct_8094924 *param_1, SleepClassStatus* param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->sleep, 1);
|
||||
sub_8083060(param_1, param_2->sleepTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveNonVolatileStatus(unkStruct_8094924 *param_1, NonVolatile *param_2)
|
||||
void SaveBurnClassStatus(unkStruct_8094924 *param_1, BurnClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->nonVolatileStatus, 1);
|
||||
sub_8083060(param_1, param_2->nonVolatileStatusTurns);
|
||||
sub_8083060(param_1, param_2->nonVolatileStatusDamageCountdown);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
sub_8083060(param_1, param_2->damageCountdown);
|
||||
sub_8083060(param_1, param_2->unk4);
|
||||
}
|
||||
|
||||
void SaveImmobilizeStatus(unkStruct_8094924 *param_1, Immobilize *param_2)
|
||||
void SaveFrozenClassStatus(unkStruct_8094924 *param_1, FrozenClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->immobilizeStatus, 1);
|
||||
sub_8083060(param_1, param_2->immobilizeStatusTurns);
|
||||
sub_8083060(param_1, param_2->immobilizeStatusDamageCountdown);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
sub_8083060(param_1, param_2->damageCountdown);
|
||||
sub_8083078(param_1, param_2->unk4);
|
||||
}
|
||||
|
||||
void SaveVolatileStatus(unkStruct_8094924 *param_1, Volatile *param_2)
|
||||
void SaveCringeClassStatus(unkStruct_8094924 *param_1, CringeClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->volatileStatus, 1);
|
||||
sub_8083060(param_1, param_2->volatileStatusTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveChargingStatus(unkStruct_8094924 *param_1, Charging *param_2)
|
||||
void SaveBideClassStatus(unkStruct_8094924 *param_1, BideClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->chargingStatus, 1);
|
||||
sub_8083060(param_1, param_2->chargingStatusTurns);
|
||||
sub_8083060(param_1, param_2->chargingStatusMoveIndex);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
sub_8083060(param_1, param_2->moveSlot);
|
||||
}
|
||||
|
||||
void SaveProtectionStatus(unkStruct_8094924 *param_1, Protection *param_2)
|
||||
void SaveReflectClassStatus(unkStruct_8094924 *param_1, ReflectClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->protectionStatus, 1);
|
||||
sub_8083060(param_1, param_2->protectionStatusTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveWaitingStatus(unkStruct_8094924 *param_1, Waiting *param_2)
|
||||
void SaveCurseClassStatus(unkStruct_8094924 *param_1, CurseClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->waitingStatus, 1);
|
||||
sub_80830B4(param_1, param_2->decoyApplierNonTeamMemberFlag);
|
||||
sub_80830B4(param_1, param_2->unkCA);
|
||||
sub_8083060(param_1, param_2->waitingStatusTurns);
|
||||
sub_8083060(param_1, param_2->curseDamageCountdown);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_80830B4(param_1, param_2->applierNonTeamMemberFlag);
|
||||
sub_80830B4(param_1, param_2->unk2);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
sub_8083060(param_1, param_2->damageCountdown);
|
||||
}
|
||||
|
||||
void SaveLinkedStatus(unkStruct_8094924 *param_1, Linked *param_2)
|
||||
void SaveLeechSeedClassStatus(unkStruct_8094924 *param_1, LeechSeedClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->linkedStatus, 1);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083078(param_1, param_2->unkD4);
|
||||
sub_8083060(param_1, param_2->unkD8);
|
||||
sub_8083060(param_1, param_2->linkedStatusTurns);
|
||||
sub_8083060(param_1, param_2->linkedStatusDamageCountdown);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
sub_8083060(param_1, param_2->damageCountdown);
|
||||
}
|
||||
|
||||
void SaveMoveStatus(unkStruct_8094924 *param_1, MoveStatus* param_2)
|
||||
void SaveSureShotClassStatus(unkStruct_8094924 *param_1, SureShotClassStatus* param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->moveStatus, 1);
|
||||
sub_8083060(param_1, param_2->moveStatusTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveItemStatus(unkStruct_8094924 *param_1, ItemStatus *param_2)
|
||||
void SaveLongTossClassStatus(unkStruct_8094924 *param_1, LongTossClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->itemStatus, 1);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
}
|
||||
|
||||
void SaveTransformStatus(unkStruct_8094924 *param_1, TransformStatus *param_2)
|
||||
void SaveInvisibleClassStatus(unkStruct_8094924 *param_1, InvisibleClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->transformStatus, 1);
|
||||
sub_8083060(param_1, param_2->transformStatusTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveEyesightStatus(unkStruct_8094924 *param_1, EyesightStatus *param_2)
|
||||
void SaveBlinkerClassStatus(unkStruct_8094924 *param_1, BlinkerClassStatus *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->eyesightStatus, 1);
|
||||
sub_8083060(param_1, param_2->eyesightStatusTurns);
|
||||
sub_8082FA8(param_1, ¶m_2->status, 1);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveMuzzledStatus(unkStruct_8094924 *param_1, Muzzled *param_2)
|
||||
{
|
||||
sub_8082FA8(param_1, ¶m_2->muzzled, 1);
|
||||
sub_8083060(param_1, param_2->muzzledTurns);
|
||||
sub_8083060(param_1, param_2->turns);
|
||||
}
|
||||
|
||||
void SaveEntityMove(unkStruct_8094924 *r0, Move *r1)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user