summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h37
-rw-r--r--include/battle_controllers.h196
-rw-r--r--include/battle_script_commands.h2
-rw-r--r--include/battle_util.h7
-rw-r--r--include/berry.h10
-rw-r--r--include/config.h10
-rw-r--r--include/constants/abilities.h2
-rw-r--r--include/constants/battle.h112
-rwxr-xr-xinclude/constants/event_bg.h (renamed from include/constants/bg_event_constants.h)6
-rwxr-xr-xinclude/constants/event_object_movement.h (renamed from include/constants/event_object_movement_constants.h)6
-rw-r--r--include/constants/event_objects.h474
-rw-r--r--include/constants/flags.h2
-rw-r--r--include/constants/metatile_labels.h12
-rw-r--r--include/constants/pokemon.h144
-rw-r--r--include/constants/vars.h41
-rw-r--r--include/decoration.h2
-rw-r--r--include/event_data.h2
-rw-r--r--include/event_object_lock.h (renamed from include/event_obj_lock.h)12
-rw-r--r--include/event_object_movement.h516
-rw-r--r--include/field_control_avatar.h2
-rw-r--r--include/field_effect.h40
-rw-r--r--include/field_effect_helpers.h8
-rw-r--r--include/field_player_avatar.h2
-rw-r--r--include/global.fieldmap.h16
-rw-r--r--include/global.h20
-rw-r--r--include/macros/event.inc10
-rw-r--r--include/overworld.h20
-rw-r--r--include/pokemon.h140
-rw-r--r--include/rom3.h73
-rw-r--r--include/shop.h2
-rw-r--r--include/trainer_see.h2
31 files changed, 1036 insertions, 892 deletions
diff --git a/include/battle.h b/include/battle.h
index 510db80f6..59eee8407 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -69,10 +69,6 @@
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
-// physical/special types
-#define TYPE_IS_PHYSICAL(type) ((type) < TYPE_MYSTERY)
-#define TYPE_IS_SPECIAL(type) ((type) > TYPE_MYSTERY)
-
struct DisableStruct
{
/*0x00*/ u32 transformedMonPersonality;
@@ -97,12 +93,12 @@ struct DisableStruct
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
/*0x14*/ u8 bankPreventingEscape;
- /*0x15*/ u8 bankWithSureHit;
+ /*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1;
/*0x18*/ u8 unk18_a : 3;
- /*0x18*/ u8 unk18_b : 4;
+ /*0x18*/ u8 mimickedMoves : 4;
/*0x19*/ u8 rechargeCounter;
/*0x1A*/ u8 unk1A[2];
};
@@ -240,7 +236,7 @@ struct BattleResults
u8 unk2; // 0x2
u8 unk3; // 0x3
u8 unk4; // 0x4
- u8 unk5_0:1; // 0x5
+ u8 playerMonWasDamaged:1; // 0x5
u8 unk5_1:1; // 0x5
u16 poke1Species; // 0x6
u8 pokeString1[10]; // 0x8
@@ -297,20 +293,20 @@ struct BattleStruct /* 0x2000000 */
/*0x15DDF*/ u8 unk15DDF;
/*0x15DE0*/ u8 filler15DE0[0x220];
/*0x16000*/ u8 turnEffectsTracker;
- /*0x16001*/ u8 turnEffectsBank;
+ /*0x16001*/ u8 turnEffectsBattlerId;
/*0x16002*/ u8 animTurn;
/*0x16003*/ u8 scriptingActive;
/*0x16004*/ u8 wrappedMove[8];
/*0x1600C*/ u8 cmd49StateTracker;
/*0x1600D*/ u8 unk1600D;
- /*0x1600E*/ u8 turncountersTracker;
+ /*0x1600E*/ u8 turnCountersTracker;
/*0x1600F*/ u8 getexpStateTracker;
/*0x16010*/ u8 moveTarget[4];
/*0x16014*/ u8 unk16014;
/*0x16015*/ u8 unk16015;
/*0x16016*/ u8 unk16016;
/*0x16017*/ u8 unk16017;
- /*0x16018*/ u8 expGetterID;
+ /*0x16018*/ u8 expGetterMonId;
/*0x16019*/ u8 unk16019;
/*0x1601A*/ u8 atk5A_StateTracker; //also atk5B, statetracker
/*0x1601B*/ u8 wildVictorySong;
@@ -361,7 +357,7 @@ struct BattleStruct /* 0x2000000 */
/*0x1609F*/ u8 unk1609F;
/*0x160A0*/ u8 stringMoveType;
/*0x160A1*/ u8 animTargetsHit;
- /*0x160A2*/ u8 expGetterBank;
+ /*0x160A2*/ u8 expGetterBattlerId;
/*0x160A3*/ u8 unk160A3;
/*0x160A4*/ u8 animArg1;
/*0x160A5*/ u8 animArg2;
@@ -458,8 +454,8 @@ struct BattleStruct /* 0x2000000 */
/*0x1610D*/ u8 unk1610D;
/*0x1610E*/ u8 unk1610E;
/*0x1610F*/ u8 unk1610F;
- /*0x16110*/ u8 sub80170DC_Tracker;
- /*0x16111*/ u8 sub80170DC_Bank;
+ /*0x16110*/ u8 wishPerishSongState;
+ /*0x16111*/ u8 wishPerishSongBattlerId;
/*0x16112*/ u8 unk16112;
/*0x16113*/ u8 unk16113;
/*0x16114*/ u8 unk16114;
@@ -634,17 +630,6 @@ void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c); //0x34
void BtlController_EmitResetActionMoveSelection(u8 a, u8 b); //0x36
void BtlController_EmitCmd55(u8 a, u8 b); //0x37
-#define REQUEST_ALL_BATTLE 0x0
-#define REQUEST_SPECIES_BATTLE 0x1
-#define REQUEST_HELDITEM_BATTLE 0x2
-#define REQUEST_MOVES_PP_BATTLE 0x3
-#define REQUEST_PPMOVE1_BATTLE 0x9
-#define REQUEST_PPMOVE2_BATTLE 0xA
-#define REQUEST_PPMOVE3_BATTLE 0xB
-#define REQUEST_PPMOVE4_BATTLE 0xC
-#define REQUEST_STATUS_BATTLE 0x28
-#define REQUEST_HP_BATTLE 0x2A
-
void MarkBattlerForControllerExec(u8 bank);
extern u8 gBattleTextBuff1[];
@@ -730,7 +715,7 @@ void debug_sub_8010800(void);
// asm/battle_3.o
u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
-u8 UpdateTurnCounters(void);
+u8 DoFieldEndTurnEffects(void);
u8 TurnBasedEffects(void);
u8 HandleFaintedMonActions();
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move);
@@ -740,7 +725,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget);
// asm/battle_4.o
void AI_CalcDmg(u8, u8);
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
// asm/battle_5.o
void nullsub_91(void);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
new file mode 100644
index 000000000..695daabbc
--- /dev/null
+++ b/include/battle_controllers.h
@@ -0,0 +1,196 @@
+#ifndef GUARD_BATTLE_CONTROLLERS_H
+#define GUARD_BATTLE_CONTROLLERS_H
+
+enum
+{
+ REQUEST_ALL_BATTLE,
+ REQUEST_SPECIES_BATTLE,
+ REQUEST_HELDITEM_BATTLE,
+ REQUEST_MOVES_PP_BATTLE,
+ REQUEST_MOVE1_BATTLE,
+ REQUEST_MOVE2_BATTLE,
+ REQUEST_MOVE3_BATTLE,
+ REQUEST_MOVE4_BATTLE,
+ REQUEST_PP_DATA_BATTLE,
+ REQUEST_PPMOVE1_BATTLE,
+ REQUEST_PPMOVE2_BATTLE,
+ REQUEST_PPMOVE3_BATTLE,
+ REQUEST_PPMOVE4_BATTLE,
+ REQUEST_UNUSED_13_BATTLE,
+ REQUEST_UNUSED_14_BATTLE,
+ REQUEST_UNUSED_15_BATTLE,
+ REQUEST_UNUSED_16_BATTLE,
+ REQUEST_OTID_BATTLE,
+ REQUEST_EXP_BATTLE,
+ REQUEST_HP_EV_BATTLE,
+ REQUEST_ATK_EV_BATTLE,
+ REQUEST_DEF_EV_BATTLE,
+ REQUEST_SPEED_EV_BATTLE,
+ REQUEST_SPATK_EV_BATTLE,
+ REQUEST_SPDEF_EV_BATTLE,
+ REQUEST_FRIENDSHIP_BATTLE,
+ REQUEST_POKERUS_BATTLE,
+ REQUEST_MET_LOCATION_BATTLE,
+ REQUEST_MET_LEVEL_BATTLE,
+ REQUEST_MET_GAME_BATTLE,
+ REQUEST_POKEBALL_BATTLE,
+ REQUEST_ALL_IVS_BATTLE,
+ REQUEST_HP_IV_BATTLE,
+ REQUEST_ATK_IV_BATTLE,
+ REQUEST_DEF_IV_BATTLE,
+ REQUEST_SPEED_IV_BATTLE,
+ REQUEST_SPATK_IV_BATTLE,
+ REQUEST_SPDEF_IV_BATTLE,
+ REQUEST_PERSONALITY_BATTLE,
+ REQUEST_CHECKSUM_BATTLE,
+ REQUEST_STATUS_BATTLE,
+ REQUEST_LEVEL_BATTLE,
+ REQUEST_HP_BATTLE,
+ REQUEST_MAX_HP_BATTLE,
+ REQUEST_ATK_BATTLE,
+ REQUEST_DEF_BATTLE,
+ REQUEST_SPEED_BATTLE,
+ REQUEST_SPATK_BATTLE,
+ REQUEST_SPDEF_BATTLE,
+ REQUEST_COOL_BATTLE,
+ REQUEST_BEAUTY_BATTLE,
+ REQUEST_CUTE_BATTLE,
+ REQUEST_SMART_BATTLE,
+ REQUEST_TOUGH_BATTLE,
+ REQUEST_SHEEN_BATTLE,
+ REQUEST_COOL_RIBBON_BATTLE,
+ REQUEST_BEAUTY_RIBBON_BATTLE,
+ REQUEST_CUTE_RIBBON_BATTLE,
+ REQUEST_SMART_RIBBON_BATTLE,
+ REQUEST_TOUGH_RIBBON_BATTLE,
+};
+
+enum
+{
+ CONTROLLER_GETMONDATA,
+ CONTROLLER_GETRAWMONDATA,
+ CONTROLLER_SETMONDATA,
+ CONTROLLER_SETRAWMONDATA,
+ CONTROLLER_LOADMONSPRITE,
+ CONTROLLER_SWITCHINANIM,
+ CONTROLLER_RETURNMONTOBALL,
+ CONTROLLER_DRAWTRAINERPIC,
+ CONTROLLER_TRAINERSLIDE,
+ CONTROLLER_TRAINERSLIDEBACK,
+ CONTROLLER_FAINTANIMATION,
+ CONTROLLER_PALETTEFADE,
+ CONTROLLER_SUCCESSBALLTHROWANIM,
+ CONTROLLER_BALLTHROWANIM,
+ CONTROLLER_PAUSE,
+ CONTROLLER_MOVEANIMATION,
+ CONTROLLER_PRINTSTRING,
+ CONTROLLER_PRINTSTRINGPLAYERONLY,
+ CONTROLLER_CHOOSEACTION,
+ CONTROLLER_UNKNOWNYESNOBOX,
+ CONTROLLER_CHOOSEMOVE,
+ CONTROLLER_OPENBAG,
+ CONTROLLER_CHOOSEPOKEMON,
+ CONTROLLER_23,
+ CONTROLLER_HEALTHBARUPDATE,
+ CONTROLLER_EXPUPDATE,
+ CONTROLLER_STATUSICONUPDATE,
+ CONTROLLER_STATUSANIMATION,
+ CONTROLLER_STATUSXOR,
+ CONTROLLER_DATATRANSFER,
+ CONTROLLER_DMA3TRANSFER,
+ CONTROLLER_31,
+ CONTROLLER_32,
+ CONTROLLER_TWORETURNVALUES,
+ CONTROLLER_CHOSENMONRETURNVALUE,
+ CONTROLLER_ONERETURNVALUE,
+ CONTROLLER_ONERETURNVALUE_DUPLICATE,
+ CONTROLLER_37,
+ CONTROLLER_38,
+ CONTROLLER_39,
+ CONTROLLER_40,
+ CONTROLLER_HITANIMATION,
+ CONTROLLER_42,
+ CONTROLLER_EFFECTIVENESSSOUND,
+ CONTROLLER_PLAYFANFAREORBGM,
+ CONTROLLER_FAINTINGCRY,
+ CONTROLLER_INTROSLIDE,
+ CONTROLLER_INTROTRAINERBALLTHROW,
+ CONTROLLER_DRAWPARTYSTATUSSUMMARY,
+ CONTROLLER_HIDEPARTYSTATUSSUMMARY,
+ CONTROLLER_ENDBOUNCE,
+ CONTROLLER_SPRITEINVISIBILITY,
+ CONTROLLER_BATTLEANIMATION,
+ CONTROLLER_LINKSTANDBYMSG,
+ CONTROLLER_RESETACTIONMOVESELECTION,
+ CONTROLLER_55,
+ /*new controllers should go here*/
+ CONTROLLER_TERMINATOR_NOP,
+ CONTROLLER_CMDS_COUNT
+};
+
+struct HpAndStatus
+{
+ u16 hp;
+ u32 status;
+};
+
+struct DisableStruct;
+
+// emitters
+void HandleLinkBattleSetup(void);
+void SetUpBattleVarsAndBirchPoochyena();
+void sub_800B950(void);
+void InitLinkBtlControllers(void);
+void PrepareBufferDataTransferLink(u8 a, u16, u8 *c);
+void sub_800C35C(void);
+void BtlController_EmitGetMonData(u8 a, u8 b, u8 c);
+void BtlController_EmitGetRawMonData(u8 a, u8 b, u8 c);
+void BtlController_EmitLoadMonSprite(u8 a);
+void BtlController_EmitSwitchInAnim(u8, u8, u8);
+void BtlController_EmitReturnMonToBall(u8 a, u8 b);
+void BtlController_EmitDrawTrainerPic(u8 a);
+void BtlController_EmitTrainerSlide(u8 a);
+void BtlController_EmitTrainerSlideBack(u8 a);
+void BtlController_EmitFaintAnimation(u8 a);
+void BtlController_EmitPaletteFade(u8 a);
+void BtlController_EmitSuccessBallThrowAnim(u8 a);
+void BtlController_EmitBallThrowAnim(u8 a, u8 b);
+void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g);
+void BtlController_EmitPrintString(u8 a, u16 b);
+void BtlController_EmitPrintSelectionString(u8 a, u16 stringID);
+void BtlController_EmitChooseAction(u8 a, u8 b, u16 c);
+void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d);
+void BtlController_EmitChooseItem(u8 a, u8 *b);
+void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e);
+void BtlController_EmitCmd23(u8 a);
+void BtlController_EmitHealthBarUpdate(u8 a, u16 b);
+void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c);
+void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c);
+void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c);
+void BtlController_EmitStatusXor(u8 a, u8 b);
+void BtlController_EmitDataTransfer(u8, u16, u8 *);
+void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c);
+void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c);
+void BtlController_EmitOneReturnValue(u8 a, u16 b);
+void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b);
+void BtlController_EmitCmd37(u8 a);
+void BtlController_EmitCmd38(u8 a, u8 b);
+void BtlController_EmitCmd39(u8 a);
+void BtlController_EmitCmd40(u8 a);
+void BtlController_EmitHitAnimation(u8 a);
+void BtlController_EmitCmd42(u8 a);
+void BtlController_EmitPlaySE(u8 a, u16 b);
+void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b);
+void BtlController_EmitFaintingCry(u8 a);
+void BtlController_EmitIntroSlide(u8 a, u8 b);
+void BtlController_EmitIntroTrainerBallThrow(u8 a);
+void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
+void BtlController_EmitHidePartyStatusSummary(u8 a);
+void BtlController_EmitEndBounceEffect(u8 a);
+void BtlController_EmitSpriteInvisibility(u8 a, u8 b);
+void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c);
+void BtlController_EmitLinkStandbyMsg(u8 a, u8 b);
+void BtlController_EmitResetActionMoveSelection(u8 a, u8 b);
+void BtlController_EmitCmd55(u8 a, u8 b);
+
+#endif // GUARD_BATTLE_CONTROLLERS_H
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 030844ec3..36f54c6a8 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -52,7 +52,7 @@
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
diff --git a/include/battle_util.h b/include/battle_util.h
index 3d178b487..385490438 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -1,7 +1,7 @@
#ifndef GUARD_BATTLE_UTIL_H
#define GUARD_BATTLE_UTIL_H
-#define BS_GET_TARGET 0
+#define BS_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_SCRIPTING_BANK 10
@@ -15,7 +15,7 @@
#define MOVE_LIMITATION_DISABLED (1 << 2)
#define MOVE_LIMITATION_TORMENTED (1 << 3)
#define MOVE_LIMITATION_TAUNT (1 << 4)
-#define MOVE_LIMITATION_IMPRISON (1 << 5)
+#define MOVE_LIMITATION_IMPRISON (1 << 5)
#define ABILITYEFFECT_ON_SWITCHIN 0x0
#define ABILITYEFFECT_ENDTURN 0x1
@@ -47,6 +47,9 @@
#define ITEMEFFECT_MOVE_END 0x3
#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4
+#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
+#define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK)))
+
void TryClearRageStatuses(void);
void BattleScriptPush(const u8* BS_ptr);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
diff --git a/include/berry.h b/include/berry.h
index 259ada634..9a7773779 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -39,7 +39,7 @@ void debug_sub_80C2C18(const u8 *name, u8 holdEffect, u8 holdEffectParam);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
-bool32 EventObjectInteractionWaterBerryTree(void);
+bool32 ObjectEventInteractionWaterBerryTree(void);
bool8 IsPlayerFacingUnplantedSoil(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
@@ -51,11 +51,11 @@ u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
-void EventObjectInteractionGetBerryTreeData(void);
+void ObjectEventInteractionGetBerryTreeData(void);
void Berry_FadeAndGoToBerryBagMenu(void);
-void EventObjectInteractionPlantBerryTree(void);
-void EventObjectInteractionPickBerryTree(void);
-void EventObjectInteractionRemoveBerryTree(void);
+void ObjectEventInteractionPlantBerryTree(void);
+void ObjectEventInteractionPickBerryTree(void);
+void ObjectEventInteractionRemoveBerryTree(void);
bool8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
void debug_sub_80C2D24(u8 spicy, u8 dry, u8 sweet, u8 bitter, u8 sour, u8 smoothness);
diff --git a/include/config.h b/include/config.h
index 796da359c..0046c3878 100644
--- a/include/config.h
+++ b/include/config.h
@@ -55,6 +55,16 @@
#define UNITS_METRIC
#endif
+// An option to use translations/encoding fixes for the Debug menus.
+// Selected by default for custom English debug roms.
+#ifndef DEBUG_TRANSLATE
+#if ENGLISH && DEBUG
+#define DEBUG_TRANSLATE 1
+#else
+#define DEBUG_TRANSLATE 0
+#endif
+#endif
+
// Fixed in Emerald.
// #define BUGFIX_SETMONIVS
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
index 4e2c4056c..4ad54c86f 100644
--- a/include/constants/abilities.h
+++ b/include/constants/abilities.h
@@ -80,4 +80,6 @@
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
+#define ABILITIES_COUNT 78
+
#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle.h b/include/constants/battle.h
index c33e0abb4..5aa1772d1 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H
-#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H
+#ifndef GUARD_CONSTANTS_BATTLE_H
+#define GUARD_CONSTANTS_BATTLE_H
/*
* A battler may be in one of four positions on the field. The first bit determines
@@ -43,6 +43,7 @@
#define BIT_SIDE 1
#define BIT_FLANK 2
+// Battle Type Flags
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
#define BATTLE_TYPE_WILD 0x0004
@@ -63,67 +64,68 @@
#define SECRET_BASE_OPPONENT 0x400
#define LINK_BATTLE_OPPONENT 0x800
-#define BATTLE_WON 0x1
-#define BATTLE_LOST 0x2
-#define BATTLE_DREW 0x3
-#define BATTLE_RAN 0x4
-#define BATTLE_PLAYER_TELEPORTED 0x5
-#define BATTLE_POKE_FLED 0x6
-#define BATTLE_CAUGHT 0x7
-#define BATTLE_OUT_OF_BALLS 0x8
-#define BATTLE_OPPONENT_TELEPORTED 0xA
-
-#define OUTCOME_LINK_BATTLE_RUN 0x80
+// Battle Outcome defines
+#define B_OUTCOME_WON 0x1
+#define B_OUTCOME_LOST 0x2
+#define B_OUTCOME_DREW 0x3
+#define B_OUTCOME_RAN 0x4
+#define B_OUTCOME_PLAYER_TELEPORTED 0x5
+#define B_OUTCOME_MON_FLED 0x6
+#define B_OUTCOME_CAUGHT 0x7
+#define B_OUTCOME_NO_SAFARI_BALLS 0x8
+#define B_OUTCOME_FORFEITED 0x9
+#define B_OUTCOME_MON_TELEPORTED 0xA
+#define B_OUTCOME_LINK_BATTLE_RAN 0x80
// Non-volatile status conditions
// These persist remain outside of battle and after switching out
-#define STATUS1_NONE 0x0
-#define STATUS_SLEEP 0x7
-#define STATUS_POISON 0x8
-#define STATUS_BURN 0x10
-#define STATUS_FREEZE 0x20
-#define STATUS_PARALYSIS 0x40
-#define STATUS_TOXIC_POISON 0x80
-#define STATUS_TOXIC_COUNTER 0xF00
-#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
-#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+#define STATUS1_NONE 0x0
+#define STATUS1_SLEEP 0x7
+#define STATUS1_POISON 0x8
+#define STATUS1_BURN 0x10
+#define STATUS1_FREEZE 0x20
+#define STATUS1_PARALYSIS 0x40
+#define STATUS1_TOXIC_POISON 0x80
+#define STATUS1_TOXIC_COUNTER 0xF00
+#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
+#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
// Volatile status ailments
// These are removed after exiting the battle or switching out
-#define STATUS2_CONFUSION 0x00000007
-#define STATUS2_FLINCHED 0x00000008
-#define STATUS2_UPROAR 0x00000070
-#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200
-#define STATUS2_LOCK_CONFUSE 0x00000C00
-#define STATUS2_MULTIPLETURNS 0x00001000
-#define STATUS2_WRAPPED 0x0000E000
-#define STATUS2_INFATUATION 0x000F0000
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_FLINCHED 0x00000008
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
-#define STATUS2_FOCUS_ENERGY 0x00100000
-#define STATUS2_TRANSFORMED 0x00200000
-#define STATUS2_RECHARGE 0x00400000
-#define STATUS2_RAGE 0x00800000
-#define STATUS2_SUBSTITUTE 0x01000000
-#define STATUS2_DESTINY_BOND 0x02000000
-#define STATUS2_ESCAPE_PREVENTION 0x04000000
-#define STATUS2_NIGHTMARE 0x08000000
-#define STATUS2_CURSED 0x10000000
-#define STATUS2_FORESIGHT 0x20000000
-#define STATUS2_DEFENSE_CURL 0x40000000
-#define STATUS2_TORMENT 0x80000000
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_DESTINY_BOND 0x02000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+#define STATUS2_DEFENSE_CURL 0x40000000
+#define STATUS2_TORMENT 0x80000000
// Seems like per-battler statuses. Not quite sure how to categorize these
-#define STATUS3_LEECHSEED_BANK 0x3
+#define STATUS3_LEECHSEED_BATTLER 0x3
#define STATUS3_LEECHSEED 0x4
-#define STATUS3_ALWAYS_HITS 0x18 //two bits
+#define STATUS3_ALWAYS_HITS 0x18 // two bits
#define STATUS3_PERISH_SONG 0x20
#define STATUS3_ON_AIR 0x40
#define STATUS3_UNDERGROUND 0x80
#define STATUS3_MINIMIZED 0x100
#define STATUS3_ROOTED 0x400
#define STATUS3_CHARGED_UP 0x200
-#define STATUS3_YAWN 0x1800 //two bits
-#define STATUS3_IMPRISIONED 0x2000
+#define STATUS3_YAWN 0x1800 // two bits
+#define STATUS3_IMPRISONED_OTHERS 0x2000
#define STATUS3_GRUDGE 0x4000
#define STATUS3_CANT_SCORE_A_CRIT 0x8000
#define STATUS3_MUDSPORT 0x10000
@@ -131,7 +133,7 @@
#define STATUS3_UNDERWATER 0x40000
#define STATUS3_INTIMIDATE_POKES 0x80000
#define STATUS3_TRACE 0x100000
-#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
+#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
// Not really sure what a "hitmarker" is.
#define HITMARKER_x10 0x00000010
@@ -142,7 +144,7 @@
#define HITMARKER_NO_ATTACKSTRING 0x00000200
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
#define HITMARKER_NO_PPDEDUCT 0x00000800
-#define HITMARKER_PURSUIT_TRAP 0x00001000
+#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
#define HITMARKER_RUN 0x00008000
@@ -157,9 +159,9 @@
#define HITMARKER_GRUDGE 0x01000000
#define HITMARKER_OBEYS 0x02000000
#define HITMARKER_x4000000 0x04000000
-#define HITMARKER_x8000000 0x08000000
-#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
-#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+#define HITMARKER_CHARGING 0x08000000
+#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
+#define HITMARKER_UNK(battler) (0x10000000 << battler)
// Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0)
@@ -235,7 +237,7 @@
#define MOVE_EFFECT_RAPIDSPIN 0x23
#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
-#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
+#define MOVE_EFFECT_RECOIL_33 0x26
#define MOVE_EFFECT_ATK_PLUS_2 0x27
#define MOVE_EFFECT_DEF_PLUS_2 0x28
#define MOVE_EFFECT_SPD_PLUS_2 0x29
@@ -322,9 +324,7 @@
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
-#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
-
-#define BS_GET_TARGET 0
+#define BS_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_gBank1 3
diff --git a/include/constants/bg_event_constants.h b/include/constants/event_bg.h
index a915bc509..64f3331b8 100755
--- a/include/constants/bg_event_constants.h
+++ b/include/constants/event_bg.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_CONSTANTS_BG_EVENT_H
-#define GUARD_CONSTANTS_BG_EVENT_H
+#ifndef GUARD_CONSTANTS_EVENT_BG_H
+#define GUARD_CONSTANTS_EVENT_BG_H
#define BG_EVENT_PLAYER_FACING_ANY 0
#define BG_EVENT_PLAYER_FACING_NORTH 1
@@ -10,4 +10,4 @@
#define BG_EVENT_HIDDEN_ITEM 7
#define BG_EVENT_SECRET_BASE 8
-#endif // GUARD_CONSTANTS_BG_EVENT_H
+#endif // GUARD_CONSTANTS_EVENT_BG_H
diff --git a/include/constants/event_object_movement_constants.h b/include/constants/event_object_movement.h
index 81d2417a1..a93a2ac05 100755
--- a/include/constants/event_object_movement_constants.h
+++ b/include/constants/event_object_movement.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_CONSTANTS_EVENTOBJMV_H
-#define GUARD_CONSTANTS_EVENTOBJMV_H
+#ifndef GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
+#define GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
#define MOVEMENT_TYPE_NONE 0x0
#define MOVEMENT_TYPE_LOOK_AROUND 0x1
@@ -218,4 +218,4 @@
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x88
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x89
-#endif // GUARD_CONSTANTS_EVENTOBJMV_H
+#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
index 32c7b7625..21cb3f7f4 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -1,247 +1,247 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
#define GUARD_CONSTANTS_EVENT_OBJECTS_H
-#define EVENT_OBJ_GFX_BRENDAN_NORMAL 0
-#define EVENT_OBJ_GFX_BRENDAN_MACH_BIKE 1
-#define EVENT_OBJ_GFX_BRENDAN_SURFING 2
-#define EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE 3
-#define EVENT_OBJ_GFX_QUINTY_PLUMP 4
-#define EVENT_OBJ_GFX_LITTLE_BOY_1 5
-#define EVENT_OBJ_GFX_LITTLE_GIRL_1 6
-#define EVENT_OBJ_GFX_BOY_1 7
-#define EVENT_OBJ_GFX_GIRL_1 8
-#define EVENT_OBJ_GFX_BOY_2 9
-#define EVENT_OBJ_GFX_GIRL_2 10
-#define EVENT_OBJ_GFX_LITTLE_BOY_2 11
-#define EVENT_OBJ_GFX_LITTLE_GIRL_2 12
-#define EVENT_OBJ_GFX_BOY_3 13
-#define EVENT_OBJ_GFX_GIRL_3 14
-#define EVENT_OBJ_GFX_BOY_4 15
-#define EVENT_OBJ_GFX_WOMAN_1 16
-#define EVENT_OBJ_GFX_FAT_MAN 17
-#define EVENT_OBJ_GFX_WOMAN_2 18
-#define EVENT_OBJ_GFX_MAN_1 19
-#define EVENT_OBJ_GFX_WOMAN_3 20
-#define EVENT_OBJ_GFX_OLD_MAN_1 21
-#define EVENT_OBJ_GFX_OLD_WOMAN_1 22
-#define EVENT_OBJ_GFX_MAN_2 23
-#define EVENT_OBJ_GFX_WOMAN_4 24
-#define EVENT_OBJ_GFX_MAN_3 25
-#define EVENT_OBJ_GFX_WOMAN_5 26
-#define EVENT_OBJ_GFX_COOK 27
-#define EVENT_OBJ_GFX_WOMAN_6 28
-#define EVENT_OBJ_GFX_OLD_MAN_2 29
-#define EVENT_OBJ_GFX_OLD_WOMAN_2 30
-#define EVENT_OBJ_GFX_CAMPER 31
-#define EVENT_OBJ_GFX_PICNICKER 32
-#define EVENT_OBJ_GFX_MAN_4 33
-#define EVENT_OBJ_GFX_WOMAN_7 34
-#define EVENT_OBJ_GFX_YOUNGSTER 35
-#define EVENT_OBJ_GFX_BUG_CATCHER 36
-#define EVENT_OBJ_GFX_PSYCHIC_M 37
-#define EVENT_OBJ_GFX_SCHOOL_KID_M 38
-#define EVENT_OBJ_GFX_MANIAC 39
-#define EVENT_OBJ_GFX_HEX_MANIAC 40
-#define EVENT_OBJ_GFX_WOMAN_8 41
-#define EVENT_OBJ_GFX_SWIMMER_M 42
-#define EVENT_OBJ_GFX_SWIMMER_F 43
-#define EVENT_OBJ_GFX_BLACK_BELT 44
-#define EVENT_OBJ_GFX_BEAUTY 45
-#define EVENT_OBJ_GFX_SCIENTIST_1 46
-#define EVENT_OBJ_GFX_LASS 47
-#define EVENT_OBJ_GFX_GENTLEMAN 48
-#define EVENT_OBJ_GFX_SAILOR 49
-#define EVENT_OBJ_GFX_FISHERMAN 50
-#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M 51
-#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F 52
-#define EVENT_OBJ_GFX_TUBER_F 53
-#define EVENT_OBJ_GFX_TUBER_M 54
-#define EVENT_OBJ_GFX_HIKER 55
-#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M 56
-#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F 57
-#define EVENT_OBJ_GFX_NURSE 58
-#define EVENT_OBJ_GFX_ITEM_BALL 59
-#define EVENT_OBJ_GFX_BERRY_TREE 60
-#define EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
-#define EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
-#define EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE 63
-#define EVENT_OBJ_GFX_PROF_BIRCH 64
-#define EVENT_OBJ_GFX_MAN_5 65
-#define EVENT_OBJ_GFX_MAN_6 66
-#define EVENT_OBJ_GFX_REPORTER_M 67
-#define EVENT_OBJ_GFX_REPORTER_F 68
-#define EVENT_OBJ_GFX_BARD 69
-#define EVENT_OBJ_GFX_HIPSTER 70
-#define EVENT_OBJ_GFX_TRADER 71
-#define EVENT_OBJ_GFX_STORYTELLER 72
-#define EVENT_OBJ_GFX_GIDDY 73
-#define EVENT_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74
-#define EVENT_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75
-#define EVENT_OBJ_GFX_UNUSED_NATU_DOLL 76
-#define EVENT_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
-#define EVENT_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
-#define EVENT_OBJ_GFX_UNUSED_WOOPER_DOLL 79
-#define EVENT_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
-#define EVENT_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
-#define EVENT_OBJ_GFX_CUTTABLE_TREE 82
-#define EVENT_OBJ_GFX_MART_EMPLOYEE 83
-#define EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
-#define EVENT_OBJ_GFX_TEALA 85
-#define EVENT_OBJ_GFX_BREAKABLE_ROCK 86
-#define EVENT_OBJ_GFX_PUSHABLE_BOULDER 87
-#define EVENT_OBJ_GFX_MR_BRINEYS_BOAT 88
-#define EVENT_OBJ_GFX_MAY_NORMAL 89
-#define EVENT_OBJ_GFX_MAY_MACH_BIKE 90
-#define EVENT_OBJ_GFX_MAY_ACRO_BIKE 91
-#define EVENT_OBJ_GFX_MAY_SURFING 92
-#define EVENT_OBJ_GFX_MAY_FIELD_MOVE 93
-#define EVENT_OBJ_GFX_TRUCK 94
-#define EVENT_OBJ_GFX_MACHOKE_CARRYING_BOX 95
-#define EVENT_OBJ_GFX_MACHOKE_FACING_AWAY 96
-#define EVENT_OBJ_GFX_BIRCHS_BAG 97
-#define EVENT_OBJ_GFX_POOCHYENA 98
-#define EVENT_OBJ_GFX_ARTIST 99
-#define EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
-#define EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
-#define EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
-#define EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
-#define EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
-#define EVENT_OBJ_GFX_RIVAL_MAY_NORMAL 105
-#define EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
-#define EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
-#define EVENT_OBJ_GFX_RIVAL_MAY_SURFING 108
-#define EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
-#define EVENT_OBJ_GFX_CAMERAMAN 110
-#define EVENT_OBJ_GFX_BRENDAN_UNDERWATER 111
-#define EVENT_OBJ_GFX_MAY_UNDERWATER 112
-#define EVENT_OBJ_GFX_MOVING_BOX 113
-#define EVENT_OBJ_GFX_CABLE_CAR 114
-#define EVENT_OBJ_GFX_SCIENTIST_2 115
-#define EVENT_OBJ_GFX_MAN_7 116
-#define EVENT_OBJ_GFX_AQUA_MEMBER_M 117
-#define EVENT_OBJ_GFX_AQUA_MEMBER_F 118
-#define EVENT_OBJ_GFX_MAGMA_MEMBER_M 119
-#define EVENT_OBJ_GFX_MAGMA_MEMBER_F 120
-#define EVENT_OBJ_GFX_SIDNEY 121
-#define EVENT_OBJ_GFX_PHOEBE 122
-#define EVENT_OBJ_GFX_GLACIA 123
-#define EVENT_OBJ_GFX_DRAKE 124
-#define EVENT_OBJ_GFX_ROXANNE 125
-#define EVENT_OBJ_GFX_BRAWLY 126
-#define EVENT_OBJ_GFX_WATTSON 127
-#define EVENT_OBJ_GFX_FLANNERY 128
-#define EVENT_OBJ_GFX_NORMAN 129
-#define EVENT_OBJ_GFX_WINONA 130
-#define EVENT_OBJ_GFX_LIZA 131
-#define EVENT_OBJ_GFX_TATE 132
-#define EVENT_OBJ_GFX_WALLACE 133
-#define EVENT_OBJ_GFX_STEVEN 134
-#define EVENT_OBJ_GFX_WALLY 135
-#define EVENT_OBJ_GFX_LITTLE_BOY_3 136
-#define EVENT_OBJ_GFX_BRENDAN_FISHING 137
-#define EVENT_OBJ_GFX_MAY_FISHING 138
-#define EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
-#define EVENT_OBJ_GFX_SS_TIDAL 140
-#define EVENT_OBJ_GFX_SUBMARINE_SHADOW 141
-#define EVENT_OBJ_GFX_PICHU_DOLL 142
-#define EVENT_OBJ_GFX_PIKACHU_DOLL 143
-#define EVENT_OBJ_GFX_MARILL_DOLL 144
-#define EVENT_OBJ_GFX_TOGEPI_DOLL 145
-#define EVENT_OBJ_GFX_CYNDAQUIL_DOLL 146
-#define EVENT_OBJ_GFX_CHIKORITA_DOLL 147
-#define EVENT_OBJ_GFX_TOTODILE_DOLL 148
-#define EVENT_OBJ_GFX_JIGGLYPUFF_DOLL 149
-#define EVENT_OBJ_GFX_MEOWTH_DOLL 150
-#define EVENT_OBJ_GFX_CLEFAIRY_DOLL 151
-#define EVENT_OBJ_GFX_DITTO_DOLL 152
-#define EVENT_OBJ_GFX_SMOOCHUM_DOLL 153
-#define EVENT_OBJ_GFX_TREECKO_DOLL 154
-#define EVENT_OBJ_GFX_TORCHIC_DOLL 155
-#define EVENT_OBJ_GFX_MUDKIP_DOLL 156
-#define EVENT_OBJ_GFX_DUSKULL_DOLL 157
-#define EVENT_OBJ_GFX_WYNAUT_DOLL 158
-#define EVENT_OBJ_GFX_BALTOY_DOLL 159
-#define EVENT_OBJ_GFX_KECLEON_DOLL 160
-#define EVENT_OBJ_GFX_AZURILL_DOLL 161
-#define EVENT_OBJ_GFX_SKITTY_DOLL 162
-#define EVENT_OBJ_GFX_SWABLU_DOLL 163
-#define EVENT_OBJ_GFX_GULPIN_DOLL 164
-#define EVENT_OBJ_GFX_LOTAD_DOLL 165
-#define EVENT_OBJ_GFX_SEEDOT_DOLL 166
-#define EVENT_OBJ_GFX_PIKA_CUSHION 167
-#define EVENT_OBJ_GFX_ROUND_CUSHION 168
-#define EVENT_OBJ_GFX_KISS_CUSHION 169
-#define EVENT_OBJ_GFX_ZIGZAG_CUSHION 170
-#define EVENT_OBJ_GFX_SPIN_CUSHION 171
-#define EVENT_OBJ_GFX_DIAMOND_CUSHION 172
-#define EVENT_OBJ_GFX_BALL_CUSHION 173
-#define EVENT_OBJ_GFX_GRASS_CUSHION 174
-#define EVENT_OBJ_GFX_FIRE_CUSHION 175
-#define EVENT_OBJ_GFX_WATER_CUSHION 176
-#define EVENT_OBJ_GFX_BIG_SNORLAX_DOLL 177
-#define EVENT_OBJ_GFX_BIG_RHYDON_DOLL 178
-#define EVENT_OBJ_GFX_BIG_LAPRAS_DOLL 179
-#define EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL 180
-#define EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL 181
-#define EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL 182
-#define EVENT_OBJ_GFX_BIG_WAILMER_DOLL 183
-#define EVENT_OBJ_GFX_BIG_REGIROCK_DOLL 184
-#define EVENT_OBJ_GFX_BIG_REGICE_DOLL 185
-#define EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL 186
-#define EVENT_OBJ_GFX_LATIAS 187
-#define EVENT_OBJ_GFX_LATIOS 188
-#define EVENT_OBJ_GFX_BOY_5 189
-#define EVENT_OBJ_GFX_CONTEST_JUDGE 190
-#define EVENT_OBJ_GFX_BRENDAN_WATERING 191
-#define EVENT_OBJ_GFX_MAY_WATERING 192
-#define EVENT_OBJ_GFX_BRENDAN_DECORATING 193
-#define EVENT_OBJ_GFX_MAY_DECORATING 194
-#define EVENT_OBJ_GFX_ARCHIE 195
-#define EVENT_OBJ_GFX_MAXIE 196
-#define EVENT_OBJ_GFX_KYOGRE_1 197
-#define EVENT_OBJ_GFX_GROUDON_1 198
-#define EVENT_OBJ_GFX_FOSSIL 199
-#define EVENT_OBJ_GFX_REGIROCK 200
-#define EVENT_OBJ_GFX_REGICE 201
-#define EVENT_OBJ_GFX_REGISTEEL 202
-#define EVENT_OBJ_GFX_SKITTY 203
-#define EVENT_OBJ_GFX_KECLEON_1 204
-#define EVENT_OBJ_GFX_KYOGRE_2 205
-#define EVENT_OBJ_GFX_GROUDON_2 206
-#define EVENT_OBJ_GFX_RAYQUAZA 207
-#define EVENT_OBJ_GFX_ZIGZAGOON 208
-#define EVENT_OBJ_GFX_PIKACHU 209
-#define EVENT_OBJ_GFX_AZUMARILL 210
-#define EVENT_OBJ_GFX_WINGULL 211
-#define EVENT_OBJ_GFX_KECLEON_2 212
-#define EVENT_OBJ_GFX_TUBER_M_SWIMMING 213
-#define EVENT_OBJ_GFX_AZURILL 214
-#define EVENT_OBJ_GFX_MOM 215
-#define EVENT_OBJ_GFX_LINK_BRENDAN 216
-#define EVENT_OBJ_GFX_LINK_MAY 217
+#define OBJ_EVENT_GFX_BRENDAN_NORMAL 0
+#define OBJ_EVENT_GFX_BRENDAN_MACH_BIKE 1
+#define OBJ_EVENT_GFX_BRENDAN_SURFING 2
+#define OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE 3
+#define OBJ_EVENT_GFX_QUINTY_PLUMP 4
+#define OBJ_EVENT_GFX_LITTLE_BOY_1 5
+#define OBJ_EVENT_GFX_LITTLE_GIRL_1 6
+#define OBJ_EVENT_GFX_BOY_1 7
+#define OBJ_EVENT_GFX_GIRL_1 8
+#define OBJ_EVENT_GFX_BOY_2 9
+#define OBJ_EVENT_GFX_GIRL_2 10
+#define OBJ_EVENT_GFX_LITTLE_BOY_2 11
+#define OBJ_EVENT_GFX_LITTLE_GIRL_2 12
+#define OBJ_EVENT_GFX_BOY_3 13
+#define OBJ_EVENT_GFX_GIRL_3 14
+#define OBJ_EVENT_GFX_BOY_4 15
+#define OBJ_EVENT_GFX_WOMAN_1 16
+#define OBJ_EVENT_GFX_FAT_MAN 17
+#define OBJ_EVENT_GFX_WOMAN_2 18
+#define OBJ_EVENT_GFX_MAN_1 19
+#define OBJ_EVENT_GFX_WOMAN_3 20
+#define OBJ_EVENT_GFX_OLD_MAN_1 21
+#define OBJ_EVENT_GFX_OLD_WOMAN_1 22
+#define OBJ_EVENT_GFX_MAN_2 23
+#define OBJ_EVENT_GFX_WOMAN_4 24
+#define OBJ_EVENT_GFX_MAN_3 25
+#define OBJ_EVENT_GFX_WOMAN_5 26
+#define OBJ_EVENT_GFX_COOK 27
+#define OBJ_EVENT_GFX_WOMAN_6 28
+#define OBJ_EVENT_GFX_OLD_MAN_2 29
+#define OBJ_EVENT_GFX_OLD_WOMAN_2 30
+#define OBJ_EVENT_GFX_CAMPER 31
+#define OBJ_EVENT_GFX_PICNICKER 32
+#define OBJ_EVENT_GFX_MAN_4 33
+#define OBJ_EVENT_GFX_WOMAN_7 34
+#define OBJ_EVENT_GFX_YOUNGSTER 35
+#define OBJ_EVENT_GFX_BUG_CATCHER 36
+#define OBJ_EVENT_GFX_PSYCHIC_M 37
+#define OBJ_EVENT_GFX_SCHOOL_KID_M 38
+#define OBJ_EVENT_GFX_MANIAC 39
+#define OBJ_EVENT_GFX_HEX_MANIAC 40
+#define OBJ_EVENT_GFX_WOMAN_8 41
+#define OBJ_EVENT_GFX_SWIMMER_M 42
+#define OBJ_EVENT_GFX_SWIMMER_F 43
+#define OBJ_EVENT_GFX_BLACK_BELT 44
+#define OBJ_EVENT_GFX_BEAUTY 45
+#define OBJ_EVENT_GFX_SCIENTIST_1 46
+#define OBJ_EVENT_GFX_LASS 47
+#define OBJ_EVENT_GFX_GENTLEMAN 48
+#define OBJ_EVENT_GFX_SAILOR 49
+#define OBJ_EVENT_GFX_FISHERMAN 50
+#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M 51
+#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_F 52
+#define OBJ_EVENT_GFX_TUBER_F 53
+#define OBJ_EVENT_GFX_TUBER_M 54
+#define OBJ_EVENT_GFX_HIKER 55
+#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_M 56
+#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_F 57
+#define OBJ_EVENT_GFX_NURSE 58
+#define OBJ_EVENT_GFX_ITEM_BALL 59
+#define OBJ_EVENT_GFX_BERRY_TREE 60
+#define OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES 61
+#define OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES 62
+#define OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE 63
+#define OBJ_EVENT_GFX_PROF_BIRCH 64
+#define OBJ_EVENT_GFX_MAN_5 65
+#define OBJ_EVENT_GFX_MAN_6 66
+#define OBJ_EVENT_GFX_REPORTER_M 67
+#define OBJ_EVENT_GFX_REPORTER_F 68
+#define OBJ_EVENT_GFX_BARD 69
+#define OBJ_EVENT_GFX_HIPSTER 70
+#define OBJ_EVENT_GFX_TRADER 71
+#define OBJ_EVENT_GFX_STORYTELLER 72
+#define OBJ_EVENT_GFX_GIDDY 73
+#define OBJ_EVENT_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74
+#define OBJ_EVENT_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75
+#define OBJ_EVENT_GFX_UNUSED_NATU_DOLL 76
+#define OBJ_EVENT_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define OBJ_EVENT_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define OBJ_EVENT_GFX_UNUSED_WOOPER_DOLL 79
+#define OBJ_EVENT_GFX_UNUSED_PIKACHU_DOLL 80
+#define OBJ_EVENT_GFX_UNUSED_PORYGON2_DOLL 81
+#define OBJ_EVENT_GFX_CUTTABLE_TREE 82
+#define OBJ_EVENT_GFX_MART_EMPLOYEE 83
+#define OBJ_EVENT_GFX_ROOFTOP_SALE_WOMAN 84
+#define OBJ_EVENT_GFX_TEALA 85
+#define OBJ_EVENT_GFX_BREAKABLE_ROCK 86
+#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 87
+#define OBJ_EVENT_GFX_MR_BRINEYS_BOAT 88
+#define OBJ_EVENT_GFX_MAY_NORMAL 89
+#define OBJ_EVENT_GFX_MAY_MACH_BIKE 90
+#define OBJ_EVENT_GFX_MAY_ACRO_BIKE 91
+#define OBJ_EVENT_GFX_MAY_SURFING 92
+#define OBJ_EVENT_GFX_MAY_FIELD_MOVE 93
+#define OBJ_EVENT_GFX_TRUCK 94
+#define OBJ_EVENT_GFX_MACHOKE_CARRYING_BOX 95
+#define OBJ_EVENT_GFX_MACHOKE_FACING_AWAY 96
+#define OBJ_EVENT_GFX_BIRCHS_BAG 97
+#define OBJ_EVENT_GFX_POOCHYENA 98
+#define OBJ_EVENT_GFX_ARTIST 99
+#define OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL 100
+#define OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING 103
+#define OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define OBJ_EVENT_GFX_RIVAL_MAY_NORMAL 105
+#define OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE 106
+#define OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define OBJ_EVENT_GFX_RIVAL_MAY_SURFING 108
+#define OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define OBJ_EVENT_GFX_CAMERAMAN 110
+#define OBJ_EVENT_GFX_BRENDAN_UNDERWATER 111
+#define OBJ_EVENT_GFX_MAY_UNDERWATER 112
+#define OBJ_EVENT_GFX_MOVING_BOX 113
+#define OBJ_EVENT_GFX_CABLE_CAR 114
+#define OBJ_EVENT_GFX_SCIENTIST_2 115
+#define OBJ_EVENT_GFX_MAN_7 116
+#define OBJ_EVENT_GFX_AQUA_MEMBER_M 117
+#define OBJ_EVENT_GFX_AQUA_MEMBER_F 118
+#define OBJ_EVENT_GFX_MAGMA_MEMBER_M 119
+#define OBJ_EVENT_GFX_MAGMA_MEMBER_F 120
+#define OBJ_EVENT_GFX_SIDNEY 121
+#define OBJ_EVENT_GFX_PHOEBE 122
+#define OBJ_EVENT_GFX_GLACIA 123
+#define OBJ_EVENT_GFX_DRAKE 124
+#define OBJ_EVENT_GFX_ROXANNE 125
+#define OBJ_EVENT_GFX_BRAWLY 126
+#define OBJ_EVENT_GFX_WATTSON 127
+#define OBJ_EVENT_GFX_FLANNERY 128
+#define OBJ_EVENT_GFX_NORMAN 129
+#define OBJ_EVENT_GFX_WINONA 130
+#define OBJ_EVENT_GFX_LIZA 131
+#define OBJ_EVENT_GFX_TATE 132
+#define OBJ_EVENT_GFX_WALLACE 133
+#define OBJ_EVENT_GFX_STEVEN 134
+#define OBJ_EVENT_GFX_WALLY 135
+#define OBJ_EVENT_GFX_LITTLE_BOY_3 136
+#define OBJ_EVENT_GFX_BRENDAN_FISHING 137
+#define OBJ_EVENT_GFX_MAY_FISHING 138
+#define OBJ_EVENT_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define OBJ_EVENT_GFX_SS_TIDAL 140
+#define OBJ_EVENT_GFX_SUBMARINE_SHADOW 141
+#define OBJ_EVENT_GFX_PICHU_DOLL 142
+#define OBJ_EVENT_GFX_PIKACHU_DOLL 143
+#define OBJ_EVENT_GFX_MARILL_DOLL 144
+#define OBJ_EVENT_GFX_TOGEPI_DOLL 145
+#define OBJ_EVENT_GFX_CYNDAQUIL_DOLL 146
+#define OBJ_EVENT_GFX_CHIKORITA_DOLL 147
+#define OBJ_EVENT_GFX_TOTODILE_DOLL 148
+#define OBJ_EVENT_GFX_JIGGLYPUFF_DOLL 149
+#define OBJ_EVENT_GFX_MEOWTH_DOLL 150
+#define OBJ_EVENT_GFX_CLEFAIRY_DOLL 151
+#define OBJ_EVENT_GFX_DITTO_DOLL 152
+#define OBJ_EVENT_GFX_SMOOCHUM_DOLL 153
+#define OBJ_EVENT_GFX_TREECKO_DOLL 154
+#define OBJ_EVENT_GFX_TORCHIC_DOLL 155
+#define OBJ_EVENT_GFX_MUDKIP_DOLL 156
+#define OBJ_EVENT_GFX_DUSKULL_DOLL 157
+#define OBJ_EVENT_GFX_WYNAUT_DOLL 158
+#define OBJ_EVENT_GFX_BALTOY_DOLL 159
+#define OBJ_EVENT_GFX_KECLEON_DOLL 160
+#define OBJ_EVENT_GFX_AZURILL_DOLL 161
+#define OBJ_EVENT_GFX_SKITTY_DOLL 162
+#define OBJ_EVENT_GFX_SWABLU_DOLL 163
+#define OBJ_EVENT_GFX_GULPIN_DOLL 164
+#define OBJ_EVENT_GFX_LOTAD_DOLL 165
+#define OBJ_EVENT_GFX_SEEDOT_DOLL 166
+#define OBJ_EVENT_GFX_PIKA_CUSHION 167
+#define OBJ_EVENT_GFX_ROUND_CUSHION 168
+#define OBJ_EVENT_GFX_KISS_CUSHION 169
+#define OBJ_EVENT_GFX_ZIGZAG_CUSHION 170
+#define OBJ_EVENT_GFX_SPIN_CUSHION 171
+#define OBJ_EVENT_GFX_DIAMOND_CUSHION 172
+#define OBJ_EVENT_GFX_BALL_CUSHION 173
+#define OBJ_EVENT_GFX_GRASS_CUSHION 174
+#define OBJ_EVENT_GFX_FIRE_CUSHION 175
+#define OBJ_EVENT_GFX_WATER_CUSHION 176
+#define OBJ_EVENT_GFX_BIG_SNORLAX_DOLL 177
+#define OBJ_EVENT_GFX_BIG_RHYDON_DOLL 178
+#define OBJ_EVENT_GFX_BIG_LAPRAS_DOLL 179
+#define OBJ_EVENT_GFX_BIG_VENUSAUR_DOLL 180
+#define OBJ_EVENT_GFX_BIG_CHARIZARD_DOLL 181
+#define OBJ_EVENT_GFX_BIG_BLASTOISE_DOLL 182
+#define OBJ_EVENT_GFX_BIG_WAILMER_DOLL 183
+#define OBJ_EVENT_GFX_BIG_REGIROCK_DOLL 184
+#define OBJ_EVENT_GFX_BIG_REGICE_DOLL 185
+#define OBJ_EVENT_GFX_BIG_REGISTEEL_DOLL 186
+#define OBJ_EVENT_GFX_LATIAS 187
+#define OBJ_EVENT_GFX_LATIOS 188
+#define OBJ_EVENT_GFX_BOY_5 189
+#define OBJ_EVENT_GFX_CONTEST_JUDGE 190
+#define OBJ_EVENT_GFX_BRENDAN_WATERING 191
+#define OBJ_EVENT_GFX_MAY_WATERING 192
+#define OBJ_EVENT_GFX_BRENDAN_DECORATING 193
+#define OBJ_EVENT_GFX_MAY_DECORATING 194
+#define OBJ_EVENT_GFX_ARCHIE 195
+#define OBJ_EVENT_GFX_MAXIE 196
+#define OBJ_EVENT_GFX_KYOGRE_1 197
+#define OBJ_EVENT_GFX_GROUDON_1 198
+#define OBJ_EVENT_GFX_FOSSIL 199
+#define OBJ_EVENT_GFX_REGIROCK 200
+#define OBJ_EVENT_GFX_REGICE 201
+#define OBJ_EVENT_GFX_REGISTEEL 202
+#define OBJ_EVENT_GFX_SKITTY 203
+#define OBJ_EVENT_GFX_KECLEON_1 204
+#define OBJ_EVENT_GFX_KYOGRE_2 205
+#define OBJ_EVENT_GFX_GROUDON_2 206
+#define OBJ_EVENT_GFX_RAYQUAZA 207
+#define OBJ_EVENT_GFX_ZIGZAGOON 208
+#define OBJ_EVENT_GFX_PIKACHU 209
+#define OBJ_EVENT_GFX_AZUMARILL 210
+#define OBJ_EVENT_GFX_WINGULL 211
+#define OBJ_EVENT_GFX_KECLEON_2 212
+#define OBJ_EVENT_GFX_TUBER_M_SWIMMING 213
+#define OBJ_EVENT_GFX_AZURILL 214
+#define OBJ_EVENT_GFX_MOM 215
+#define OBJ_EVENT_GFX_LINK_BRENDAN 216
+#define OBJ_EVENT_GFX_LINK_MAY 217
+
+#define NUM_OBJ_EVENT_GFX 218
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
-#define EVENT_OBJ_GFX_VAR_0 240
-#define EVENT_OBJ_GFX_VAR_1 241
-#define EVENT_OBJ_GFX_VAR_2 242
-#define EVENT_OBJ_GFX_VAR_3 243
-#define EVENT_OBJ_GFX_VAR_4 244
-#define EVENT_OBJ_GFX_VAR_5 245
-#define EVENT_OBJ_GFX_VAR_6 246
-#define EVENT_OBJ_GFX_VAR_7 247
-#define EVENT_OBJ_GFX_VAR_8 248
-#define EVENT_OBJ_GFX_VAR_9 249
-#define EVENT_OBJ_GFX_VAR_A 250
-#define EVENT_OBJ_GFX_VAR_B 251
-#define EVENT_OBJ_GFX_VAR_C 252
-#define EVENT_OBJ_GFX_VAR_D 253
-#define EVENT_OBJ_GFX_VAR_E 254
-#define EVENT_OBJ_GFX_VAR_F 255
-
-#define NUM_OBJECT_GRAPHICS_INFO 217
-#define SPRITE_VAR 239
+#define OBJ_EVENT_GFX_VARS 240
+#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0)
+#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1)
+#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2)
+#define OBJ_EVENT_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3)
+#define OBJ_EVENT_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4)
+#define OBJ_EVENT_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5)
+#define OBJ_EVENT_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6)
+#define OBJ_EVENT_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7)
+#define OBJ_EVENT_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8)
+#define OBJ_EVENT_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9)
+#define OBJ_EVENT_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA)
+#define OBJ_EVENT_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB)
+#define OBJ_EVENT_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC)
+#define OBJ_EVENT_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD)
+#define OBJ_EVENT_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE)
+#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 753024403..a6fa4c806 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -357,7 +357,7 @@
#define FLAG_HIDDEN_ITEM_61 0x2B9
-// event object hide/show flags
+// object event hide/show flags
#define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC
#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index 0995d5309..f126d222a 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -191,12 +191,12 @@
#define METATILE_MauvilleGym_PoleBottom_Off 0x243
// gTileset_MossdeepGym
-#define METATILE_MossdeepGym_Obelisk_Top 0x204
-#define METATILE_MossdeepGym_Obelisk_Base 0x20C
-#define METATILE_MossdeepGym_Wall_LeftCorner 0x20D
-#define METATILE_MossdeepGym_OuterWall_RightCorner 0x205
-#define METATILE_MossdeepGym_Empty0 0x238
-#define METATILE_MossdeepGym_Empty1 0x239
+#define METATILE_MossdeepGym_RedArrow_Right 0x204
+#define METATILE_MossdeepGym_RedArrow_Left 0x20C
+#define METATILE_MossdeepGym_RedArrow_Up 0x20D
+#define METATILE_MossdeepGym_RedArrow_Down 0x205
+#define METATILE_MossdeepGym_Switch_Up 0x238
+#define METATILE_MossdeepGym_Switch_Down 0x239
// gTileset_Building
#define METATILE_Building_TV_Off 0x002
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
new file mode 100644
index 000000000..8e7c01eb5
--- /dev/null
+++ b/include/constants/pokemon.h
@@ -0,0 +1,144 @@
+#ifndef GUARD_CONSTANTS_POKEMON_H
+#define GUARD_CONSTANTS_POKEMON_H
+
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_OT_ID 1
+#define MON_DATA_NICKNAME 2
+#define MON_DATA_LANGUAGE 3
+#define MON_DATA_SANITY_BIT1 4
+#define MON_DATA_SANITY_BIT2 5
+#define MON_DATA_SANITY_BIT3 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_10 10
+#define MON_DATA_SPECIES 11
+#define MON_DATA_HELD_ITEM 12
+#define MON_DATA_MOVE1 13
+#define MON_DATA_MOVE2 14
+#define MON_DATA_MOVE3 15
+#define MON_DATA_MOVE4 16
+#define MON_DATA_PP1 17
+#define MON_DATA_PP2 18
+#define MON_DATA_PP3 19
+#define MON_DATA_PP4 20
+#define MON_DATA_PP_BONUSES 21
+#define MON_DATA_COOL 22
+#define MON_DATA_BEAUTY 23
+#define MON_DATA_CUTE 24
+#define MON_DATA_EXP 25
+#define MON_DATA_HP_EV 26
+#define MON_DATA_ATK_EV 27
+#define MON_DATA_DEF_EV 28
+#define MON_DATA_SPEED_EV 29
+#define MON_DATA_SPATK_EV 30
+#define MON_DATA_SPDEF_EV 31
+#define MON_DATA_FRIENDSHIP 32
+#define MON_DATA_SMART 33
+#define MON_DATA_POKERUS 34
+#define MON_DATA_MET_LOCATION 35
+#define MON_DATA_MET_LEVEL 36
+#define MON_DATA_MET_GAME 37
+#define MON_DATA_POKEBALL 38
+#define MON_DATA_HP_IV 39
+#define MON_DATA_ATK_IV 40
+#define MON_DATA_DEF_IV 41
+#define MON_DATA_SPEED_IV 42
+#define MON_DATA_SPATK_IV 43
+#define MON_DATA_SPDEF_IV 44
+#define MON_DATA_IS_EGG 45
+#define MON_DATA_ALT_ABILITY 46
+#define MON_DATA_TOUGH 47
+#define MON_DATA_SHEEN 48
+#define MON_DATA_OT_GENDER 49
+#define MON_DATA_COOL_RIBBON 50
+#define MON_DATA_BEAUTY_RIBBON 51
+#define MON_DATA_CUTE_RIBBON 52
+#define MON_DATA_SMART_RIBBON 53
+#define MON_DATA_TOUGH_RIBBON 54
+#define MON_DATA_STATUS 55
+#define MON_DATA_LEVEL 56
+#define MON_DATA_HP 57
+#define MON_DATA_MAX_HP 58
+#define MON_DATA_ATK 59
+#define MON_DATA_DEF 60
+#define MON_DATA_SPEED 61
+#define MON_DATA_SPATK 62
+#define MON_DATA_SPDEF 63
+#define MON_DATA_MAIL 64
+#define MON_DATA_SPECIES2 65
+#define MON_DATA_IVS 66
+#define MON_DATA_CHAMPION_RIBBON 67
+#define MON_DATA_WINNING_RIBBON 68
+#define MON_DATA_VICTORY_RIBBON 69
+#define MON_DATA_ARTIST_RIBBON 70
+#define MON_DATA_EFFORT_RIBBON 71
+#define MON_DATA_GIFT_RIBBON_1 72
+#define MON_DATA_GIFT_RIBBON_2 73
+#define MON_DATA_GIFT_RIBBON_3 74
+#define MON_DATA_GIFT_RIBBON_4 75
+#define MON_DATA_GIFT_RIBBON_5 76
+#define MON_DATA_GIFT_RIBBON_6 77
+#define MON_DATA_GIFT_RIBBON_7 78
+#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_KNOWN_MOVES 80
+#define MON_DATA_RIBBON_COUNT 81
+#define MON_DATA_RIBBONS 82
+#define MON_DATA_83 83
+#define MON_DATA_ATK2 84
+#define MON_DATA_DEF2 85
+#define MON_DATA_SPEED2 86
+#define MON_DATA_SPATK2 87
+#define MON_DATA_SPDEF2 88
+
+#define MIN_LEVEL 1
+#define MAX_LEVEL 100
+
+#define MON_MALE 0x00
+#define MON_FEMALE 0xFE
+#define MON_GENDERLESS 0xFF
+
+#define TYPE_NORMAL 0x00
+#define TYPE_FIGHTING 0x01
+#define TYPE_FLYING 0x02
+#define TYPE_POISON 0x03
+#define TYPE_GROUND 0x04
+#define TYPE_ROCK 0x05
+#define TYPE_BUG 0x06
+#define TYPE_GHOST 0x07
+#define TYPE_STEEL 0x08
+#define TYPE_MYSTERY 0x09
+#define TYPE_FIRE 0x0a
+#define TYPE_WATER 0x0b
+#define TYPE_GRASS 0x0c
+#define TYPE_ELECTRIC 0x0d
+#define TYPE_PSYCHIC 0x0e
+#define TYPE_ICE 0x0f
+#define TYPE_DRAGON 0x10
+#define TYPE_DARK 0x11
+#define NUMBER_OF_MON_TYPES 0x12
+
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
+#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
+#define FRIENDSHIP_EVENT_WALKING 0x5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
+#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
+
+#define STATUS_PRIMARY_NONE 0x0
+#define STATUS_PRIMARY_POISON 0x1
+#define STATUS_PRIMARY_PARALYSIS 0x2
+#define STATUS_PRIMARY_SLEEP 0x3
+#define STATUS_PRIMARY_FREEZE 0x4
+#define STATUS_PRIMARY_BURN 0x5
+#define STATUS_PRIMARY_POKERUS 0x6
+#define STATUS_PRIMARY_FAINTED 0x7
+
+#define MAX_TOTAL_EVS 510
+#define NUM_STATS 6
+#define UNOWN_FORM_COUNT 28
+
+#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 856aba069..795498212 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -25,9 +25,9 @@
#define VAR_TEMP_F 0x400F
// object gfx id vars
-// These 0x10 vars are used to dynamically control a event object's sprite.
+// These 0x10 vars are used to dynamically control an object event's sprite.
// For example, the rival's sprite id is dynamically set based on the player's gender.
-// See VarGetEventObjectGraphicsId().
+// See VarGetObjectEventGraphicsId().
#define VAR_OBJ_GFX_ID_0 0x4010
#define VAR_OBJ_GFX_ID_1 0x4011
#define VAR_OBJ_GFX_ID_2 0x4012
@@ -172,25 +172,26 @@
#define VAR_STEVENS_HOUSE_STATE 0x40C6
#define VAR_OLDALE_STATE 0x40C7
+#define SPECIAL_VARS_START 0x8000
// special vars
// They are commonly used as parameters to commands, or return values from commands.
-#define VAR_SPECIAL_0 0x8000
-#define VAR_SPECIAL_1 0x8001
-#define VAR_SPECIAL_2 0x8002
-#define VAR_SPECIAL_3 0x8003
-#define VAR_SPECIAL_4 0x8004
-#define VAR_SPECIAL_5 0x8005
-#define VAR_SPECIAL_6 0x8006
-#define VAR_SPECIAL_7 0x8007
-#define VAR_SPECIAL_8 0x8008
-#define VAR_SPECIAL_9 0x8009
-#define VAR_SPECIAL_A 0x800A
-#define VAR_SPECIAL_B 0x800B
-#define FACING 0x800C
-#define RESULT 0x800D
-#define ITEM_ID 0x800E
-#define LAST_TALKED 0x800F
-#define CONTEST_RANK 0x8010
-#define CONTEST_CATEGORY 0x8011
+#define VAR_0x8000 0x8000
+#define VAR_0x8001 0x8001
+#define VAR_0x8002 0x8002
+#define VAR_0x8003 0x8003
+#define VAR_0x8004 0x8004
+#define VAR_0x8005 0x8005
+#define VAR_0x8006 0x8006
+#define VAR_0x8007 0x8007
+#define VAR_0x8008 0x8008
+#define VAR_0x8009 0x8009
+#define VAR_0x800A 0x800A
+#define VAR_0x800B 0x800B
+#define VAR_FACING 0x800C
+#define VAR_RESULT 0x800D
+#define VAR_ITEM_ID 0x800E
+#define VAR_LAST_TALKED 0x800F
+#define VAR_CONTEST_RANK 0x8010
+#define VAR_CONTEST_CATEGORY 0x8011
#endif // GUARD_CONSTANTS_VARS_H
diff --git a/include/decoration.h b/include/decoration.h
index 7676c0add..9f78bc491 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -182,7 +182,7 @@ bool8 sub_80FEFA4(void);
void sub_80FF394(u16, u16, u16);
void sub_80FF6AC(u8);
void sub_80FF960(u8);
-void AddDecorationIconObjectFromEventObject(struct UnkStruct_02038900 *, u8);
+void AddDecorationIconObjectFromObjectEvent(struct UnkStruct_02038900 *, u8);
void SetUpPlacingDecorationPlayerAvatar(u8, struct UnkStruct_02038900 *);
void sub_8100038(u8);
void sub_81000A0(u8);
diff --git a/include/event_data.h b/include/event_data.h
index 44d1e8e41..50a26a437 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -19,7 +19,7 @@ bool32 CanResetRTC(void);
u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
bool8 VarSet(u16 id, u16 value);
-u8 VarGetEventObjectGraphicsId(u8 id);
+u8 VarGetObjectEventGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
diff --git a/include/event_obj_lock.h b/include/event_object_lock.h
index 538edc579..c66db99f7 100644
--- a/include/event_obj_lock.h
+++ b/include/event_object_lock.h
@@ -1,16 +1,16 @@
-#ifndef GUARD_EVENT_OBJ_LOCK_H
-#define GUARD_EVENT_OBJ_LOCK_H
+#ifndef GUARD_EVENT_OBJECT_LOCK_H
+#define GUARD_EVENT_OBJECT_LOCK_H
bool8 walkrun_is_standing_still(void);
void sub_8064CDC(u8 taskId);
bool8 sub_8064CFC(void);
-void ScriptFreezeEventObjects(void);
+void ScriptFreezeObjectEvents(void);
void sub_8064D38(u8 taskId);
bool8 sub_8064DB4(void);
-void LockSelectedEventObject(void);
-void ScriptUnfreezeEventObjects(void);
+void LockSelectedObjectEvent(void);
+void ScriptUnfreezeObjectEvents(void);
void unref_sub_8064E5C(void);
void sub_8064EAC(void);
void sub_8064ED4(void);
-#endif // GUARD_EVENT_OBJ_LOCK_H
+#endif // GUARD_EVENT_OBJECT_LOCK_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index b3040d6df..8a28be8ae 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_EVENTOBJMV_H
-#define GUARD_EVENTOBJMV_H
+#ifndef GUARD_EVENT_OBJECT_MOVEMENT_H
+#define GUARD_EVENT_OBJECT_MOVEMENT_H
#include "sprite.h"
@@ -27,23 +27,23 @@
extern const u8 gReflectionEffectPaletteMap[];
#define movement_type_def(setup, table) \
-static u8 setup##_callback(struct EventObject *, struct Sprite *);\
+static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\
}\
-static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
+static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\
{\
- return table[sprite->data[1]](eventObject, sprite);\
+ return table[sprite->data[1]](objectEvent, sprite);\
}
#define movement_type_empty_callback(setup) \
-static u8 setup##_callback(struct EventObject *, struct Sprite *);\
+static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\
}\
-static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
+static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\
{\
return 0;\
}
@@ -54,18 +54,18 @@ struct ReflectionPaletteSet
const u16 *reflectionPaletteTags;
};
-extern const u16 gEventObjectPalette19[];
+extern const u16 gObjectEventPalette19[];
-extern const u32 gEventObjectPic_MovingBox[32];
-extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[];
+extern const u32 gObjectEventPic_MovingBox[32];
+extern const struct SpriteFrameImage gObjectEventPicTable_PechaBerryTree[];
extern const u8 gFieldEffectPic_CutGrass[];
extern const u16 gFieldEffectObjectPalette6[];
-void sub_805C058(struct EventObject *eventObject, s16 a, s16 b);
-void SetEventObjectDirection(struct EventObject *pObject, u8 unk_18);
+void sub_805C058(struct ObjectEvent *objectEvent, s16 a, s16 b);
+void SetObjectEventDirection(struct ObjectEvent *pObject, u8 unk_18);
void MoveCoords(u8 direction, s16 *x, s16 *y);
-void UpdateEventObjectCurrentMovement(struct EventObject *pObject, struct Sprite *pSprite, u8 (*d8)(struct EventObject *, struct Sprite *));
+void UpdateObjectEventCurrentMovement(struct ObjectEvent *pObject, struct Sprite *pSprite, u8 (*d8)(struct ObjectEvent *, struct Sprite *));
u8 GetVectorDirection(s16 a0, s16 a1, s16 a2, s16 a3);
u8 GetLimitedVectorDirection_SouthNorth(s16 a0, s16 a1, s16 a2, s16 a3);
@@ -79,15 +79,15 @@ u8 GetLimitedVectorDirection_SouthNorthEast(s16 a0, s16 a1, s16 a2, s16 a3);
u8 GetLimitedVectorDirection_NorthWestEast(s16 a0, s16 a1, s16 a2, s16 a3);
u8 GetLimitedVectorDirection_SouthWestEast(s16 a0, s16 a1, s16 a2, s16 a3);
-u8 CopyablePlayerMovement_None(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_FaceDirection(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_GoSpeed0(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_GoSpeed1(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_GoSpeed2(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_Slide(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 cph_IM_DIFFERENT(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_GoSpeed4(struct EventObject *, struct Sprite *, u8, bool8(u8));
-u8 CopyablePlayerMovement_Jump(struct EventObject *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_None(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_GoSpeed1(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_Slide(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 cph_IM_DIFFERENT(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
+u8 CopyablePlayerMovement_Jump(struct ObjectEvent *, struct Sprite *, u8, bool8(u8));
extern struct FieldCamera gFieldCamera;
extern u16 gTotalCameraPixelOffsetY;
@@ -150,189 +150,189 @@ void MovementType_JogInPlace(struct Sprite *);
void MovementType_RunInPlace(struct Sprite *);
void MovementType_Invisible(struct Sprite *);
-u8 MovementType_WanderAround_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step5(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderAround_Step6(struct EventObject *, struct Sprite *);
-u8 MovementType_LookAround_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_LookAround_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_LookAround_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_LookAround_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_LookAround_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step5(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderUpAndDown_Step6(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step5(struct EventObject *, struct Sprite *);
-u8 MovementType_WanderLeftAndRight_Step6(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDirection_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDirection_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDirection_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_BerryTreeGrowth_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_BerryTreeGrowth_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_BerryTreeGrowth_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_BerryTreeGrowth_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_BerryTreeGrowth_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndUp_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndUp_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndUp_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndUp_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceLeftAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceLeftAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceLeftAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceLeftAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceLeftAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndLeft_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndLeft_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndLeft_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndLeft_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndLeft_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndLeft_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndLeft_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndLeft_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndLeft_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndLeft_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndLeft_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndLeft_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownUpAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpLeftAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpLeftAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpLeftAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpLeftAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceUpLeftAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownLeftAndRight_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownLeftAndRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownLeftAndRight_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownLeftAndRight_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_FaceDownLeftAndRight_Step4(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateCounterclockwise_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateCounterclockwise_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateCounterclockwise_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateCounterclockwise_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateClockwise_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateClockwise_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateClockwise_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_RotateClockwise_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkBackAndForth_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkBackAndForth_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkBackAndForth_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkBackAndForth_Step3(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_CopyPlayer_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_CopyPlayer_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_CopyPlayer_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_CopyPlayerInGrass_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_CopyPlayer_Step2(struct EventObject *, struct Sprite *);
-u8 MovementType_Hidden_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_WalkInPlace_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_JogInPlace_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *);
-u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *);
-u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step5(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderAround_Step6(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_LookAround_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_LookAround_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_LookAround_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_LookAround_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_LookAround_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step5(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step6(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step5(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDirection_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDirection_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDirection_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step4(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step2(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_Hidden_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_WalkInPlace_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_JogInPlace_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_MoveInPlace_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *);
+u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *);
u8 GetMoveDirectionAnimNum(u8);
u8 GetMoveDirectionFastAnimNum(u8);
@@ -342,24 +342,24 @@ u8 GetMoveDirectionFastestAnimNum(u8);
u32 state_to_direction(u8, u32, u32);
-void ResetEventObjects();
-u8 GetFirstInactiveEventObjectId(void);
-u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8);
-bool8 TryGetEventObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
-u8 GetEventObjectIdByXY(s16, s16);
-void RemoveEventObjectByLocalIdAndMap(u8, u8, u8);
-u8 SpawnSpecialEventObject(struct EventObjectTemplate *);
+void ResetObjectEvents();
+u8 GetFirstInactiveObjectEventId(void);
+u8 GetObjectEventIdByLocalIdAndMap(u8, u8, u8);
+bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *);
+u8 GetObjectEventIdByXY(s16, s16);
+void RemoveObjectEventByLocalIdAndMap(u8, u8, u8);
+u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
u8 show_sprite(u8, u8, u8);
-u8 AddPseudoEventObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
+u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 sub_805B410(u8, u8, s16, s16, u8, u8);
-void TrySpawnEventObjects(s16, s16);
+void TrySpawnObjectEvents(s16, s16);
void sub_805B710(u16 i, u16 i1);
-void EventObjectSetGraphicsId(struct EventObject *, u8);
-void EventObjectTurn(struct EventObject *, u8);
-void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
-const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8);
+void ObjectEventSetGraphicsId(struct ObjectEvent *, u8);
+void ObjectEventTurn(struct ObjectEvent *, u8);
+void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
+const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void EventObjectGetLocalIdAndMap(struct EventObject *, void *, void *, void *);
+void ObjectEventGetLocalIdAndMap(struct ObjectEvent *, void *, void *, void *);
void sub_805BCC0(s16 x, s16 y);
void sub_805BCF0(u8, u8, u8, u8);
void sub_805BD48(u8, u8, u8);
@@ -369,44 +369,44 @@ void sub_805BDF8(u16);
void PatchObjectPalette(u16, u8);
void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
-void ShiftEventObjectCoords(struct EventObject *pObject, s16 x, s16 y);
+void ShiftObjectEventCoords(struct ObjectEvent *pObject, s16 x, s16 y);
void sub_805C0F8(u8, u8, u8, s16, s16);
-void ShiftStillEventObjectCoords(struct EventObject *pObject);
-u8 GetEventObjectIdByXYZ(u16, u16, u8);
-void UpdateEventObjectsForCameraUpdate(s16, s16);
+void ShiftStillObjectEventCoords(struct ObjectEvent *pObject);
+u8 GetObjectEventIdByXYZ(u16, u16, u8);
+void UpdateObjectEventsForCameraUpdate(s16, s16);
u8 AddCameraObject(u8);
void CameraObjectReset1(void);
-const u8 *GetEventObjectScriptPointerByEventObjectId(u8);
-u8 EventObjectGetBerryTreeId(u8);
-struct EventObjectTemplate *GetEventObjectTemplateByLocalIdAndMap(u8, u8, u8);
-void OverrideTemplateCoordsForEventObject(struct EventObject *pObject);
-void OverrideMovementTypeForEventObject(struct EventObject *, u8);
-void TryOverrideTemplateCoordsForEventObject(u8, u8, u8);
-void InitEventObjectPalettes(u8);
+const u8 *GetObjectEventScriptPointerByObjectEventId(u8);
+u8 ObjectEventGetBerryTreeId(u8);
+struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8);
+void OverrideTemplateCoordsForObjectEvent(struct ObjectEvent *pObject);
+void OverrideMovementTypeForObjectEvent(struct ObjectEvent *, u8);
+void TryOverrideTemplateCoordsForObjectEvent(u8, u8, u8);
+void InitObjectEventPalettes(u8);
u8 GetFaceDirectionAnimNum(u8);
u8 GetMoveDirectionAnimNum(u8 unk_19);
u8 GetAcroWheelieDirectionAnimNum(u8);
u8 GetFishingDirectionAnimNum(u8);
u8 GetFishingNoCatchDirectionAnimNum(u8);
u8 GetFishingBiteDirectionAnimNum(u8);
-void SetTrainerMovementType(struct EventObject *, u8);
+void SetTrainerMovementType(struct ObjectEvent *, u8);
u8 GetTrainerFacingDirectionMovementType(u8);
-u8 GetCollisionAtCoords(struct EventObject *, s16, s16, u32);
-u8 GetCollisionFlagsAtCoords(struct EventObject *, s16, s16, u8);
+u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
+u8 GetCollisionFlagsAtCoords(struct ObjectEvent *, s16, s16, u8);
bool8 IsBerryTreeSparkling(u8, u8, u8);
void sub_8060288(u8, u8, u8);
void sub_8060388(s16, s16, s16 *, s16 *);
void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
-void EventObjectMoveDestCoords(struct EventObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
-bool8 EventObjectIsMovementOverridden(struct EventObject *);
-bool8 EventObjectIsHeldMovementActive(struct EventObject *);
-bool8 EventObjectSetHeldMovement(struct EventObject *, u8);
-void EventObjectForceSetHeldMovement(struct EventObject *pObject, u8 a);
-void EventObjectClearHeldMovementIfActive(struct EventObject *);
-void EventObjectClearHeldMovement(struct EventObject *);
-bool8 EventObjectCheckHeldMovementStatus(struct EventObject *);
-u8 EventObjectClearHeldMovementIfFinished(struct EventObject *);
-u8 EventObjectGetHeldMovementActionId(struct EventObject *);
+void ObjectEventMoveDestCoords(struct ObjectEvent *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
+bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *);
+bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
+bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
+void ObjectEventForceSetHeldMovement(struct ObjectEvent *pObject, u8 a);
+void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
+void ObjectEventClearHeldMovement(struct ObjectEvent *);
+bool8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *);
+u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
+u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *);
u8 GetFaceDirectionMovementAction(u32);
u8 GetWalkSlowMovementAction(u32);
u8 GetWalkNormalMovementAction(u32);
@@ -424,7 +424,7 @@ u8 GetWalkInPlaceSlowMovementAction(u32);
u8 GetWalkInPlaceNormalMovementAction(u32);
u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetWalkInPlaceFastestMovementAction(u32);
-u8 EventObjectFaceOppositeDirection(struct EventObject *, u8);
+u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8);
u8 GetAcroWheelieFaceDirectionMovementAction(u8);
u8 GetAcroPopWheelieFaceDirectionMovementAction(u8);
u8 GetAcroEndWheelieFaceDirectionMovementAction(u8);
@@ -436,23 +436,23 @@ u8 GetAcroPopWheelieMoveDirectionMovementAction(u8);
u8 GetAcroWheelieMoveDirectionMovementAction(u8);
u8 GetAcroEndWheelieMoveDirectionMovementAction(u8);
u8 GetOppositeDirection(u8);
-u8 SpawnSpecialEventObjectParametrized(u8, u8, u8, s16, s16, u8);
+u8 SpawnSpecialObjectEventParametrized(u8, u8, u8, s16, s16, u8);
void CameraObjectSetFollowedObjectId(u8);
-u8 TryInitLocalEventObject(u8);
+u8 TryInitLocalObjectEvent(u8);
u8 CreateCopySpriteAt(struct Sprite *, s16, s16, u8);
u16 GetObjectPaletteTag(u8);
void sub_8060470(s16 *, s16 *, s16, s16);
-bool8 FreezeEventObject(struct EventObject *);
-void FreezeEventObjects(void);
-void FreezeEventObjectsExceptOne(u8);
-void UnfreezeEventObjects(void);
-void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible);
-void TurnEventObject(u8, u8);
-void UnfreezeEventObject(struct EventObject *eventObject);
+bool8 FreezeObjectEvent(struct ObjectEvent *);
+void FreezeObjectEvents(void);
+void FreezeObjectEventsExceptOne(u8);
+void UnfreezeObjectEvents(void);
+void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
+void TurnObjectEvent(u8, u8);
+void UnfreezeObjectEvent(struct ObjectEvent *objectEvent);
void sub_806467C(struct Sprite *sprite, u8 direction);
bool8 sub_806468C(struct Sprite *sprite);
void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4);
-void DoShadowFieldEffect(struct EventObject *eventObject);
+void DoShadowFieldEffect(struct ObjectEvent *objectEvent);
u8 sub_8064704(struct Sprite *);
u8 sub_806478C(struct Sprite *);
void SetAndStartSpriteAnim(struct Sprite *sprite, u8 a2, u8 a3);
@@ -460,7 +460,7 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y);
bool8 AreZCoordsCompatible(u8 z1, u8 z2);
u8 GetLedgeJumpDirection(s16, s16, u8);
u8 ZCoordToPriority(u8);
-void EventObjectUpdateZCoord(struct EventObject *pObject);
+void ObjectEventUpdateZCoord(struct ObjectEvent *pObject);
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-#endif // GUARD_EVENTOBJMV_H
+#endif // GUARD_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index df6482688..bcb2b449e 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -30,7 +30,7 @@ const u8 *GetInteractedLinkPlayerScript(struct MapPosition *, u8, u8);
void ClearPoisonStepCounter(void);
void RestartWildEncounterImmunitySteps(void);
u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *);
-const u8 *GetEventObjectScriptPointerPlayerFacing(void);
+const u8 *GetObjectEventScriptPointerPlayerFacing(void);
u8 TrySetDiveWarp(void);
bool8 dive_warp(struct MapPosition*, u16);
diff --git a/include/field_effect.h b/include/field_effect.h
index a1c175eb8..6bf98d4f7 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -88,11 +88,11 @@ bool8 sub_8086E50(struct Task *);
bool8 sub_8086EB0(struct Task *);
bool8 sub_8086ED4(struct Task *);
-bool8 sub_8086FB0(struct Task *, struct EventObject *);
-bool8 waterfall_1_do_anim_probably(struct Task *, struct EventObject *);
-bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct EventObject *);
-bool8 sub_8087030(struct Task *, struct EventObject *);
-bool8 sub_8087058(struct Task *, struct EventObject *);
+bool8 sub_8086FB0(struct Task *, struct ObjectEvent *);
+bool8 waterfall_1_do_anim_probably(struct Task *, struct ObjectEvent *);
+bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct ObjectEvent *);
+bool8 sub_8087030(struct Task *, struct ObjectEvent *);
+bool8 sub_8087058(struct Task *, struct ObjectEvent *);
bool8 sub_8087124(struct Task *);
bool8 dive_2_unknown(struct Task *);
@@ -100,25 +100,25 @@ bool8 dive_3_unknown(struct Task *);
void sub_80871B8(u8);
-bool8 sub_808722C(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_8087264(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_8087298(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80872E4(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80873D8(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80873F4(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_808722C(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_8087264(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_8087298(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80872E4(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80873D8(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80873F4(struct Task *, struct ObjectEvent *, struct Sprite *);
-bool8 sub_80874CC(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80874FC(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_8087548(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_808759C(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80874CC(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80874FC(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_8087548(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_808759C(struct Task *, struct ObjectEvent *, struct Sprite *);
void sub_8087654(u8);
-bool8 sub_80876C8(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80876F8(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_8087774(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80877AC(struct Task *, struct EventObject *, struct Sprite *);
-bool8 sub_80877D4(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80876C8(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80876F8(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_8087774(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80877AC(struct Task *, struct ObjectEvent *, struct Sprite *);
+bool8 sub_80877D4(struct Task *, struct ObjectEvent *, struct Sprite *);
void sub_8087AA4(struct Task *);
void sub_8087AC8(struct Task *);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 8462b6ff8..2754ecddd 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -3,8 +3,8 @@
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
-void sub_812869C(struct EventObject *);
-bool8 sub_81286C4(struct EventObject *);
+void sub_812869C(struct ObjectEvent *);
+bool8 sub_81286C4(struct ObjectEvent *);
void UpdateShadowFieldEffect(struct Sprite *);
void sub_8087638(struct Sprite *);
void sub_808788C(struct Sprite *);
@@ -29,8 +29,8 @@ void sub_8127ED0(u8, u8);
void sub_8127F28(u8, u8, s16);
u8 sub_8128124(u8 id);
void StartAshFieldEffect(s16, s16, u16, s16);
-void InitObjectReflectionSprite(struct EventObject *eventObj, struct Sprite *sprite, u8 a);
-u32 StartFieldEffectForEventObject(u8 fieldEffectId, struct EventObject *eventObject);
+void InitObjectReflectionSprite(struct ObjectEvent *objEvent, struct Sprite *sprite, u8 a);
+u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent *objectEvent);
u8 FindTallGrassFieldEffectSpriteId(u8, u8, u8, s16, s16);
#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 0c2deb8be..491fd809e 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -14,7 +14,7 @@ enum {
// MovementType_None2
void player_step(u8 a, u16 b, u16 c);
-u8 CheckForEventObjectCollision(struct EventObject *a, s16 b, s16 c, u8 d, u8 e);
+u8 CheckForObjectEventCollision(struct ObjectEvent *a, s16 b, s16 c, u8 d, u8 e);
void SetPlayerAvatarTransitionFlags(u16 a);
void sub_8059204(void);
u8 PlayerGetCopyableMovement(void);
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 27b2b5593..1bba31073 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -56,7 +56,7 @@ struct BackupMapLayout
u16 *map;
};
-struct EventObjectTemplate
+struct ObjectEventTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
@@ -116,12 +116,12 @@ struct BgEvent
struct MapEvents
{
- u8 eventObjectCount;
+ u8 objectEventCount;
u8 warpCount;
u8 coordEventCount;
u8 bgEventCount;
- struct EventObjectTemplate *eventObjects;
+ struct ObjectEventTemplate *objectEvents;
struct WarpEvent *warps;
struct CoordEvent *coordEvents;
struct BgEvent *bgEvents;
@@ -159,7 +159,7 @@ struct MapHeader
/* 0x1B */ u8 battleType;
};
-struct EventObject
+struct ObjectEvent
{
/*0x00*/ u32 active:1;
u32 singleMovementActive:1;
@@ -221,7 +221,7 @@ struct EventObject
/*size = 0x24*/
};
-struct EventObjectGraphicsInfo
+struct ObjectEventGraphicsInfo
{
/*0x00*/ u16 tileTag;
/*0x02*/ u16 paletteTag;
@@ -302,7 +302,7 @@ struct PlayerAvatar /* 0x202E858 */
/*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
/*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
- /*0x05*/ u8 eventObjectId;
+ /*0x05*/ u8 objectEventId;
/*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
/*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
@@ -324,8 +324,8 @@ struct Camera
s32 y;
};
-extern struct EventObject gEventObjects[];
-extern u8 gSelectedEventObject;
+extern struct ObjectEvent gObjectEvents[];
+extern u8 gSelectedObjectEvent;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
diff --git a/include/global.h b/include/global.h
index 7fd7e902a..5e71bd821 100644
--- a/include/global.h
+++ b/include/global.h
@@ -19,6 +19,20 @@
#define INCBIN_S32 INCBIN
#endif
+// For debug menu translations.
+// DTR("こんにちは", "Hello") will expand to "Hello" with DEBUG_TRANSLATE,
+// or "こんにちは" if not.
+// The KANA macro will wrap Japanese text with encoding markers to
+// prevent mojibake while they are being translated.
+
+#if DEBUG_TRANSLATE
+#define DTR(japanese, english) _(english)
+#define KANA(txt) _("{JPN}" txt "{ENG}")
+#else
+#define DTR(japanese, english) _(japanese)
+#define KANA(txt) _(txt)
+#endif
+
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -105,7 +119,7 @@ enum LanguageId
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
#define PARTY_SIZE 6
-#define EVENT_OBJECTS_COUNT 16
+#define OBJECT_EVENTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 288
#define VARS_COUNT 256
@@ -684,8 +698,8 @@ struct SaveBlock1 /* 0x02025734 */
/*0x972*/ u8 filler_972[0x6];
/*0x978*/ u16 trainerRematchStepCounter;
/*0x97A*/ u8 trainerRematches[100];
- /*0x9E0*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT];
- /*0xC20*/ struct EventObjectTemplate eventObjectTemplates[64];
+ /*0x9E0*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
+ /*0xC20*/ struct ObjectEventTemplate objectEventTemplates[64];
/*0x1220*/ u8 flags[FLAGS_COUNT];
/*0x1340*/ u16 vars[VARS_COUNT];
/*0x1540*/ u32 gameStats[NUM_GAME_STATS];
diff --git a/include/macros/event.inc b/include/macros/event.inc
index 8b2d587c9..7250ec5ca 100644
--- a/include/macros/event.inc
+++ b/include/macros/event.inc
@@ -1449,11 +1449,11 @@
.endm
.macro switch var
- copyvar VAR_SPECIAL_0, \var
+ copyvar VAR_0x8000, \var
.endm
.macro case condition, dest
- compare_var_to_value VAR_SPECIAL_0, \condition
+ compare_var_to_value VAR_0x8000, \condition
goto_if_eq \dest
.endm
@@ -1469,12 +1469,12 @@
NO = 0
.macro giveitem_std item, amount=1, function=0
- setorcopyvar VAR_SPECIAL_0, \item
- setorcopyvar VAR_SPECIAL_1, \amount
+ setorcopyvar VAR_0x8000, \item
+ setorcopyvar VAR_0x8001, \amount
callstd \function
.endm
.macro givedecoration_std decoration
- setorcopyvar VAR_SPECIAL_0, \decoration
+ setorcopyvar VAR_0x8000, \decoration
callstd 7
.endm
diff --git a/include/overworld.h b/include/overworld.h
index 9d00194be..833c0aea0 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -9,11 +9,11 @@ struct InitialPlayerAvatarState
u8 direction;
};
-struct LinkPlayerEventObject
+struct LinkPlayerObjectEvent
{
u8 active;
u8 linkPlayerId;
- u8 eventObjId;
+ u8 objEventId;
u8 mode;
};
@@ -35,10 +35,10 @@ void ResetGameStats(void);
void IncrementGameStat(u8 index);
u32 GetGameStat(u8 index);
void SetGameStat(u8, u32);
-// LoadEventObjTemplatesFromHeader
-// LoadSaveblockEventObjScripts
-void Overworld_SetEventObjTemplateCoords(u8, s16, s16);
-void Overworld_SetEventObjTemplateMovementType(u8, u8);
+// LoadObjEventTemplatesFromHeader
+// LoadSaveblockObjEventScripts
+void Overworld_SetObjEventTemplateCoords(u8, s16, s16);
+void Overworld_SetObjEventTemplateMovementType(u8, u8);
// mapdata_load_assets_to_gpu_and_full_redraw
// ApplyCurrentWarp
// SetWarpData
@@ -127,7 +127,7 @@ void CB2_ReturnToFieldLink(void);
// sub_805465C
void c2_exit_to_overworld_1_sub_8080DEC(void);
// sub_80546B8
-void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void sub_80546F0(void);
// sub_805470C
void CB2_ContinueSavedGame(void);
@@ -188,9 +188,9 @@ bool32 sub_8055870(void);
u32 sub_80558AC(void);
u32 sub_8055910(void);
u32 sub_8055940(void);
-// ClearLinkPlayerEventObject
-void ClearLinkPlayerEventObjects(void);
-// ZeroEventObject
+// ClearLinkPlayerObjectEvent
+void ClearLinkPlayerObjectEvents(void);
+// ZeroObjectEvent
// unref_sub_8055A6C
// unref_sub_8055A9C
u8 sub_8055AE8(u8);
diff --git a/include/pokemon.h b/include/pokemon.h
index 67816b8f0..df2d42522 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,147 +1,9 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
+#include "constants/pokemon.h"
#include "sprite.h"
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_OT_ID 1
-#define MON_DATA_NICKNAME 2
-#define MON_DATA_LANGUAGE 3
-#define MON_DATA_SANITY_BIT1 4
-#define MON_DATA_SANITY_BIT2 5
-#define MON_DATA_SANITY_BIT3 6
-#define MON_DATA_OT_NAME 7
-#define MON_DATA_MARKINGS 8
-#define MON_DATA_CHECKSUM 9
-#define MON_DATA_10 10
-#define MON_DATA_SPECIES 11
-#define MON_DATA_HELD_ITEM 12
-#define MON_DATA_MOVE1 13
-#define MON_DATA_MOVE2 14
-#define MON_DATA_MOVE3 15
-#define MON_DATA_MOVE4 16
-#define MON_DATA_PP1 17
-#define MON_DATA_PP2 18
-#define MON_DATA_PP3 19
-#define MON_DATA_PP4 20
-#define MON_DATA_PP_BONUSES 21
-#define MON_DATA_COOL 22
-#define MON_DATA_BEAUTY 23
-#define MON_DATA_CUTE 24
-#define MON_DATA_EXP 25
-#define MON_DATA_HP_EV 26
-#define MON_DATA_ATK_EV 27
-#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPEED_EV 29
-#define MON_DATA_SPATK_EV 30
-#define MON_DATA_SPDEF_EV 31
-#define MON_DATA_FRIENDSHIP 32
-#define MON_DATA_SMART 33
-#define MON_DATA_POKERUS 34
-#define MON_DATA_MET_LOCATION 35
-#define MON_DATA_MET_LEVEL 36
-#define MON_DATA_MET_GAME 37
-#define MON_DATA_POKEBALL 38
-#define MON_DATA_HP_IV 39
-#define MON_DATA_ATK_IV 40
-#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPEED_IV 42
-#define MON_DATA_SPATK_IV 43
-#define MON_DATA_SPDEF_IV 44
-#define MON_DATA_IS_EGG 45
-#define MON_DATA_ALT_ABILITY 46
-#define MON_DATA_TOUGH 47
-#define MON_DATA_SHEEN 48
-#define MON_DATA_OT_GENDER 49
-#define MON_DATA_COOL_RIBBON 50
-#define MON_DATA_BEAUTY_RIBBON 51
-#define MON_DATA_CUTE_RIBBON 52
-#define MON_DATA_SMART_RIBBON 53
-#define MON_DATA_TOUGH_RIBBON 54
-#define MON_DATA_STATUS 55
-#define MON_DATA_LEVEL 56
-#define MON_DATA_HP 57
-#define MON_DATA_MAX_HP 58
-#define MON_DATA_ATK 59
-#define MON_DATA_DEF 60
-#define MON_DATA_SPEED 61
-#define MON_DATA_SPATK 62
-#define MON_DATA_SPDEF 63
-#define MON_DATA_MAIL 64
-#define MON_DATA_SPECIES2 65
-#define MON_DATA_IVS 66
-#define MON_DATA_CHAMPION_RIBBON 67
-#define MON_DATA_WINNING_RIBBON 68
-#define MON_DATA_VICTORY_RIBBON 69
-#define MON_DATA_ARTIST_RIBBON 70
-#define MON_DATA_EFFORT_RIBBON 71
-#define MON_DATA_GIFT_RIBBON_1 72
-#define MON_DATA_GIFT_RIBBON_2 73
-#define MON_DATA_GIFT_RIBBON_3 74
-#define MON_DATA_GIFT_RIBBON_4 75
-#define MON_DATA_GIFT_RIBBON_5 76
-#define MON_DATA_GIFT_RIBBON_6 77
-#define MON_DATA_GIFT_RIBBON_7 78
-#define MON_DATA_FATEFUL_ENCOUNTER 79
-#define MON_DATA_KNOWN_MOVES 80
-#define MON_DATA_RIBBON_COUNT 81
-#define MON_DATA_RIBBONS 82
-#define MON_DATA_83 83
-#define MON_DATA_ATK2 84
-#define MON_DATA_DEF2 85
-#define MON_DATA_SPEED2 86
-#define MON_DATA_SPATK2 87
-#define MON_DATA_SPDEF2 88
-
-#define MAX_LEVEL 100
-
-#define MON_MALE 0x00
-#define MON_FEMALE 0xFE
-#define MON_GENDERLESS 0xFF
-
-#define TYPE_NORMAL 0x00
-#define TYPE_FIGHTING 0x01
-#define TYPE_FLYING 0x02
-#define TYPE_POISON 0x03
-#define TYPE_GROUND 0x04
-#define TYPE_ROCK 0x05
-#define TYPE_BUG 0x06
-#define TYPE_GHOST 0x07
-#define TYPE_STEEL 0x08
-#define TYPE_MYSTERY 0x09
-#define TYPE_FIRE 0x0a
-#define TYPE_WATER 0x0b
-#define TYPE_GRASS 0x0c
-#define TYPE_ELECTRIC 0x0d
-#define TYPE_PSYCHIC 0x0e
-#define TYPE_ICE 0x0f
-#define TYPE_DRAGON 0x10
-#define TYPE_DARK 0x11
-#define NUMBER_OF_MON_TYPES 0x12
-
-#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
-#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused
-#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused
-#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
-#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
-#define FRIENDSHIP_EVENT_WALKING 0x5
-#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
-#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
-#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
-
-#define STATUS_PRIMARY_NONE 0x0
-#define STATUS_PRIMARY_POISON 0x1
-#define STATUS_PRIMARY_PARALYSIS 0x2
-#define STATUS_PRIMARY_SLEEP 0x3
-#define STATUS_PRIMARY_FREEZE 0x4
-#define STATUS_PRIMARY_BURN 0x5
-#define STATUS_PRIMARY_POKERUS 0x6
-#define STATUS_PRIMARY_FAINTED 0x7
-
-#define MAX_TOTAL_EVS 510
-#define NUM_STATS 6
-#define UNOWN_FORM_COUNT 28
-
enum {
EGG_GROUP_NONE,
EGG_GROUP_MONSTER,
diff --git a/include/rom3.h b/include/rom3.h
deleted file mode 100644
index 2b889c78b..000000000
--- a/include/rom3.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef GUARD_ROM3_H
-#define GUARD_ROM3_H
-
-struct HpAndStatus
-{
- u16 hp;
- u32 status;
-};
-
-struct DisableStruct;
-
-void sub_800B858(void);
-void SetUpBattleVarsAndBirchPoochyena();
-void sub_800B950(void);
-void sub_800B9A8(void);
-void sub_800BA78(void);
-void sub_800BD54(void);
-void CreateTasksForSendRecvLinkBuffers(void);
-void PrepareBufferDataTransferLink(u8 a, u16, u8 *c);
-void Task_HandleSendLinkBuffersData(u8);
-void sub_800C35C(void);
-void Task_HandleCopyReceivedLinkBuffersData(u8);
-void BtlController_EmitGetMonData(u8 a, u8 b, u8 c);
-void BtlController_EmitGetRawMonData(u8 a, u8 b, u8 c);
-void BtlController_EmitLoadMonSprite(u8 a);
-void BtlController_EmitSwitchInAnim(u8, u8, u8);
-void BtlController_EmitReturnMonToBall(u8 a, u8 b);
-void BtlController_EmitDrawTrainerPic(u8 a);
-void BtlController_EmitTrainerSlide(u8 a);
-void BtlController_EmitTrainerSlideBack(u8 a);
-void BtlController_EmitFaintAnimation(u8 a);
-void BtlController_EmitPaletteFade(u8 a);
-void BtlController_EmitSuccessBallThrowAnim(u8 a);
-void BtlController_EmitBallThrowAnim(u8 a, u8 b);
-void BtlController_EmitMoveAnimation(u8 a, u16 b, u8 c, u16 d, s32 e, u8 f, struct DisableStruct *g);
-void BtlController_EmitPrintString(u8 a, u16 b);
-void BtlController_EmitPrintSelectionString(u8 a, u16 stringID);
-void BtlController_EmitChooseAction(u8 a, u8 b, u16 c);
-void BtlController_EmitChooseMove(u8 a, u8 b, u8 c, u8 *d);
-void BtlController_EmitChooseItem(u8 a, u8 *b);
-void BtlController_EmitChoosePokemon(u8 a, u8 b, u8 c, u8 d, u8 *e);
-void BtlController_EmitCmd23(u8 a);
-void BtlController_EmitHealthBarUpdate(u8 a, u16 b);
-void BtlController_EmitExpUpdate(u8 a, u8 b, u16 c);
-void BtlController_EmitStatusIconUpdate(u8 a, u32 b, u32 c);
-void BtlController_EmitStatusAnimation(u8 a, u8 b, u32 c);
-void BtlController_EmitStatusXor(u8 a, u8 b);
-void BtlController_EmitDataTransfer(u8, u16, u8 *);
-void BtlController_EmitTwoReturnValues(u8 a, u8 b, u16 c);
-void BtlController_EmitChosenMonReturnValue(u8 a, u8 b, u8 *c);
-void BtlController_EmitOneReturnValue(u8 a, u16 b);
-void BtlController_EmitOneReturnValue_Duplicate(u8 a, u16 b);
-void BtlController_EmitCmd37(u8 a);
-void BtlController_EmitCmd38(u8 a, u8 b);
-void BtlController_EmitCmd39(u8 a);
-void BtlController_EmitCmd40(u8 a);
-void BtlController_EmitHitAnimation(u8 a);
-void BtlController_EmitCmd42(u8 a);
-void BtlController_EmitPlaySE(u8 a, u16 b);
-void BtlController_EmitPlayFanfareOrBGM(u8 a, u16 b);
-void BtlController_EmitFaintingCry(u8 a);
-void BtlController_EmitIntroSlide(u8 a, u8 b);
-void BtlController_EmitIntroTrainerBallThrow(u8 a);
-void BtlController_EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30
-void BtlController_EmitHidePartyStatusSummary(u8 a);
-void BtlController_EmitEndBounceEffect(u8 a);
-void BtlController_EmitSpriteInvisibility(u8 a, u8 b);
-void BtlController_EmitBattleAnimation(u8 a, u8 b, u16 c);
-void BtlController_EmitLinkStandbyMsg(u8 a, u8 b);
-void BtlController_EmitResetActionMoveSelection(u8 a, u8 b);
-void BtlController_EmitCmd55(u8 a, u8 b);
-
-#endif // GUARD_ROM3_H
diff --git a/include/shop.h b/include/shop.h
index 4de58eaf2..849b1bef2 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -11,7 +11,7 @@ enum
// shop view window NPC info enum
enum
{
- EVENT_OBJ_ID,
+ OBJ_EVENT_ID,
X_COORD,
Y_COORD,
ANIM_NUM
diff --git a/include/trainer_see.h b/include/trainer_see.h
index d67117743..78487aa57 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -5,7 +5,7 @@
#include "task.h"
bool8 CheckTrainers(void);
-void sub_8084794(struct EventObject *var);
+void sub_8084794(struct ObjectEvent *var);
void ScrSpecial_EndTrainerApproach(void);
#endif // GUARD_TRAINER_SEE_H