summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_bg.h2
-rw-r--r--include/battle_message.h4
-rw-r--r--include/constants/battle.h10
-rw-r--r--include/constants/event_object_movement.h323
-rw-r--r--include/constants/event_objects.h182
-rw-r--r--include/constants/field_effects.h12
-rw-r--r--include/constants/metatile_labels.h61
-rw-r--r--include/constants/movement_commands.h121
-rw-r--r--include/constants/object_events.h186
-rw-r--r--include/digit_obj_util.h5
-rw-r--r--include/event_object_80688E4.h15
-rw-r--r--include/event_object_8097404.h34
-rw-r--r--include/event_object_movement.h32
-rw-r--r--include/event_scripts.h3
-rw-r--r--include/field_player_avatar.h2
-rw-r--r--include/field_specials.h2
-rw-r--r--include/fieldmap.h5
-rw-r--r--include/fldeff.h2
-rw-r--r--include/global.fieldmap.h10
-rw-r--r--include/global.h3
-rw-r--r--include/graphics.h10
-rw-r--r--include/link_rfu.h1
-rw-r--r--include/metatile_behavior.h2
-rw-r--r--include/minigame_countdown.h7
-rw-r--r--include/overworld.h1
-rw-r--r--include/pokemon_jump.h113
-rw-r--r--include/quest_log.h1
-rw-r--r--include/save.h2
-rw-r--r--include/script_movement.h2
-rw-r--r--include/sea_cottage_special_anim.h12
-rw-r--r--include/special_field_anim.h10
-rw-r--r--include/strings.h15
-rw-r--r--include/task.h19
-rw-r--r--include/trainer_see.h10
34 files changed, 659 insertions, 560 deletions
diff --git a/include/battle_bg.h b/include/battle_bg.h
index 60a6de8f5..518c566dc 100644
--- a/include/battle_bg.h
+++ b/include/battle_bg.h
@@ -7,7 +7,7 @@ extern const struct BgTemplate gBattleBgTemplates[];
void InitBattleBgsVideo(void);
void DrawBattleEntryBackground(void);
-void sub_800F6FC(u8 taskId);
+void InitLinkBattleVsScreen(u8 taskId);
void LoadBattleMenuWindowGfx(void);
void LoadBattleTextboxAndBackground(void);
void sub_800F324(void);
diff --git a/include/battle_message.h b/include/battle_message.h
index 2e2baa278..5a16a4250 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -251,4 +251,8 @@ extern const u8 gUnknown_83FE864[];
extern const u8 gText_SafariBalls[];
extern const u8 gText_HighlightRed_Left[];
+extern const u8 gText_Win[];
+extern const u8 gText_Loss[];
+extern const u8 gText_Draw[];
+
#endif // GUARD_BATTLE_MESSAGE_H
diff --git a/include/constants/battle.h b/include/constants/battle.h
index a80038f2c..e7c9d9d17 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -298,6 +298,16 @@
#define BATTLE_TERRAIN_CAVE 7
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
+#define BATTLE_TERRAIN_LINK 10
+#define BATTLE_TERRAIN_GYM 11
+#define BATTLE_TERRAIN_LEADER 12
+#define BATTLE_TERRAIN_INDOOR_2 13
+#define BATTLE_TERRAIN_INDOOR_1 14
+#define BATTLE_TERRAIN_LORELEI 15
+#define BATTLE_TERRAIN_BRUNO 16
+#define BATTLE_TERRAIN_AGATHA 17
+#define BATTLE_TERRAIN_LANCE 18
+#define BATTLE_TERRAIN_CHAMPION 19
// Return value for IsRunningFromBattleImpossible.
#define BATTLE_RUN_SUCCESS 0
diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h
index bf75a47cc..08713a602 100644
--- a/include/constants/event_object_movement.h
+++ b/include/constants/event_object_movement.h
@@ -88,163 +88,180 @@
#define MOVEMENT_ACTION_FACE_UP 0x1
#define MOVEMENT_ACTION_FACE_LEFT 0x2
#define MOVEMENT_ACTION_FACE_RIGHT 0x3
-#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0x4
-#define MOVEMENT_ACTION_WALK_SLOW_UP 0x5
-#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0x6
-#define MOVEMENT_ACTION_WALK_SLOW_RIGHT 0x7
-#define MOVEMENT_ACTION_WALK_NORMAL_DOWN 0x8
-#define MOVEMENT_ACTION_WALK_NORMAL_UP 0x9
-#define MOVEMENT_ACTION_WALK_NORMAL_LEFT 0xA
-#define MOVEMENT_ACTION_WALK_NORMAL_RIGHT 0xB
-#define MOVEMENT_ACTION_JUMP_2_DOWN 0xC
-#define MOVEMENT_ACTION_JUMP_2_UP 0xD
-#define MOVEMENT_ACTION_JUMP_2_LEFT 0xE
-#define MOVEMENT_ACTION_JUMP_2_RIGHT 0xF
-#define MOVEMENT_ACTION_DELAY_1 0x10
-#define MOVEMENT_ACTION_DELAY_2 0x11
-#define MOVEMENT_ACTION_DELAY_4 0x12
-#define MOVEMENT_ACTION_DELAY_8 0x13
-#define MOVEMENT_ACTION_DELAY_16 0x14
-#define MOVEMENT_ACTION_WALK_FAST_DOWN 0x15
-#define MOVEMENT_ACTION_WALK_FAST_UP 0x16
-#define MOVEMENT_ACTION_WALK_FAST_LEFT 0x17
-#define MOVEMENT_ACTION_WALK_FAST_RIGHT 0x18
-#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN 0x19
-#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP 0x1A
-#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT 0x1B
-#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT 0x1C
-#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN 0x1D
-#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP 0x1E
-#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT 0x1F
-#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT 0x20
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN 0x21
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x22
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x23
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x24
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN 0x25
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x26
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x27
-#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x28
-#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x29
-#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x2A
-#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x2B
-#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x2C
-#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x2D
-#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x2E
-#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x2F
-#define MOVEMENT_ACTION_WALK_FASTEST_RIGHT 0x30
-#define MOVEMENT_ACTION_SLIDE_DOWN 0x31
-#define MOVEMENT_ACTION_SLIDE_UP 0x32
-#define MOVEMENT_ACTION_SLIDE_LEFT 0x33
-#define MOVEMENT_ACTION_SLIDE_RIGHT 0x34
-#define MOVEMENT_ACTION_PLAYER_RUN_DOWN 0x35
-#define MOVEMENT_ACTION_PLAYER_RUN_UP 0x36
-#define MOVEMENT_ACTION_PLAYER_RUN_LEFT 0x37
-#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT 0x38
-#define MOVEMENT_ACTION_START_ANIM_IN_DIRECTION 0x39
-#define MOVEMENT_ACTION_JUMP_SPECIAL_DOWN 0x3A
-#define MOVEMENT_ACTION_JUMP_SPECIAL_UP 0x3B
-#define MOVEMENT_ACTION_JUMP_SPECIAL_LEFT 0x3C
-#define MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT 0x3D
-#define MOVEMENT_ACTION_FACE_PLAYER 0x3E
-#define MOVEMENT_ACTION_FACE_AWAY_PLAYER 0x3F
-#define MOVEMENT_ACTION_LOCK_FACING_DIRECTION 0x40
-#define MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION 0x41
-#define MOVEMENT_ACTION_JUMP_DOWN 0x42
-#define MOVEMENT_ACTION_JUMP_UP 0x43
-#define MOVEMENT_ACTION_JUMP_LEFT 0x44
-#define MOVEMENT_ACTION_JUMP_RIGHT 0x45
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN 0x46
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP 0x47
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT 0x48
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT 0x49
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP 0x4A
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN 0x4B
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT 0x4C
-#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT 0x4D
-#define MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION 0x4E
-#define MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN 0x4F
-#define MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT 0x50
-#define MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT 0x51
-#define MOVEMENT_ACTION_DISABLE_ANIMATION 0x52
-#define MOVEMENT_ACTION_RESTORE_ANIMATION 0x53
-#define MOVEMENT_ACTION_SET_INVISIBLE 0x54
-#define MOVEMENT_ACTION_SET_VISIBLE 0x55
-#define MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK 0x56
-#define MOVEMENT_ACTION_EMOTE_QUESTION_MARK 0x57
-#define MOVEMENT_ACTION_EMOTE_HEART 0x58
-#define MOVEMENT_ACTION_REVEAL_TRAINER 0x59
-#define MOVEMENT_ACTION_ROCK_SMASH_BREAK 0x5A
-#define MOVEMENT_ACTION_CUT_TREE 0x5B
-#define MOVEMENT_ACTION_SET_FIXED_PRIORITY 0x5C
-#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D
-#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E
-#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F
-#define MOVEMENT_ACTION_HIDE_REFLECTION 0x60
-#define MOVEMENT_ACTION_SHOW_REFLECTION 0x61
-#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x62
-#define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x63
-#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x64
-#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP 0x65
-#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT 0x66
-#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT 0x67
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN 0x68
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP 0x69
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT 0x6A
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT 0x6B
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN 0x6C
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP 0x6D
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT 0x6E
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT 0x6F
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN 0x70
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP 0x71
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT 0x72
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT 0x73
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN 0x74
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP 0x75
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT 0x76
-#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT 0x77
-#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN 0x78
-#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP 0x79
-#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT 0x7A
-#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT 0x7B
-#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN 0x7C
-#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP 0x7D
-#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT 0x7E
-#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT 0x7F
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN 0x80
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP 0x81
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT 0x82
-#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT 0x83
-#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN 0x84
-#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x85
-#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x86
-#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x87
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x88
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x89
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x8A
-#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x8B
-#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT 0x8C
-#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT 0x8D
-#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT 0x8E
-#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT 0x8F
-#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT 0x90
-#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
-#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
-#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
-#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
-#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
-#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
-#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
-#define MOVEMENT_ACTION_LEVITATE 0x98
-#define MOVEMENT_ACTION_STOP_LEVITATE 0x99
-#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A
-#define MOVEMENT_ACTION_FIGURE_8 0x9B
+#define MOVEMENT_ACTION_FACE_DOWN_FAST 0x4
+#define MOVEMENT_ACTION_FACE_UP_FAST 0x5
+#define MOVEMENT_ACTION_FACE_LEFT_FAST 0x6
+#define MOVEMENT_ACTION_FACE_RIGHT_FAST 0x7
+#define MOVEMENT_ACTION_WALK_SLOWEST_DOWN 0x8
+#define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9
+#define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0xA
+#define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0xB
+#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0xC
+#define MOVEMENT_ACTION_WALK_SLOW_UP 0xD
+#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0xE
+#define MOVEMENT_ACTION_WALK_SLOW_RIGHT 0xF
+#define MOVEMENT_ACTION_WALK_NORMAL_DOWN 0x10
+#define MOVEMENT_ACTION_WALK_NORMAL_UP 0x11
+#define MOVEMENT_ACTION_WALK_NORMAL_LEFT 0x12
+#define MOVEMENT_ACTION_WALK_NORMAL_RIGHT 0x13
+#define MOVEMENT_ACTION_JUMP_2_DOWN 0x14
+#define MOVEMENT_ACTION_JUMP_2_UP 0x15
+#define MOVEMENT_ACTION_JUMP_2_LEFT 0x16
+#define MOVEMENT_ACTION_JUMP_2_RIGHT 0x17
+#define MOVEMENT_ACTION_DELAY_1 0x18
+#define MOVEMENT_ACTION_DELAY_2 0x19
+#define MOVEMENT_ACTION_DELAY_4 0x1A
+#define MOVEMENT_ACTION_DELAY_8 0x1B
+#define MOVEMENT_ACTION_DELAY_16 0x1C
+#define MOVEMENT_ACTION_WALK_FAST_DOWN 0x1D
+#define MOVEMENT_ACTION_WALK_FAST_UP 0x1E
+#define MOVEMENT_ACTION_WALK_FAST_LEFT 0x1F
+#define MOVEMENT_ACTION_WALK_FAST_RIGHT 0x20
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN 0x21
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP 0x22
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT 0x23
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT 0x24
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN 0x25
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP 0x26
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT 0x27
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT 0x28
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN 0x29
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x2A
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x2B
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x2C
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN 0x2D
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x2E
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x2F
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x30
+#define MOVEMENT_ACTION_FACE_DOWN_SLOW 0x31
+#define MOVEMENT_ACTION_FACE_UP_SLOW 0x32
+#define MOVEMENT_ACTION_FACE_LEFT_SLOW 0x33
+#define MOVEMENT_ACTION_FACE_RIGHT_SLOW 0x34
+#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x35
+#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x36
+#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x37
+#define MOVEMENT_ACTION_WALK_FASTEST_RIGHT 0x38
+#define MOVEMENT_ACTION_SLIDE_DOWN 0x39
+#define MOVEMENT_ACTION_SLIDE_UP 0x3A
+#define MOVEMENT_ACTION_SLIDE_LEFT 0x3B
+#define MOVEMENT_ACTION_SLIDE_RIGHT 0x3C
+#define MOVEMENT_ACTION_PLAYER_RUN_DOWN 0x3D
+#define MOVEMENT_ACTION_PLAYER_RUN_UP 0x3E
+#define MOVEMENT_ACTION_PLAYER_RUN_LEFT 0x3F
+#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT 0x40
+#define MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW 0x41
+#define MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW 0x42
+#define MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW 0x43
+#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW 0x44
+#define MOVEMENT_ACTION_UNKNOWN_STEP_45 0x45
+#define MOVEMENT_ACTION_JUMP_SPECIAL_DOWN 0x46
+#define MOVEMENT_ACTION_JUMP_SPECIAL_UP 0x47
+#define MOVEMENT_ACTION_JUMP_SPECIAL_LEFT 0x48
+#define MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT 0x49
+#define MOVEMENT_ACTION_FACE_PLAYER 0x4A
+#define MOVEMENT_ACTION_FACE_AWAY_PLAYER 0x4B
+#define MOVEMENT_ACTION_LOCK_FACING_DIRECTION 0x4C
+#define MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION 0x4D
+#define MOVEMENT_ACTION_JUMP_DOWN 0x4E
+#define MOVEMENT_ACTION_JUMP_UP 0x4F
+#define MOVEMENT_ACTION_JUMP_LEFT 0x50
+#define MOVEMENT_ACTION_JUMP_RIGHT 0x51
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN 0x52
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP 0x53
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT 0x54
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT 0x55
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP 0x56
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN 0x57
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT 0x58
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT 0x59
+#define MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION 0x5A
+#define MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN 0x5B
+#define MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT 0x5C
+#define MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT 0x5D
+#define MOVEMENT_ACTION_DISABLE_ANIMATION 0x5E
+#define MOVEMENT_ACTION_RESTORE_ANIMATION 0x5F
+#define MOVEMENT_ACTION_SET_INVISIBLE 0x60
+#define MOVEMENT_ACTION_SET_VISIBLE 0x61
+#define MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK 0x62
+#define MOVEMENT_ACTION_EMOTE_QUESTION_MARK 0x63
+#define MOVEMENT_ACTION_EMOTE_X 0x64
+#define MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK 0x65
+#define MOVEMENT_ACTION_EMOTE_SMILE 0x66
+#define MOVEMENT_ACTION_REVEAL_TRAINER 0x67
+#define MOVEMENT_ACTION_ROCK_SMASH_BREAK 0x68
+#define MOVEMENT_ACTION_CUT_TREE 0x69
+#define MOVEMENT_ACTION_SET_FIXED_PRIORITY 0x6A
+#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x6B
+#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x6C
+#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x6D
+
+// These still exist in FRLG for some reason. They're not used by anything obvious.
+#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x6E
+#define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x6F
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x70
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP 0x71
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT 0x72
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT 0x73
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN 0x74
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP 0x75
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT 0x76
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT 0x77
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN 0x78
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP 0x79
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT 0x7A
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT 0x7B
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN 0x7C
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP 0x7D
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT 0x7E
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT 0x7F
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN 0x80
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP 0x81
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT 0x82
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT 0x83
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN 0x84
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP 0x85
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT 0x86
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT 0x87
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN 0x88
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP 0x89
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT 0x8A
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT 0x8B
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN 0x8C
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP 0x8D
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT 0x8E
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT 0x8F
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN 0x90
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x91
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x92
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x93
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x94
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x95
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x96
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x97
+
+// 98-A3 are unknown
+#define MOVEMENT_ACTION_0x98 0x98
+#define MOVEMENT_ACTION_0x99 0x99
+#define MOVEMENT_ACTION_0x9A 0x9A
+#define MOVEMENT_ACTION_0x9B 0x9B
+#define MOVEMENT_ACTION_0x9C 0x9C
+#define MOVEMENT_ACTION_0x9D 0x9D
+#define MOVEMENT_ACTION_0x9E 0x9E
+#define MOVEMENT_ACTION_0x9F 0x9F
+#define MOVEMENT_ACTION_0xA0 0xA0
+#define MOVEMENT_ACTION_0xA1 0xA1
+#define MOVEMENT_ACTION_0xA2 0xA2
+#define MOVEMENT_ACTION_0xA3 0xA3
-// These two are verified correct in FRLG
#define MOVEMENT_ACTION_FLY_UP 0xA4
#define MOVEMENT_ACTION_FLY_DOWN 0xA5
+// Duplicates of JUMP_SPECIAL?
+#define MOVEMENT_ACTION_0xA6 0xA6
+#define MOVEMENT_ACTION_0xA7 0xA7
+#define MOVEMENT_ACTION_0xA8 0xA8
+#define MOVEMENT_ACTION_0xA9 0xA9
+
#define MOVEMENT_ACTION_STEP_END 0xFE
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
index 0a94dc03b..c3862a7b1 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -1,6 +1,188 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
#define GUARD_CONSTANTS_EVENT_OBJECTS_H
+#define OBJ_EVENT_GFX_RED_NORMAL 0
+#define OBJ_EVENT_GFX_RED_BIKE 1
+#define OBJ_EVENT_GFX_RED_SURF 2
+#define OBJ_EVENT_GFX_RED_ITEM 3
+#define OBJ_EVENT_GFX_RED_FISH 4
+#define OBJ_EVENT_GFX_RED_ITEM_COPY 5
+#define OBJ_EVENT_GFX_RED_VS_SEEKER 6
+#define OBJ_EVENT_GFX_GREEN_NORMAL 7
+#define OBJ_EVENT_GFX_GREEN_BIKE 8
+#define OBJ_EVENT_GFX_GREEN_SURF 9
+#define OBJ_EVENT_GFX_GREEN_ITEM 10
+#define OBJ_EVENT_GFX_GREEN_FISH 11
+#define OBJ_EVENT_GFX_GREEN_ITEM_COPY 12
+#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 13
+#define OBJ_EVENT_GFX_RS_BRENDAN 14
+#define OBJ_EVENT_GFX_RS_MAY 15
+#define OBJ_EVENT_GFX_LITTLE_BOY 16
+#define OBJ_EVENT_GFX_LITTLE_GIRL 17
+#define OBJ_EVENT_GFX_YOUNGSTER 18
+#define OBJ_EVENT_GFX_BOY 19
+#define OBJ_EVENT_GFX_BUG_CATCHER 20
+#define OBJ_EVENT_GFX_SITTING_BOY 21
+#define OBJ_EVENT_GFX_LASS 22
+#define OBJ_EVENT_GFX_WOMAN_1 23
+#define OBJ_EVENT_GFX_BATTLE_GIRL 24
+#define OBJ_EVENT_GFX_MAN 25
+#define OBJ_EVENT_GFX_ROCKER 26
+#define OBJ_EVENT_GFX_FAT_MAN 27
+#define OBJ_EVENT_GFX_WOMAN_2 28
+#define OBJ_EVENT_GFX_BEAUTY 29
+#define OBJ_EVENT_GFX_BALDING_MAN 30
+#define OBJ_EVENT_GFX_WOMAN_3 31
+#define OBJ_EVENT_GFX_OLD_MAN_1 32
+#define OBJ_EVENT_GFX_OLD_MAN_2 33
+#define OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN 34
+#define OBJ_EVENT_GFX_OLD_WOMAN 35
+#define OBJ_EVENT_GFX_TUBER_M_1 36
+#define OBJ_EVENT_GFX_TUBER_F 37
+#define OBJ_EVENT_GFX_TUBER_M_2 38
+#define OBJ_EVENT_GFX_CAMPER 39
+#define OBJ_EVENT_GFX_PICNICKER 40
+#define OBJ_EVENT_GFX_COOLTRAINER_M 41
+#define OBJ_EVENT_GFX_COOLTRAINER_F 42
+#define OBJ_EVENT_GFX_SWIMMER_M_WATER 43
+#define OBJ_EVENT_GFX_SWIMMER_F_WATER 44
+#define OBJ_EVENT_GFX_SWIMMER_M_LAND 45
+#define OBJ_EVENT_GFX_SWIMMER_F_LAND 46
+#define OBJ_EVENT_GFX_WORKER_M 47
+#define OBJ_EVENT_GFX_WORKER_F 48
+#define OBJ_EVENT_GFX_ROCKET_M 49
+#define OBJ_EVENT_GFX_ROCKET_F 50
+#define OBJ_EVENT_GFX_GBA_KID 51
+#define OBJ_EVENT_GFX_SUPER_NERD 52
+#define OBJ_EVENT_GFX_BIKER 53
+#define OBJ_EVENT_GFX_BLACKBELT 54
+#define OBJ_EVENT_GFX_SCIENTIST 55
+#define OBJ_EVENT_GFX_HIKER 56
+#define OBJ_EVENT_GFX_FISHER 57
+#define OBJ_EVENT_GFX_CHANNELER 58
+#define OBJ_EVENT_GFX_CHEF 59
+#define OBJ_EVENT_GFX_POLICEMAN 60
+#define OBJ_EVENT_GFX_GENTLEMAN 61
+#define OBJ_EVENT_GFX_SAILOR 62
+#define OBJ_EVENT_GFX_CAPTAIN 63
+#define OBJ_EVENT_GFX_NURSE 64
+#define OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST 65
+#define OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST 66
+#define OBJ_EVENT_GFX_UNUSED_MALE_RECEPTIONIST 67
+#define OBJ_EVENT_GFX_CLERK 68
+#define OBJ_EVENT_GFX_MG_DELIVERYMAN 69
+#define OBJ_EVENT_GFX_TRAINER_TOWER_DUDE 70
+#define OBJ_EVENT_GFX_PROF_OAK 71
+#define OBJ_EVENT_GFX_BLUE 72
+#define OBJ_EVENT_GFX_BILL 73
+#define OBJ_EVENT_GFX_LANCE 74
+#define OBJ_EVENT_GFX_AGATHA 75
+#define OBJ_EVENT_GFX_DAISY 76
+#define OBJ_EVENT_GFX_LORELEI 77
+#define OBJ_EVENT_GFX_MR_FUJI 78
+#define OBJ_EVENT_GFX_BRUNO 79
+#define OBJ_EVENT_GFX_BROCK 80
+#define OBJ_EVENT_GFX_MISTY 81
+#define OBJ_EVENT_GFX_LT_SURGE 82
+#define OBJ_EVENT_GFX_ERIKA 83
+#define OBJ_EVENT_GFX_KOGA 84
+#define OBJ_EVENT_GFX_SABRINA 85
+#define OBJ_EVENT_GFX_BLAINE 86
+#define OBJ_EVENT_GFX_GIOVANNI 87
+#define OBJ_EVENT_GFX_MOM 88
+#define OBJ_EVENT_GFX_CELIO 89
+#define OBJ_EVENT_GFX_TEACHY_TV_HOST 90
+#define OBJ_EVENT_GFX_GYM_GUY 91
+#define OBJ_EVENT_GFX_ITEM_BALL 92
+#define OBJ_EVENT_GFX_TOWN_MAP 93
+#define OBJ_EVENT_GFX_POKEDEX 94
+#define OBJ_EVENT_GFX_CUT_TREE 95
+#define OBJ_EVENT_GFX_ROCK_SMASH_ROCK 96
+#define OBJ_EVENT_GFX_STRENGTH_BOULDER 97
+#define OBJ_EVENT_GFX_FOSSIL 98
+#define OBJ_EVENT_GFX_RUBY 99
+#define OBJ_EVENT_GFX_SAPPHIRE 100
+#define OBJ_EVENT_GFX_OLD_AMBER 101
+#define OBJ_EVENT_GFX_GYM_SIGN 102
+#define OBJ_EVENT_GFX_SIGN 103
+#define OBJ_EVENT_GFX_TRAINER_TIPS 104
+#define OBJ_EVENT_GFX_CLIPBOARD 105
+#define OBJ_EVENT_GFX_METEORITE 106
+#define OBJ_EVENT_GFX_LAPRAS_DOLL 107
+#define OBJ_EVENT_GFX_SEAGALLOP 108
+#define OBJ_EVENT_GFX_SNORLAX 109
+#define OBJ_EVENT_GFX_SPEAROW 110
+#define OBJ_EVENT_GFX_CUBONE 111
+#define OBJ_EVENT_GFX_POLIWRATH 112
+#define OBJ_EVENT_GFX_CLEFAIRY 113
+#define OBJ_EVENT_GFX_PIDGEOT 114
+#define OBJ_EVENT_GFX_JIGGLYPUFF 115
+#define OBJ_EVENT_GFX_PIDGEY 116
+#define OBJ_EVENT_GFX_CHANSEY 117
+#define OBJ_EVENT_GFX_OMANYTE 118
+#define OBJ_EVENT_GFX_KANGASKHAN 119
+#define OBJ_EVENT_GFX_PIKACHU 120
+#define OBJ_EVENT_GFX_PSYDUCK 121
+#define OBJ_EVENT_GFX_NIDORAN_F 122
+#define OBJ_EVENT_GFX_NIDORAN_M 123
+#define OBJ_EVENT_GFX_NIDORINO 124
+#define OBJ_EVENT_GFX_MEOWTH 125
+#define OBJ_EVENT_GFX_SEEL 126
+#define OBJ_EVENT_GFX_VOLTORB 127
+#define OBJ_EVENT_GFX_SLOWPOKE 128
+#define OBJ_EVENT_GFX_SLOWBRO 129
+#define OBJ_EVENT_GFX_MACHOP 130
+#define OBJ_EVENT_GFX_WIGGLYTUFF 131
+#define OBJ_EVENT_GFX_DODUO 132
+#define OBJ_EVENT_GFX_FEAROW 133
+#define OBJ_EVENT_GFX_MACHOKE 134
+#define OBJ_EVENT_GFX_LAPRAS 135
+#define OBJ_EVENT_GFX_ZAPDOS 136
+#define OBJ_EVENT_GFX_MOLTRES 137
+#define OBJ_EVENT_GFX_ARTICUNO 138
+#define OBJ_EVENT_GFX_MEWTWO 139
+#define OBJ_EVENT_GFX_MEW 140
+#define OBJ_EVENT_GFX_ENTEI 141
+#define OBJ_EVENT_GFX_SUICUNE 142
+#define OBJ_EVENT_GFX_RAIKOU 143
+#define OBJ_EVENT_GFX_LUGIA 144
+#define OBJ_EVENT_GFX_HO_OH 145
+#define OBJ_EVENT_GFX_CELEBI 146
+#define OBJ_EVENT_GFX_KABUTO 147
+#define OBJ_EVENT_GFX_DEOXYS_D 148
+#define OBJ_EVENT_GFX_DEOXYS_A 149
+#define OBJ_EVENT_GFX_DEOXYS_N 150
+#define OBJ_EVENT_GFX_SS_ANNE 151
+
+#define OBJ_EVENT_GFX_VAR_0 240
+#define OBJ_EVENT_GFX_VAR_1 241
+#define OBJ_EVENT_GFX_VAR_2 242
+#define OBJ_EVENT_GFX_VAR_3 243
+#define OBJ_EVENT_GFX_VAR_4 244
+#define OBJ_EVENT_GFX_VAR_5 245
+#define OBJ_EVENT_GFX_VAR_6 246
+#define OBJ_EVENT_GFX_VAR_7 247
+#define OBJ_EVENT_GFX_VAR_8 248
+#define OBJ_EVENT_GFX_VAR_9 249
+#define OBJ_EVENT_GFX_VAR_A 250
+#define OBJ_EVENT_GFX_VAR_B 251
+#define OBJ_EVENT_GFX_VAR_C 252
+#define OBJ_EVENT_GFX_VAR_D 253
+#define OBJ_EVENT_GFX_VAR_E 254
+#define OBJ_EVENT_GFX_VAR_F 255
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define F_INANIMATE (1 << 6)
+#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h
index 1fd6777f0..c56c97d73 100644
--- a/include/constants/field_effects.h
+++ b/include/constants/field_effects.h
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_FIELD_EFFECTS_H
#define GUARD_CONSTANTS_FIELD_EFFECTS_H
-#define FLDEFF_EXCLAMATION_MARK_ICON_1 0
+#define FLDEFF_EXCLAMATION_MARK_ICON 0
#define FLDEFF_USE_CUT_ON_GRASS 1
#define FLDEFF_USE_CUT_ON_TREE 2
#define FLDEFF_SHADOW 3
@@ -34,7 +34,7 @@
#define FLDEFF_NPCFLY_OUT 30
#define FLDEFF_USE_FLY 31
#define FLDEFF_FLY_IN 32
-#define FLDEFF_EXCLAMATION_MARK_ICON_2 33
+#define FLDEFF_QUESTION_MARK_ICON 33
#define FLDEFF_FEET_IN_FLOWING_WATER 34
#define FLDEFF_BIKE_TIRE_TRACKS 35
#define FLDEFF_SAND_DISGUISE 36
@@ -47,7 +47,7 @@
#define FLDEFF_USE_WATERFALL 43
#define FLDEFF_USE_DIVE 44
#define FLDEFF_POKEBALL 45
-#define FLDEFF_HEART_ICON 46
+#define FLDEFF_X_ICON 46
#define FLDEFF_NOP_47 47
#define FLDEFF_NOP_48 48
#define FLDEFF_POP_OUT_OF_ASH 49
@@ -65,11 +65,11 @@
#define FLDEFF_PCTURN_ON 61
#define FLDEFF_HALL_OF_FAME_RECORD 62
#define FLDEFF_USE_TELEPORT 63
-#define FLDEFF_UNK_40 64 // TODO: game corner smile icon?
+#define FLDEFF_SMILEY_FACE_ICON 64
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
-#define FLDEFF_UNK_42 66 // TODO: related to trainer see
+#define FLDEFF_DOUBLE_EXCL_MARK_ICON 66
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
-#define FLDEFF_UNK_44 68 // TODO: related to trainer see
+#define FLDEFF_UNK_44 68 // TODO: related to ???
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
#endif // GUARD_CONSTANTS_FIELD_EFFECTS_H
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
index b71e7d08f..830e66d01 100644
--- a/include/constants/metatile_labels.h
+++ b/include/constants/metatile_labels.h
@@ -2,11 +2,42 @@
#define GUARD_METATILE_LABELS_H
// gTileset_General
+#define METATILE_General_Plain_Mowed 0x001
+#define METATILE_General_ThinTreeTop_Grass 0x00A
+#define METATILE_General_WideTreeTopLeft_Grass 0x00B
+#define METATILE_General_WideTreeTopRight_Grass 0x00C
+#define METATILE_General_Plain_Grass 0x00D
+#define METATILE_General_WideTreeTopLeft_Mowed 0x00E
+#define METATILE_General_WideTreeTopRight_Mowed 0x00F
+#define METATILE_General_ThinTreeTop_Mowed 0x013
#define METATILE_General_CalmWater 0x12B
// gTileset_Mart
#define METATILE_Mart_CounterMid_Top 0x2BF
-#define METATILE_Mart_CounterMid_Bottom 0x2C0
+#define METATILE_Mart_CounterMid_Bottom 0x2C0
+
+// gTileset_PokemonCenter
+#define METATILE_PokemonCenter_Escalator_Top_Normal 0x2E4
+#define METATILE_PokemonCenter_Escalator_Top_Transition1 0x317
+#define METATILE_PokemonCenter_Escalator_Top_Transition2 0x315
+#define METATILE_PokemonCenter_Escalator_TopNext_Normal 0x2E3
+#define METATILE_PokemonCenter_Escalator_TopNext_Transition1 0x316
+#define METATILE_PokemonCenter_Escalator_TopNext_Transition2 0x314
+#define METATILE_PokemonCenter_Escalator_TopNextRail_Normal 0x2EB
+#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition1 0x31E
+#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition2 0x31C
+#define METATILE_PokemonCenter_Escalator_Bottom_Normal 0x2D9
+#define METATILE_PokemonCenter_Escalator_Bottom_Transition1 0x313
+#define METATILE_PokemonCenter_Escalator_Bottom_Transition2 0x311
+#define METATILE_PokemonCenter_Escalator_BottomRail_Normal 0x2D1
+#define METATILE_PokemonCenter_Escalator_BottomRail_Transition1 0x30B
+#define METATILE_PokemonCenter_Escalator_BottomRail_Transition2 0x309
+#define METATILE_PokemonCenter_Escalator_BottomNext_Normal 0x2D8
+#define METATILE_PokemonCenter_Escalator_BottomNext_Transition1 0x312
+#define METATILE_PokemonCenter_Escalator_BottomNext_Transition2 0x310
+#define METATILE_PokemonCenter_Escalator_BottomNextRail_Normal 0x2D0
+#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition1 0x30A
+#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition2 0x308
// gTileset_VermilionGym
#define METATILE_VermilionGym_Floor 0x281
@@ -39,6 +70,18 @@
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6
#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7
+// gTileset_SeaCottage
+#define METATILE_SeaCottage_Teleporter_Light_Green 0x28A
+#define METATILE_SeaCottage_Teleporter_Light_Yellow 0x2B5
+#define METATILE_SeaCottage_Teleporter_Light_Red 0x2B6
+#define METATILE_SeaCottage_Teleporter_Cable_Top 0x285
+#define METATILE_SeaCottage_Teleporter_Cable_Bottom 0x2B4
+#define METATILE_SeaCottage_Teleporter_CableBall_Top 0x2B9
+#define METATILE_SeaCottage_Teleporter_CableBall_Bottom 0x2BA
+#define METATILE_SeaCottage_Teleporter_Door 0x296
+#define METATILE_SeaCottage_Teleporter_Door_HalfGlowing 0x2B7
+#define METATILE_SeaCottage_Teleporter_Door_FullGlowing 0x2B8
+
// gTileset_GameCorner
#define METATILE_GameCorner_Floor_ShadeFull 0x292
#define METATILE_GameCorner_Floor_StairsTop 0x29D
@@ -127,4 +170,20 @@
#define METATILE_TrainerTower_Floor_ShadeBottomLeft 0x287
#define METATILE_TrainerTower_CounterBarrier 0x2B4
+// gTileset_ViridianForest
+#define METATILE_ViridianForest_HugeTreeTopMiddle_Grass 0x284
+#define METATILE_ViridianForest_HugeTreeTopMiddle_Mowed 0x281
+
+// gTileset_CeladonCity
+#define METATILE_CeladonCity_CyclingRoad_Grass 0x352
+#define METATILE_CeladonCity_CyclingRoad_Mowed 0x33E
+
+// gTileset_FuchsiaCity
+#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Grass 0x300
+#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Grass 0x301
+#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Grass 0x302
+#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Mowed 0x310
+#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Mowed 0x311
+#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Mowed 0x312
+
#endif // GUARD_METATILE_LABELS_H
diff --git a/include/constants/movement_commands.h b/include/constants/movement_commands.h
deleted file mode 100644
index 8556ba951..000000000
--- a/include/constants/movement_commands.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef GUARD_CONSTANTS_MOVEMENT_COMMANDS_H
-#define GUARD_CONSTANTS_MOVEMENT_COMMANDS_H
-
-enum
-{
- face_down,
- face_up,
- face_left,
- face_right,
- face_down_fast,
- face_up_fast,
- face_left_fast,
- face_right_fast,
- walk_slowest_down,
- walk_slowest_up,
- walk_slowest_left,
- walk_slowest_right,
- walk_slow_down,
- walk_slow_up,
- walk_slow_left,
- walk_slow_right,
- walk_down,
- walk_up,
- walk_left,
- walk_right,
- jump_2_down,
- jump_2_up,
- jump_2_left,
- jump_2_right,
- delay_1,
- delay_2,
- delay_4,
- delay_8,
- delay_16,
- walk_fast_down,
- walk_fast_up,
- walk_fast_left,
- walk_fast_right,
- walk_in_place_slow_down,
- walk_in_place_slow_up,
- walk_in_place_slow_left,
- walk_in_place_slow_right,
- walk_in_place_down,
- walk_in_place_up,
- walk_in_place_left,
- walk_in_place_right,
- walk_in_place_fast_down,
- walk_in_place_fast_up,
- walk_in_place_fast_left,
- walk_in_place_fast_right,
- walk_in_place_fastest_down,
- walk_in_place_fastest_up,
- walk_in_place_fastest_left,
- walk_in_place_fastest_right,
- face_down_slow,
- face_up_slow,
- face_left_slow,
- face_right_slow,
- walk_fastest_down,
- walk_fastest_up,
- walk_fastest_left,
- walk_fastest_right,
- slide_down,
- slide_up,
- slide_left,
- slide_right,
- player_run_down,
- player_run_up,
- player_run_left,
- player_run_right,
- player_run_down_slow,
- player_run_up_slow,
- player_run_left_slow,
- player_run_right_slow,
- step_45,
- jump_down_run,
- jump_up_run,
- jump_left_run,
- jump_right_run,
- face_player,
- face_away_player,
- lock_facing_direction,
- unlock_facing_direction,
- jump_down,
- jump_up,
- jump_left,
- jump_right,
- jump_in_place_down,
- jump_in_place_up,
- jump_in_place_left,
- jump_in_place_right,
- jump_in_place_down_up,
- jump_in_place_up_down,
- jump_in_place_left_right,
- jump_in_place_right_left,
- face_original_direction,
- nurse_joy_bow,
- enable_jump_landing_ground_effect,
- disable_jump_landing_ground_effect,
- disable_anim,
- restore_anim,
- set_invisible,
- set_visible,
- emote_exclamation_mark,
- emote_question_mark,
- emote_x,
- emote_double_exclamation_mark,
- emote_smile,
- step_67,
- rock_smash_break,
- cut_tree,
-
- step_91 = 0x91,
- step_92,
-
- step_96 = 0x96,
-
- step_end = 0xfe,
-};
-
-#endif //GUARD_CONSTANTS_MOVEMENT_COMMANDS_H
diff --git a/include/constants/object_events.h b/include/constants/object_events.h
deleted file mode 100644
index d6f33b33c..000000000
--- a/include/constants/object_events.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef GUARD_CONSTANTS_OBJECT_EVENTS_H
-#define GUARD_CONSTANTS_OBJECT_EVENTS_H
-
-#define OBJECT_EVENT_GFX_RED_NORMAL 0
-#define OBJECT_EVENT_GFX_RED_BIKE 1
-#define OBJECT_EVENT_GFX_RED_RUN 2
-#define OBJECT_EVENT_GFX_RED_ITEM 3
-#define OBJECT_EVENT_GFX_RED_FISH 4
-#define OBJECT_EVENT_GFX_RED_ITEM_COPY 5
-#define OBJECT_EVENT_GFX_RED_VS_SEEKER 6
-#define OBJECT_EVENT_GFX_GREEN_NORMAL 7
-#define OBJECT_EVENT_GFX_GREEN_BIKE 8
-#define OBJECT_EVENT_GFX_GREEN_RUN 9
-#define OBJECT_EVENT_GFX_GREEN_ITEM 10
-#define OBJECT_EVENT_GFX_GREEN_FISH 11
-#define OBJECT_EVENT_GFX_GREEN_ITEM_COPY 12
-#define OBJECT_EVENT_GFX_GREEN_VS_SEEKER 13
-#define OBJECT_EVENT_GFX_RS_BRENDAN 14
-#define OBJECT_EVENT_GFX_RS_MAY 15
-#define OBJECT_EVENT_GFX_LITTLE_BOY 16
-#define OBJECT_EVENT_GFX_LITTLE_GIRL 17
-#define OBJECT_EVENT_GFX_YOUNGSTER 18
-#define OBJECT_EVENT_GFX_BOY 19
-#define OBJECT_EVENT_GFX_BUG_CATCHER 20
-#define OBJECT_EVENT_GFX_SITTING_BOY 21
-#define OBJECT_EVENT_GFX_LASS 22
-#define OBJECT_EVENT_GFX_WOMAN_1 23
-#define OBJECT_EVENT_GFX_BATTLE_GIRL 24
-#define OBJECT_EVENT_GFX_MAN 25
-#define OBJECT_EVENT_GFX_ROCKER 26
-#define OBJECT_EVENT_GFX_FAT_MAN 27
-#define OBJECT_EVENT_GFX_WOMAN_2 28
-#define OBJECT_EVENT_GFX_BEAUTY 29
-#define OBJECT_EVENT_GFX_BALDING_MAN 30
-#define OBJECT_EVENT_GFX_WOMAN_3 31
-#define OBJECT_EVENT_GFX_OLD_MAN_1 32
-#define OBJECT_EVENT_GFX_OLD_MAN_2 33
-#define OBJECT_EVENT_GFX_OLD_MAN_LYING_DOWN 34
-#define OBJECT_EVENT_GFX_OLD_WOMAN 35
-#define OBJECT_EVENT_GFX_TUBER_M_1 36
-#define OBJECT_EVENT_GFX_TUBER_F 37
-#define OBJECT_EVENT_GFX_TUBER_M_2 38
-#define OBJECT_EVENT_GFX_CAMPER 39
-#define OBJECT_EVENT_GFX_PICNICKER 40
-#define OBJECT_EVENT_GFX_COOLTRAINER_M 41
-#define OBJECT_EVENT_GFX_COOLTRAINER_F 42
-#define OBJECT_EVENT_GFX_SWIMMER_M_WATER 43
-#define OBJECT_EVENT_GFX_SWIMMER_F_WATER 44
-#define OBJECT_EVENT_GFX_SWIMMER_M_LAND 45
-#define OBJECT_EVENT_GFX_SWIMMER_F_LAND 46
-#define OBJECT_EVENT_GFX_WORKER_M 47
-#define OBJECT_EVENT_GFX_WORKER_F 48
-#define OBJECT_EVENT_GFX_ROCKET_M 49
-#define OBJECT_EVENT_GFX_ROCKET_F 50
-#define OBJECT_EVENT_GFX_GBA_KID 51
-#define OBJECT_EVENT_GFX_SUPER_NERD 52
-#define OBJECT_EVENT_GFX_BIKER 53
-#define OBJECT_EVENT_GFX_BLACKBELT 54
-#define OBJECT_EVENT_GFX_SCIENTIST 55
-#define OBJECT_EVENT_GFX_HIKER 56
-#define OBJECT_EVENT_GFX_FISHER 57
-#define OBJECT_EVENT_GFX_CHANNELER 58
-#define OBJECT_EVENT_GFX_CHEF 59
-#define OBJECT_EVENT_GFX_POLICEMAN 60
-#define OBJECT_EVENT_GFX_GENTLEMAN 61
-#define OBJECT_EVENT_GFX_SAILOR 62
-#define OBJECT_EVENT_GFX_CAPTAIN 63
-#define OBJECT_EVENT_GFX_NURSE 64
-#define OBJECT_EVENT_GFX_CABLE_CLUB_RECEPTIONIST 65
-#define OBJECT_EVENT_GFX_UNION_ROOM_RECEPTIONIST 66
-#define OBJECT_EVENT_GFX_UNUSED_MALE_RECEPTIONIST 67
-#define OBJECT_EVENT_GFX_CLERK 68
-#define OBJECT_EVENT_GFX_MG_DELIVERYMAN 69
-#define OBJECT_EVENT_GFX_TRAINER_TOWER_DUDE 70
-#define OBJECT_EVENT_GFX_PROF_OAK 71
-#define OBJECT_EVENT_GFX_BLUE 72
-#define OBJECT_EVENT_GFX_BILL 73
-#define OBJECT_EVENT_GFX_LANCE 74
-#define OBJECT_EVENT_GFX_AGATHA 75
-#define OBJECT_EVENT_GFX_DAISY 76
-#define OBJECT_EVENT_GFX_LORELEI 77
-#define OBJECT_EVENT_GFX_MR_FUJI 78
-#define OBJECT_EVENT_GFX_BRUNO 79
-#define OBJECT_EVENT_GFX_BROCK 80
-#define OBJECT_EVENT_GFX_MISTY 81
-#define OBJECT_EVENT_GFX_LT_SURGE 82
-#define OBJECT_EVENT_GFX_ERIKA 83
-#define OBJECT_EVENT_GFX_KOGA 84
-#define OBJECT_EVENT_GFX_SABRINA 85
-#define OBJECT_EVENT_GFX_BLAINE 86
-#define OBJECT_EVENT_GFX_GIOVANNI 87
-#define OBJECT_EVENT_GFX_MOM 88
-#define OBJECT_EVENT_GFX_CELIO 89
-#define OBJECT_EVENT_GFX_TEACHY_TV_HOST 90
-#define OBJECT_EVENT_GFX_GYM_GUY 91
-#define OBJECT_EVENT_GFX_ITEM_BALL 92
-#define OBJECT_EVENT_GFX_TOWN_MAP 93
-#define OBJECT_EVENT_GFX_POKEDEX 94
-#define OBJECT_EVENT_GFX_CUT_TREE 95
-#define OBJECT_EVENT_GFX_ROCK_SMASH_ROCK 96
-#define OBJECT_EVENT_GFX_STRENGTH_BOULDER 97
-#define OBJECT_EVENT_GFX_FOSSIL 98
-#define OBJECT_EVENT_GFX_RUBY 99
-#define OBJECT_EVENT_GFX_SAPPHIRE 100
-#define OBJECT_EVENT_GFX_OLD_AMBER 101
-#define OBJECT_EVENT_GFX_GYM_SIGN 102
-#define OBJECT_EVENT_GFX_SIGN 103
-#define OBJECT_EVENT_GFX_TRAINER_TIPS 104
-#define OBJECT_EVENT_GFX_CLIPBOARD 105
-#define OBJECT_EVENT_GFX_METEORITE 106
-#define OBJECT_EVENT_GFX_LAPRAS_DOLL 107
-#define OBJECT_EVENT_GFX_SEAGALLOP 108
-#define OBJECT_EVENT_GFX_SNORLAX 109
-#define OBJECT_EVENT_GFX_SPEAROW 110
-#define OBJECT_EVENT_GFX_CUBONE 111
-#define OBJECT_EVENT_GFX_POLIWRATH 112
-#define OBJECT_EVENT_GFX_CLEFAIRY 113
-#define OBJECT_EVENT_GFX_PIDGEOT 114
-#define OBJECT_EVENT_GFX_JIGGLYPUFF 115
-#define OBJECT_EVENT_GFX_PIDGEY 116
-#define OBJECT_EVENT_GFX_CHANSEY 117
-#define OBJECT_EVENT_GFX_OMANYTE 118
-#define OBJECT_EVENT_GFX_KANGASKHAN 119
-#define OBJECT_EVENT_GFX_PIKACHU 120
-#define OBJECT_EVENT_GFX_PSYDUCK 121
-#define OBJECT_EVENT_GFX_NIDORAN_F 122
-#define OBJECT_EVENT_GFX_NIDORAN_M 123
-#define OBJECT_EVENT_GFX_NIDORINO 124
-#define OBJECT_EVENT_GFX_MEOWTH 125
-#define OBJECT_EVENT_GFX_SEEL 126
-#define OBJECT_EVENT_GFX_VOLTORB 127
-#define OBJECT_EVENT_GFX_SLOWPOKE 128
-#define OBJECT_EVENT_GFX_SLOWBRO 129
-#define OBJECT_EVENT_GFX_MACHOP 130
-#define OBJECT_EVENT_GFX_WIGGLYTUFF 131
-#define OBJECT_EVENT_GFX_DODUO 132
-#define OBJECT_EVENT_GFX_FEAROW 133
-#define OBJECT_EVENT_GFX_MACHOKE 134
-#define OBJECT_EVENT_GFX_LAPRAS 135
-#define OBJECT_EVENT_GFX_ZAPDOS 136
-#define OBJECT_EVENT_GFX_MOLTRES 137
-#define OBJECT_EVENT_GFX_ARTICUNO 138
-#define OBJECT_EVENT_GFX_MEWTWO 139
-#define OBJECT_EVENT_GFX_MEW 140
-#define OBJECT_EVENT_GFX_ENTEI 141
-#define OBJECT_EVENT_GFX_SUICUNE 142
-#define OBJECT_EVENT_GFX_RAIKOU 143
-#define OBJECT_EVENT_GFX_LUGIA 144
-#define OBJECT_EVENT_GFX_HO_OH 145
-#define OBJECT_EVENT_GFX_CELEBI 146
-#define OBJECT_EVENT_GFX_KABUTO 147
-#define OBJECT_EVENT_GFX_DEOXYS_D 148
-#define OBJECT_EVENT_GFX_DEOXYS_A 149
-#define OBJECT_EVENT_GFX_DEOXYS_N 150
-#define OBJECT_EVENT_GFX_SS_ANNE 151
-
-#define OBJECT_EVENT_GFX_VAR_0 240
-#define OBJECT_EVENT_GFX_VAR_1 241
-#define OBJECT_EVENT_GFX_VAR_2 242
-#define OBJECT_EVENT_GFX_VAR_3 243
-#define OBJECT_EVENT_GFX_VAR_4 244
-#define OBJECT_EVENT_GFX_VAR_5 245
-#define OBJECT_EVENT_GFX_VAR_6 246
-#define OBJECT_EVENT_GFX_VAR_7 247
-#define OBJECT_EVENT_GFX_VAR_8 248
-#define OBJECT_EVENT_GFX_VAR_9 249
-#define OBJECT_EVENT_GFX_VAR_A 250
-#define OBJECT_EVENT_GFX_VAR_B 251
-#define OBJECT_EVENT_GFX_VAR_C 252
-#define OBJECT_EVENT_GFX_VAR_D 253
-#define OBJECT_EVENT_GFX_VAR_E 254
-#define OBJECT_EVENT_GFX_VAR_F 255
-
-#define SHADOW_SIZE_S 0
-#define SHADOW_SIZE_M 1
-#define SHADOW_SIZE_L 2
-#define SHADOW_SIZE_XL 3
-
-#define F_INANIMATE (1 << 6)
-#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
-
-#define TRACKS_NONE 0
-#define TRACKS_FOOT 1
-#define TRACKS_BIKE_TIRE 2
-
-#endif // GUARD_CONSTANTS_OBJECT_EVENTS_H
diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h
index b2ecd42bc..11d51f1fc 100644
--- a/include/digit_obj_util.h
+++ b/include/digit_obj_util.h
@@ -15,6 +15,11 @@ struct DigitObjUtilTemplate
const struct SpritePalette *spritePal;
};
+extern const u16 gUnknown_8479668[];
+extern const u32 gUnknown_8479688[];
+extern const u32 gUnknown_8479748[];
+
+bool32 DigitObjUtil_Init(u32 count);
void DigitObjUtil_Teardown(void);
bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template);
void DigitObjUtil_PrintNumOn(u32 id, s32 num);
diff --git a/include/event_object_80688E4.h b/include/event_object_80688E4.h
deleted file mode 100644
index 241d48c3a..000000000
--- a/include/event_object_80688E4.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef GUARD_EVENT_OBJECT_80688E4_H
-#define GUARD_EVENT_OBJECT_80688E4_H
-
-#include "global.h"
-
-void FreezeObjectEvents(void);
-bool8 FreezeObjectEvent(struct ObjectEvent *);
-void FreezeObjectEventsExceptOne(u8 objEventId);
-void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction);
-void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible);
-bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
-void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
-bool32 RfuUnionObjectIsWarping(u8 objectEventId);
-
-#endif // GUARD_EVENT_OBJECT_80688E4_H
diff --git a/include/event_object_8097404.h b/include/event_object_8097404.h
deleted file mode 100644
index 23fce9576..000000000
--- a/include/event_object_8097404.h
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Created by scott on 9/7/2017.
-//
-
-#ifndef GUARD_EVENT_OBJECT_8097404_H
-#define GUARD_EVENT_OBJECT_8097404_H
-
-#include "global.h"
-
-// Exported type declarations
-
-// Exported RAM declarations
-extern void *gUnknown_020375B8;
-
-// Exported ROM declarations
-void sub_8097AC8(struct Sprite *);
-void UnfreezeObjectEvent(struct ObjectEvent *);
-void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
-u8 sub_8097F78(struct ObjectEvent *);
-bool8 obj_npc_ministep(struct Sprite *sprite);
-bool8 sub_80976EC(struct Sprite *sprite);
-void sub_80976DC(struct Sprite *, u8);
-void sub_809783C(struct Sprite *, u8, u8, u8);
-void DoShadowFieldEffect(struct ObjectEvent *);
-u8 sub_809785C(struct Sprite *);
-u8 sub_80978E4(struct Sprite *);
-void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
-bool8 sub_80979BC(struct Sprite *);
-void sub_8097750(struct Sprite *);
-bool8 sub_8097758(struct Sprite *);
-void sub_8097FA4(struct ObjectEvent *);
-void sub_8098044(u8);
-
-#endif // GUARD_EVENT_OBJECT_8097404_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 650f137d9..baf66d737 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -48,7 +48,7 @@ void SpawnObjectEventsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
-u8 SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
+int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void);
@@ -65,7 +65,7 @@ void sub_808E82C(u8, u8, u8, s16, s16);
void sub_805F400(u8, u8, u8);
void sub_805F3A8(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
-void ObjectEventGetLocalIdAndMap(struct ObjectEvent *, u8 *, u8 *, u8 *);
+void ObjectEventGetLocalIdAndMap(struct ObjectEvent * objectEvent, u8 *localId, u8 *mapNum, u8 *mapGroup);
void npc_coords_shift(struct ObjectEvent *, s16, s16);
void sub_808EB08(struct ObjectEvent *, s16, s16);
void sub_805FE94(u8, u8, u8);
@@ -76,7 +76,7 @@ u8 GetStepInPlaceDelay4AnimId(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
u8 GetStepInPlaceDelay16AnimId(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
-u8 npc_block_way(struct ObjectEvent *, s16, s16, u32);
+u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 ObjectEventIsSpecialAnimActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
@@ -84,7 +84,7 @@ u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct ObjectEvent *, struct Sprite *);
bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void npc_coords_shift_still(struct ObjectEvent *);
-void sub_805FE7C(struct ObjectEvent *, u8);
+void TryOverrideTemplateCoordsForObjectEvent(struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
@@ -93,11 +93,31 @@ u8 sub_805EB44(u8, u8, s16, s16);
void npc_paltag_set_load(u8 mode);
bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent);
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
-u8 sub_8063F84(u8 direction);
+u8 GetWalkNormalMovementAction(u8 direction);
u8 GetTrainerFacingDirectionMovementType(u8 direction);
void CameraObjectSetFollowedObjectId(u8 spriteId);
void UnfreezeObjectEvents(void);
void TurnObjectEvent(u8, u8);
+const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId);
+u8 GetIndexOfFirstInactiveObjectEvent(void);
+u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction);
+u8 GetFaceDirectionMovementAction(u8 direction);
+u8 GetJumpInPlaceMovementAction(u8 direction);
+u8 sub_8063FB0(u8 direction);
+void OverrideTemplateCoordsForObjectEvent(struct ObjectEvent *);
+void sub_805C774(void);
+
+void FreezeObjectEvents(void);
+bool8 FreezeObjectEvent(struct ObjectEvent *);
+void UnfreezeObjectEvent(struct ObjectEvent *);
+void FreezeObjectEventsExceptOne(u8 objEventId);
+void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction);
+void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible);
+bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
+void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
+bool32 RfuUnionObjectIsWarping(u8 objectEventId);
+
+void sub_805F378(s16 x, s16 y);
// Exported data declarations
@@ -106,5 +126,7 @@ extern const struct SpritePalette gUnknown_83A5348;
extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[];
extern const struct OamData gObjectEventBaseOam_32x32;
extern const struct UCoords16 gUnknown_83A64C8[];
+extern const u16 gUnknown_8398648[];
+extern const u16 gUnknown_8398688[];
#endif // GUARD_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index f026cb57a..bf16ed2ec 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1201,4 +1201,7 @@ extern const u8 Text_MonSentToBoxBillsBoxFull[];
extern const u8 EventScript_BagItemCanBeRegistered[];
+// fldeff_cut
+extern const u8 EventScript_FldEffCut[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index a69ec6155..e9553025c 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -16,7 +16,7 @@ void sub_808D074(u8);
void sub_805C270(void);
void sub_805C780(void);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
-u8 sub_805C808(u8);
+u8 GetPlayerAvatarGraphicsIdByStateId(u8);
void SetPlayerAvatarStateMask(u8 mask);
void sub_805D9C4(struct Sprite *sprite);
void sub_805D154(u8 direction);
diff --git a/include/field_specials.h b/include/field_specials.h
index 02069ff84..9653a9169 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -25,5 +25,7 @@ bool8 ShouldShowBoxWasFullMessage(void);
u16 GetHiddenItemAttr(u32 hiddenItem, u8 attr);
u8 GetUnlockedSeviiAreas(void);
u32 GetPlayerTrainerId(void);
+bool8 CutMoveRuinValleyCheck(void);
+void CutMoveOpenDottedHoleDoor(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 406ec2959..a8e31685f 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -19,6 +19,7 @@ u32 MapGridGetMetatileBehaviorAt(int, int);
u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
void MapGridSetMetatileIdAt(int, int, u16);
void MapGridSetMetatileEntryAt(int, int, u16);
+u8 MapGridGetZCoordAt(s32 x, s32 y);
void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32);
@@ -29,8 +30,8 @@ struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void sub_8059948(u8 a0, u8 a1);
void save_serialize_map(void);
-u32 sub_8058F1C(u32 original, u8 bit);
-u32 sub_8058F48(s16 x, s16 y, u8 z);
+u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit);
+u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr);
void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2);
#endif //GUARD_FIELDMAP_H
diff --git a/include/fldeff.h b/include/fldeff.h
index 51287f400..56e2dfbd9 100644
--- a/include/fldeff.h
+++ b/include/fldeff.h
@@ -10,7 +10,7 @@ gTasks[taskId].data[9] = (u32)func;
extern struct MapPosition gPlayerFacingPosition;
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
-u8 oei_task_add(void);
+u8 CreateFieldEffectShowMon(void);
// flash
u8 sub_80C9DCC(u8 lightLevel, u8 mapType);
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index e0053fe88..57d8d0a35 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -3,6 +3,8 @@
#define OBJECT_EVENTS_COUNT 16
+#define METATILE_COLLISION_MASK 0x0C00
+
enum
{
CONNECTION_SOUTH = 1,
@@ -15,6 +17,8 @@ enum
typedef void (*TilesetCB)(void);
+#define METATILE_ID(tileset, name) (METATILE_##tileset##_##name)
+
struct Tileset
{
/*0x00*/ bool8 isCompressed;
@@ -205,9 +209,9 @@ struct ObjectEvent
/*0x0A*/ u8 mapGroup;
/*0x0B*/ u8 mapobj_unk_0B_0:4;
u8 elevation:4;
- /*0x0C*/ struct Coords16 coords1;
- /*0x10*/ struct Coords16 coords2;
- /*0x14*/ struct Coords16 coords3;
+ /*0x0C*/ struct Coords16 initialCoords;
+ /*0x10*/ struct Coords16 currentCoords;
+ /*0x14*/ struct Coords16 previousCoords;
/*0x18*/ u8 facingDirection:4; //current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ union ObjectEventRange range;
diff --git a/include/global.h b/include/global.h
index 54d8fdec3..b3fdfe231 100644
--- a/include/global.h
+++ b/include/global.h
@@ -148,8 +148,7 @@ struct PokemonJumpResults // possibly used in the game itself?
u16 field2;
u16 excellentsInRow;
u16 field6;
- u16 field8;
- u16 fieldA;
+ u32 field8;
u32 bestJumpScore;
};
diff --git a/include/graphics.h b/include/graphics.h
index 467a1d461..dcc4c44a7 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2879,7 +2879,7 @@ extern const u16 gTMCaseMainWindowPalette[];
// egg_hatch
extern const u32 gBattleTextboxTiles[];
-extern const u32 gFile_graphics_interface_menu_map_tilemap[];
+extern const u32 gBattleTextboxTilemap[];
extern const u32 gBattleTextboxPalette[];
extern const u32 gTradeGba2_Pal[];
extern const u32 gTradeGba_Gfx[];
@@ -4314,7 +4314,7 @@ extern const u32 gHealthboxSafariGfx[];
extern const u32 gBlankGfxCompressed[];
extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
-extern const u32 gFile_graphics_interface_hp_numbers[];
+extern const u32 gInterfaceGfx_HPNumbers[];
extern const u32 gGhostFrontPic[];
extern const u32 gGhostPalette[];
extern const u32 gSubstituteDollGfx[];
@@ -4875,4 +4875,10 @@ extern const u32 gLinkMiscMenu_Tilemap[];
// union_room_chat_objects
extern const u32 gUnionRoomChatIcons[];
+//battle_bg
+extern const u32 gFile_graphics_battle_transitions_vs_frame_sheet[];
+extern const u32 gVsLettersGfx[];
+extern const u32 gFile_graphics_battle_transitions_vs_frame_palette[];
+extern const u32 gFile_graphics_battle_transitions_vs_frame_tilemap[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index aff5d93d0..5ef954dd5 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -183,6 +183,7 @@ typedef struct UnkRfuStruct_2
extern struct GFtgtGname gHostRFUtgtGnameBuffer;
extern u8 gHostRFUtgtUnameBuffer[];
+extern GF_RFU_MANAGER Rfu;
// GameFreak signatures
void AddTextPrinterToWindow1(const u8 *str);
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index d567ab77c..f3195e6c9 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -114,7 +114,7 @@ bool8 MetatileBehavior_UnusedReturnFalse_10(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior);
-bool8 sub_805A2BC(u8 metatileBehavior, u8 playerDirection);
+bool8 TestMetatileAttributeBit(u8 attr, u8 bitmask);
bool8 MetatileBehavior_UnusedIsSpinRight(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsSpinLeft(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedIsSpinUp(u8 metatileBehavior);
diff --git a/include/minigame_countdown.h b/include/minigame_countdown.h
new file mode 100644
index 000000000..930205218
--- /dev/null
+++ b/include/minigame_countdown.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_MINIGAME_COUNTDOWN_H
+#define GUARD_MINIGAME_COUNTDOWN_H
+
+void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority);
+bool32 IsMinigameCountdownRunning(void);
+
+#endif //GUARD_MINIGAME_COUNTDOWN_H
diff --git a/include/overworld.h b/include/overworld.h
index 8242615c7..f0a168052 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -176,6 +176,7 @@ void sub_8056078(void *, void *);
void sub_805546C(u8 a0);
bool32 sub_80582E0(void);
bool32 sub_8058274(void);
+u8 GetCurrentMapBattleScene(void);
extern u16 gHeldKeyCodeToSend;
diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h
index fa4105a0e..83e28d2fd 100644
--- a/include/pokemon_jump.h
+++ b/include/pokemon_jump.h
@@ -2,9 +2,122 @@
#define GUARD_POKEMON_JUMP_H
#include "main.h"
+#include "link.h"
+
+struct PokemonJump1_MonInfo
+{
+ u16 species;
+ u32 otId;
+ u32 personality;
+};
+
+struct PokemonJump1_82E4
+{
+ int unk0;
+ int unk4;
+ u8 filler8[0x4];
+ u16 unkC;
+ u16 unkE;
+ u16 unk10;
+ u16 unk12;
+ int unk14;
+ int unk18;
+ u8 unk1C[11];
+};
+
+struct PokemonJump2
+{
+ int unk0;
+ u16 unk4;
+ u8 unk6;
+ u8 filler7[0xa - 0x7];
+ u8 unkA;
+ u8 unkB;
+ u8 unkC;
+ u8 unkD;
+ u8 unkE;
+ u8 unkF;
+ u16 filler10;
+ u16 unk12;
+ u16 unk14;
+ u32 unk18;
+ u16 unk1C[5];
+ u8 txtBuff[2][0x40];
+ u8 strBuff[0x100];
+ u16 tilemapBuffer[0x4000]; // Bug: way larger than it should be
+ struct Sprite *unk81A8[MAX_RFU_PLAYERS];
+ struct Sprite *unk81BC[MAX_RFU_PLAYERS];
+ struct Sprite *unk81D0[8];
+ u8 filler81F0[0xC];
+ u8 unk81FC[MAX_RFU_PLAYERS];
+};
+
+struct PokemonJump1Sub
+{
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+ u16 unk4;
+ u32 unk8;
+};
void ResetPokeJumpResults(void);
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
void StartPokemonJump(u16 species, MainCallback callback);
+u16 sub_81499A4(void);
+u16 sub_81499B4(void);
+struct PokemonJump1_MonInfo *sub_81499C0(u8 multiplayerId);
+u8 *sub_81499E0(u8 multiplayerId);
+
+void sub_814A95C(int id);
+void sub_8149CEC(struct PokemonJump2 *);
+void sub_8149D24(void);
+void sub_8149D40(int);
+bool32 sub_8149D68(void);
+void sub_814A3E4(void);
+bool32 sub_814A408(void);
+void sub_814A468(u16 itemId, u16 quantity);
+void sub_814A53C(u16 itemId);
+void sub_814A5B4(u16 itemId);
+bool32 sub_814A62C(void);
+void sub_814A6CC(void);
+void sub_814A940(u32 id, s16 y);
+void sub_814AA48(u8 multiplayerId);
+bool32 sub_814A6FC(void);
+void sub_814AA24(int);
+s8 sub_814A744(void);
+int sub_814A98C(u8 flags);
+void sub_814AA34(u16);
+void sub_814AA60(u8 multiplayerId);
+int sub_814AA78(int multiplayerId);
+void sub_814AA8C(void);
+void sub_814AAA0(void);
+void sub_814AAB4(int);
+int sub_814AAC8(void);
+void sub_8149A6C(struct PokemonJump1_MonInfo *arg0);
+bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0);
+void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
+bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
+void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2);
+bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3);
+bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId);
+bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow);
+void sub_814B4E8(void);
+
+void sub_814AD6C(struct PokemonJump2 *);
+void sub_814B294(struct PokemonJump2 *);
+void sub_814B43C(struct PokemonJump2 *);
+bool32 sub_814B460(void);
+void sub_814B348(struct PokemonJump2 *, int);
+void sub_814AF0C(struct PokemonJump2 *, int);
+void sub_814ADCC(struct PokemonJump2 *, struct PokemonJump1_MonInfo *,s16, s16, u8);
+void sub_814B240(struct PokemonJump2 *,s16, s16, u8);
+void sub_814AFE8(struct PokemonJump2 *, int multiplayerId);
+void sub_814B080(struct PokemonJump2 *, int multiplayerId);
+bool32 sub_814B010(struct PokemonJump2 *, int multiplayerId);
+void sub_814B0A8(struct PokemonJump2 *);
+void sub_814B134(struct PokemonJump2 *);
+void sub_814B168(struct PokemonJump2 *, int multiplayerId);
+bool32 sub_814B190(struct PokemonJump2 *);
#endif // GUARD_POKEMON_JUMP_H
diff --git a/include/quest_log.h b/include/quest_log.h
index eddd4c02a..25d0d5871 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -49,5 +49,6 @@ void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
void sub_8110840(void *oldSave);
void sub_8112F18(u8 windowId);
+bool8 sub_8111C2C(void);
#endif //GUARD_QUEST_LOG_H
diff --git a/include/save.h b/include/save.h
index ed527eefd..32c09896a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -113,8 +113,6 @@ u8 sub_80DA45C(void);
bool8 sub_80DA4A0(void);
u8 Save_LoadGameData(u8 saveType);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
-u32 sub_8153634(u8 sector, u8* src);
-void sub_8153688(u8 taskId);
u32 TryWriteSpecialSaveSection(u8 sector, u8* src);
void sub_80DA634(u8 taskId);
diff --git a/include/script_movement.h b/include/script_movement.h
index 2a6dbd2a7..a6f3e7c3c 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -5,6 +5,6 @@
bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
-void sub_80974D8(void);
+void ScriptMovement_UnfreezeObjectEvents(void);
#endif // GUARD_SCRIPT_MOVEMENT_H
diff --git a/include/sea_cottage_special_anim.h b/include/sea_cottage_special_anim.h
deleted file mode 100644
index 5c939df12..000000000
--- a/include/sea_cottage_special_anim.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_SEA_COTTAGE_SPECIAL_ANIM_H
-#define GUARD_SEA_COTTAGE_SPECIAL_ANIM_H
-
-#include "global.h"
-
-void sub_809C448(u8 a0);
-void sub_809C460(void);
-bool8 sub_809C474(void);
-void sub_809C4A8(void);
-void sub_809C5FC(void);
-
-#endif // GUARD_SEA_COTTAGE_SPECIAL_ANIM_H
diff --git a/include/special_field_anim.h b/include/special_field_anim.h
new file mode 100644
index 000000000..d21c932bf
--- /dev/null
+++ b/include/special_field_anim.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_SPECIAL_FIELD_ANIM_H
+#define GUARD_SPECIAL_FIELD_ANIM_H
+
+#include "global.h"
+
+void StartEscalator(u8 a0);
+void StopEscalator(void);
+bool8 IsEscalatorMoving(void);
+
+#endif // GUARD_SPECIAL_FIELD_ANIM_H
diff --git a/include/strings.h b/include/strings.h
index d468af4f3..8c19ea5cb 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1126,4 +1126,19 @@ extern const u8 gJPText_NewTrainerHasComeToSevii[];
extern const u8 gJPText_PleaseWaitAMoment[];
extern const u8 gJPText_WriteErrorUnableToSaveData[];
+// pokemon_jump
+extern const u8 gText_WantToPlayAgain2[];
+extern const u8 gText_SavingDontTurnOffPower[];
+extern const u8 gText_SomeoneDroppedOut2[];
+extern const u8 gText_CommunicationStandby4[];
+extern const u8 gText_AwesomeWonF701F700[];
+extern const u8 gText_FilledStorageSpace2[];
+extern const u8 gText_CantHoldMore[];
+extern const u8 gText_SpacePoints2[];
+extern const u8 gText_SpaceTimes3[];
+extern const u8 gText_JumpsInARow[];
+extern const u8 gText_BestScore2[];
+extern const u8 gText_ExcellentsInARow[];
+extern const u8 gText_PkmnJumpRecords[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/task.h b/include/task.h
index 7a7a2ff22..0d605b04d 100644
--- a/include/task.h
+++ b/include/task.h
@@ -3,20 +3,23 @@
#include "global.h"
+#define HEAD_SENTINEL 0xFE
+#define TAIL_SENTINEL 0xFF
+
#define NUM_TASKS 16
-#define TASK_NONE 0xFF
+#define NUM_TASK_DATA 16
typedef void (*TaskFunc)(u8 taskId);
struct Task
{
- /*0x00*/ TaskFunc func;
- /*0x04*/ bool8 isActive;
- /*0x05*/ u8 prev;
- /*0x06*/ u8 next;
- /*0x07*/ u8 priority;
- /*0x08*/ s16 data[16];
-}; /*size = 0x28*/
+ TaskFunc func;
+ bool8 isActive;
+ u8 prev;
+ u8 next;
+ u8 priority;
+ s16 data[NUM_TASK_DATA];
+};
extern struct Task gTasks[];
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 511edf404..65d4a9efe 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -3,8 +3,12 @@
#include "global.h"
-void sub_80B4578(struct ObjectEvent *);
-u8 sub_80B47BC(void);
-void sub_8155D78(struct ObjectEvent *);
+bool8 CheckForTrainersWantingBattle(void);
+void MovementAction_RevealTrainer_RunTrainerSeeFuncList(struct ObjectEvent *var);
+u8 FldEff_ExclamationMarkIcon1(void);
+u8 FldEff_DoubleExclMarkIcon(void);
+u8 FldEff_XIcon(void);
+u8 FldEff_SmileyFaceIcon(void);
+u8 FldEff_QuestionMarkIcon(void);
#endif //GUARD_TRAINER_SEE_H