summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSwastik Baranwal <swstkbaranwal@gmail.com>2018-12-27 16:00:22 +0530
committerGitHub <noreply@github.com>2018-12-27 16:00:22 +0530
commit95c3652551aacf612a19336e17ce00a2ec1046d2 (patch)
tree882caaf9875700cccb73e391a7a014a782e579fa /include
parent2ed26ab8fcd4e302ab4aac6bb01dba7b5c985914 (diff)
parentd5de7960a330953b3a7d7684122997c0d8aedcf1 (diff)
Merge pull request #2 from pret/master
Taking files
Diffstat (limited to 'include')
-rw-r--r--include/battle.h10
-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.h4
-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.h4
-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.h8
-rw-r--r--include/bike.h6
-rw-r--r--include/blend_palette.h2
-rw-r--r--include/calculate_base_damage.h2
-rw-r--r--include/cereader_tool.h9
-rw-r--r--include/coins.h2
-rw-r--r--include/config.h2
-rw-r--r--include/constants/items.h7
-rw-r--r--include/constants/vars.h10
-rw-r--r--include/data2.h2
-rw-r--r--include/daycare.h2
-rw-r--r--include/decompress.h4
-rw-r--r--include/diploma.h2
-rw-r--r--include/dma3.h2
-rw-r--r--include/easy_chat.h4
-rw-r--r--include/egg_hatch.h2
-rw-r--r--include/event_data.h10
-rw-r--r--include/event_scripts.h328
-rw-r--r--include/evolution_graphics.h2
-rw-r--r--include/evolution_scene.h2
-rw-r--r--include/fame_checker.h48
-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.h3
-rw-r--r--include/field_fadetransition.h4
-rw-r--r--include/field_ground_effect.h2
-rw-r--r--include/field_map_obj.h9
-rw-r--r--include/field_map_obj_helpers.h2
-rw-r--r--include/field_message_box.h2
-rw-r--r--include/field_player_avatar.h8
-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/gba/macro.h3
-rw-r--r--include/global.berry.h1
-rw-r--r--include/global.h277
-rw-r--r--include/gpu_regs.h2
-rw-r--r--include/graphics.h9
-rw-r--r--include/hall_of_fame.h2
-rw-r--r--include/heal_location.h2
-rw-r--r--include/help_system.h10
-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.h5
-rw-r--r--include/item_menu_icons.h2
-rw-r--r--include/link.h14
-rw-r--r--include/link_rfu.h9
-rw-r--r--include/list_menu.h33
-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.h3
-rw-r--r--include/main.h8
-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.h19
-rw-r--r--include/metatile_behavior.h2
-rw-r--r--include/mevent.h46
-rw-r--r--include/mevent_server.h95
-rw-r--r--include/money.h2
-rw-r--r--include/multiboot.h2
-rw-r--r--include/mystery_event_msg.h18
-rw-r--r--include/mystery_event_script.h5
-rw-r--r--include/mystery_gift_menu.h9
-rw-r--r--include/naming_screen.h2
-rw-r--r--include/new_game.h2
-rw-r--r--include/new_menu_helpers.h3
-rw-r--r--include/overworld.h17
-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.h7
-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.h25
-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/scanline_effect.h6
-rw-r--r--include/script.h5
-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.h4
-rw-r--r--include/task.h2
-rw-r--r--include/text.h26
-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_815c27c.h11
-rw-r--r--include/unk_text_util.h2
-rw-r--r--include/unknown_task.h2
-rw-r--r--include/util.h6
-rw-r--r--include/wild_encounter.h3
-rw-r--r--include/window.h2
156 files changed, 1348 insertions, 86 deletions
diff --git a/include/battle.h b/include/battle.h
index ee707f78b..c86bc9232 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"
@@ -602,7 +604,11 @@ struct BattleStruct
u8 hpScale;
u8 synchronizeMoveEffect;
u8 field_B3;
- void (*savedCallback)(void);
+ u8 field_B4;
+ u8 field_B5;
+ u8 field_B6;
+ u8 field_B7;
+ // void (*savedCallback)(void);
u16 usedHeldItems[BATTLE_BANKS_COUNT];
u8 chosenItem[4]; // why is this an u8?
u8 AI_itemType[2];
@@ -977,4 +983,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..94c9876f3 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);
@@ -9,5 +11,7 @@ u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16
u16 sub_818D8F0(u16 spriteId);
u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u8 sub_818D97C(u8 a0, u8 a1);
+u8 sub_810C2A4(u16, u8, s16, s16, u8, u16);
+void sub_810C2E8(u16);
#endif //GUARD_BATTLE_DOME_CARDS_H
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..ec00d1f96 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,6 +1,10 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
+#include "global.h"
+
u16 sub_8164FCC(u8, u8);
+void sub_80E7524(u32 *);
+void ValidateEReaderTrainer(void);
#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..003ffc916 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;
@@ -75,9 +77,9 @@ void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
-void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
-void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
-void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
+void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
+void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
+void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
diff --git a/include/bike.h b/include/bike.h
new file mode 100644
index 000000000..468c48273
--- /dev/null
+++ b/include/bike.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BIKE_H
+#define GUARD_BIKE_H
+
+void sub_80BD620(u32 unkC, u32 unk10);
+
+#endif //GUARD_BIKE_H
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/cereader_tool.h b/include/cereader_tool.h
new file mode 100644
index 000000000..28ef526eb
--- /dev/null
+++ b/include/cereader_tool.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_CEREADER_TOOL_H
+#define GUARD_CEREADER_TOOL_H
+
+#include "global.h"
+
+bool32 sub_815D794(u8 *);
+u8 sub_815D6B4(u8 *);
+
+#endif //GUARD_CEREADER_TOOL_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/constants/vars.h b/include/constants/vars.h
index 6dc8d0ccd..c9340a3b4 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -51,12 +51,12 @@
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
-#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
+#define VAR_0x402F 0x402F
-#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
-#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
-#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
-#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
+#define VAR_0x4030 0x4030
+#define VAR_0x4031 0x4031
+#define VAR_0x4032 0x4032
+#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
#define VAR_0x4034 0x4034
#define VAR_0x4035 0x4035
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..36672dcfd 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];
@@ -30,4 +32,6 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src
u32 sub_8034974(const u8 *ptr);
+void sub_800F034(const struct CompressedSpriteSheet *src);
+
#endif // GUARD_DECOMPRESS_H
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..bd5c9a026 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
{
@@ -35,5 +37,7 @@ bool32 sub_811F8D8(u16 word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
bool8 ECWord_CheckIfOutsideOfValidRange(u16 word);
+void sub_80BDE28(void);
+void EnableRareWord(u8);
#endif // GUARD_EASYCHAT_H
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..13e388bf2 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,11 @@ 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);
+void sub_806E2D0(void);
+void sub_806E370(void);
extern u16 gSpecialVar_0x8000;
extern u16 gSpecialVar_0x8001;
@@ -51,6 +56,7 @@ extern u16 gSpecialVar_MonBoxId;
extern u16 gSpecialVar_MonBoxPos;
extern u16 gSpecialVar_0x8014;
-extern u16 gUnknown_20370D0;
+extern u16 gSpecialVar_Result;
+extern u16 gSpecialVar_0x8004;
#endif // GUARD_EVENT_DATA_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 03329ba34..b909566d0 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,8 +375,334 @@ 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[];
extern const u8 gUnknown_81C1429[];
+
+// fame_checker
+
+extern const u8 gFameCheckerFlavorText_ProfOak0[];
+extern const u8 gFameCheckerFlavorText_ProfOak1[];
+extern const u8 gFameCheckerFlavorText_ProfOak2[];
+extern const u8 gFameCheckerFlavorText_ProfOak3[];
+extern const u8 gFameCheckerFlavorText_ProfOak4[];
+extern const u8 gFameCheckerFlavorText_ProfOak5[];
+extern const u8 gFameCheckerFlavorText_Daisy0[];
+extern const u8 gFameCheckerFlavorText_Daisy1[];
+extern const u8 gFameCheckerFlavorText_Daisy2[];
+extern const u8 gFameCheckerFlavorText_Daisy3[];
+extern const u8 gFameCheckerFlavorText_Daisy4[];
+extern const u8 gFameCheckerFlavorText_Daisy5[];
+extern const u8 gFameCheckerFlavorText_Brock0[];
+extern const u8 gFameCheckerFlavorText_Brock1[];
+extern const u8 gFameCheckerFlavorText_Brock2[];
+extern const u8 gFameCheckerFlavorText_Brock3[];
+extern const u8 gFameCheckerFlavorText_Brock4[];
+extern const u8 gFameCheckerFlavorText_Brock5[];
+extern const u8 gFameCheckerFlavorText_Misty0[];
+extern const u8 gFameCheckerFlavorText_Misty1[];
+extern const u8 gFameCheckerFlavorText_Misty2[];
+extern const u8 gFameCheckerFlavorText_Misty3[];
+extern const u8 gFameCheckerFlavorText_Misty4[];
+extern const u8 gFameCheckerFlavorText_Misty5[];
+extern const u8 gFameCheckerFlavorText_LtSurge0[];
+extern const u8 gFameCheckerFlavorText_LtSurge1[];
+extern const u8 gFameCheckerFlavorText_LtSurge2[];
+extern const u8 gFameCheckerFlavorText_LtSurge3[];
+extern const u8 gFameCheckerFlavorText_LtSurge4[];
+extern const u8 gFameCheckerFlavorText_LtSurge5[];
+extern const u8 gFameCheckerFlavorText_Erika0[];
+extern const u8 gFameCheckerFlavorText_Erika1[];
+extern const u8 gFameCheckerFlavorText_Erika2[];
+extern const u8 gFameCheckerFlavorText_Erika3[];
+extern const u8 gFameCheckerFlavorText_Erika4[];
+extern const u8 gFameCheckerFlavorText_Erika5[];
+extern const u8 gFameCheckerFlavorText_Koga0[];
+extern const u8 gFameCheckerFlavorText_Koga1[];
+extern const u8 gFameCheckerFlavorText_Koga2[];
+extern const u8 gFameCheckerFlavorText_Koga3[];
+extern const u8 gFameCheckerFlavorText_Koga4[];
+extern const u8 gFameCheckerFlavorText_Koga5[];
+extern const u8 gFameCheckerFlavorText_Sabrina0[];
+extern const u8 gFameCheckerFlavorText_Sabrina1[];
+extern const u8 gFameCheckerFlavorText_Sabrina2[];
+extern const u8 gFameCheckerFlavorText_Sabrina3[];
+extern const u8 gFameCheckerFlavorText_Sabrina4[];
+extern const u8 gFameCheckerFlavorText_Sabrina5[];
+extern const u8 gFameCheckerFlavorText_Blaine0[];
+extern const u8 gFameCheckerFlavorText_Blaine1[];
+extern const u8 gFameCheckerFlavorText_Blaine2[];
+extern const u8 gFameCheckerFlavorText_Blaine3[];
+extern const u8 gFameCheckerFlavorText_Blaine4[];
+extern const u8 gFameCheckerFlavorText_Blaine5[];
+extern const u8 gFameCheckerFlavorText_Lorelei0[];
+extern const u8 gFameCheckerFlavorText_Lorelei1[];
+extern const u8 gFameCheckerFlavorText_Lorelei2[];
+extern const u8 gFameCheckerFlavorText_Lorelei3[];
+extern const u8 gFameCheckerFlavorText_Lorelei4[];
+extern const u8 gFameCheckerFlavorText_Lorelei5[];
+extern const u8 gFameCheckerFlavorText_Bruno0[];
+extern const u8 gFameCheckerFlavorText_Bruno1[];
+extern const u8 gFameCheckerFlavorText_Bruno2[];
+extern const u8 gFameCheckerFlavorText_Bruno3[];
+extern const u8 gFameCheckerFlavorText_Bruno4[];
+extern const u8 gFameCheckerFlavorText_Bruno5[];
+extern const u8 gFameCheckerFlavorText_Agatha0[];
+extern const u8 gFameCheckerFlavorText_Agatha1[];
+extern const u8 gFameCheckerFlavorText_Agatha2[];
+extern const u8 gFameCheckerFlavorText_Agatha3[];
+extern const u8 gFameCheckerFlavorText_Agatha4[];
+extern const u8 gFameCheckerFlavorText_Agatha5[];
+extern const u8 gFameCheckerFlavorText_Lance0[];
+extern const u8 gFameCheckerFlavorText_Lance1[];
+extern const u8 gFameCheckerFlavorText_Lance2[];
+extern const u8 gFameCheckerFlavorText_Lance3[];
+extern const u8 gFameCheckerFlavorText_Lance4[];
+extern const u8 gFameCheckerFlavorText_Lance5[];
+extern const u8 gFameCheckerFlavorText_Bill0[];
+extern const u8 gFameCheckerFlavorText_Bill1[];
+extern const u8 gFameCheckerFlavorText_Bill2[];
+extern const u8 gFameCheckerFlavorText_Bill3[];
+extern const u8 gFameCheckerFlavorText_Bill4[];
+extern const u8 gFameCheckerFlavorText_Bill5[];
+extern const u8 gFameCheckerFlavorText_MrFuji0[];
+extern const u8 gFameCheckerFlavorText_MrFuji1[];
+extern const u8 gFameCheckerFlavorText_MrFuji2[];
+extern const u8 gFameCheckerFlavorText_MrFuji3[];
+extern const u8 gFameCheckerFlavorText_MrFuji4[];
+extern const u8 gFameCheckerFlavorText_MrFuji5[];
+extern const u8 gFameCheckerFlavorText_Giovanni0[];
+extern const u8 gFameCheckerFlavorText_Giovanni1[];
+extern const u8 gFameCheckerFlavorText_Giovanni2[];
+extern const u8 gFameCheckerFlavorText_Giovanni3[];
+extern const u8 gFameCheckerFlavorText_Giovanni4[];
+extern const u8 gFameCheckerFlavorText_Giovanni5[];
+extern const u8 gFameCheckerPersonName_ProfOak[];
+extern const u8 gFameCheckerPersonQuote_ProfOak[];
+extern const u8 gFameCheckerPersonName_Daisy[];
+extern const u8 gFameCheckerPersonQuote_Daisy[];
+extern const u8 gFameCheckerPersonName_Brock[];
+extern const u8 gFameCheckerPersonQuote_Brock[];
+extern const u8 gFameCheckerPersonName_Misty[];
+extern const u8 gFameCheckerPersonQuote_Misty[];
+extern const u8 gFameCheckerPersonName_LtSurge[];
+extern const u8 gFameCheckerPersonQuote_LtSurge[];
+extern const u8 gFameCheckerPersonName_Erika[];
+extern const u8 gFameCheckerPersonQuote_Erika[];
+extern const u8 gFameCheckerPersonName_Koga[];
+extern const u8 gFameCheckerPersonQuote_Koga[];
+extern const u8 gFameCheckerPersonName_Sabrina[];
+extern const u8 gFameCheckerPersonQuote_Sabrina[];
+extern const u8 gFameCheckerPersonName_Blaine[];
+extern const u8 gFameCheckerPersonQuote_Blaine[];
+extern const u8 gFameCheckerPersonName_Lorelei[];
+extern const u8 gFameCheckerPersonQuote_Lorelei[];
+extern const u8 gFameCheckerPersonName_Bruno[];
+extern const u8 gFameCheckerPersonQuote_Bruno[];
+extern const u8 gFameCheckerPersonName_Agatha[];
+extern const u8 gFameCheckerPersonQuote_Agatha[];
+extern const u8 gFameCheckerPersonName_Lance[];
+extern const u8 gFameCheckerPersonQuote_Lance[];
+extern const u8 gFameCheckerPersonName_Bill[];
+extern const u8 gFameCheckerPersonQuote_Bill[];
+extern const u8 gFameCheckerPersonName_MrFuji[];
+extern const u8 gFameCheckerPersonQuote_MrFuji[];
+extern const u8 gFameCheckerPersonName_Giovanni[];
+extern const u8 gFameCheckerPersonQuote_Giovanni[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_ProfOak5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Daisy5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Brock5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Misty5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_LtSurge5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Erika5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Koga5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Sabrina5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Blaine5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lorelei5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bruno5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Agatha5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Lance5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Bill5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_MrFuji5[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni0[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni1[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni2[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni3[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni4[];
+extern const u8 gFameCheckerFlavorTextOriginLocation_Giovanni5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_ProfOak5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Daisy5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Brock5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Misty5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_LtSurge5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Erika5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Koga5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Sabrina5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Blaine5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lorelei5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bruno5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Agatha5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Lance5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Bill5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_MrFuji5[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni0[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni1[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni2[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni3[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[];
+extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
+
#endif //GUARD_EVENT_SCRIPTS_H
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/fame_checker.h b/include/fame_checker.h
new file mode 100644
index 000000000..257431d8b
--- /dev/null
+++ b/include/fame_checker.h
@@ -0,0 +1,48 @@
+#ifndef GUARD_FAME_CHECKER_H
+#define GUARD_FAME_CHECKER_H
+
+#include "main.h"
+
+enum {
+ FAMECHECKER_OAK,
+ FAMECHECKER_DAISY,
+ FAMECHECKER_BROCK,
+ FAMECHECKER_MISTY,
+ FAMECHECKER_LTSURGE,
+ FAMECHECKER_ERIKA,
+ FAMECHECKER_KOGA,
+ FAMECHECKER_SABRINA,
+ FAMECHECKER_BLAINE,
+ FAMECHECKER_LORELEI,
+ FAMECHECKER_BRUNO,
+ FAMECHECKER_AGATHA,
+ FAMECHECKER_LANCE,
+ FAMECHECKER_BILL,
+ FAMECHECKER_MRFUJI,
+ FAMECHECKER_GIOVANNI,
+ NUM_FAMECHECKER_PERSONS
+};
+
+enum {
+ FCPICKSTATE_NO_DRAW,
+ FCPICKSTATE_SILHOUETTE,
+ FCPICKSTATE_COLORED
+};
+
+enum {
+ FCWINDOWID_LIST,
+ FCWINDOWID_UIHELP,
+ FCWINDOWID_MSGBOX,
+ FCWINDOWID_ICONDESC
+};
+
+extern struct ListMenuTemplate gFameChecker_ListMenuTemplate;
+extern u8 gIconDescriptionBoxIsOpen;
+
+void ResetFameChecker(void);
+void FullyUnlockFameChecker(void);
+void UseFameChecker(MainCallback savedCallback);
+void SetFlavorTextFlagFromSpecialVars(void);
+void UpdatePickStateFromSpecialVar8005(void);
+
+#endif //GUARD_FAME_CHECKER_H
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..5cd29fc5b 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
@@ -12,5 +14,6 @@
// Exported ROM declarations
u8 sub_8154228(void);
bool8 sub_8155DA0(struct MapObject *);
+void sub_80DC44C(u8, u8);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
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..d2ec58979 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,9 +78,16 @@ 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);
+u8 sub_80634F0(u8 direction);
+u8 sub_8063500(u8 a0);
+void sub_805F060(struct MapObject *mapObject, u8 a1);
+u8 sub_805EB44(u8, u8, s16, s16);
+void npc_paltag_set_load(u8 mode);
// Exported data declarations
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..297d66441 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,12 @@ 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);
+u8 sub_805C808(u8);
+void SetPlayerAvatarStateMask(u8 mask);
+void sub_805D9C4(struct Sprite *sprite);
+void sub_805D154(u8 direction);
#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/gba/macro.h b/include/gba/macro.h
index 462d3589d..c0a4e481b 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -125,6 +125,9 @@
#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
+#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
+
#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
{ \
const void *_src = src; \
diff --git a/include/global.berry.h b/include/global.berry.h
index 5c8a43a02..148bbc957 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -1,6 +1,7 @@
#ifndef GUARD_GLOBAL_BERRY_H
#define GUARD_GLOBAL_BERRY_H
+#define BERRY_NAME_LENGTH 6
#define BERRY_NAME_COUNT 7
#define BERRY_ITEM_EFFECT_COUNT 18
diff --git a/include/global.h b/include/global.h
index b05c87d88..c47bd2d15 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,13 +13,23 @@
#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]))
+// GF's lingo
+#define NELEMS ARRAY_COUNT
// useful math macros
@@ -53,6 +64,15 @@ char* strcpy(char *dst0, const char *src0);
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+// This macro is required to prevent the compiler from optimizing
+// a dpad up/down check in sub_812CAD8 (fame_checker.c).
+// We suspect it was used globally.
+// GameFreak never ceases to amaze.
+// TODO: Propagate use of this macro
+#define TEST_BUTTON(field, button) ({(field) & (button);})
+#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
+#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
+
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
@@ -79,6 +99,7 @@ enum LanguageId {
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+#define PC_ITEMS_COUNT 30
#define BAG_ITEMS_COUNT 42
#define BAG_KEYITEMS_COUNT 30
#define BAG_POKEBALLS_COUNT 13
@@ -146,6 +167,8 @@ struct Time
/*0x04*/ s8 seconds;
};
+#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
+
struct Pokedex
{
/*0x00*/ u8 order;
@@ -155,8 +178,8 @@ struct Pokedex
/*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3;
- /*0x10*/ u8 owned[52];
- /*0x44*/ u8 seen[52];
+ /*0x10*/ u8 owned[DEX_FLAGS_NO];
+ /*0x44*/ u8 seen[DEX_FLAGS_NO];
};
struct PokemonJumpResults // possibly used in the game itself?
@@ -201,6 +224,23 @@ struct BerryCrush
#define PLAYER_NAME_LENGTH 8
+#define LINK_B_RECORDS_COUNT 5
+
+struct LinkBattleRecord
+{
+ u8 name[PLAYER_NAME_LENGTH];
+ u16 trainerId;
+ u16 wins;
+ u16 losses;
+ u16 draws;
+};
+
+struct LinkBattleRecords
+{
+ struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT];
+ u8 languages[LINK_B_RECORDS_COUNT];
+};
+
struct UnknownSaveBlock2Struct
{
u8 field_0;
@@ -221,6 +261,21 @@ struct UnknownSaveBlock2Struct
u8 field_EB;
}; // sizeof = 0xEC
+struct UnkSaveBlock2Substruct_55C
+{
+ /* 0x000:0x55C */ u8 unk_00_0:1;
+ u8 unk_00_1:1;
+ /* 0x001:0x55D */ u8 unk_01;
+ /* 0x002:0x55E */ u8 unk_02[2];
+ /* 0x004:0x560 */ u16 unk_04[2];
+ /* 0x008:0x564 */ u16 unk_08[2];
+ /* 0x00C:0x568 */ u16 unk_0C[2];
+ /* 0x010:0x56C */ u8 unk_10;
+ /* 0x011:0x56D */ u8 unk_11[3];
+ /* 0x014:0x570 */ u16 unk_14;
+ /* 0x016:0x572 */ u8 unk_16;
+}; // size: 0x018
+
struct SaveBlock2
{
/*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
@@ -243,7 +298,13 @@ struct SaveBlock2
/*0x098*/ struct Time localTimeOffset;
/*0x0A0*/ struct Time lastBerryTreeUpdate;
/*0x0A8*/ u32 field_A8;
- /*0x0AC*/ u8 filler_AC[0xE74];
+ /*0x0AC*/ u8 filler_AC[0x3F4];
+ /*0x4A0*/ u32 unk_4A0[0x2F];
+ /*0x55c*/ struct UnkSaveBlock2Substruct_55C unk_55C;
+ /*0x574*/ u8 filler_574[0x524];
+ /*0xA98*/ struct LinkBattleRecords linkBattleRecords;
+ /*0xAF0*/ struct BerryCrush berryCrush;
+ /*0xB00*/ u8 filler_B00[0x420];
/*0xF20*/ u32 encryptionKey;
};
@@ -411,15 +472,6 @@ struct RecordMixing_UnknownStruct
u16 unk74[0x2];
};
-struct LinkBattleRecord
-{
- u8 name[8];
- u16 trainerId;
- u16 wins;
- u16 losses;
- u16 draws;
-};
-
struct RecordMixingGiftData
{
u8 unk0;
@@ -466,8 +518,8 @@ struct DaycareMon
struct DayCare
{
struct DaycareMon mons[DAYCARE_MON_COUNT];
- u32 offspringPersonality;
- u8 stepCounter;
+ u16 unk_118;
+ u8 unk_11A;
};
struct DayCareMail
@@ -491,12 +543,145 @@ 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];
+};
+
+#include "fame_checker.h"
+
+struct FameCheckerSaveData
+{
+ /*3a54*/ u16 pickState:2;
+ u16 flavorTextFlags:12;
+ u16 unk_0_E:2;
+};
+
#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
+#define NUM_EASY_CHAT_EXTRA_PHRASES 33
+#define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0))
+
+struct MEventBuffer_3120_Sub
+{
+ u16 unk_00;
+ u8 unk_02;
+ u8 unk_03;
+ u8 unk_04[40];
+ u8 unk_2C[10][40];
+};
+
+struct MEventBuffer_3120
+{
+ u32 crc;
+ struct MEventBuffer_3120_Sub data;
+};
+
+struct MEventBuffer_32E0_Sub
+{
+ u16 unk_00;
+ u16 unk_02;
+ u32 unk_04;
+ u8 unk_08_0:2;
+ u8 unk_08_2:4;
+ u8 unk_08_6:2;
+ u8 unk_09;
+ u8 unk_0A[40];
+ u8 unk_32[40];
+ u8 unk_5A[4][40];
+ u8 unk_FA[40];
+ u8 unk_122[40];
+};
+
+struct MEventBuffer_32E0
+{
+ u32 crc;
+ struct MEventBuffer_32E0_Sub data;
+};
+
+struct MEventBuffer_3430_Sub
+{
+ u16 unk_00;
+ u16 unk_02;
+ u16 unk_04;
+ u16 unk_06;
+ u16 unk_08[2][7];
+};
+
+struct MEventBuffer_3430
+{
+ u32 crc;
+ struct MEventBuffer_3430_Sub data;
+};
+
+struct MEventBuffers
+{
+ /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000;
+ /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0;
+ /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310;
+ /*0x338 0x3458*/ u16 unk_338[4];
+ /*0x340 0x3460*/ struct MysteryEventStruct unk_340;
+ /*0x344 0x3464*/ u32 unk_344[2][5];
+}; // 0x36C 0x348C
+
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@@ -505,34 +690,54 @@ struct SaveBlock1
/*0x0014*/ struct WarpData warp2;
/*0x001C*/ struct WarpData lastHealLocation;
/*0x0024*/ struct WarpData warp4;
- /*0x002C*/ u8 filler2C[0x8];
+ /*0x002C*/ u16 savedMusic;
+ /*0x002E*/ u8 weather;
+ /*0x002F*/ u8 filler_2F;
+ /*0x0030*/ u8 flashLevel;
+ /*0x0032*/ u16 mapDataId;
/*0x0034*/ u8 playerPartyCount;
/*0x0038*/ struct Pokemon playerParty[PARTY_SIZE];
/*0x0290*/ u32 money;
/*0x0294*/ u16 coins;
- /*0x0296*/ u8 filler296[0x7A];
+ /*0x0296*/ u16 registeredItem; // registered for use with SELECT button
+ /*0x0298*/ struct ItemSlot pcItems[PC_ITEMS_COUNT];
/*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];
+ /*0x03b8*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ /*0x0430*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
+ /*0x0464*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ /*0x054c*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
+ /*0x05F8*/ u8 seen1[DEX_FLAGS_NO];
+ /*0x062C*/ u16 berryBlenderRecords[3]; // unused
+ /*0x0632*/ u8 field_632[6]; // unused?
/*0x0638*/ u8 trainerRematchStepCounter;
- u8 filler_639;
- /*0x063a*/ u8 trainerRematches[100];
+ /*0x063A*/ u8 ALIGNED(2) trainerRematches[100];
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
- /*0x0EE0*/ u8 fillerEE0[0x1DF0];
+ /*0x0EE0*/ u8 flags[FLAGS_COUNT];
+ /*0x1000*/ u16 vars[VARS_COUNT];
+ /*0x1200*/ u32 gameStats[NUM_GAME_STATS];
+ /*0x1300*/ struct QuestLog questLog[4];
+ /*0x2CA0*/ u16 unk2CA0[6];
+ /*0x2CAC*/ u16 unk2CAC[6];
+ /*0x2CB8*/ u16 unk2CB8[6];
+ /*0x2CC4*/ u16 unk2CC4[6];
/*0x2CD0*/ struct MailStruct mail[MAIL_COUNT];
- u8 filler2F10[0x1DA];
- /*0x30EA*/ struct EnigmaBerry enigmaBerry;
- /*0x3120*/ u8 filler3120[0x340];
- /*0x3460*/ struct MysteryEventStruct unk_3460;
- /*0x3464*/ u8 filler_3464[0x1b8];
+ /*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE];
+ /*0x2F18*/ OldMan oldMan; // unused
+ /*0x2F54*/ struct EasyChatPair easyChatPairs[5]; // unused
+ /*0x2F80*/ struct DayCare daycare;
+ /*0x309C*/ u8 giftRibbons[52];
+ /*0x30D0*/ struct Roamer roamer;
+ /*0x30EC*/ struct EnigmaBerry enigmaBerry;
+ /*0x3120*/ struct MEventBuffers unk_3120;
+ /*0x348C*/ u8 filler_348C[400];
/*0x361C*/ struct RamScript ramScript;
- /*0x3A08*/ u8 filler3A08[0x44];
+ /*0x3A08*/ u8 filler3A08[12];
+ /*0x3A14*/ u8 seen2[DEX_FLAGS_NO];
+ /*0x3A48*/ u8 filler_3a48[4];
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
- /*0x3A54*/ u8 filler3A54[0x2E4];
+ /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS];
+ /*0x3A94*/ u8 filler3A94[0x2A4];
u32 unkArray[4][3];
};
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..d249ece10 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[];
@@ -141,4 +143,11 @@ extern const u8 gUnknown_08DDB020[];
extern const u8 gUnknown_08DDB2C4[];
extern const u16 gUnknown_08DDAFE0[];
+// fame_checker
+
+extern const u16 gFameCheckerBgPals[0x30];
+extern const u16 gFameCheckerBgTiles[0xa50];
+extern const u16 gFameCheckerBg3Tilemap[0x400];
+extern const u16 gFameCheckerBg2Tilemap[0x400];
+
#endif //GUARD_GRAPHICS_H
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..632788148
--- /dev/null
+++ b/include/help_system.h
@@ -0,0 +1,10 @@
+#ifndef GUARD_HELP_SYSTEM_H
+#define GUARD_HELP_SYSTEM_H
+
+#include "global.h"
+
+extern bool8 gUnknown_3005ECC;
+
+void sub_812B484(void);
+
+#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..a6128b9fb 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -1,14 +1,17 @@
#ifndef GUARD_ITEM_MENU_H
#define GUARD_ITEM_MENU_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
-extern u16 gUnknown_203AD30;
+extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+void UseFameCheckerFromMenu(void);
#endif //GUARD_ITEM_MENU_H
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..93ad9dfe1 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
@@ -144,6 +146,9 @@ extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkVSyncDisabled;
+extern u8 gUnknown_3003F84;
+extern u64 gUnknown_3003FB4;
+
void Task_DestroySelf(u8);
void OpenLink(void);
void CloseLink(void);
@@ -162,7 +167,7 @@ void sub_8007E24(void);
void sub_8007E4C(void);
u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void);
-bool8 SendBlock(u8, void *, u16);
+bool8 SendBlock(u8, const void *, u16);
u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8);
@@ -194,5 +199,12 @@ void sub_8011BD0(void);
u8 sub_800ABAC(void);
u8 sub_800ABBC(void);
void sub_800AC34(void);
+void sub_8009804(void);
+bool8 sub_800AA48(void);
+void sub_800A5BC(void);
+void sub_800AA80(u8);
+void sub_80098D8(void);
+void sub_80098B8(void);
+bool8 sub_800A4BC(void);
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
new file mode 100644
index 000000000..6e54fcc6c
--- /dev/null
+++ b/include/link_rfu.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_LINK_RFU_H
+#define GUARD_LINK_RFU_H
+
+void sub_8142504(const u8 *str);
+bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src);
+void sub_80FA190(void);
+void sub_8142420(void);
+
+#endif //GUARD_LINK_RFU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 0249b06af..8834e5215 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
@@ -16,22 +18,23 @@ struct ListMenu;
struct ListMenuTemplate
{
const struct ListMenuItem *items;
- void (* unk_04)(u32, bool8, struct ListMenu *);
- void (* unk_08)(u8, s32, u8);
+ void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+ void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y);
u16 totalItems;
u16 maxShowed;
- u8 unk_10;
- u8 unk_11;
- u8 unk_12;
- u8 cursor_Y;
- u32 upText_Y:4; // x1, x2, x4, x8 = xF
- u32 cursorColor:4; // x10, x20, x40, x80 = xF0
- u32 fillColor:4; // x100, x200, x400, x800 = xF00
- u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
- u32 unk_16_0:1; // x10000
- u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
- u32 unk_16_7:1; // x800000
- u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
+ u8 windowId;
+ u8 header_X;
+ u8 item_X;
+ u8 cursor_X;
+ u8 upText_Y:4; // x1, x2, x4, x8 = xF
+ u8 cursorPal:4; // x10, x20, x40, x80 = xF0
+ u8 fillValue:4; // x1, x2, x4, x8 = xF
+ u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0
+ u8 lettersSpacing:3;
+ u8 itemVerticalPadding:3;
+ u8 scrollMultiple:2; // x40, x80 = xC0
+ u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F
+ u8 cursorKind:2; // x40, x80
};
struct ListMenu {
@@ -52,5 +55,7 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
+void sub_810713C(u8, u8, u8);
+u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
#endif //GUARD_LIST_MENU_H
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..0275d8dc6 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
@@ -8,5 +10,6 @@
// Exported ROM declarations
u16 sub_80D45E8(u16, u16 *);
+bool8 itemid_is_mail(u16 itemId);
#endif //GUARD_MAIL_DATA_H
diff --git a/include/main.h b/include/main.h
index 82f85f881..adbf1fb5d 100644
--- a/include/main.h
+++ b/include/main.h
@@ -3,10 +3,14 @@
#include "global.h"
+#include "global.h"
+
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
+extern IntrFunc gIntrTable[];
+
struct Main
{
/*0x000*/ MainCallback callback1;
@@ -60,5 +64,9 @@ void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void);
void DoSoftReset(void);
void ClearPokemonCrySongs(void);
+void RestoreSerialTimer3IntrHandlers(void);
+
+extern const char RomHeaderGameCode[4];
+extern const char RomHeaderSoftwareVersion;
#endif // GUARD_MAIN_H
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..f195ceb6d 100644
--- a/include/menu_indicators.h
+++ b/include/menu_indicators.h
@@ -1,12 +1,31 @@
#ifndef GUARD_MENU_INDICATORS_H
#define GUARD_MENU_INDICATORS_H
+#include "global.h"
+
// Exported type declarations
// Exported RAM declarations
+struct ScrollIndicatorArrowPairTemplate
+{
+ u8 unk_00;
+ u8 unk_01;
+ u8 unk_02;
+ u8 unk_03;
+ u8 unk_04;
+ u8 unk_05;
+ u16 unk_06;
+ u16 unk_08;
+ u16 unk_0a;
+ u16 unk_0c;
+ u16 unk_0e_0:4;
+ u16 unk_0e_4:12;
+};
+
// Exported ROM declarations
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
+u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1);
void RemoveScrollIndicatorArrowPair(u8);
#endif //GUARD_MENU_INDICATORS_H
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..d940b212c 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -1,7 +1,53 @@
#ifndef GUARD_MEVENT_H
#define GUARD_MEVENT_H
+#include "global.h"
+
+struct MEventStruct_Unk1442CC
+{
+ u32 unk_00;
+ u16 unk_04;
+ u32 unk_08;
+ u16 unk_0C;
+ u32 unk_10;
+ u16 unk_14;
+ u16 unk_16[4];
+ struct MEventBuffer_3430_Sub unk_20;
+ u8 unk_44;
+ u8 unk_45[7];
+ u8 unk_4C[4];
+ u16 unk_50[6];
+ u8 unk_5C[4];
+ u8 unk_60;
+};
+
+struct MEvent_Str_1
+{
+ u16 unk_000;
+ size_t unk_004;
+ const void * unk_008;
+};
+
+struct MEvent_Str_2
+{
+ u8 fill_00[0x40];
+};
+
+struct MEventBuffer_3120_Sub * sub_8143D58(void);
+struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void);
+struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void);
struct MysteryEventStruct * sub_8143D94(void);
+bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src);
bool32 sub_8143E1C(void);
+bool32 sub_8143EF4(const u8 * src);
+bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data);
+void sub_814410C(struct MEventBuffer_32E0_Sub * buffer);
+bool32 sub_8144254(const u16 * data);
+void sub_81442CC(struct MEventStruct_Unk1442CC * data);
+bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data);
+u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused);
+u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused);
+bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1);
+u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command);
#endif //GUARD_MEVENT_H
diff --git a/include/mevent_server.h b/include/mevent_server.h
new file mode 100644
index 000000000..e593b5dbd
--- /dev/null
+++ b/include/mevent_server.h
@@ -0,0 +1,95 @@
+#ifndef GUARD_MEVENT_SERVER_H
+#define GUARD_MEVENT_SERVER_H
+
+#include "global.h"
+
+#define ME_SEND_BUF_SIZE 0x400
+
+struct mevent_srv_sub
+{
+ s32 seqno;
+ u8 sendPlayerNo;
+ u8 recvPlayerNo;
+ u16 recvIdent;
+ u16 recvCounter;
+ u16 recvCRC;
+ u16 recvSize;
+ u16 sendIdent;
+ u16 sendCounter;
+ u16 sendCRC;
+ u16 sendSize;
+ void * recvBfr;
+ const void * sendBfr;
+ u32 (*recvFunc)(struct mevent_srv_sub *);
+ u32 (*sendFunc)(struct mevent_srv_sub *);
+};
+
+struct send_recv_header
+{
+ u16 ident;
+ u16 crc;
+ u16 size;
+};
+
+struct mevent_cmd_ish
+{
+ u32 instr;
+ u32 parameter;
+};
+
+struct mevent_srv_ish
+{
+ u32 unk_00;
+ u32 param;
+ u32 mainseqno;
+ u32 flag;
+ u32 cmdidx;
+ void * sendBuffer;
+ void * recvBuffer;
+ struct mevent_cmd_ish * cmdBuffer;
+ void * buffer;
+ struct mevent_srv_sub manager;
+};
+
+struct mevent_cmd
+{
+ u32 instr;
+ bool32 flag;
+ void * parameter;
+};
+
+struct mevent_srv_common
+{
+ u32 unk_00;
+ u32 param;
+ u32 mainseqno;
+ u32 cmdidx;
+ const struct mevent_cmd * cmdBuffer;
+ void * recvBuffer;
+ struct MEventBuffer_32E0_Sub * mevent_32e0;
+ struct MEventBuffer_3120_Sub * mevent_3120;
+ struct MEventStruct_Unk1442CC * mevent_unk1442cc;
+ void * sendBuffer1;
+ u32 sendBuffer1Size;
+ void * sendBuffer2;
+ u32 sendBuffer2Size;
+ u32 sendWord;
+ struct mevent_srv_sub manager;
+};
+
+u32 mevent_srv_sub_recv(struct mevent_srv_sub * svr);
+u32 mevent_srv_sub_send(struct mevent_srv_sub * svr);
+void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recvPlayerNo);
+void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size);
+void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest);
+
+void mevent_srv_ish_do_init(void);
+u32 mevent_srv_ish_do_exec(u16 * a0);
+void mevent_srv_ish_inc_flag(void);
+void * mevent_srv_ish_get_buffer(void);
+void mevent_srv_ish_set_param(u32 a0);
+void mevent_srv_common_do_init_1(void);
+void mevent_srv_common_do_init_2(void);
+u32 mevent_srv_init_do_exec(u16 * a0);
+
+#endif //GUARD_MEVENT_SERVER_H
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_msg.h b/include/mystery_event_msg.h
new file mode 100644
index 000000000..e96c3069b
--- /dev/null
+++ b/include/mystery_event_msg.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_MYSTERY_EVENT_MSG_H
+#define GUARD_MYSTERY_EVENT_MSG_H
+
+#include <gba/gba.h>
+
+extern const u8 gText_MysteryGiftBerry[];
+extern const u8 gText_MysteryGiftBerryTransform[];
+extern const u8 gText_MysteryGiftBerryObtained[];
+extern const u8 gText_MysteryGiftSpecialRibbon[];
+extern const u8 gText_MysteryGiftNationalDex[];
+extern const u8 gText_MysteryGiftRareWord[];
+extern const u8 gText_MysteryGiftSentOver[];
+extern const u8 gText_MysteryGiftFullParty[];
+extern const u8 gText_MysteryGiftNewTrainer[];
+extern const u8 gText_MysteryGiftNewAdversaryInBattleTower[];
+extern const u8 gText_MysteryGiftCantBeUsed[];
+
+#endif // GUARD_MYSTERY_EVENT_MSG_H
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
index ab23a8d00..be64663ed 100644
--- a/include/mystery_event_script.h
+++ b/include/mystery_event_script.h
@@ -1,8 +1,13 @@
#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);
+void sub_80DA89C(u8 *);
+bool32 sub_80DA8B0(u32 *);
+
#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h
new file mode 100644
index 000000000..24bf85a13
--- /dev/null
+++ b/include/mystery_gift_menu.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_MYSTERY_GIFT_MENU_H
+#define GUARD_MYSTERY_GIFT_MENU_H
+
+extern bool8 gUnknown_203F3B8;
+
+void sub_81422FC(void);
+void sub_8142344(bool8, bool32);
+
+#endif //GUARD_MYSTERY_GIFT_MENU_H
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/new_menu_helpers.h b/include/new_menu_helpers.h
index 639395941..2a68a35e6 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -16,5 +16,8 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
void sub_80F6F54(u8, u8);
+u8 sub_80F78A8(void);
+void sub_80F6E9C(void);
+void sub_80F6EE4(u8 windowId, bool8 transfer);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index a5fba0c10..8cae07bdc 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
@@ -68,7 +70,20 @@ void c2_load_new_map(void);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
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);
+
+u8 sav1_map_get_name(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..593715b7d 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);
@@ -8,5 +10,10 @@ void sub_80D2F68(u16 iconId);
u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
void sub_80D2FF0(u16 iconId);
void sub_80D2EF8(struct Sprite *sprite);
+void sub_809707C(void);
+void FreeMonIconPalettes(void);
+u16 sub_8096FD4(u16);
+u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32);
+void sub_8097070(struct Sprite *);
#endif // GUARD_POKEMON_ICON_H
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..9f8a0ea21
--- /dev/null
+++ b/include/quest_log.h
@@ -0,0 +1,25 @@
+#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;
+
+void sub_8112720(u8);
+void sub_8113550(u16, const u16 *);
+
+#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/scanline_effect.h b/include/scanline_effect.h
new file mode 100644
index 000000000..d49f5b4d6
--- /dev/null
+++ b/include/scanline_effect.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_SCANLINE_EFFECT_H
+#define GUARD_SCANLINE_EFFECT_H
+
+void remove_some_task(void);
+
+#endif //GUARD_SCANLINE_EFFECT_H
diff --git a/include/script.h b/include/script.h
index 2b5f8c2ce..ebb4caa86 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 *);
@@ -60,5 +62,8 @@ u8 *GetRamScript(u8 objectId, u8 *script);
bool32 sub_80991F8(void);
u8 *sub_8099244(void);
void sub_80992A0(u8 *script, u16 scriptSize);
+bool32 sub_8069DFC(void);
+void sub_8069EA4(u8 * script, u16 scriptSize);
+u8 * sub_8069E48(void);
#endif // GUARD_SCRIPT_H
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..40021a01d 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
@@ -87,5 +89,7 @@ extern const u8 gText_Cancel4[];
extern const u8 gText_IsThisTheCorrectTime[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
+extern const u8 gText_EggNickname[];
+extern const u8 gText_Pokemon[];
#endif //GUARD_STRINGS_H
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..e127f103a 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
@@ -159,7 +161,7 @@ extern const struct FontInfo *gFonts;
struct GlyphWidthFunc
{
u32 font_id;
- u32 (*func)(u16 glyphId, bool32 isJapanese);
+ s32 (*func)(u16 glyphId, bool32 isJapanese);
};
struct KeypadIcon
@@ -222,9 +224,9 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
bool16 TextPrinterWait(struct TextPrinter *textPrinter);
void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex);
u16 RenderText(struct TextPrinter *textPrinter);
-u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
-u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
-u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
+s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
+s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
+s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str);
u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
u8 GetKeypadIconTileOffset(u8 keypadIconId);
@@ -234,19 +236,19 @@ void SetDefaultFontsPointer(void);
u8 GetFontAttribute(u8 fontId, u8 attributeId);
u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension);
void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese);
void DecompressGlyphFont7(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont7(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont7(u16 glyphId, bool32 isJapanese);
void DecompressGlyphFont8(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont8(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont8(u16 glyphId, bool32 isJapanese);
void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese);
void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese);
void DecompressGlyphFont9(u16 glyphId);
-u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese);
-u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese);
+s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese);
void sub_80062B0(struct Sprite *sprite);
#endif // GUARD_TEXT_H
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_815c27c.h b/include/unk_815c27c.h
new file mode 100644
index 000000000..cc1cbb7ce
--- /dev/null
+++ b/include/unk_815c27c.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_UNK_815C27C_H
+#define GUARD_UNK_815C27C_H
+
+void sub_815C6D4(void);
+void sub_815C6C4(void);
+void sub_815C8C8(void);
+void sub_815C960(void);
+void sub_815C91C(void);
+u16 sub_815C498(u8, size_t, const void *, u8);
+
+#endif //GUARD_UNK_815C27C_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..e0034d816 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
@@ -10,8 +12,8 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
void StoreWordInTwoHalfwords(u16 *, u32);
void LoadWordFromTwoHalfwords(u16 *, u32 *);
int CountTrailingZeroBits(u32 value);
-u16 CalcCRC16(u8 *data, s32 length);
-u16 CalcCRC16WithTable(u8 *data, u32 length);
+u16 CalcCRC16(const u8 *data, s32 length);
+u16 CalcCRC16WithTable(const u8 *data, u32 length);
u32 CalcByteArraySum(const u8* data, u32 length);
#endif // GUARD_UTIL_H
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,