summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h4
-rw-r--r--include/battle_2.h2
-rw-r--r--include/battle_ai_script_commands.h2
-rw-r--r--include/battle_ai_switch_items.h2
-rw-r--r--include/battle_anim.h6
-rw-r--r--include/battle_controllers.h2
-rw-r--r--include/battle_dome_cards.h2
-rw-r--r--include/battle_interface.h1
-rw-r--r--include/battle_message.h2
-rw-r--r--include/battle_script_commands.h2
-rw-r--r--include/battle_scripts.h2
-rw-r--r--include/battle_setup.h2
-rw-r--r--include/battle_string_ids.h2
-rw-r--r--include/battle_tower.h2
-rw-r--r--include/battle_transition.h2
-rw-r--r--include/battle_util.h2
-rw-r--r--include/battle_util2.h2
-rw-r--r--include/berry.h2
-rw-r--r--include/bg.h2
-rw-r--r--include/blend_palette.h2
-rw-r--r--include/calculate_base_damage.h2
-rw-r--r--include/coins.h2
-rw-r--r--include/config.h2
-rw-r--r--include/constants/items.h7
-rw-r--r--include/data2.h2
-rw-r--r--include/daycare.h2
-rw-r--r--include/decompress.h2
-rw-r--r--include/diploma.h2
-rw-r--r--include/dma3.h2
-rw-r--r--include/easy_chat.h2
-rw-r--r--include/egg_hatch.h2
-rw-r--r--include/event_data.h6
-rw-r--r--include/event_scripts.h4
-rw-r--r--include/evolution_graphics.h2
-rw-r--r--include/evolution_scene.h2
-rw-r--r--include/field_camera.h2
-rw-r--r--include/field_control_avatar.h8
-rw-r--r--include/field_door.h2
-rw-r--r--include/field_effect.h2
-rw-r--r--include/field_effect_helpers.h2
-rw-r--r--include/field_fadetransition.h4
-rw-r--r--include/field_ground_effect.h2
-rw-r--r--include/field_map_obj.h4
-rw-r--r--include/field_map_obj_helpers.h2
-rw-r--r--include/field_message_box.h2
-rw-r--r--include/field_player_avatar.h4
-rw-r--r--include/field_poison.h2
-rw-r--r--include/field_screen.h2
-rw-r--r--include/field_screen_effect.h2
-rw-r--r--include/field_specials.h2
-rw-r--r--include/field_tasks.h2
-rw-r--r--include/field_weather.h3
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/fldeff_80F9BCC.h2
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/global.berry.h2
-rw-r--r--include/global.fieldmap.h2
-rw-r--r--include/global.h143
-rw-r--r--include/gpu_regs.h2
-rw-r--r--include/graphics.h2
-rw-r--r--include/hall_of_fame.h2
-rw-r--r--include/heal_location.h2
-rw-r--r--include/help_system.h8
-rw-r--r--include/international_string_util.h2
-rw-r--r--include/item.h3
-rw-r--r--include/item_icon.h2
-rw-r--r--include/item_menu.h2
-rw-r--r--include/item_menu_icons.h2
-rw-r--r--include/link.h2
-rw-r--r--include/list_menu.h2
-rw-r--r--include/load_save.h2
-rw-r--r--include/m4a.h2
-rw-r--r--include/mail.h2
-rw-r--r--include/mail_data.h2
-rw-r--r--include/main.h2
-rw-r--r--include/malloc.h2
-rw-r--r--include/map_name_popup.h3
-rw-r--r--include/map_obj_80688E4.h8
-rw-r--r--include/map_obj_8097404.h2
-rw-r--r--include/map_obj_lock.h2
-rw-r--r--include/menews_jisan.h2
-rw-r--r--include/menu.h4
-rw-r--r--include/menu_helpers.h3
-rw-r--r--include/menu_indicators.h2
-rw-r--r--include/metatile_behavior.h2
-rw-r--r--include/mevent.h2
-rw-r--r--include/money.h2
-rw-r--r--include/multiboot.h2
-rw-r--r--include/mystery_event_script.h2
-rw-r--r--include/naming_screen.h2
-rw-r--r--include/new_game.h2
-rw-r--r--include/overworld.h14
-rw-r--r--include/palette.h9
-rw-r--r--include/party_menu.h3
-rw-r--r--include/play_time.h2
-rw-r--r--include/player_pc.h2
-rw-r--r--include/pokeball.h2
-rw-r--r--include/pokedex.h2
-rw-r--r--include/pokemon.h8
-rw-r--r--include/pokemon_3.h2
-rw-r--r--include/pokemon_icon.h2
-rw-r--r--include/pokemon_item_effects.h2
-rw-r--r--include/pokemon_size_record.h2
-rw-r--r--include/pokemon_storage_system.h7
-rw-r--r--include/pokenav.h2
-rw-r--r--include/quest_log.h22
-rw-r--r--include/quest_log_8150454.h8
-rw-r--r--include/random.h2
-rw-r--r--include/region_map.h3
-rw-r--r--include/reshow_battle_screen.h2
-rw-r--r--include/roamer.h2
-rw-r--r--include/rom6.h2
-rw-r--r--include/rom_818CFC8.h2
-rw-r--r--include/rom_81BE66C.h2
-rw-r--r--include/safari_zone.h2
-rw-r--r--include/save.h4
-rw-r--r--include/save_location.h2
-rw-r--r--include/script.h2
-rw-r--r--include/script_menu.h2
-rw-r--r--include/script_movement.h2
-rw-r--r--include/script_pokemon_80F8.h2
-rw-r--r--include/script_pokemon_81B9.h2
-rw-r--r--include/shop.h2
-rw-r--r--include/slot_machine.h2
-rw-r--r--include/songs.h2
-rw-r--r--include/sound.h2
-rw-r--r--include/sprite.h2
-rw-r--r--include/start_menu.h2
-rw-r--r--include/string_util.h2
-rw-r--r--include/strings.h2
-rw-r--r--include/task.h2
-rw-r--r--include/text.h2
-rw-r--r--include/text_window.h2
-rw-r--r--include/tilesets.h2
-rw-r--r--include/trainer_classes.h2
-rw-r--r--include/trainer_front_sprites.h6
-rw-r--r--include/trainer_ids.h2
-rw-r--r--include/trainer_see.h2
-rw-r--r--include/trig.h2
-rw-r--r--include/unk_8159F40.h9
-rw-r--r--include/unk_text_util.h2
-rw-r--r--include/unknown_task.h2
-rw-r--r--include/util.h2
-rw-r--r--include/wild_encounter.h3
-rw-r--r--include/window.h2
145 files changed, 507 insertions, 41 deletions
diff --git a/include/battle.h b/include/battle.h
index ee707f78b..e2f7ddb44 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_H
#define GUARD_BATTLE_H
+#include "global.h"
+
// should they be included here or included individually by every file?
#include "constants/battle.h"
#include "battle_util.h"
@@ -977,4 +979,6 @@ extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern s32 gBattleMoveDamage;
+extern u8 gUnknown_2023E8A;
+
#endif // GUARD_BATTLE_H
diff --git a/include/battle_2.h b/include/battle_2.h
index ee61efd9b..ca8b78805 100644
--- a/include/battle_2.h
+++ b/include/battle_2.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_2_H
#define GUARD_BATTLE_2_H
+#include "global.h"
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
void CB2_QuitRecordedBattle(void);
diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h
index 5fb422b41..5f8c4419b 100644
--- a/include/battle_ai_script_commands.h
+++ b/include/battle_ai_script_commands.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
+#include "global.h"
+
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);
diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h
index 0a230e7f6..d0461319d 100644
--- a/include/battle_ai_switch_items.h
+++ b/include/battle_ai_switch_items.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H
#define GUARD_BATTLE_AI_SWITCH_ITEMS_H
+#include "global.h"
+
enum
{
AI_ITEM_FULL_RESTORE = 1,
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 9fb7ccd53..4ea3bdead 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -1,6 +1,12 @@
#ifndef GUARD_BATTLE_ANIM_H
#define GUARD_BATTLE_ANIM_H
+#include "global.h"
+
+#ifndef BATTLE_BANKS_COUNT
+#define BATTLE_BANKS_COUNT 4
+#endif // BATTLE_BANKS_COUNT
+
enum
{
ANIM_BANK_ATTACKER,
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 66984b453..df00c3526 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H
+#include "global.h"
+
enum
{
REQUEST_ALL_BATTLE,
diff --git a/include/battle_dome_cards.h b/include/battle_dome_cards.h
index a0696d156..48d165e9c 100644
--- a/include/battle_dome_cards.h
+++ b/include/battle_dome_cards.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_DOME_CARDS_H
#define GUARD_BATTLE_DOME_CARDS_H
+#include "global.h"
+
bool16 dp13_810BB8C(void);
u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
diff --git a/include/battle_interface.h b/include/battle_interface.h
index b2d3b1b97..27f93a3c2 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -1,6 +1,7 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
+#include "global.h"
#include "battle_controllers.h"
enum
diff --git a/include/battle_message.h b/include/battle_message.h
index 30ddca469..27ae88b01 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_MESSAGE_H
#define GUARD_BATTLE_MESSAGE_H
+#include "global.h"
+
// for 0xFD
#define B_TXT_BUFF1 0x0
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 80fabaa64..d4cb75e91 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_SCRIPT_COMMANDS_H
+#include "global.h"
+
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index 2e31a37c5..69edacae6 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_SCRIPTS_H
#define GUARD_BATTLE_SCRIPTS_H
+#include "global.h"
+
extern const u8 BattleScript_HitFromCritCalc[];
extern const u8 BattleScript_MoveEnd[];
extern const u8 BattleScript_MakeMoveMissed[];
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 9b9ad2e15..2806295ca 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_H
+#include "global.h"
+
void BattleSetup_StartScriptedWildBattle(void);
u8 BattleSetup_GetTerrainId(void);
u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h
index f242284b0..a030a7b48 100644
--- a/include/battle_string_ids.h
+++ b/include/battle_string_ids.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_STRING_IDS_H
#define GUARD_BATTLE_STRING_IDS_H
+#include "global.h"
+
#define BATTLESTRINGS_COUNT 369
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 25b439c1b..120ab9a99 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
+#include "global.h"
+
u16 sub_8164FCC(u8, u8);
#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/battle_transition.h b/include/battle_transition.h
index 1603f5c93..eba76fd61 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
+#include "global.h"
+
void sub_8149DFC(u8 a1);
#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/battle_util.h b/include/battle_util.h
index 25e26719b..ed070720d 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_UTIL_H
#define GUARD_BATTLE_UTIL_H
+#include "global.h"
+
#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
#define MOVE_LIMITATION_PP (1 << 1)
#define MOVE_LIMITATION_DISABLED (1 << 2)
diff --git a/include/battle_util2.h b/include/battle_util2.h
index 3954e42dc..3b8a6f817 100644
--- a/include/battle_util2.h
+++ b/include/battle_util2.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_UTIL2_H
#define GUARD_BATTLE_UTIL2_H
+#include "global.h"
+
void AllocateBattleResources(void);
void FreeBattleResources(void);
void AdjustFriendshipOnBattleFaint(u8 bank);
diff --git a/include/berry.h b/include/berry.h
index 425a664c9..40715868b 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
+#include "global.h"
+
enum
{
BERRY_FIRMNESS_UNKNOWN,
diff --git a/include/bg.h b/include/bg.h
index 0700e2d23..55927a5a4 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BG_H
#define GUARD_BG_H
+#include "global.h"
+
struct BGCntrlBitfield // for the I/O registers
{
volatile u16 priority:2;
diff --git a/include/blend_palette.h b/include/blend_palette.h
index 1db3f4eb0..4ece15d69 100644
--- a/include/blend_palette.h
+++ b/include/blend_palette.h
@@ -1,6 +1,8 @@
#ifndef GUARD_BLEND_PALETTE_H
#define GUARD_BLEND_PALETTE_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/calculate_base_damage.h b/include/calculate_base_damage.h
index e9146c188..8079031e8 100644
--- a/include/calculate_base_damage.h
+++ b/include/calculate_base_damage.h
@@ -1,6 +1,8 @@
#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
#define GUARD_CALCULATE_BASE_DAMAGE_H
+#include "global.h"
+
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
#endif // GUARD_CALCULATE_BASE_DAMAGE_H
diff --git a/include/coins.h b/include/coins.h
index 996519605..83ad7d611 100644
--- a/include/coins.h
+++ b/include/coins.h
@@ -1,6 +1,8 @@
#ifndef GUARD_COINS_H
#define GUARD_COINS_H
+#include "global.h"
+
void PrintCoinsString(u32 coinAmount);
void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y);
void HideCoinsWindow(void);
diff --git a/include/config.h b/include/config.h
index 756fd1ebd..f094c95bd 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1,6 +1,8 @@
#ifndef GUARD_CONFIG_H
#define GUARD_CONFIG_H
+#include "global.h"
+
// In the Generation 3 games, Asserts were used in various debug builds.
// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
// still has them in the ROM. This is because the developers forgot
diff --git a/include/constants/items.h b/include/constants/items.h
index dd2b4c4ed..64fed0e4c 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -393,4 +393,11 @@
// Check if the item is one that can be used on a Pokemon.
#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
+// POCKETS
+#define POCKET_ITEMS 1
+#define POCKET_KEY_ITEMS 2
+#define POCKET_POKE_BALLS 3
+#define POCKET_TM_CASE 4
+#define POCKET_BERRY_POUCH 5
+
#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/data2.h b/include/data2.h
index be0f33ab8..e383b1c9a 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DATA2_H
#define GUARD_DATA2_H
+#include "global.h"
+
struct MonCoords
{
// This would use a bitfield, but some function
diff --git a/include/daycare.h b/include/daycare.h
index 7db44e024..6544ba21a 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
+#include "global.h"
+
#define EGG_HATCH_LEVEL 5
u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
diff --git a/include/decompress.h b/include/decompress.h
index 34a678cda..5f3863dc7 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DECOMPRESS_H
#define GUARD_DECOMPRESS_H
+#include "global.h"
+
#include "sprite.h"
extern u8 gDecompressionBuffer[0x4000];
diff --git a/include/diploma.h b/include/diploma.h
index 8d730fa05..8477e70fc 100644
--- a/include/diploma.h
+++ b/include/diploma.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DIPLOMA_H
#define GUARD_DIPLOMA_H
+#include "global.h"
+
void CB2_ShowDiploma(void);
#endif // GUARD_DIPLOMA_H
diff --git a/include/dma3.h b/include/dma3.h
index 265b47824..fcd7bae43 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DMA3_H
#define GUARD_DMA3_H
+#include "global.h"
+
void ClearDma3Requests(void);
void ProcessDma3Requests(void);
int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
diff --git a/include/easy_chat.h b/include/easy_chat.h
index f0ac51c22..2b5664420 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,6 +1,8 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
+#include "global.h"
+
// Taken from Pokeruby, check if it's correct
enum
{
diff --git a/include/egg_hatch.h b/include/egg_hatch.h
index 862d33947..9945284e1 100644
--- a/include/egg_hatch.h
+++ b/include/egg_hatch.h
@@ -1,6 +1,8 @@
#ifndef GUARD_EGG_HATCH_H
#define GUARD_EGG_HATCH_H
+#include "global.h"
+
void ScriptHatchMon(void);
bool8 sub_8071614(void);
void EggHatch(void);
diff --git a/include/event_data.h b/include/event_data.h
index f28ed4f75..2e340f073 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,6 +1,8 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
+#include "global.h"
+
#include "constants/flags.h"
#include "constants/vars.h"
@@ -29,8 +31,9 @@ u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
-u16 * sub_806E454(u16 id);
+u16 * GetVarPointer(u16 id);
bool32 sub_806E2BC(void);
+void sub_806E6FC(void);
extern u16 gSpecialVar_0x8000;
extern u16 gSpecialVar_0x8001;
@@ -52,5 +55,6 @@ extern u16 gSpecialVar_MonBoxPos;
extern u16 gSpecialVar_0x8014;
extern u16 gUnknown_20370D0;
+extern u16 gUnknown_20370C0;
#endif // GUARD_EVENT_DATA_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 03329ba34..ebfdb4fe3 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -5,6 +5,8 @@
#ifndef GUARD_EVENT_SCRIPTS_H
#define GUARD_EVENT_SCRIPTS_H
+#include "global.h"
+
extern const u8 gUnknown_0823B4E8[];
extern const u8 gUnknown_0823B5E9[];
extern const u8 EventScript_275BB7[];
@@ -373,6 +375,8 @@ extern const u8 SecretBase_RedCave1_Text_2751E1[];
extern const u8 SecretBase_RedCave1_Text_2754F6[];
extern const u8 SecretBase_RedCave1_Text_2758CC[];
+extern const u8 gUnknown_84178D0[];
+extern const u8 gUnknown_84178DA[];
// vs_seeker
extern const u8 gUnknown_81C137C[];
extern const u8 gUnknown_81C13D6[];
diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h
index f52105815..21f133872 100644
--- a/include/evolution_graphics.h
+++ b/include/evolution_graphics.h
@@ -1,6 +1,8 @@
#ifndef GUARD_EVOLUTION_GRAPHICS_H
#define GUARD_EVOLUTION_GRAPHICS_H
+#include "global.h"
+
void LoadEvoSparkleSpriteAndPal(void);
u8 LaunchTask_PreEvoSparklesSet1(u16 arg0);
diff --git a/include/evolution_scene.h b/include/evolution_scene.h
index 5f8c534b9..1d87ceb76 100644
--- a/include/evolution_scene.h
+++ b/include/evolution_scene.h
@@ -1,6 +1,8 @@
#ifndef GUARD_EVOLUTION_SCENE_H
#define GUARD_EVOLUTION_SCENE_H
+#include "global.h"
+
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
diff --git a/include/field_camera.h b/include/field_camera.h
index a8559e1c2..53d734081 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_CAMERA_H
#define GUARD_FIELD_CAMERA_H
+#include "global.h"
+
// Exported type declarations
struct CameraObject
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
new file mode 100644
index 000000000..0a33138b3
--- /dev/null
+++ b/include/field_control_avatar.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_FIELD_CONTROL_AVATAR_H
+#define GUARD_FIELD_CONTROL_AVATAR_H
+
+#include "global.h"
+
+extern u32 gUnknown_3005078;
+
+#endif //GUARD_FIELD_CONTROL_AVATAR_H
diff --git a/include/field_door.h b/include/field_door.h
index f1dfc551d..0059cbe1a 100644
--- a/include/field_door.h
+++ b/include/field_door.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELDDOOR_H
#define GUARD_FIELDDOOR_H
+#include "global.h"
+
void FieldSetDoorOpened(u32, u32);
void FieldSetDoorClosed(u32, u32);
s8 FieldAnimateDoorClose(u32, u32);
diff --git a/include/field_effect.h b/include/field_effect.h
index 9404e3959..bb5e0f1d5 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
+#include "global.h"
+
enum FieldEffectScriptIdx
{
FLDEFF_EXCLAMATION_MARK_ICON_1,
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index e80daf3bd..33c4d5bbc 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -5,6 +5,8 @@
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 7c2d16a24..051865210 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_FADETRANSITION_H
#define GUARD_FIELD_FADETRANSITION_H
+#include "global.h"
+
void sub_80AF734(void);
void sp13E_warp_to_last_warp(void);
void sub_80AF7D0(void);
@@ -8,5 +10,7 @@ void sp13F_fall_to_last_warp(void);
void sub_80AF848(void);
void sub_80AF87C(void);
+void sub_807DF64(void);
+void sub_807DF7C(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
index 63b67ceaf..49448db6a 100644
--- a/include/field_ground_effect.h
+++ b/include/field_ground_effect.h
@@ -5,6 +5,8 @@
#ifndef GUARD_FIELD_GROUND_EFFECT_H
#define GUARD_FIELD_GROUND_EFFECT_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 304dcb825..9ff5ecedc 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_MAP_OBJ_H
#define GUARD_FIELD_MAP_OBJ_H
+#include "global.h"
+
#define NUM_OBJECT_GRAPHICS_INFO 239
#define SPRITE_VAR 240
@@ -76,6 +78,8 @@ void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
+void sub_8063E28(struct MapObject *, struct Sprite *);
+void sub_8063CA4(struct MapObject *, u8);
void npc_coords_shift_still(struct MapObject *);
void sub_805FE7C(struct MapObject *, u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index ba797ec98..2d3f69d95 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELDMAPOBJHELP_H
#define GUARD_FIELDMAPOBJHELP_H
+#include "global.h"
+
void UnfreezeMapObjects(void);
void sub_8097B78(u8, u8);
diff --git a/include/field_message_box.h b/include/field_message_box.h
index 432c9078b..5777921b7 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_MESSAGE_BOX_H
#define GUARD_FIELD_MESSAGE_BOX_H
+#include "global.h"
+
bool8 ShowFieldMessage(const u8 *message);
bool8 sub_8098238(const u8 *message);
bool8 ShowFieldAutoScrollMessage(const u8 *message);
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 25b7f2d71..9b7fcde38 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
+#include "global.h"
+
void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
@@ -11,6 +13,8 @@ u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
void sub_808D074(u8);
+void sub_805C270();
+void sub_805C780();
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_poison.h b/include/field_poison.h
index d1a4c823b..fcfb71cf5 100644
--- a/include/field_poison.h
+++ b/include/field_poison.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_POISON_H
#define GUARD_FIELD_POISON_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/field_screen.h b/include/field_screen.h
index cfc0d081f..a11aa0041 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_SCREEN_H
#define GUARD_FIELD_SCREEN_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index ef81c2f9e..add61d57c 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
+#include "global.h"
+
void sub_80AF79C(void);
void sub_80B009C(u8);
void sub_80B0244(void);
diff --git a/include/field_specials.h b/include/field_specials.h
index 8c0e69c2c..2b7991b55 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_SPECIALS_H
#define GUARD_FIELD_SPECIALS_H
+#include "global.h"
+
u8 GetLeadMonIndex(void);
void TV_PrintIntToStringVar(u8, int);
diff --git a/include/field_tasks.h b/include/field_tasks.h
index 2a2a772d8..aba2a9eee 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
+#include "global.h"
+
void ActivatePerStepCallback(u8);
#endif // GUARD_FIELD_TASKS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index e12107e70..b896259e9 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,6 +1,8 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
+#include "global.h"
+
void fade_screen(u8, s8);
void SetSav1Weather(u32);
@@ -8,5 +10,6 @@ u8 GetSav1Weather(void);
void sub_80AEDBC(void);
void DoCurrentWeather(void);
+void sub_807B0C4(u16 *, u16 *, u32);
#endif // GUARD_WEATHER_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 06cb7cc77..c5abdb2e1 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELDMAP_H
#define GUARD_FIELDMAP_H
+#include "global.h"
+
extern struct MapCoords {
int width;
int height;
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
index d57665c68..3960c6c65 100644
--- a/include/fldeff_80F9BCC.h
+++ b/include/fldeff_80F9BCC.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FLDEFF_80F9BCC_H
#define GUARD_FLDEFF_80F9BCC_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 7e58efb9f..4b5f2de95 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -1,6 +1,7 @@
#ifndef GUARD_GBA_GBA_H
#define GUARD_GBA_GBA_H
+#include <string.h>
#include "defines.h"
#include "io_reg.h"
#include "types.h"
diff --git a/include/global.berry.h b/include/global.berry.h
index 5c8a43a02..f9e27b186 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -1,6 +1,8 @@
#ifndef GUARD_GLOBAL_BERRY_H
#define GUARD_GLOBAL_BERRY_H
+#include "global.h"
+
#define BERRY_NAME_COUNT 7
#define BERRY_ITEM_EFFECT_COUNT 18
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index ed5054b7d..98077d8d4 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,6 +1,8 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
+#include "global.h"
+
#define NUM_FIELD_OBJECTS 16
enum
diff --git a/include/global.h b/include/global.h
index b05c87d88..9db1443c2 100644
--- a/include/global.h
+++ b/include/global.h
@@ -3,6 +3,7 @@
#include "config.h"
#include "gba/gba.h"
+#include <string.h>
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -12,10 +13,18 @@
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
#if defined (__APPLE__) || defined (__CYGWIN__)
-void *memset(void *, int, size_t);
-void *memcpy(void *, const void *, size_t);
-int strcmp(const char *s1, const char *s2);
-char* strcpy(char *dst0, const char *src0);
+// Get the IDE to stfu
+
+// We define it this way to fool preproc.
+#define INCBIN(x) {0}
+#define INCBIN_U8 INCBIN
+#define INCBIN_U16 INCBIN
+#define INCBIN_U32 INCBIN
+#define INCBIN_S8 INCBIN
+#define INCBIN_S16 INCBIN
+#define INCBIN_S32 INCBIN
+#define _(x) (x)
+#define __(x) (x)
#endif // __APPLE__
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
@@ -243,7 +252,9 @@ struct SaveBlock2
/*0x098*/ struct Time localTimeOffset;
/*0x0A0*/ struct Time lastBerryTreeUpdate;
/*0x0A8*/ u32 field_A8;
- /*0x0AC*/ u8 filler_AC[0xE74];
+ /*0x0AC*/ u8 filler_AC[0x9ec];
+ /*0xA98*/ u8 unk_A98[2][16];
+ /*0xAB8*/ u8 filler_AB8[0x468];
/*0xF20*/ u32 encryptionKey;
};
@@ -491,9 +502,68 @@ struct MysteryEventStruct
u8 unk_1;
};
+struct QuestLogNPCData
+{
+ u32 x:8;
+ u32 negx:1;
+ u32 y:8;
+ u32 negy:1;
+ u32 elevation:6;
+ u32 movementType:8;
+};
+
+struct UnkStruct_203B024
+{
+ u16 unk_00;
+ u16 unk_02;
+ u16 unk_04[14];
+};
+
+union QuestLogScene
+{
+ u8 allocation[32];
+ u16 ident;
+};
+
+typedef union QuestLogScene QuestLogScene;
+
+// This name is a complete guess and may change.
+
+// Declare here so that it can be recursively referenced.
+union QuestLogMovement;
+
+// Define here
+union QuestLogMovement
+{
+ u16 ident_raw;
+ struct {
+ u16 ident:12;
+ u16 flags:4;
+ } ident_struct;
+};
+
+struct QuestLog
+{
+ /*0x0000*/ u8 unk_000;
+ /*0x0001*/ s8 unk_001;
+ /*0x0002*/ s8 unk_002;
+ /*0x0003*/ s8 unk_003;
+ /*0x0004*/ s16 unk_004;
+ /*0x0006*/ s16 unk_006;
+ /*0x0008*/ u8 filler_008[0x140];
+
+ // These arrays hold the game state for
+ // playing back the quest log
+ /*0x0148*/ u8 flags[0x120];
+ /*0x02c8*/ u16 vars[0x100];
+ /*0x0468*/ struct QuestLogNPCData npcData[64];
+ /*0x0568*/ u16 unk_568[128];
+ /*0x0668*/ u16 end[0];
+};
+
#define MAP_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 300
+#define FLAGS_COUNT 288 // 300
#define VARS_COUNT 256
#define MAIL_COUNT 16
@@ -501,32 +571,41 @@ struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
/*0x0004*/ struct WarpData location;
- /*0x000C*/ struct WarpData warp1;
- /*0x0014*/ struct WarpData warp2;
- /*0x001C*/ struct WarpData lastHealLocation;
- /*0x0024*/ struct WarpData warp4;
- /*0x002C*/ u8 filler2C[0x8];
- /*0x0034*/ u8 playerPartyCount;
- /*0x0038*/ struct Pokemon playerParty[PARTY_SIZE];
- /*0x0290*/ u32 money;
- /*0x0294*/ u16 coins;
- /*0x0296*/ u8 filler296[0x7A];
- /*0x0310*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
- struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
- struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
- struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
- struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
- u8 filler5F8[0x40];
- /*0x0638*/ u8 trainerRematchStepCounter;
- u8 filler_639;
- /*0x063a*/ u8 trainerRematches[100];
- /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
- /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
- /*0x0EE0*/ u8 fillerEE0[0x1DF0];
- /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT];
- u8 filler2F10[0x1DA];
- /*0x30EA*/ struct EnigmaBerry enigmaBerry;
- /*0x3120*/ u8 filler3120[0x340];
+ /*0x0C*/ struct WarpData warp1;
+ /*0x14*/ struct WarpData warp2;
+ /*0x1C*/ struct WarpData lastHealLocation;
+ /*0x24*/ struct WarpData warp4;
+ /*0x2C*/ u16 savedMusic;
+ /*0x2E*/ u8 weather;
+ /*0x2F*/ u8 filler_2F;
+ /*0x30*/ u8 flashLevel;
+ /*0x32*/ u16 mapDataId;
+ /*0x234*/ u8 playerPartyCount;
+ /*0x238*/ struct Pokemon playerParty[PARTY_SIZE];
+ /*0x490*/ u32 money;
+ /*0x494*/ u16 coins;
+ /*0x496*/ u16 registeredItem; // registered for use with SELECT button
+ /*0x0298*/ u8 filler298[0x78];
+ /*0x0310*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
+ /*0x????*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ /*0x????*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
+ /*0x????*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ /*0x????*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
+ /*0x05F8*/ u8 filler5F8[0x40];
+ /*0x638*/ u8 trainerRematchStepCounter;
+ u8 filler_639;
+ /*0x63A*/ u8 trainerRematches[100];
+ /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
+ /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
+ /*0x0EE0*/ u8 flags[FLAGS_COUNT];
+ /*0x1000*/ u16 vars[VARS_COUNT];
+ /*0x1200*/ u8 filler1200[0x100];
+ /*0x1300*/ struct QuestLog questLog[4];
+ /*0x2CA0*/ u8 filler2CA0[0x30];
+ /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT];
+ /*0x2F10*/ u8 filler2F10[0x1DA];
+ /*0x30EC*/ struct EnigmaBerry enigmaBerry;
+ /*0x3120*/ u8 filler3120[0x340];
/*0x3460*/ struct MysteryEventStruct unk_3460;
/*0x3464*/ u8 filler_3464[0x1b8];
/*0x361C*/ struct RamScript ramScript;
diff --git a/include/gpu_regs.h b/include/gpu_regs.h
index 89e0cb64b..3930f6809 100644
--- a/include/gpu_regs.h
+++ b/include/gpu_regs.h
@@ -1,6 +1,8 @@
#ifndef GUARD_GPU_REGS_H
#define GUARD_GPU_REGS_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/graphics.h b/include/graphics.h
index aad5c0190..9888d2f7c 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -5,6 +5,8 @@
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
+#include "global.h"
+
extern const u8 gInterfaceGfx_PokeBall[];
extern const u8 gInterfacePal_PokeBall[];
extern const u8 gInterfaceGfx_GreatBall[];
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
index d35ecf268..2dc9fae41 100644
--- a/include/hall_of_fame.h
+++ b/include/hall_of_fame.h
@@ -1,6 +1,8 @@
#ifndef GUARD_HALL_OF_FAME_H
#define GUARD_HALL_OF_FAME_H
+#include "global.h"
+
void CB2_DoHallOfFameScreen(void);
void CB2_DoHallOfFameScreenDontSaveData(void);
void CB2_DoHallOfFamePC(void);
diff --git a/include/heal_location.h b/include/heal_location.h
index 1f966f1ae..0143b8158 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -1,6 +1,8 @@
#ifndef GUARD_HEAL_LOCATION_H
#define GUARD_HEAL_LOCATION_H
+#include "global.h"
+
// Exported type declarations
struct UnkStruct_0859F534 {
diff --git a/include/help_system.h b/include/help_system.h
new file mode 100644
index 000000000..3f6a741c6
--- /dev/null
+++ b/include/help_system.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_HELP_SYSTEM_H
+#define GUARD_HELP_SYSTEM_H
+
+#include "global.h"
+
+extern bool8 gUnknown_3005ECC;
+
+#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index e7876162e..2b922676d 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H
#define GUARD_INTERNATIONAL_STRING_UTIL_H
+#include "global.h"
+
#include "menu.h"
void sub_81DB52C(const u8 *src);
diff --git a/include/item.h b/include/item.h
index a136f03ec..75c56c94d 100644
--- a/include/item.h
+++ b/include/item.h
@@ -60,5 +60,8 @@ u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
+void sub_809A2DC(void);
+void sub_809A2A4(void);
+void sub_8099E90(u16, u8 *);
#endif // ITEM_H
diff --git a/include/item_icon.h b/include/item_icon.h
index a43b72f39..75e2475f3 100644
--- a/include/item_icon.h
+++ b/include/item_icon.h
@@ -5,6 +5,8 @@
#ifndef GUARD_ITEM_ICON_H
#define GUARD_ITEM_ICON_H
+#include "global.h"
+
extern EWRAM_DATA void *gUnknown_0203CEBC;
extern EWRAM_DATA void *gUnknown_0203CEC0;
diff --git a/include/item_menu.h b/include/item_menu.h
index 0e1f20588..731c7cf2b 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ITEM_MENU_H
#define GUARD_ITEM_MENU_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
index 553e7c262..7fcd6d5e1 100644
--- a/include/item_menu_icons.h
+++ b/include/item_menu_icons.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ITEM_MENU_ICONS
#define GUARD_ITEM_MENU_ICONS
+#include "global.h"
+
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/link.h b/include/link.h
index 352386523..239a59b71 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,6 +1,8 @@
#ifndef GUARD_LINK_H
#define GUARD_LINK_H
+#include "global.h"
+
#define MAX_LINK_PLAYERS 4
#define MAX_RFU_PLAYERS 5
#define CMD_LENGTH 8
diff --git a/include/list_menu.h b/include/list_menu.h
index 0249b06af..f547801bd 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_LIST_MENU_H
#define GUARD_LIST_MENU_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/load_save.h b/include/load_save.h
index b3e9fe49c..064e6dff2 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -1,6 +1,8 @@
#ifndef GUARD_LOAD_SAVE_H
#define GUARD_LOAD_SAVE_H
+#include "global.h"
+
extern bool32 gFlashMemoryPresent;
void ClearSav2(void);
diff --git a/include/m4a.h b/include/m4a.h
index 8c3380dd8..24b454104 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -1,6 +1,8 @@
#ifndef GUARD_M4A_H
#define GUARD_M4A_H
+#include "global.h"
+
#include "gba/m4a_internal.h"
void m4aSoundVSync(void);
diff --git a/include/mail.h b/include/mail.h
index 0a70237bf..5d6ad559b 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MAIL_H
#define GUARD_MAIL_H
+#include "global.h"
+
#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
diff --git a/include/mail_data.h b/include/mail_data.h
index bf6540bad..bbe695203 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MAIL_DATA_H
#define GUARD_MAIL_DATA_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/main.h b/include/main.h
index 82f85f881..84d356692 100644
--- a/include/main.h
+++ b/include/main.h
@@ -3,6 +3,8 @@
#include "global.h"
+#include "global.h"
+
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
diff --git a/include/malloc.h b/include/malloc.h
index 6efa8fbef..ae66aecb1 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MALLOC_H
#define GUARD_MALLOC_H
+#include "global.h"
+
#define HEAP_SIZE 0x1C000
#define malloc Alloc
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
index 8a9043a3f..cf9b005d9 100644
--- a/include/map_name_popup.h
+++ b/include/map_name_popup.h
@@ -1,11 +1,14 @@
#ifndef GUARD_MAP_NAME_POPUP_H
#define GUARD_MAP_NAME_POPUP_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void HideMapNamePopUpWindow(void);
+void sub_8098110(u8);
#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/map_obj_80688E4.h b/include/map_obj_80688E4.h
new file mode 100644
index 000000000..9ab76646d
--- /dev/null
+++ b/include/map_obj_80688E4.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MAP_OBJ_80688E4_H
+#define GUARD_MAP_OBJ_80688E4_H
+
+#include "global.h"
+
+void player_bitmagic(void);
+
+#endif //GUARD_MAP_OBJ_80688E4_H
diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h
index 27ffd18cb..ad90bed9c 100644
--- a/include/map_obj_8097404.h
+++ b/include/map_obj_8097404.h
@@ -5,6 +5,8 @@
#ifndef GUARD_MAP_OBJ_8097404_H
#define GUARD_MAP_OBJ_8097404_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
index cf1f714d7..c8e075658 100644
--- a/include/map_obj_lock.h
+++ b/include/map_obj_lock.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MAP_OBJ_LOCK_H
#define GUARD_MAP_OBJ_LOCK_H
+#include "global.h"
+
bool8 sub_80983C4(void);
void ScriptFreezeMapObjects(void);
bool8 sub_809847C(void);
diff --git a/include/menews_jisan.h b/include/menews_jisan.h
index 8dc1d0a99..4db5a7be2 100644
--- a/include/menews_jisan.h
+++ b/include/menews_jisan.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MENEWS_JISAN_H
#define GUARD_MENEWS_JISAN_H
+#include "global.h"
+
void sub_8146C30(u32 a0);
void sub_8146C88(void);
void sub_8146CA4(void);
diff --git a/include/menu.h b/include/menu.h
index 6a6e2e828..b932693f7 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "global.h"
+
#include "text.h"
#include "window.h"
@@ -32,7 +34,7 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs
s8 ProcessMenuInputNoWrap_(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
-void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
+void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void sub_810F4D8(u8 windowId, bool32 someBool);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f083a10e2..b193388e5 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MENU_HELPERS_H
#define GUARD_MENU_HELPERS_H
+#include "global.h"
+
// Exported type declarations
struct YesNoFuncTable {
@@ -16,5 +18,6 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_80BF708(void);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
index d0baac810..2350e2502 100644
--- a/include/menu_indicators.h
+++ b/include/menu_indicators.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MENU_INDICATORS_H
#define GUARD_MENU_INDICATORS_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index c81e743c7..62bcfdd38 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -1,6 +1,8 @@
#ifndef GUARD_METATILE_BEHAVIOR
#define GUARD_METATILE_BEHAVIOR
+#include "global.h"
+
bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpEast(u8 metatileBehavior);
bool8 MetatileBehavior_IsJumpWest(u8 metatileBehavior);
diff --git a/include/mevent.h b/include/mevent.h
index a611a98a8..7df669da3 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MEVENT_H
#define GUARD_MEVENT_H
+#include "global.h"
+
struct MysteryEventStruct * sub_8143D94(void);
bool32 sub_8143E1C(void);
diff --git a/include/money.h b/include/money.h
index 48b15db76..fa63e321c 100644
--- a/include/money.h
+++ b/include/money.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MONEY_H
#define GUARD_MONEY_H
+#include "global.h"
+
u32 GetMoney(u32* moneyPtr);
void SetMoney(u32* moneyPtr, u32 newValue);
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
diff --git a/include/multiboot.h b/include/multiboot.h
index d4700ff4e..4b4a3693a 100644
--- a/include/multiboot.h
+++ b/include/multiboot.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MULTIBOOT_H
#define GUARD_MULTIBOOT_H
+#include "global.h"
+
#define MULTIBOOT_MASTER_INFO 0x62
#define MULTIBOOT_CLIENT_INFO 0x72
#define MULTIBOOT_MASTER_START_PROBE 0x61
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
index ab23a8d00..1ba1464fa 100644
--- a/include/mystery_event_script.h
+++ b/include/mystery_event_script.h
@@ -1,6 +1,8 @@
#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
#define GUARD_MYSTERY_EVENT_SCRIPT_H
+#include "global.h"
+
u32 RunMysteryEventScript(u8 *);
void SetMysteryEventScriptStatus(u32 val);
u16 GetRecordMixingGift(void);
diff --git a/include/naming_screen.h b/include/naming_screen.h
index 3d69b834f..be2cf34f8 100644
--- a/include/naming_screen.h
+++ b/include/naming_screen.h
@@ -1,6 +1,8 @@
#ifndef GUARD_NAMING_SCREEN_H
#define GUARD_NAMING_SCREEN_H
+#include "global.h"
+
#define NAMING_SCREEN_PLAYER 0
#define NAMING_SCREEN_BOX 1
#define NAMING_SCREEN_CAUGHT_MON 2
diff --git a/include/new_game.h b/include/new_game.h
index 2088d1826..c495a9585 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -1,6 +1,8 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
+#include "global.h"
+
void WriteUnalignedWord(u32 var, u8 *dataPtr);
u32 ReadUnalignedWord(u8* dataPtr);
void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
diff --git a/include/overworld.h b/include/overworld.h
index a5fba0c10..05ff5e03c 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROM4_H
#define GUARD_ROM4_H
+#include "global.h"
+
#include "main.h"
struct UnkPlayerStruct
@@ -71,4 +73,16 @@ void mapldr_default(void);
void IncrementGameStat(u8);
u32 GetGameStat(u8);
+void sub_8056938(void);
+void sub_8055D5C(struct WarpData *);
+void sub_80572A8(void);
+void sub_805726C(void);
+void sub_8057430(void);
+void sub_8055DC4(void);
+
+extern u8 gUnknown_2031DD8;
+extern u8 gUnknown_2036E28;
+
+extern bool8 (* gUnknown_3005024)(void);
+
#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index d3bcd2271..3af0d5d7b 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -3,6 +3,8 @@
#include "global.h"
+#include "global.h"
+
#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
@@ -42,8 +44,8 @@ struct PaletteFadeControl
extern struct PaletteFadeControl gPaletteFade;
extern u32 gPlttBufferTransferPending;
extern u8 gPaletteDecompressionBuffer[];
-extern u16 gPlttBufferUnfaded[];
-extern u16 gPlttBufferFaded[];
+extern u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE];
+extern u16 gPlttBufferFaded[PLTT_BUFFER_SIZE];
void LoadCompressedPalette(const void *, u16, u16);
void LoadPalette(const void *, u16, u16);
@@ -67,5 +69,8 @@ void BeginFastPaletteFade(u8);
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void BlendPalettes(u32, u8, u16);
void BlendPalettesUnfaded(u32, u8, u16);
+void sub_80716F8(const u16 *, u16 *, u16, u8);
+
+extern struct PaletteFadeControl gPaletteFade;
#endif // GUARD_PALETTE_H
diff --git a/include/party_menu.h b/include/party_menu.h
index c787bafb1..19e1f7d4e 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
+#include "global.h"
+
enum {
AILMENT_NONE,
AILMENT_PSN,
@@ -14,5 +16,6 @@ bool8 pokemon_has_move(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
+u16 ItemIdToBattleMoveId(u16 itemId);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/play_time.h b/include/play_time.h
index 49091f4b1..233dbadda 100644
--- a/include/play_time.h
+++ b/include/play_time.h
@@ -1,6 +1,8 @@
#ifndef GUARD_PLAY_TIME_H
#define GUARD_PLAY_TIME_H
+#include "global.h"
+
void PlayTimeCounter_Reset(void);
void PlayTimeCounter_Start(void);
void PlayTimeCounter_Stop(void);
diff --git a/include/player_pc.h b/include/player_pc.h
index b14d1ede3..e14e5e9da 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -1,6 +1,8 @@
#ifndef GUARD_PLAYER_PC_H
#define GUARD_PLAYER_PC_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/pokeball.h b/include/pokeball.h
index 84178b5b2..10a9529b9 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEBALL_H
#define GUARD_POKEBALL_H
+#include "global.h"
+
enum
{
BALL_POKE,
diff --git a/include/pokedex.h b/include/pokedex.h
index 236feac45..ca642ed1a 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEDEX_H
#define GUARD_POKEDEX_H
+#include "global.h"
+
void ResetPokedex(void);
void CopyMonCategoryText(u16 species, u8 *dst);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
diff --git a/include/pokemon.h b/include/pokemon.h
index e15172dd5..e8782af98 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
+#include "global.h"
+
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
@@ -570,8 +572,14 @@ void DecryptBoxMon(struct BoxPokemon *boxMon);
// but they are not used since some code erroneously omits the third arg.
// u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data);
// u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data);
+
+#ifdef IS_POKEMON_C
+u32 GetMonData(struct Pokemon *, s32, u8 *);
+u32 GetBoxMonData(struct BoxPokemon *, s32, u8 *);
+#else
u32 GetMonData();
u32 GetBoxMonData();
+#endif // IS_POKEMON_C
void SetMonData(struct Pokemon *mon, s32 field, const void *data);
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index 5c9862d57..cffc9780b 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_3_H
#define GUARD_POKEMON_3_H
+#include "global.h"
+
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index b6d21823e..da58a2d83 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
+#include "global.h"
+
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
u16 sub_80D2E84(u16 speciesId);
diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h
index 505cc0f25..e02d976b2 100644
--- a/include/pokemon_item_effects.h
+++ b/include/pokemon_item_effects.h
@@ -55,8 +55,8 @@ struct PokemonItemEffect
/*field 6
u8 value;
};
-*/
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
+*/
#endif // GUARD_POKEMON_ITEM_EFFECTS
diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h
index f61286bd4..3fa448cbb 100644
--- a/include/pokemon_size_record.h
+++ b/include/pokemon_size_record.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKEMON_SIZE_RECORD_H
#define GUARD_POKEMON_SIZE_RECORD_H
+#include "global.h"
+
void InitSeedotSizeRecord(void);
void GetSeedotSizeRecordInfo(void);
void CompareSeedotSize(void);
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9fcfdba96..5b2d2052b 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -1,13 +1,16 @@
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
#define GUARD_POKEMON_STORAGE_SYSTEM_H
+#include "global.h"
+
#define TOTAL_BOXES_COUNT 14
#define IN_BOX_COUNT 30
u8* GetBoxNamePtr(u8 boxNumber);
-struct BoxPokemon *GetBoxedMonPtr(u8, u8);
-void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
+struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 monPosition);
+void SetBoxMonNickFromAnyBox(u8 boxId, u8 monPosition, u8 * newNick);
void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
+void sub_808BCB4(u8 boxId, u8 monPosition);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokenav.h b/include/pokenav.h
index 06676610a..ad95873b1 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -1,6 +1,8 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
+#include "global.h"
+
bool8 sub_81D5C18(void);
#endif //GUARD_POKENAV_H
diff --git a/include/quest_log.h b/include/quest_log.h
new file mode 100644
index 000000000..90eb290ca
--- /dev/null
+++ b/include/quest_log.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_QUEST_LOG_H
+#define GUARD_QUEST_LOG_H
+
+#include "global.h"
+
+struct UnkStruct_3005E90
+{
+ u8 unk_0;
+ u8 unk_1_0:1;
+ u8 unk_1_1:1;
+ u8 unk_1_2:1;
+ u8 unk_1_3:1;
+ u8 unk_1_4:1;
+ u8 unk_2;
+};
+
+extern u8 gUnknown_3005E88;
+extern u16 gUnknown_3005E8C;
+extern struct UnkStruct_3005E90 gUnknown_3005E90;
+extern struct UnkStruct_203AE98 * gUnknown_3005E94;
+
+#endif //GUARD_QUEST_LOG_H
diff --git a/include/quest_log_8150454.h b/include/quest_log_8150454.h
new file mode 100644
index 000000000..adf5d193e
--- /dev/null
+++ b/include/quest_log_8150454.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_QUEST_LOG_8150454_H
+#define GUARD_QUEST_LOG_8150454_H
+
+#include "global.h"
+
+void sub_8150454(void);
+
+#endif //GUARD_QUEST_LOG_8150454_H
diff --git a/include/random.h b/include/random.h
index 79a9d71dc..139316f9d 100644
--- a/include/random.h
+++ b/include/random.h
@@ -1,6 +1,8 @@
#ifndef GUARD_RANDOM_H
#define GUARD_RANDOM_H
+#include "global.h"
+
extern u32 gRngValue;
extern u32 gRng2Value;
diff --git a/include/region_map.h b/include/region_map.h
index 91384d166..93ad5541d 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -1,6 +1,8 @@
#ifndef GUARD_REGION_MAP_H
#define GUARD_REGION_MAP_H
+#include "global.h"
+
#include "bg.h"
// Exported type declarations
@@ -310,5 +312,6 @@ void CreateRegionMapPlayerIcon(u16 x, u16 y);
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
+void sub_80C4DF8(u8 *, u8);
#endif //GUARD_REGION_MAP_H
diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h
index c22135280..9d1ec30f2 100644
--- a/include/reshow_battle_screen.h
+++ b/include/reshow_battle_screen.h
@@ -1,6 +1,8 @@
#ifndef GUARD_RESHOW_BATTLE_SCREEN_H
#define GUARD_RESHOW_BATTLE_SCREEN_H
+#include "global.h"
+
void nullsub_35(void);
void ReshowBattleScreenAfterMenu(void);
diff --git a/include/roamer.h b/include/roamer.h
index ba1b09b54..5ec0a17fc 100644
--- a/include/roamer.h
+++ b/include/roamer.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROAMER_H
#define GUARD_ROAMER_H
+#include "global.h"
+
void ClearRoamerData(void);
void ClearRoamerLocationData(void);
void InitRoamer(void);
diff --git a/include/rom6.h b/include/rom6.h
index 6d20752e2..753c07305 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
+#include "global.h"
+
void sub_81357FC(u8, void(void));
u8 GetLeadMonIndex(void);
u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h
index 1d0626b2b..048825778 100644
--- a/include/rom_818CFC8.h
+++ b/include/rom_818CFC8.h
@@ -5,6 +5,8 @@
#ifndef GUARD_ROM_818CFC8_H
#define GUARD_ROM_818CFC8_H
+#include "global.h"
+
bool8 InBattlePyramid(void);
u8 sub_81AAA40(void);
diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h
index 5b4f80249..fa439d8da 100644
--- a/include/rom_81BE66C.h
+++ b/include/rom_81BE66C.h
@@ -5,6 +5,8 @@
#ifndef GUARD_ROM_81BE66C_H
#define GUARD_ROM_81BE66C_H
+#include "global.h"
+
bool32 InTrainerHill(void);
bool8 FieldObjectIsFarawayIslandMew(struct MapObject *);
u32 sub_81D427C(void);
diff --git a/include/safari_zone.h b/include/safari_zone.h
index 9a81894b8..b20555a8c 100644
--- a/include/safari_zone.h
+++ b/include/safari_zone.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SAFARI_ZONE_H
#define GUARD_SAFARI_ZONE_H
+#include "global.h"
+
extern u8 gNumSafariBalls;
bool32 GetSafariZoneFlag(void);
diff --git a/include/save.h b/include/save.h
index 38ad63170..f547230b9 100644
--- a/include/save.h
+++ b/include/save.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SAVE_H
#define GUARD_SAVE_H
+#include "global.h"
+
#define NUM_SECTORS 32 // defined in agb_flash but not in a header
#define SAVE_STATUS_EMPTY 0
@@ -117,6 +119,8 @@ u8 sub_80DA45C(void);
bool8 sub_80DA4A0(void);
u8 Save_LoadGameData(u8 a1);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
+u32 sub_8153634(u8 sector, u8* src);
+void sub_8153688(u8 taskId);
u32 sub_80DA5E0(u8 sector, u8* src);
void sub_80DA634(u8 taskId);
diff --git a/include/save_location.h b/include/save_location.h
index 95b3a7d7d..69b39ea53 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SAVE_LOCATION_H
#define GUARD_SAVE_LOCATION_H
+#include "global.h"
+
bool32 sub_81AFCEC(void);
void TrySetMapSaveWarpStatus(void);
void sub_81AFDA0(void);
diff --git a/include/script.h b/include/script.h
index 2b5f8c2ce..9e26b8a28 100644
--- a/include/script.h
+++ b/include/script.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPT_H
#define GUARD_SCRIPT_H
+#include "global.h"
+
struct ScriptContext;
typedef bool8 (*ScrCmdFunc)(struct ScriptContext *);
diff --git a/include/script_menu.h b/include/script_menu.h
index 717eda041..1e95570b3 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
+#include "global.h"
+
extern const u8 *const gUnknown_0858BAF0[9];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
diff --git a/include/script_movement.h b/include/script_movement.h
index 4c3fa6002..ae446812e 100644
--- a/include/script_movement.h
+++ b/include/script_movement.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPT_MOVEMENT_H
#define GUARD_SCRIPT_MOVEMENT_H
+#include "global.h"
+
bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *);
bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8);
void sub_80D338C(void);
diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h
index 8dd7ed0c0..8a5bb12e1 100644
--- a/include/script_pokemon_80F8.h
+++ b/include/script_pokemon_80F8.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPTPOKE80F8_H
#define GUARD_SCRIPTPOKE80F8_H
+#include "global.h"
+
void ShowContestWinner(void);
u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
u8 ScriptGiveEgg(u16);
diff --git a/include/script_pokemon_81B9.h b/include/script_pokemon_81B9.h
index 1b8563ee6..d49095fcc 100644
--- a/include/script_pokemon_81B9.h
+++ b/include/script_pokemon_81B9.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPTPOKE81B9_H
#define GUARD_SCRIPTPOKE81B9_H
+#include "global.h"
+
void sub_81B9404(void);
#endif
diff --git a/include/shop.h b/include/shop.h
index d3e86408c..1046a590a 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SHOP_H
#define GUARD_SHOP_H
+#include "global.h"
+
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
void CreatePokemartMenu(const u16 *);
diff --git a/include/slot_machine.h b/include/slot_machine.h
index 8334e56fc..5c96384fa 100644
--- a/include/slot_machine.h
+++ b/include/slot_machine.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SLOT_MACHINE_H
#define GUARD_SLOT_MACHINE_H
+#include "global.h"
+
void PlaySlotMachine(u8, void *);
#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/songs.h b/include/songs.h
index 5a1fff00c..f8d0fbf5b 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SONGS_H
#define GUARD_SONGS_H
+#include "global.h"
+
enum
{
/*0x00*/ SE_STOP,
diff --git a/include/sound.h b/include/sound.h
index 7d47b7456..34fdfc839 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SOUND_H
#define GUARD_SOUND_H
+#include "global.h"
+
void InitMapMusic(void);
void MapMusicMain(void);
void ResetMapMusic(void);
diff --git a/include/sprite.h b/include/sprite.h
index 170d77c3f..bc47f7100 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SPRITE_H
#define GUARD_SPRITE_H
+#include "global.h"
+
#define MAX_SPRITES 64
struct SpriteSheet
diff --git a/include/start_menu.h b/include/start_menu.h
index 6c7cb3237..f5b38ee5e 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_START_MENU_H
#define GUARD_START_MENU_H
+#include "global.h"
+
void AppendToList(u8* list, u8* pos, u8 newEntry);
#endif // GUARD_START_MENU_H
diff --git a/include/string_util.h b/include/string_util.h
index 2354c9ded..32e74e031 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_STRING_UTIL_H
#define GUARD_STRING_UTIL_H
+#include "global.h"
+
enum StringConvertMode
{
STR_CONV_MODE_LEFT_ALIGN,
diff --git a/include/strings.h b/include/strings.h
index 8b218e1e9..90c84c9b9 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,6 +1,8 @@
#ifndef GUARD_STRINGS_H
#define GUARD_STRINGS_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/task.h b/include/task.h
index a199ba128..cd3deb544 100644
--- a/include/task.h
+++ b/include/task.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TASK_H
#define GUARD_TASK_H
+#include "global.h"
+
#define NUM_TASKS 16
typedef void (*TaskFunc)(u8 taskId);
diff --git a/include/text.h b/include/text.h
index 7853598f8..2bda590c1 100644
--- a/include/text.h
+++ b/include/text.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TEXT_H
#define GUARD_TEXT_H
+#include "global.h"
+
#define CHAR_SPACE 0x00
#define CHAR_0 0xA1
#define CHAR_QUESTION_MARK 0xAC
diff --git a/include/text_window.h b/include/text_window.h
index 3514296c1..72ce50efc 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TEXT_WINDOW_H
#define GUARD_TEXT_WINDOW_H
+#include "global.h"
+
struct TilesPal
{
u32* tiles;
diff --git a/include/tilesets.h b/include/tilesets.h
index 70609c046..03274be60 100644
--- a/include/tilesets.h
+++ b/include/tilesets.h
@@ -1,6 +1,8 @@
#ifndef GUARD_tilesets_H
#define GUARD_tilesets_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
diff --git a/include/trainer_classes.h b/include/trainer_classes.h
index e5e26b359..3b93c3814 100644
--- a/include/trainer_classes.h
+++ b/include/trainer_classes.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRAINER_CLASSES_H
#define GUARD_TRAINER_CLASSES_H
+#include "global.h"
+
enum
{
CLASS_PKMN_TRAINER0, // 0
diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h
index 3259bec88..8855041a5 100644
--- a/include/trainer_front_sprites.h
+++ b/include/trainer_front_sprites.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRAINER_FRONT_SPRITES_H
#define GUARD_TRAINER_FRONT_SPRITES_H
+#include "global.h"
+
enum
{
TRAINER_FRONT_PIC_HIKER,
@@ -54,8 +56,8 @@ enum
TRAINER_FRONT_PIC_SCHOOL_KID_M,
TRAINER_FRONT_PIC_SCHOOL_KID_F,
TRAINER_FRONT_PIC_SR_JR,
- TRAINER_FRONT_PIC_POKÉFAN_M,
- TRAINER_FRONT_PIC_POKÉFAN_F,
+ TRAINER_FRONT_PIC_POKéFAN_M,
+ TRAINER_FRONT_PIC_POKéFAN_F,
TRAINER_FRONT_PIC_YOUNGSTER,
TRAINER_FRONT_PIC_WALLACE,
TRAINER_FRONT_PIC_FISHERMAN,
diff --git a/include/trainer_ids.h b/include/trainer_ids.h
index 65c80187f..ebcb6e4e5 100644
--- a/include/trainer_ids.h
+++ b/include/trainer_ids.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRAINER_IDS_H
#define GUARD_TRAINER_IDS_H
+#include "global.h"
+
#define NO_OF_TRAINERS 854
#define TRAINER_ID_STEVEN 804
diff --git a/include/trainer_see.h b/include/trainer_see.h
index ab035d9f8..f87189377 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRAINER_SEE_H
#define GUARD_TRAINER_SEE_H
+#include "global.h"
+
void sub_80B4578(struct MapObject *);
u8 sub_80B47BC(void);
void sub_8155D78(struct MapObject *);
diff --git a/include/trig.h b/include/trig.h
index a2f98a3e6..92388e05c 100644
--- a/include/trig.h
+++ b/include/trig.h
@@ -1,6 +1,8 @@
#ifndef GUARD_TRIG_H
#define GUARD_TRIG_H
+#include "global.h"
+
extern const s16 gSineTable[];
s16 Sin(s16 index, s16 amplitude);
diff --git a/include/unk_8159F40.h b/include/unk_8159F40.h
new file mode 100644
index 000000000..f0e85d416
--- /dev/null
+++ b/include/unk_8159F40.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_UNK_8159F40_H
+#define GUARD_UNK_8159F40_H
+
+#include "global.h"
+
+void sub_815A008(struct QuestLog *);
+void sub_815A1F8(struct QuestLog *, struct MapObjectTemplate *);
+
+#endif //GUARD_UNK_8159F40_H
diff --git a/include/unk_text_util.h b/include/unk_text_util.h
index 72243a90e..750c0541e 100644
--- a/include/unk_text_util.h
+++ b/include/unk_text_util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_UNK_TEXT_UTIL_H
#define GUARD_UNK_TEXT_UTIL_H
+#include "global.h"
+
void UnkTextUtil_Reset(void);
void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
diff --git a/include/unknown_task.h b/include/unknown_task.h
index 9c6968c30..429e58aad 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -1,6 +1,8 @@
#ifndef GUARD_unknown_task_H
#define GUARD_unknown_task_H
+#include "global.h"
+
// Exported type declarations
struct UnknownTaskStruct
{
diff --git a/include/util.h b/include/util.h
index 63887b13f..a22cc77fa 100644
--- a/include/util.h
+++ b/include/util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_UTIL_H
#define GUARD_UTIL_H
+#include "global.h"
+
#include "sprite.h"
extern const u8 gMiscBlank_Gfx[]; // unused in Emerald
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index 55bbaa7dd..2186e0b4f 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -1,6 +1,8 @@
#ifndef GUARD_WILD_ENCOUNTER_H
#define GUARD_WILD_ENCOUNTER_H
+#include "global.h"
+
#define LAND_WILD_COUNT 12
#define WATER_WILD_COUNT 5
#define ROCK_WILD_COUNT 5
@@ -40,5 +42,6 @@ void FishingWildEncounter(u8 rod);
u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
+void sub_8082740(u8);
#endif // GUARD_WILD_ENCOUNTER_H
diff --git a/include/window.h b/include/window.h
index 1e29119ea..2705a7895 100644
--- a/include/window.h
+++ b/include/window.h
@@ -1,6 +1,8 @@
#ifndef GUARD_WINDOW_H
#define GUARD_WINDOW_H
+#include "global.h"
+
enum
{
WINDOW_PRIORITY,