summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_2.c90
-rw-r--r--src/battle_ai.c3
-rw-r--r--src/battle_interface.c34
-rw-r--r--src/battle_party_menu.c11
-rw-r--r--src/battle_records.c4
-rw-r--r--src/battle_setup.c13
-rw-r--r--src/berry_tag_screen.c5
-rw-r--r--src/braille_puzzles.c74
-rw-r--r--src/calculate_base_damage.c8
-rw-r--r--src/clear_save_data_menu.c141
-rw-r--r--src/coins.c3
-rw-r--r--src/contest_painting.c51
-rw-r--r--src/credits.c14
-rw-r--r--src/decompress.c5
-rw-r--r--src/diploma.c5
-rw-r--r--src/easy_chat.c6
-rw-r--r--src/field_camera.c96
-rw-r--r--src/field_control_avatar.c68
-rw-r--r--src/field_player_avatar.c6
-rw-r--r--src/field_poison.c48
-rw-r--r--src/field_region_map.c3
-rw-r--r--src/field_special_scene.c122
-rw-r--r--src/fldeff_cut.c86
-rw-r--r--src/intro.c121
-rw-r--r--src/item.c2
-rw-r--r--src/item_use.c199
-rw-r--r--src/link.c3
-rw-r--r--src/mail.c3
-rw-r--r--src/main_menu.c38
-rw-r--r--src/matsuda_debug_menu.c72
-rw-r--r--src/mauville_old_man.c33
-rw-r--r--src/menu.c12
-rw-r--r--src/mori_debug_menu.c3
-rw-r--r--src/mystery_event_menu.c410
-rw-r--r--src/naming_screen.c7
-rw-r--r--src/option_menu.c321
-rw-r--r--src/party_menu.c47
-rw-r--r--src/player_pc.c47
-rw-r--r--src/pokedex.c1570
-rw-r--r--src/pokemon_1.c2
-rw-r--r--src/pokemon_2.c1044
-rw-r--r--src/pokemon_3.c118
-rw-r--r--src/pokemon_size_record.c4
-rw-r--r--src/pokemon_summary_screen.c13
-rw-r--r--src/pokenav.c3
-rw-r--r--src/record_mixing.c49
-rw-r--r--src/rom3.c1
-rw-r--r--src/rom_8077ABC.c14
-rw-r--r--src/save_failed_screen.c114
-rw-r--r--src/save_menu_util.c6
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/script_menu.c26
-rw-r--r--src/script_pokemon_util_80C4BF0.c149
-rw-r--r--src/script_pokemon_util_80F99CC.c269
-rw-r--r--src/secret_base.c70
-rw-r--r--src/shop.c29
-rw-r--r--src/smokescreen.c4
-rw-r--r--src/start_menu.c325
-rw-r--r--src/starter_choose.c57
-rw-r--r--src/string_util.c29
-rw-r--r--src/text.c78
-rw-r--r--src/trainer_card.c13
-rw-r--r--src/trig.c1
-rw-r--r--src/tv.c1110
-rw-r--r--src/wallclock.c136
65 files changed, 3552 insertions, 3900 deletions
diff --git a/src/battle_2.c b/src/battle_2.c
index f2ce737d6..6bcccbaf9 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "asm.h"
#include "battle.h"
+#include "data2.h"
#include "main.h"
#include "text.h"
#include "palette.h"
@@ -17,18 +18,6 @@
#include "trig.h"
#include "abilities.h"
-struct MonCoords
-{
- u8 x, y;
-};
-
-struct UnknownStruct5
-{
- u32 unk0;
- u32 unk4;
- u32 unk8;
-};
-
struct UnknownStruct6
{
u16 unk0[0xA0];
@@ -138,14 +127,7 @@ struct UnknownStruct13
u8 filler4[12];
};
-extern const struct UnknownStruct5 gUnknown_081F9674;
-extern const u8 gUnknown_081F96C8[];
-extern void *const gUnknown_081FAF4C[];
extern const u16 gUnknown_08D004E0[];
-extern const struct Trainer gTrainers[];
-extern const u8 gSpeciesNames[][11];
-extern const struct BattleMove gBattleMoves[];
-extern const struct MonCoords gMonFrontPicCoords[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
extern const struct BaseStats gBaseStats[];
extern const u32 gBitTable[];
@@ -1524,19 +1506,19 @@ void sub_8010384(struct Sprite *sprite)
else
unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters
- yOffset = gMonFrontPicCoords[unownSpecies].y;
+ yOffset = gMonFrontPicCoords[unownSpecies].y_offset;
}
else if (species == SPECIES_CASTFORM)
{
- yOffset = gCastformFrontSpriteCoords[gBattleMonForms[r6]].y;
+ yOffset = gCastformFrontSpriteCoords[gBattleMonForms[r6]].y_offset;
}
else if (species > NUM_SPECIES)
{
- yOffset = gMonFrontPicCoords[SPECIES_NONE].y;
+ yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset;
}
else
{
- yOffset = gMonFrontPicCoords[species].y;
+ yOffset = gMonFrontPicCoords[species].y_offset;
}
sprite->data3 = 8 - yOffset / 8;
@@ -2562,39 +2544,39 @@ void sub_8012324(void)
r5 = battle_get_per_side_status(gUnknown_02024A60);
switch (gUnknown_02024D1E[gUnknown_02024A60])
{
- case 0:
- ewram[0x016068 + gUnknown_02024A60] = 6;
- if (!(gBattleTypeFlags & 0x40)
- && (r5 & 2)
- && !(ewram160A6 & gBitTable[battle_get_side_with_given_state(r5 ^ 2)])
- && gUnknown_02024D1E[battle_get_side_with_given_state(r5)] != 4)
- break;
- //_080123F8
- if (ewram160A6 & gBitTable[gUnknown_02024A60])
- {
- gUnknown_02024C18[gUnknown_02024A60] = 13;
- if (!(gBattleTypeFlags & 0x40))
- gUnknown_02024D1E[gUnknown_02024A60] = 4;
- //_08012454
- else
- gUnknown_02024D1E[gUnknown_02024A60] = 3;
- break;
- }
- //_08012468
- if ((gBattleMons[gUnknown_02024A60].status2 & 0x1000)
- || (gBattleMons[gUnknown_02024A60].status2 & 0x10000000))
- {
- gUnknown_02024C18[gUnknown_02024A60] = 0;
- gUnknown_02024D1E[gUnknown_02024A60] = 3;
- }
+ case 0:
+ ewram[0x016068 + gUnknown_02024A60] = 6;
+ if (!(gBattleTypeFlags & 0x40)
+ && (r5 & 2)
+ && !(ewram160A6 & gBitTable[battle_get_side_with_given_state(r5 ^ 2)])
+ && gUnknown_02024D1E[battle_get_side_with_given_state(r5)] != 4)
+ break;
+ //_080123F8
+ if (ewram160A6 & gBitTable[gUnknown_02024A60])
+ {
+ gUnknown_02024C18[gUnknown_02024A60] = 13;
+ if (!(gBattleTypeFlags & 0x40))
+ gUnknown_02024D1E[gUnknown_02024A60] = 4;
+ //_08012454
else
- {
- dp01_build_cmdbuf_x12_a_bb(0, gUnknown_02024C18[0], gUnknown_02024260[0][1] | (gUnknown_02024260[0][2] << 8));
- dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60);
- gUnknown_02024D1E[gUnknown_02024A60]++;
- }
+ gUnknown_02024D1E[gUnknown_02024A60] = 3;
break;
- case 1:
+ }
+ //_08012468
+ if ((gBattleMons[gUnknown_02024A60].status2 & 0x1000)
+ || (gBattleMons[gUnknown_02024A60].status2 & 0x10000000))
+ {
+ gUnknown_02024C18[gUnknown_02024A60] = 0;
+ gUnknown_02024D1E[gUnknown_02024A60] = 3;
+ }
+ else
+ {
+ dp01_build_cmdbuf_x12_a_bb(0, gUnknown_02024C18[0], gUnknown_02024260[0][1] | (gUnknown_02024260[0][2] << 8));
+ dp01_battle_side_mark_buffer_for_execution(gUnknown_02024A60);
+ gUnknown_02024D1E[gUnknown_02024A60]++;
+ }
+ break;
+ case 1:
}
}
}
diff --git a/src/battle_ai.c b/src/battle_ai.c
index 9bbaf908e..f10c6a013 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -4,6 +4,7 @@
#include "asm.h"
#include "battle.h"
#include "battle_move_effects.h"
+#include "data2.h"
#include "item.h"
#include "moves.h"
#include "pokemon.h"
@@ -36,8 +37,6 @@ extern u8 gCritMultiplier;
extern u16 gTrainerBattleOpponent;
extern u32 gBitTable[];
extern u8 *BattleAIs[];
-extern struct Trainer gTrainers[];
-extern struct BattleMove gBattleMoves[];
extern struct BaseStats gBaseStats[];
/*
diff --git a/src/battle_interface.c b/src/battle_interface.c
index ba3cba894..61a6a5853 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -2409,23 +2409,23 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
gender = 100;
switch (gender)
{
- default:
- ptr[0] = 0xB;
- ptr[1] = EOS;
- ptr += 1;
- break;
- case MON_MALE:
- ptr[0] = 0xB;
- ptr[1] = CHAR_MALE;
- ptr[2] = EOS;
- ptr += 2;
- break;
- case MON_FEMALE:
- ptr[0] = 0xA;
- ptr[1] = CHAR_FEMALE;
- ptr[2] = EOS;
- ptr += 2;
- break;
+ default:
+ ptr[0] = 0xB;
+ ptr[1] = EOS;
+ ptr += 1;
+ break;
+ case MON_MALE:
+ ptr[0] = 0xB;
+ ptr[1] = CHAR_MALE;
+ ptr[2] = EOS;
+ ptr += 2;
+ break;
+ case MON_FEMALE:
+ ptr[0] = 0xA;
+ ptr[1] = CHAR_FEMALE;
+ ptr[2] = EOS;
+ ptr += 2;
+ break;
}
ptr[0] = EXT_CTRL_CODE_BEGIN;
ptr[1] = 0x13;
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index 690ef99be..359517ecd 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -8,6 +8,7 @@
#include "songs.h"
#include "sound.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
@@ -58,16 +59,6 @@ extern u8 gUnknown_0202E8F6;
extern u8 gUnknown_02038473;
extern u8 gUnknown_020384F0;
extern void (*gUnknown_03004AE4)(); //don't know types yet
-extern const u8 gOtherText_CantSwitchPokeWithYours[];
-extern const u8 gOtherText_NoEnergyLeft[];
-extern const u8 gOtherText_EGGCantBattle[];
-extern const u8 gOtherText_AlreadySelected[];
-extern const u8 gOtherText_CantBeSwitched[];
-extern const u8 gOtherText_AlreadyBattle[];
-extern const u8 OtherText_Summary[];
-extern const u8 gOtherText_CancelNoTerminator[];
-extern const u8 OtherText_Shift[];
-extern const u8 OtherText_SendOut[];
static void Task_809527C(u8);
static void Task_80952B4(u8);
diff --git a/src/battle_records.c b/src/battle_records.c
index 3290bbebe..35fd3284b 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -1,8 +1,6 @@
#include "global.h"
#include "menu.h"
-
-extern const u8 gOtherText_BattleResults[];
-extern const u8 gOtherText_WinLoseDraw[];
+#include "strings2.h"
void PrintLinkBattleWinsLossesDraws(void *);
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 0753fba70..a70157a43 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -2,6 +2,7 @@
#include "battle_setup.h"
#include "asm.h"
#include "battle.h"
+#include "data2.h"
#include "event_data.h"
#include "field_control_avatar.h"
#include "field_map_obj_helpers.h"
@@ -23,6 +24,7 @@
#include "species.h"
#include "starter_choose.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
#include "trainer.h"
@@ -33,7 +35,6 @@ extern void (*gUnknown_0300485C)(void);
extern struct Pokemon gEnemyParty[];
extern struct Pokemon gPlayerParty[];
-extern struct Trainer gTrainers[];
EWRAM_DATA u16 gTrainerBattleMode = 0;
EWRAM_DATA u16 gTrainerBattleOpponent = 0;
@@ -45,8 +46,6 @@ EWRAM_DATA u8 *gTrainerCannotBattleSpeech = NULL;
EWRAM_DATA u8 *gTrainerBattleScriptReturnAddress = NULL;
EWRAM_DATA u8 *gTrainerBattleEndScript = NULL;
-extern u8 gOtherText_CancelWithTerminator[];
-
extern u16 gBattleTypeFlags;
extern u16 gScriptLastTalked;
extern u8 gUnknown_02024D26;
@@ -753,7 +752,7 @@ u8 GetWildBattleTransition(void)
u8 GetTrainerBattleTransition(void)
{
- struct Trainer *trainer;
+ const struct Trainer *trainer;
u8 minPartyCount;
u8 flashVar;
u8 level;
@@ -1169,12 +1168,12 @@ void PlayTrainerEncounterMusic(void)
}
//Returns an empty string if a null pointer was passed, otherwise returns str
-u8 *SanitizeString(u8 *str)
+u8 *SanitizeString(const u8 *str)
{
if (str)
- return str;
+ return (u8 *) str;
else
- return gOtherText_CancelWithTerminator;
+ return (u8 *) gOtherText_CancelWithTerminator;
}
u8 *sub_808281C(void)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 511b88c5a..f0bcb4f27 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -12,6 +12,7 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
@@ -38,10 +39,6 @@ extern u16 gUnknown_030041B4;
extern const struct SpriteSheet gUnknown_083C1F74;
extern const struct SpritePalette gUnknown_083C1F7C;
-extern u8 gOtherText_ThreeQuestions2[];
-extern u8 gOtherText_Size[];
-extern u8 gOtherText_Firm[];
-extern u8 gContestStatsText_Unknown1[];
extern u8 *gUnknown_0841192C[];
extern u8 gBerryCheck_Gfx[];
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index 220e8420c..2ee4f91bb 100644
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -151,50 +151,50 @@ void Task_BrailleWait(u8 taskId)
switch (data[0])
{
- case 0:
- data[1] = 7200;
- data[0] = 1;
- break;
- case 1:
- if (BrailleWait_CheckButtonPress() != FALSE)
+ case 0:
+ data[1] = 7200;
+ data[0] = 1;
+ break;
+ case 1:
+ if (BrailleWait_CheckButtonPress() != FALSE)
+ {
+ MenuZeroFillScreen();
+ PlaySE(5);
+ data[0] = 2;
+ }
+ else
+ {
+ data[1] = data[1] - 1;
+ if (data[1] == 0)
{
MenuZeroFillScreen();
- PlaySE(5);
- data[0] = 2;
- }
- else
- {
- data[1] = data[1] - 1;
- if (data[1] == 0)
- {
- MenuZeroFillScreen();
- data[0] = 3;
- data[1] = 30;
- }
- }
- break;
- case 2:
- if (BrailleWait_CheckButtonPress() == FALSE)
- {
- data[1] = data[1] - 1;
- if (data[1] == 0)
- data[0] = 4;
- break;
+ data[0] = 3;
+ data[1] = 30;
}
- sub_8064E2C();
- DestroyTask(taskId);
- ScriptContext2_Disable();
- break;
- case 3:
+ }
+ break;
+ case 2:
+ if (BrailleWait_CheckButtonPress() == FALSE)
+ {
data[1] = data[1] - 1;
if (data[1] == 0)
data[0] = 4;
break;
- case 4:
- sub_8064E2C();
- ScriptContext1_SetupScript(gIslandCave_EventScript_OpenRegiiceChamber);
- DestroyTask(taskId);
- break;
+ }
+ sub_8064E2C();
+ DestroyTask(taskId);
+ ScriptContext2_Disable();
+ break;
+ case 3:
+ data[1] = data[1] - 1;
+ if (data[1] == 0)
+ data[0] = 4;
+ break;
+ case 4:
+ sub_8064E2C();
+ ScriptContext1_SetupScript(gIslandCave_EventScript_OpenRegiiceChamber);
+ DestroyTask(taskId);
+ break;
}
}
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index 293e2f24d..7868a2c67 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -2,6 +2,7 @@
#include "abilities.h"
#include "battle.h"
#include "berry.h"
+#include "data2.h"
#include "event_data.h"
#include "hold_effects.h"
#include "item.h"
@@ -11,6 +12,7 @@
#include "species.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "text.h"
extern u8 gPlayerPartyCount;
@@ -34,15 +36,9 @@ extern u16 gTrainerBattleOpponent;
extern struct PokemonStorage gPokemonStorage;
extern u8 gBadEggNickname[];
-extern u8 gEggNickname[];
extern u32 gBitTable[];
extern struct BaseStats gBaseStats[];
-extern u8 gSpeciesNames[][11];
-extern struct BattleMove gBattleMoves[];
extern struct SpriteTemplate gSpriteTemplate_8208288[];
-extern union AmimCmd *gSpriteAnimTable_81E7C64[];
-extern union AnimCmd **gUnknown_081EC2A4[];
-extern union AnimCmd **gUnknown_081ECACC[];
extern u8 gTrainerClassToPicIndex[];
extern u8 gTrainerClassToNameIndex[];
extern u8 gSecretBaseTrainerClasses[];
diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c
index 21cd643ef..690ce3f55 100644
--- a/src/clear_save_data_menu.c
+++ b/src/clear_save_data_menu.c
@@ -7,10 +7,9 @@
#include "songs.h"
#include "sound.h"
#include "sprite.h"
+#include "strings2.h"
#include "task.h"
-extern u8 gSystemText_ClearAllSaveDataPrompt[];
-extern u8 gSystemText_ClearingData[];
extern const struct MenuAction gMenuYesNoItems[];
static void VBlankCB_ClearSaveDataScreen(void);
@@ -99,65 +98,65 @@ static u8 InitClearSaveDataScreen(void)
switch (gMain.state)
{
- case 0:
- default:
- SetVBlankCallback(NULL);
-
- REG_DISPCNT = 0;
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
- REG_WIN0H = 0;
- REG_WIN0V = 0;
- REG_WININ = 0;
- REG_WINOUT = 0;
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
-
- DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
- DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
- DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
-
- ResetPaletteFade();
-
- gPlttBufferUnfaded[0] = 0x7fff;
- gPlttBufferFaded[0] = 0x7fff;
- gPlttBufferUnfaded[1] = 0x3945;
- gPlttBufferFaded[1] = 0x3945;
-
- for (i = 0; i < 0x10; i++)
- ((u16 *)(VRAM + 0x20))[i] = 0x1111;
-
- for (i = 0; i < 0x500; i++)
- ((u16 *)(VRAM + 0x3800))[i] = 0x0001;
-
- ResetTasks();
- ResetSpriteData();
-
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0xffff);
-
- ime = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = ime;
- REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
-
- SetVBlankCallback(VBlankCB_InitClearSaveDataScreen);
-
- REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON | DISPCNT_BG3_ON;
- gMain.state = 1;
+ case 0:
+ default:
+ SetVBlankCallback(NULL);
+
+ REG_DISPCNT = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+
+ DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
+ DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
+
+ ResetPaletteFade();
+
+ gPlttBufferUnfaded[0] = 0x7fff;
+ gPlttBufferFaded[0] = 0x7fff;
+ gPlttBufferUnfaded[1] = 0x3945;
+ gPlttBufferFaded[1] = 0x3945;
+
+ for (i = 0; i < 0x10; i++)
+ ((u16 *)(VRAM + 0x20))[i] = 0x1111;
+
+ for (i = 0; i < 0x500; i++)
+ ((u16 *)(VRAM + 0x3800))[i] = 0x0001;
+
+ ResetTasks();
+ ResetSpriteData();
+
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0xffff);
+
+ ime = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = ime;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+
+ SetVBlankCallback(VBlankCB_InitClearSaveDataScreen);
+
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON | DISPCNT_BG3_ON;
+ gMain.state = 1;
+ return 0;
+ case 1:
+ UpdatePaletteFade();
+ if (gPaletteFade.active)
return 0;
- case 1:
- UpdatePaletteFade();
- if (gPaletteFade.active)
- return 0;
- SetMainCallback2(CB2_ClearSaveDataScreen);
- return 1;
+ SetMainCallback2(CB2_ClearSaveDataScreen);
+ return 1;
}
}
@@ -165,16 +164,16 @@ static void CB2_SoftReset(void)
{
switch (gMain.state)
{
- case 0:
- default:
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xffff);
- gMain.state = 1;
- break;
- case 1:
- UpdatePaletteFade();
- if (gPaletteFade.active)
- return;
- DoSoftReset();
- break;
+ case 0:
+ default:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xffff);
+ gMain.state = 1;
+ break;
+ case 1:
+ UpdatePaletteFade();
+ if (gPaletteFade.active)
+ return;
+ DoSoftReset();
+ break;
}
}
diff --git a/src/coins.c b/src/coins.c
index 193ea249e..3c6356612 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -2,11 +2,10 @@
#include "coins.h"
#include "menu.h"
#include "string_util.h"
+#include "strings.h"
#define MAX_COINS 9999
-extern u8 gOtherText_Coins2[];
-
void UpdateCoinsWindow(s32 a, u8 b, u8 c)
{
PrintCoins(a, 4, b + 2, c + 1);
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 2ef50ee17..d7bacb905 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "contest_painting.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "main.h"
#include "menu.h"
@@ -8,6 +9,7 @@
#include "rng.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
#include "text.h"
extern u8 unk_2000000[];
@@ -23,48 +25,6 @@ extern struct Unk2015E00 unk_2015e00;
extern struct Unk3000756 gUnknown_03000756;
extern struct Unk03005E20 gUnknown_03005E20;
extern struct ContestEntry *gUnknown_03005E8C;
-extern const struct SpriteSheet gMonFrontPicTable[];
-extern const struct MonCoords gMonFrontPicCoords[];
-extern const struct SpriteSheet gMonBackPicTable[];
-extern const struct MonCoords gMonBackPicCoords[];
-extern void *gUnknown_081FAF4C[];
-extern const u8 OtherText_Cool[];
-extern const u8 OtherText_Beauty2[];
-extern const u8 OtherText_Cute[];
-extern const u8 OtherText_Smart[];
-extern const u8 OtherText_Tough[];
-extern const u8 OtherText_NonstopSuperCool[];
-extern const u8 OtherText_Terminator6[];
-extern const u8 OtherText_GoodLookingPoke[];
-extern const u8 OtherText_Terminator7[];
-extern const u8 OtherText_MarvelousGreat[];
-extern const u8 OtherText_Terminator8[];
-extern const u8 OtherText_CenturyLastVenus[];
-extern const u8 OtherText_Terminator9[];
-extern const u8 OtherText_Terminator10[];
-extern const u8 OtherText_DazzlingSmile[];
-extern const u8 OtherText_PokeCenterIdol[];
-extern const u8 OtherText_Terminator11[];
-extern const u8 OtherText_LovelyAndSweet[];
-extern const u8 OtherText_Terminator12[];
-extern const u8 OtherText_ThePretty[];
-extern const u8 OtherText_WinningPortrait[];
-extern const u8 OtherText_GiveUsWink[];
-extern const u8 OtherText_Terminator13[];
-extern const u8 OtherText_SmartnessMaestro[];
-extern const u8 OtherText_Terminator14[];
-extern const u8 OtherText_ChosenPokeAmong[];
-extern const u8 OtherText_Terminator15[];
-extern const u8 OtherText_TheExcellent[];
-extern const u8 OtherText_ItsMomentOfElegance[];
-extern const u8 OtherText_PowerfullyMuscular[];
-extern const u8 OtherText_Terminator16[];
-extern const u8 OtherText_StrongErEst[];
-extern const u8 OtherText_Terminator17[];
-extern const u8 OtherText_MightyTough[];
-extern const u8 OtherText_Exclamation[];
-extern const u8 gContestText_ContestWinner[];
-extern const u8 gOtherText_Unknown1[];
static const u16 gPictureFramePalettes[][16] =
{
@@ -381,13 +341,6 @@ static void VBlankCB_ContestPainting(void)
TransferPlttBuffer();
}
-
-struct MonCoords
-{
- u8 x;
- u8 y;
-};
-
#ifdef NONMATCHING
static void sub_8106AC4(u16 species, u8 arg1)
{
diff --git a/src/credits.c b/src/credits.c
index ca5553c2e..de1d52361 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "event_data.h"
#include "m4a.h"
@@ -20,11 +21,6 @@ asm(".set OFFSET_REG_BLDALPHA, 0x52");
asm(".set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT");
asm(".set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA");
-struct MonCoords
-{
- u8 x, y;
-};
-
extern void *species_and_otid_get_pal(u32, u16, u16);
enum
@@ -173,10 +169,6 @@ extern s16 gUnknown_0203935C;
extern u8 gReservedSpritePaletteCount;
-// data/data2
-extern struct MonCoords gMonFrontPicCoords[];
-extern struct SpriteSheet gMonFrontPicTable[];
-
// data/starter_choose
extern u16 gBirchBagGrassPal[32];
extern u8 gBirchGrassTilemap[];
@@ -1520,8 +1512,8 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
LoadSpecialPokePic(
&gMonFrontPicTable[species],
- gMonFrontPicCoords[species].x,
- gMonFrontPicCoords[species].y,
+ gMonFrontPicCoords[species].coords,
+ gMonFrontPicCoords[species].y_offset,
0x2000000,
gUnknown_0840B5A0[position],
species,
diff --git a/src/decompress.c b/src/decompress.c
index 12be8a055..37aa1e8d5 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -1,15 +1,12 @@
#include "global.h"
#include "decompress.h"
#include "asm.h"
+#include "data2.h"
#include "species.h"
#include "text.h"
#define WRAM 0x02000000
-extern struct SpriteSheet gMonFrontPicTable[];
-extern struct SpriteSheet gMonBackPicTable[];
-extern void *gUnknown_081FAF4C[];
-
void sub_800D238(const void *src, void *dest)
{
LZ77UnCompWram(src, dest);
diff --git a/src/diploma.c b/src/diploma.c
index c32b72a70..80adac8f7 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -7,13 +7,10 @@
#include "rom4.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
#include "text.h"
-extern u8 gOtherText_NationalDex[];
-extern u8 gOtherText_HoennDex[];
-extern u8 gOtherText_DiplomaCertificationGameFreak[];
-
static void VBlankCB(void);
static void MainCB2(void);
static void Task_DiplomaFadeIn(u8);
diff --git a/src/easy_chat.c b/src/easy_chat.c
index 86719a2ae..b21b00368 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -1,12 +1,14 @@
#include "global.h"
#include "easy_chat.h"
#include "asm.h"
+#include "data2.h"
#include "event_data.h"
#include "field_message_box.h"
#include "pokedex.h"
#include "rng.h"
#include "string_util.h"
#include "strings.h"
+#include "strings2.h"
#include "text.h"
u8 sub_80EB37C(u16);
@@ -21,15 +23,11 @@ static u16 sub_80EB9D8(void);
static u16 sub_80EB960(void);
u16 sub_80EB72C(u16);
-extern const u8 gSpeciesNames[][11];
-extern u8 gMoveNames[][13];
extern void *gEasyChatGroupWords[];
extern const u8 gEasyChatGroupSizes[];
extern u16 gSpecialVar_0x8004;
-extern const u8 gOtherText_ThreeQuestions[];
-
#ifdef NONMATCHING
u8 *sub_80EB3FC(u8 *dst, u16 word) {
int group, wordIndex;
diff --git a/src/field_camera.c b/src/field_camera.c
index acb30e21e..df5ccc301 100644
--- a/src/field_camera.c
+++ b/src/field_camera.c
@@ -248,54 +248,54 @@ static void DrawMetatile(s32 a, u16 *b, u16 c)
{
switch (a)
{
- case 2:
- gBGTilemapBuffers[3][c] = b[0];
- gBGTilemapBuffers[3][c + 1] = b[1];
- gBGTilemapBuffers[3][c + 0x20] = b[2];
- gBGTilemapBuffers[3][c + 0x21] = b[3];
-
- gBGTilemapBuffers[2][c] = 0;
- gBGTilemapBuffers[2][c + 1] = 0;
- gBGTilemapBuffers[2][c + 0x20] = 0;
- gBGTilemapBuffers[2][c + 0x21] = 0;
-
- gBGTilemapBuffers[1][c] = b[4];
- gBGTilemapBuffers[1][c + 1] = b[5];
- gBGTilemapBuffers[1][c + 0x20] = b[6];
- gBGTilemapBuffers[1][c + 0x21] = b[7];
- break;
- case 1:
- gBGTilemapBuffers[3][c] = b[0];
- gBGTilemapBuffers[3][c + 1] = b[1];
- gBGTilemapBuffers[3][c + 0x20] = b[2];
- gBGTilemapBuffers[3][c + 0x21] = b[3];
-
- gBGTilemapBuffers[2][c] = b[4];
- gBGTilemapBuffers[2][c + 1] = b[5];
- gBGTilemapBuffers[2][c + 0x20] = b[6];
- gBGTilemapBuffers[2][c + 0x21] = b[7];
-
- gBGTilemapBuffers[1][c] = 0;
- gBGTilemapBuffers[1][c + 1] = 0;
- gBGTilemapBuffers[1][c + 0x20] = 0;
- gBGTilemapBuffers[1][c + 0x21] = 0;
- break;
- case 0:
- gBGTilemapBuffers[3][c] = 0x3014;
- gBGTilemapBuffers[3][c + 1] = 0x3014;
- gBGTilemapBuffers[3][c + 0x20] = 0x3014;
- gBGTilemapBuffers[3][c + 0x21] = 0x3014;
-
- gBGTilemapBuffers[2][c] = b[0];
- gBGTilemapBuffers[2][c + 1] = b[1];
- gBGTilemapBuffers[2][c + 0x20] = b[2];
- gBGTilemapBuffers[2][c + 0x21] = b[3];
-
- gBGTilemapBuffers[1][c] = b[4];
- gBGTilemapBuffers[1][c + 1] = b[5];
- gBGTilemapBuffers[1][c + 0x20] = b[6];
- gBGTilemapBuffers[1][c + 0x21] = b[7];
- break;
+ case 2:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = 0;
+ gBGTilemapBuffers[2][c + 1] = 0;
+ gBGTilemapBuffers[2][c + 0x20] = 0;
+ gBGTilemapBuffers[2][c + 0x21] = 0;
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
+ case 1:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = b[4];
+ gBGTilemapBuffers[2][c + 1] = b[5];
+ gBGTilemapBuffers[2][c + 0x20] = b[6];
+ gBGTilemapBuffers[2][c + 0x21] = b[7];
+
+ gBGTilemapBuffers[1][c] = 0;
+ gBGTilemapBuffers[1][c + 1] = 0;
+ gBGTilemapBuffers[1][c + 0x20] = 0;
+ gBGTilemapBuffers[1][c + 0x21] = 0;
+ break;
+ case 0:
+ gBGTilemapBuffers[3][c] = 0x3014;
+ gBGTilemapBuffers[3][c + 1] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x20] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x21] = 0x3014;
+
+ gBGTilemapBuffers[2][c] = b[0];
+ gBGTilemapBuffers[2][c + 1] = b[1];
+ gBGTilemapBuffers[2][c + 0x20] = b[2];
+ gBGTilemapBuffers[2][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
}
}
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index c5f2c08e7..8220a144b 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -342,41 +342,41 @@ static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unuse
return gUnknown_081C6C02;
switch (bgEvent->kind)
{
- case 0:
- default:
- return bgEvent->bgUnion.script;
- case 1:
- if (c != 2)
- return NULL;
- break;
- case 2:
- if (c != 1)
- return NULL;
- break;
- case 3:
- if (c != 4)
- return NULL;
- break;
- case 4:
- if (c != 3)
- return NULL;
- break;
- case 5:
- case 6:
- case 7:
- gSpecialVar_0x8004 = ((u32)bgEvent->bgUnion.script >> 16) + 0x258;
- gSpecialVar_0x8005 = (u32)bgEvent->bgUnion.script;
- if (FlagGet(gSpecialVar_0x8004) == TRUE)
- return NULL;
- return HiddenItemScript;
- case 8:
- if (c == 2)
- {
- gSpecialVar_0x8004 = (u32)bgEvent->bgUnion.script;
- if (sub_80BC050())
- return gUnknown_081A2C51;
- }
+ case 0:
+ default:
+ return bgEvent->bgUnion.script;
+ case 1:
+ if (c != 2)
+ return NULL;
+ break;
+ case 2:
+ if (c != 1)
+ return NULL;
+ break;
+ case 3:
+ if (c != 4)
return NULL;
+ break;
+ case 4:
+ if (c != 3)
+ return NULL;
+ break;
+ case 5:
+ case 6:
+ case 7:
+ gSpecialVar_0x8004 = ((u32)bgEvent->bgUnion.script >> 16) + 0x258;
+ gSpecialVar_0x8005 = (u32)bgEvent->bgUnion.script;
+ if (FlagGet(gSpecialVar_0x8004) == TRUE)
+ return NULL;
+ return HiddenItemScript;
+ case 8:
+ if (c == 2)
+ {
+ gSpecialVar_0x8004 = (u32)bgEvent->bgUnion.script;
+ if (sub_80BC050())
+ return gUnknown_081A2C51;
+ }
+ return NULL;
}
return bgEvent->bgUnion.script;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 13c1cd277..1e1162350 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -16,14 +16,10 @@
#include "script.h"
#include "songs.h"
#include "sound.h"
+#include "strings2.h"
#include "task.h"
#include "wild_encounter.h"
-extern u8 gOtherText_OhABite[];
-extern u8 gOtherText_PokeOnHook[];
-extern u8 gOtherText_NotEvenANibble[];
-extern u8 gOtherText_ItGotAway[];
-
extern u32 gUnknown_0202FF84[];
//Functions
diff --git a/src/field_poison.c b/src/field_poison.c
index 8e49080b0..4d4d4b975 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -72,32 +72,32 @@ void Task_WhiteOut(u8 taskId)
switch (taskData[TD_STATE])
{
- case 0: //Check if Pokemon have fainted due to poison
- while (taskData[TD_PARTY_MEMBER] < 6)
+ case 0: //Check if Pokemon have fainted due to poison
+ while (taskData[TD_PARTY_MEMBER] < 6)
+ {
+ if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER]))
{
- if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER]))
- {
- MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]);
- ShowFieldMessage(fieldPoisonText_PokemonFainted);
- taskData[TD_STATE]++;
- return;
- }
- taskData[TD_PARTY_MEMBER]++;
+ MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]);
+ ShowFieldMessage(fieldPoisonText_PokemonFainted);
+ taskData[TD_STATE]++;
+ return;
}
- taskData[TD_STATE] = 2;
- break;
- case 1: //Wait for message box to disappear
- if (IsFieldMessageBoxHidden())
- taskData[TD_STATE]--; //Check next party member
- break;
- case 2: //Done checking Pokemon
- if (AllMonsFainted())
- gScriptResult = 1;
- else
- gScriptResult = 0;
- EnableBothScriptContexts();
- DestroyTask(taskId);
- break;
+ taskData[TD_PARTY_MEMBER]++;
+ }
+ taskData[TD_STATE] = 2;
+ break;
+ case 1: //Wait for message box to disappear
+ if (IsFieldMessageBoxHidden())
+ taskData[TD_STATE]--; //Check next party member
+ break;
+ case 2: //Done checking Pokemon
+ if (AllMonsFainted())
+ gScriptResult = 1;
+ else
+ gScriptResult = 0;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
}
}
diff --git a/src/field_region_map.c b/src/field_region_map.c
index ec630ad00..66e3d968c 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -5,6 +5,7 @@
#include "palette.h"
#include "sprite.h"
#include "text.h"
+#include "strings2.h"
extern void sub_80FA8EC(u32, u8);
extern void sub_80FAB10(void);
@@ -29,8 +30,6 @@ struct UnkStruct
extern struct UnkStruct unk_2000000;
-extern u8 gOtherText_Hoenn[];
-
void CB2_FieldInitRegionMap(void);
void CB2_FieldRegionMap(void);
void VBlankCB_FieldRegionMap(void);
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index 59280b743..9e06ede81 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -143,64 +143,64 @@ void Task_HandleTruckSequence(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- switch (data[0])
- {
- /*
- Each case has a timer which is handled with data[1], incrementing
- until it reaches the if function's condition, which sets the next task up.
- */
- case 0:
- data[1]++;
- if (data[1] == SECONDS(1.5))
- {
- SetCameraPanningCallback(0);
- data[1] = 0; // reset the timer.
- data[2] = CreateTask(Task_Truck1, 0xA);
- data[0] = 1; // run the next case.
- PlaySE(SE_TRACK_MOVE);
- }
- break;
- case 1:
- data[1]++;
- if (data[1] == SECONDS(2.5))
- {
- pal_fill_black();
- data[1] = 0;
- data[0] = 2;
- }
- break;
- case 2:
- data[1]++;
- if (!gPaletteFade.active && data[1] > SECONDS(5))
- {
- data[1] = 0;
- DestroyTask(data[2]);
- data[3] = CreateTask(Task_Truck2, 0xA);
- data[0] = 3;
- PlaySE(SE_TRACK_STOP);
- }
- break;
- case 3:
- if (!gTasks[data[3]].isActive) // is Truck2 no longer active (is Truck3 active?)
- {
- InstallCameraPanAheadCallback();
- data[1] = 0;
- data[0] = 4;
- }
- break;
- case 4:
- data[1]++;
- if (data[1] == 90)
- {
- PlaySE(SE_TRACK_HAIK);
- data[1] = 0;
- data[0] = 5;
- }
- break;
- case 5:
- data[1]++;
- if (data[1] == 120)
- {
+ switch (data[0])
+ {
+ /*
+ Each case has a timer which is handled with data[1], incrementing
+ until it reaches the if function's condition, which sets the next task up.
+ */
+ case 0:
+ data[1]++;
+ if (data[1] == SECONDS(1.5))
+ {
+ SetCameraPanningCallback(0);
+ data[1] = 0; // reset the timer.
+ data[2] = CreateTask(Task_Truck1, 0xA);
+ data[0] = 1; // run the next case.
+ PlaySE(SE_TRACK_MOVE);
+ }
+ break;
+ case 1:
+ data[1]++;
+ if (data[1] == SECONDS(2.5))
+ {
+ pal_fill_black();
+ data[1] = 0;
+ data[0] = 2;
+ }
+ break;
+ case 2:
+ data[1]++;
+ if (!gPaletteFade.active && data[1] > SECONDS(5))
+ {
+ data[1] = 0;
+ DestroyTask(data[2]);
+ data[3] = CreateTask(Task_Truck2, 0xA);
+ data[0] = 3;
+ PlaySE(SE_TRACK_STOP);
+ }
+ break;
+ case 3:
+ if (!gTasks[data[3]].isActive) // is Truck2 no longer active (is Truck3 active?)
+ {
+ InstallCameraPanAheadCallback();
+ data[1] = 0;
+ data[0] = 4;
+ }
+ break;
+ case 4:
+ data[1]++;
+ if (data[1] == 90)
+ {
+ PlaySE(SE_TRACK_HAIK);
+ data[1] = 0;
+ data[0] = 5;
+ }
+ break;
+ case 5:
+ data[1]++;
+ if (data[1] == 120)
+ {
MapGridSetMetatileIdAt(11, 8, 520);
MapGridSetMetatileIdAt(11, 9, 528);
MapGridSetMetatileIdAt(11, 10, 536);
@@ -208,9 +208,9 @@ void Task_HandleTruckSequence(u8 taskId)
PlaySE(SE_TRACK_DOOR);
DestroyTask(taskId);
ScriptContext2_Disable();
- }
- break;
- }
+ }
+ break;
+ }
}
void ExecuteTruckSequence(void)
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 77c8752d1..8fde74852 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -160,37 +160,37 @@ void sub_80A27A8(s16 x, s16 y)
switch(metatileId)
{
- case 0x208:
- case 0x15:
- case 0xD:
- MapGridSetMetatileIdAt(x, y, 0x1);
- break;
- case 0x1C6:
- MapGridSetMetatileIdAt(x, y, 0x1CE);
- break;
- case 0x1C7:
- MapGridSetMetatileIdAt(x, y, 0x1CF);
- break;
- case 0x281:
- MapGridSetMetatileIdAt(x, y, 0x279);
- break;
- case 0x282:
- MapGridSetMetatileIdAt(x, y, 0x27A);
- break;
- case 0x283:
- MapGridSetMetatileIdAt(x, y, 0x27B);
- break;
- case 0x206:
- case 0x207:
- MapGridSetMetatileIdAt(x, y, 0x271);
- break;
- case 0x212:
- case 0x20A:
- MapGridSetMetatileIdAt(x, y, 0x218);
- break;
- case 0x25:
- MapGridSetMetatileIdAt(x, y, 0xE);
- break;
+ case 0x208:
+ case 0x15:
+ case 0xD:
+ MapGridSetMetatileIdAt(x, y, 0x1);
+ break;
+ case 0x1C6:
+ MapGridSetMetatileIdAt(x, y, 0x1CE);
+ break;
+ case 0x1C7:
+ MapGridSetMetatileIdAt(x, y, 0x1CF);
+ break;
+ case 0x281:
+ MapGridSetMetatileIdAt(x, y, 0x279);
+ break;
+ case 0x282:
+ MapGridSetMetatileIdAt(x, y, 0x27A);
+ break;
+ case 0x283:
+ MapGridSetMetatileIdAt(x, y, 0x27B);
+ break;
+ case 0x206:
+ case 0x207:
+ MapGridSetMetatileIdAt(x, y, 0x271);
+ break;
+ case 0x212:
+ case 0x20A:
+ MapGridSetMetatileIdAt(x, y, 0x218);
+ break;
+ case 0x25:
+ MapGridSetMetatileIdAt(x, y, 0xE);
+ break;
}
}
@@ -223,18 +223,18 @@ void sub_80A28F4(s16 x, s16 y)
{
switch((u8)sub_80A28A0(currentXsigned, y + 1))
{
- case 1:
- MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x208);
- break;
- case 2:
- MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x281);
- break;
- case 3:
- MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x282);
- break;
- case 4:
- MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x283);
- break;
+ case 1:
+ MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x208);
+ break;
+ case 2:
+ MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x281);
+ break;
+ case 3:
+ MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x282);
+ break;
+ case 4:
+ MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x283);
+ break;
}
}
if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY) == 1)
diff --git a/src/intro.c b/src/intro.c
index 2a62892ba..3f4897092 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -2,6 +2,7 @@
#include "gba/m4a_internal.h"
#include "intro.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "libgncmultiboot.h"
#include "link.h"
@@ -21,12 +22,6 @@
extern void *species_and_otid_get_pal(/*TODO: arg types*/);
extern void sub_8143680(int, u8);
-struct MonCoords
-{
- u8 x, y;
-};
-
-
extern struct SpriteTemplate gUnknown_02024E8C;
extern u16 gUnknown_02039318;
extern u16 gUnknown_0203931A;
@@ -36,13 +31,6 @@ extern u32 gIntroFrameCounter;
extern struct GcmbStruct gMultibootProgramStruct;
extern u16 gSaveFileStatus;
extern u8 gReservedSpritePaletteCount;
-extern struct SpriteSheet gMonFrontPicTable[];
-extern struct MonCoords gMonFrontPicCoords[];
-extern struct SpriteSheet gMonBackPicTable[];
-extern struct MonCoords gMonBackPicCoords[];
-extern struct SpriteSheet gTrainerBackPicTable[];
-extern struct MonCoords gTrainerBackPicCoords[];
-extern struct SpritePalette gTrainerBackPicPaletteTable[];
extern const u8 gInterfaceGfx_PokeBall[];
extern const u16 gInterfacePal_PokeBall[];
extern const struct SpriteSheet gIntro2BrendanSpriteSheet;
@@ -56,7 +44,6 @@ extern const u16 gIntroCopyright_Pal[];
extern const u16 gIntroCopyright_Tilemap[];
extern const u16 gUnknown_08393E64[];
extern void *const gUnknown_0840B5A0[];
-extern const s16 gSineTable[];
//--------------------------------------------------
// Graphics Data
@@ -1797,9 +1784,9 @@ static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front)
u8 spriteId;
if (front)
- LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1);
+ LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1);
else
- LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].x, gMonBackPicCoords[species].y, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0);
+ LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0);
pal = species_and_otid_get_pal(species, 0, 0xFFFF);
LoadCompressedPalette(pal, 0x100 + d * 0x10, 0x20);
sub_8143648(d, d);
@@ -1813,7 +1800,7 @@ static u8 sub_813CFA8(u16 a, u16 b, u16 c, u16 d)
{
u8 spriteId;
- DecompressPicFromTable_2(&gTrainerBackPicTable[a], gTrainerBackPicCoords[a].x, gTrainerBackPicCoords[a].y, (void *)0x2000000, gUnknown_0840B5A0[d], a);
+ DecompressPicFromTable_2(&gTrainerBackPicTable[a], gTrainerBackPicCoords[a].coords, gTrainerBackPicCoords[a].y_offset, (void *)0x2000000, gUnknown_0840B5A0[d], a);
LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + d * 0x10, 0x20);
sub_8143680(d, d);
gUnknown_02024E8C.anims = gUnknown_0840B064;
@@ -2084,29 +2071,29 @@ static void sub_813D788(struct Sprite *sprite)
{
switch (sprite->data0)
{
- case 0:
- StartSpriteAnimIfDifferent(sprite, 0);
- sprite->pos1.x--;
- break;
- case 1:
- StartSpriteAnimIfDifferent(sprite, 0);
- if (gIntroFrameCounter & 7)
- return;
+ case 0:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ sprite->pos1.x--;
+ break;
+ case 1:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (gIntroFrameCounter & 7)
+ return;
+ sprite->pos1.x++;
+ break;
+ case 2:
+ StartSpriteAnimIfDifferent(sprite, 2);
+ if (sprite->pos1.x <= 120 || (gIntroFrameCounter & 7))
sprite->pos1.x++;
- break;
- case 2:
- StartSpriteAnimIfDifferent(sprite, 2);
- if (sprite->pos1.x <= 120 || (gIntroFrameCounter & 7))
- sprite->pos1.x++;
- break;
- case 3:
- StartSpriteAnimIfDifferent(sprite, 3);
- break;
- case 4:
- StartSpriteAnimIfDifferent(sprite, 0);
- if (sprite->pos1.x > -32)
- sprite->pos1.x -= 2;
- break;
+ break;
+ case 3:
+ StartSpriteAnimIfDifferent(sprite, 3);
+ break;
+ case 4:
+ StartSpriteAnimIfDifferent(sprite, 0);
+ if (sprite->pos1.x > -32)
+ sprite->pos1.x -= 2;
+ break;
}
if (gIntroFrameCounter & 7)
return;
@@ -2118,16 +2105,16 @@ static void sub_813D788(struct Sprite *sprite)
{
switch (Random() & 3)
{
- case 0:
- sprite->pos2.y = -1;
- break;
- case 1:
- sprite->pos2.y = 1;
- break;
- case 2:
- case 3:
- sprite->pos2.y = 0;
- break;
+ case 0:
+ sprite->pos2.y = -1;
+ break;
+ case 1:
+ sprite->pos2.y = 1;
+ break;
+ case 2:
+ case 3:
+ sprite->pos2.y = 0;
+ break;
}
}
}
@@ -2136,24 +2123,24 @@ static void sub_813D880(struct Sprite *sprite)
{
switch (sprite->data0)
{
- case 0:
- break;
- case 1:
- if (sprite->pos2.x + sprite->pos1.x < 304)
- sprite->pos2.x += 8;
- else
- sprite->data0 = 2;
- break;
- case 2:
- if (sprite->pos2.x + sprite->pos1.x > 120)
- sprite->pos2.x -= 1;
- else
- sprite->data0 = 3;
- break;
- case 3:
- if (sprite->pos2.x > 0)
- sprite->pos2.x -= 2;
- break;
+ case 0:
+ break;
+ case 1:
+ if (sprite->pos2.x + sprite->pos1.x < 304)
+ sprite->pos2.x += 8;
+ else
+ sprite->data0 = 2;
+ break;
+ case 2:
+ if (sprite->pos2.x + sprite->pos1.x > 120)
+ sprite->pos2.x -= 1;
+ else
+ sprite->data0 = 3;
+ break;
+ case 3:
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x -= 2;
+ break;
}
sprite->pos2.y = Sin((u8)sprite->data1, 8) - gUnknown_0203935A;
sprite->data1 += 4;
diff --git a/src/item.c b/src/item.c
index 7257c3649..ad2b9aed3 100644
--- a/src/item.c
+++ b/src/item.c
@@ -1,10 +1,10 @@
#include "global.h"
#include "item.h"
#include "string_util.h"
+#include "strings.h"
extern struct Berry *GetBerryInfo(u8 berry);
-extern u8 gOtherText_Berry2[];
extern u8 gUnknown_02038560;
extern struct Item gItems[];
diff --git a/src/item_use.c b/src/item_use.c
index 4047ade5c..d1c1dbf2a 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -3,6 +3,7 @@
#include "battle.h"
#include "berry.h"
#include "coins.h"
+#include "data2.h"
#include "event_data.h"
#include "field_map_obj_helpers.h"
#include "field_player_avatar.h"
@@ -22,6 +23,7 @@
#include "songs.h"
#include "sound.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "vars.h"
@@ -29,8 +31,6 @@ extern void (* gUnknown_03005D00)(u8);
extern void (* gUnknown_0300485C)(void);
extern void (* gUnknown_03004AE4)(u8);
-extern u8 gMoveNames[][13];
-
extern u8 gUnknown_02038561;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gUnknown_02024E6C;
@@ -74,23 +74,6 @@ extern u8 GetItemEffectType();
extern void sub_808B020(void);
extern void sub_810B96C(void);
-extern u8 gOtherText_DadsAdvice[];
-extern u8 gOtherText_CantGetOffBike[];
-extern u8 gOtherText_NoResponse[];
-extern u8 gOtherText_ItemfinderResponding[];
-extern u8 gOtherText_ItemfinderItemUnderfoot[];
-extern u8 gOtherText_Coins3[];
-extern u8 gOtherText_BootedHM[];
-extern u8 gOtherText_BootedTM[];
-extern u8 gOtherText_ContainsMove[];
-extern u8 gOtherText_UsedItem[];
-extern u8 gOtherText_RepelLingers[];
-extern u8 gOtherText_UsedFlute[];
-extern u8 gOtherText_UsedRepel[];
-extern u8 gOtherText_BoxIsFull[];
-extern u8 gOtherText_WontHaveAnyEffect[];
-extern u8 gOtherText_SnapConfusion[];
-
extern u16 gScriptItemId;
extern u16 gBattleTypeFlags;
@@ -180,13 +163,13 @@ void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *text)
switch (playerMenuStatus)
{
- case 0: // Item Menu
- MenuZeroFillWindowRect(0, 13, 13, 20);
- DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1);
- break;
- default: // Field
- DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0);
- break;
+ case 0: // Item Menu
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1);
+ break;
+ default: // Field
+ DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0);
+ break;
}
}
@@ -439,33 +422,33 @@ bool8 sub_80C9688(struct MapConnection *connection, int x, int y)
switch(connection->direction)
{
- // same weird temp variable behavior seen in HiddenItemAtPos
- case 2:
- localOffset = connection->offset + 7;
- localX = x - localOffset;
- localLength = mapHeader->mapData->height - 7;
- localY = localLength + y; // additions are reversed for some reason
- break;
- case 1:
- localOffset = connection->offset + 7;
- localX = x - localOffset;
- localLength = gMapHeader.mapData->height + 7;
- localY = y - localLength;
- break;
- case 3:
- localLength = mapHeader->mapData->width - 7;
- localX = localLength + x; // additions are reversed for some reason
- localOffset = connection->offset + 7;
- localY = y - localOffset;
- break;
- case 4:
- localLength = gMapHeader.mapData->width + 7;
- localX = x - localLength;
- localOffset = connection->offset + 7;
- localY = y - localOffset;
- break;
- default:
- return FALSE;
+ // same weird temp variable behavior seen in HiddenItemAtPos
+ case 2:
+ localOffset = connection->offset + 7;
+ localX = x - localOffset;
+ localLength = mapHeader->mapData->height - 7;
+ localY = localLength + y; // additions are reversed for some reason
+ break;
+ case 1:
+ localOffset = connection->offset + 7;
+ localX = x - localOffset;
+ localLength = gMapHeader.mapData->height + 7;
+ localY = y - localLength;
+ break;
+ case 3:
+ localLength = mapHeader->mapData->width - 7;
+ localX = localLength + x; // additions are reversed for some reason
+ localOffset = connection->offset + 7;
+ localY = y - localOffset;
+ break;
+ case 4:
+ localLength = gMapHeader.mapData->width + 7;
+ localX = x - localLength;
+ localOffset = connection->offset + 7;
+ localY = y - localOffset;
+ break;
+ default:
+ return FALSE;
}
return HiddenItemAtPos(mapHeader->events, localX, localY);
}
@@ -1188,42 +1171,42 @@ void ItemUseOutOfBattle_EnigmaBerry(u8 taskId)
{
switch(GetItemEffectType(gScriptItemId) - 1)
{
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- gTasks[taskId].data[15] = 1;
- ItemUseOutOfBattle_Medicine(taskId);
- break;
- case 9:
- gTasks[taskId].data[15] = 1;
- ItemUseOutOfBattle_SacredAsh(taskId);
- break;
- case 0:
- gTasks[taskId].data[15] = 1;
- ItemUseOutOfBattle_RareCandy(taskId);
- break;
- case 18:
- case 19:
- gTasks[taskId].data[15] = 1;
- ItemUseOutOfBattle_PPUp(taskId);
- break;
- case 20:
- gTasks[taskId].data[15] = 1;
- ItemUseOutOfBattle_PPRecovery(taskId);
- break;
- default:
- gTasks[taskId].data[15] = 4;
- ItemUseOutOfBattle_CannotUse(taskId);
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ gTasks[taskId].data[15] = 1;
+ ItemUseOutOfBattle_Medicine(taskId);
+ break;
+ case 9:
+ gTasks[taskId].data[15] = 1;
+ ItemUseOutOfBattle_SacredAsh(taskId);
+ break;
+ case 0:
+ gTasks[taskId].data[15] = 1;
+ ItemUseOutOfBattle_RareCandy(taskId);
+ break;
+ case 18:
+ case 19:
+ gTasks[taskId].data[15] = 1;
+ ItemUseOutOfBattle_PPUp(taskId);
+ break;
+ case 20:
+ gTasks[taskId].data[15] = 1;
+ ItemUseOutOfBattle_PPRecovery(taskId);
+ break;
+ default:
+ gTasks[taskId].data[15] = 4;
+ ItemUseOutOfBattle_CannotUse(taskId);
}
}
@@ -1231,25 +1214,25 @@ void ItemUseInBattle_EnigmaBerry(u8 taskId)
{
switch(GetItemEffectType(gScriptItemId))
{
- case 0:
- ItemUseInBattle_StatIncrease(taskId);
- break;
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- case 11:
- ItemUseInBattle_Medicine(taskId);
- break;
- case 21:
- ItemUseInBattle_PPRecovery(taskId);
- break;
- default:
- ItemUseOutOfBattle_CannotUse(taskId);
+ case 0:
+ ItemUseInBattle_StatIncrease(taskId);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 11:
+ ItemUseInBattle_Medicine(taskId);
+ break;
+ case 21:
+ ItemUseInBattle_PPRecovery(taskId);
+ break;
+ default:
+ ItemUseOutOfBattle_CannotUse(taskId);
}
}
diff --git a/src/link.c b/src/link.c
index 224c0ae1c..7cf2fc611 100644
--- a/src/link.c
+++ b/src/link.c
@@ -10,6 +10,7 @@
#include "songs.h"
#include "sound.h"
#include "sprite.h"
+#include "strings2.h"
#include "task.h"
#include "text.h"
@@ -39,8 +40,6 @@ extern u16 gScriptItemId;
extern u16 word_3004858;
-extern u8 gMultiText_LinkError[];
-
static void InitLinkTestBG(u8, u8, u8, u8);
void InitLinkTestBG_Unused(u8, u8, u8, u8);
void LinkTestScreen();
diff --git a/src/mail.c b/src/mail.c
index 807864332..4ec107011 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -8,6 +8,7 @@
#include "rom4.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
#include "text.h"
@@ -70,8 +71,6 @@ extern u16 gUnknown_083E562C[][2];
extern struct MailLayout gUnknown_083E5730[];
extern struct MailLayout gUnknown_083E57A4[];
-extern u8 gOtherText_From[];
-
static u8 sub_80F8A28(void);
static void sub_80F8D50(void);
static void sub_80F8DA0(void);
diff --git a/src/main_menu.c b/src/main_menu.c
index 50fefc471..b2d08698b 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "main_menu.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "event_data.h"
#include "menu.h"
@@ -15,17 +16,13 @@
#include "sound.h"
#include "species.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
#include "title_screen.h"
#define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24))
-struct MonCoords
-{
- u8 x, y;
-};
-
extern struct PaletteFadeControl gPaletteFade;
extern u16 gSaveFileStatus;
@@ -41,24 +38,8 @@ extern const u8 gBirchSpeech_WhatsYourName[];
extern u8 gBirchSpeech_SoItsPlayer[];
extern u8 gBirchSpeech_AhOkayYouArePlayer[];
extern u8 gBirchSpeech_AreYouReady[];
-extern u8 gSaveFileDeletedMessage[];
-extern u8 gSaveFileCorruptMessage[];
-extern u8 gBoardNotInstalledMessage[];
-extern u8 gBatteryDryMessage[];
-extern u8 gMainMenuString_Continue[];
-extern u8 gMainMenuString_NewGame[];
-extern u8 gMainMenuString_MysteryEvents[];
-extern u8 gMainMenuString_Option[];
-extern u8 gMainMenuString_Player[];
-extern u8 gMainMenuString_Time[];
-extern u8 gMainMenuString_Pokedex[];
-extern u8 gMainMenuString_Badges[];
-
-extern const struct MonCoords gMonFrontPicCoords[];
-extern const struct SpriteSheet gMonFrontPicTable[];
-extern const struct SpritePalette gMonPaletteTable[];
+
extern struct SpriteTemplate gUnknown_02024E8C;
-extern void * const gUnknown_081FAF4C[];
extern u16 gUnknown_081E795C[];
extern const struct MenuAction gUnknown_081E79B0[];
extern const struct MenuAction gMalePresetNames[];
@@ -68,7 +49,6 @@ extern const u8 gUnknown_081E764C[];
extern const u8 gBirchIntroShadowGfx[];
extern const u8 gUnknown_081E7834[];
extern const u8 gUnknown_081E796C[];
-extern const u8 gSystemText_NewPara[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[];
@@ -115,7 +95,7 @@ static void Task_MainMenuProcessKeyInput(u8 taskId);
static void Task_MainMenuPressedA(u8 taskId);
static void Task_MainMenuPressedB(u8 taskId);
static void HighlightCurrentMenuItem(u8 layout, u8 menuItem);
-static void PrintMainMenuItem(u8 *text, u8 left, u8 top);
+static void PrintMainMenuItem(const u8 *text, u8 left, u8 top);
static void PrintSaveFileInfo(void);
static void PrintPlayerName(void);
static void PrintPlayTime(void);
@@ -657,7 +637,7 @@ void HighlightCurrentMenuItem(u8 layout, u8 menuItem)
}
}
-void PrintMainMenuItem(u8 *text, u8 left, u8 top)
+void PrintMainMenuItem(const u8 *text, u8 left, u8 top)
{
u8 i;
u8 buffer[32];
@@ -1412,8 +1392,8 @@ u8 CreateAzurillSprite(u8 x, u8 y)
{
DecompressPicFromTable_2(
&gMonFrontPicTable[SPECIES_AZURILL],
- gMonFrontPicCoords[SPECIES_AZURILL].x,
- gMonFrontPicCoords[SPECIES_AZURILL].y,
+ gMonFrontPicCoords[SPECIES_AZURILL].coords,
+ gMonFrontPicCoords[SPECIES_AZURILL].y_offset,
gUnknown_081FAF4C[0],
gUnknown_081FAF4C[1],
SPECIES_AZURILL);
@@ -1646,9 +1626,9 @@ static void SetPresetPlayerName(u8 index)
u8 *name;
if (gSaveBlock2.playerGender == MALE)
- name = gMalePresetNames[index].text;
+ name = (u8 *) gMalePresetNames[index].text;
else
- name = gFemalePresetNames[index].text;
+ name = (u8 *) gFemalePresetNames[index].text;
for (i = 0; i < 7; i++)
gSaveBlock2.playerName[i] = name[i];
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c
index d2ca754bb..018e36567 100644
--- a/src/matsuda_debug_menu.c
+++ b/src/matsuda_debug_menu.c
@@ -2,6 +2,7 @@
#include "matsuda_debug_menu.h"
#include "asm.h"
#include "contest.h"
+#include "data2.h"
#include "link.h"
#include "main.h"
#include "menu.h"
@@ -55,7 +56,6 @@ extern struct SpriteTemplate gSpriteTemplate_83C92CC;
extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8);
extern u32 gUnknown_083C9400[2];
-extern u8 gMoveNames[][13];
extern u8 gMatsudaDebugMenu_UnknownByteArray[];
extern u8* gMatsudaDebugMenuTextList1[];
@@ -528,41 +528,41 @@ void sub_80AA754(struct Sprite *sprite)
{
switch (gMain.newAndRepeatedKeys)
{
- case 0x10:
- case 0x20:
- sprite->data0 ^= 1;
- break;
- case 0x40:
- if (sprite->data1 == 0)
- sprite->data1 = 8;
- else
- sprite->data1--;
- break;
- case 0x80:
- if (sprite->data1 == 8)
- sprite->data1 = 0;
- else
- sprite->data1++;
- break;
- case 0x1:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 1);
- sub_80AA614(sprite->data2, sprite->data3);
- break;
- case 0x2:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -1);
- sub_80AA614(sprite->data2, sprite->data3);
- break;
- case 0x100:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 10);
- sub_80AA614(sprite->data2, sprite->data3);
- break;
- case 0x200:
- gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -10);
- sub_80AA614(sprite->data2, sprite->data3);
- break;
- case 0x8:
- sub_80AAD08(sprite, 1);
- break;
+ case DPAD_RIGHT:
+ case DPAD_LEFT:
+ sprite->data0 ^= 1;
+ break;
+ case DPAD_UP:
+ if (sprite->data1 == 0)
+ sprite->data1 = 8;
+ else
+ sprite->data1--;
+ break;
+ case DPAD_DOWN:
+ if (sprite->data1 == 8)
+ sprite->data1 = 0;
+ else
+ sprite->data1++;
+ break;
+ case A_BUTTON:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 1);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case B_BUTTON:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -1);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case R_BUTTON:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, 10);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case L_BUTTON:
+ gUnknown_083C92E4[sprite->data1][sprite->data0](sprite, -10);
+ sub_80AA614(sprite->data2, sprite->data3);
+ break;
+ case START_BUTTON:
+ sub_80AAD08(sprite, 1);
+ break;
}
sprite->pos1.x = gUnknown_083C9296[sprite->data0 + sprite->data1 * 2];
sprite->pos1.y = gUnknown_083C92A8[sprite->data1];
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index 11dadf380..d6fb33917 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -4,6 +4,7 @@
#include "rng.h"
#include "script.h"
#include "string_util.h"
+#include "strings.h"
extern u16 gScriptResult;
extern u16 gSpecialVar_0x8004;
@@ -14,8 +15,6 @@ extern void sub_80F83D0(void);
extern void sub_80F7F80(u8);
extern u16 sub_80EB8EC(void);
extern void sub_80F7DC0(void);
-extern u8 gOtherText_Is[];
-extern u8 gOtherText_DontYouAgree[];
extern u32 gUnknown_083E5388[];
extern u32 gUnknown_083E53A8[];
@@ -65,21 +64,21 @@ void SetMauvilleOldMan(void)
switch(var)
{
- case 0:
- sub_80F7A34();
- break;
- case 1:
- sub_80F7A6C();
- break;
- case 2:
- sub_80F7A98();
- break;
- case 3:
- sub_80F7A7C();
- break;
- case 4:
- sub_80F7A88();
- break;
+ case 0:
+ sub_80F7A34();
+ break;
+ case 1:
+ sub_80F7A6C();
+ break;
+ case 2:
+ sub_80F7A98();
+ break;
+ case 3:
+ sub_80F7A7C();
+ break;
+ case 4:
+ sub_80F7A88();
+ break;
}
sub_80F83D0();
}
diff --git a/src/menu.c b/src/menu.c
index 3759d22c9..61eaebb6f 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -6,6 +6,7 @@
#include "script.h"
#include "songs.h"
#include "sound.h"
+#include "strings.h"
#include "text.h"
#include "text_window.h"
@@ -22,9 +23,6 @@ struct Menu
u8 columnXCoords[8];
};
-extern u8 OtherText_Yes[];
-extern u8 OtherText_No[];
-
static void MultistepInitMenuWindowInternal(const struct WindowConfig *, u16);
static void InitMenuWindowInternal(const struct WindowConfig *, u16);
static bool8 sub_80723D4(void);
@@ -175,7 +173,7 @@ void MenuDrawTextWindow(u8 left, u8 top, u8 right, u8 bottom)
DrawTextWindow(gMenuWindowPtr, left, top, right, bottom);
}
-void sub_8071F40(u8 *str)
+void sub_8071F40(const u8 *str)
{
MenuDrawTextWindow(2, 14, 28, 19);
MenuPrint(str, 3, 15);
@@ -603,7 +601,7 @@ u8 MenuPrint_PixelCoords(const u8 *text, u8 left, u16 top, u8 a4)
return sub_8004D04(gMenuWindowPtr, text, gMenuTextTileOffset, left, top, a4);
}
-u8 sub_8072A18(u8 *text, u8 left, u16 top, u8 width, u32 a5)
+u8 sub_8072A18(const u8 *text, u8 left, u16 top, u8 width, u32 a5)
{
return sub_8004FD0(gMenuWindowPtr, 0, text, gMenuTextTileOffset, left, top, width, a5);
}
@@ -639,7 +637,7 @@ void sub_8072B80(u8 *a1, u8 a2, u8 a3, u8 *a4)
sub_8003460(gMenuWindowPtr, buffer, gMenuTextTileOffset, a2, a3);
}
-void sub_8072BD8(u8 *a1, u8 a2, u8 a3, u16 a4)
+void sub_8072BD8(const u8 *a1, u8 a2, u8 a3, u16 a4)
{
sub_8004DB0(gMenuWindowPtr, a1, gMenuTextTileOffset, a2, a3, a4);
}
@@ -659,7 +657,7 @@ u8 *sub_8072C74(u8 *a1, const u8 *a2, u8 a3, u8 a4)
return AlignString(gMenuWindowPtr, a1, a2, a3, a4);
}
-u8 sub_8072CA4(u8 *str)
+u8 sub_8072CA4(const u8 *str)
{
return GetStringWidth(gMenuWindowPtr, str);
}
diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c
index fd0ad773b..18c65b7e6 100644
--- a/src/mori_debug_menu.c
+++ b/src/mori_debug_menu.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "mori_debug_menu.h"
#include "asm.h"
+#include "data2.h"
#include "link.h"
#include "main.h"
#include "menu.h"
@@ -20,8 +21,6 @@ extern u8 gUnknown_0839B257[];
extern const struct MenuAction gMoriDebugMenuActions[];
-extern u8 gSpeciesNames[][11];
-
void unref_sub_8083CF0(void)
{
int i;
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
index 97deb348c..77c959b07 100644
--- a/src/mystery_event_menu.c
+++ b/src/mystery_event_menu.c
@@ -10,19 +10,13 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
#include "text.h"
extern u8 unk_2000000[];
extern u8 gUnknown_02039338;
-extern u8 gSystemText_LinkStandby[];
-extern u8 gSystemText_LoadEventPressA[];
-extern u8 gSystemText_LoadingEvent[];
-extern u8 gSystemText_DontCutLink[];
-extern u8 gSystemText_EventLoadSuccess[];
-extern u8 gSystemText_LoadingError[];
-
static void VBlankCB(void);
static bool8 CheckLanguageMatch(void);
static bool8 GetEventLoadMessage(u8 *dest, u32 status);
@@ -91,240 +85,240 @@ static void CB2_MysteryEventMenu(void)
switch (gMain.state)
{
- case 0:
- MenuDrawTextWindow(0, 14, 29, 19);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
- gMain.state++;
+ case 0:
+ MenuDrawTextWindow(0, 14, 29, 19);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
+ gMain.state++;
+ break;
+ case 1:
+ if (gPaletteFade.active)
break;
- case 1:
- if (gPaletteFade.active)
- break;
- sub_8072044(gSystemText_LinkStandby);
+ sub_8072044(gSystemText_LinkStandby);
+ gMain.state++;
+ break;
+ case 2:
+ if (MenuUpdateWindowText())
+ {
gMain.state++;
- break;
- case 2:
- if (MenuUpdateWindowText())
- {
- gMain.state++;
- gLinkType = 21761;
- OpenLink();
- }
- break;
- case 3:
- if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
- {
- PlaySE(SE_PIN);
- sub_8072044(gSystemText_LoadEventPressA);
- gMain.state++;
- }
- if (gMain.newKeys & B_BUTTON)
- {
- PlaySE(SE_SELECT);
- CloseLink();
- gMain.state = 15;
- }
- break;
- case 4:
- if (MenuUpdateWindowText())
- gMain.state++;
- break;
+ gLinkType = 21761;
+ OpenLink();
+ }
+ break;
+ case 3:
+ if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
+ {
+ PlaySE(SE_PIN);
+ sub_8072044(gSystemText_LoadEventPressA);
+ gMain.state++;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 4:
+ if (MenuUpdateWindowText())
+ gMain.state++;
+ break;
#ifdef NONMATCHING
- case 5:
- if (GetLinkPlayerCount_2() != 2)
+ case 5:
+ if (GetLinkPlayerCount_2() != 2)
+ {
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
+ break;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8007F4C();
+ MenuDrawTextWindow(6, 5, 23, 8);
+ MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ gMain.state++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 6:
+ if (IsLinkConnectionEstablished())
+ {
+ if (!gReceivedRemoteLinkPlayers)
+ break;
+
+ if (GetLinkPlayerDataExchangeStatusTimed() == 3)
{
+ sub_800832C();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
GetEventLoadMessage(gStringVar4, 1);
sub_8072044(gStringVar4);
gMain.state = 13;
break;
}
- if (gMain.newKeys & A_BUTTON)
+ else if (CheckLanguageMatch())
{
- PlaySE(SE_SELECT);
- sub_8007F4C();
- MenuDrawTextWindow(6, 5, 23, 8);
- MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ sub_8072044(gSystemText_DontCutLink);
gMain.state++;
+ break;
}
- else if (gMain.newKeys & B_BUTTON)
- {
- PlaySE(SE_SELECT);
- CloseLink();
- gMain.state = 15;
- }
- break;
- case 6:
- if (IsLinkConnectionEstablished())
- {
- if (!gReceivedRemoteLinkPlayers)
- break;
-
- if (GetLinkPlayerDataExchangeStatusTimed() == 3)
- {
- sub_800832C();
- MenuZeroFillWindowRect(6, 5, 23, 8);
- GetEventLoadMessage(gStringVar4, 1);
- sub_8072044(gStringVar4);
- gMain.state = 13;
- break;
- }
- else if (CheckLanguageMatch())
- {
- sub_8072044(gSystemText_DontCutLink);
- gMain.state++;
- break;
- }
- else
- {
- CloseLink();
- MenuZeroFillWindowRect(6, 5, 23, 8);
- GetEventLoadMessage(gStringVar4, 1);
- sub_8072044(gStringVar4);
- gMain.state = 13;
- break;
- }
- }
- if (gMain.newKeys & B_BUTTON)
+ else
{
- PlaySE(SE_SELECT);
CloseLink();
- gMain.state = 15;
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ gMain.state = 13;
break;
}
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
break;
+ }
+ break;
#else
- case 5:
- if (GetLinkPlayerCount_2() != 2)
- {
- goto label;
- }
- if (gMain.newKeys & A_BUTTON)
- {
- PlaySE(SE_SELECT);
- sub_8007F4C();
- MenuDrawTextWindow(6, 5, 23, 8);
- MenuPrint(gSystemText_LoadingEvent, 7, 6);
- gMain.state++;
- }
- else if (gMain.newKeys & B_BUTTON)
- {
- PlaySE(SE_SELECT);
- CloseLink();
- gMain.state = 15;
- }
- break;
- case 6:
- if (IsLinkConnectionEstablished())
- {
- register u8 *ptr asm("r0");
- register u32 offset1 asm("r2");
- register u32 offset2 asm("r1");
-
- if (!gReceivedRemoteLinkPlayers)
- break;
+ case 5:
+ if (GetLinkPlayerCount_2() != 2)
+ {
+ goto label;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8007F4C();
+ MenuDrawTextWindow(6, 5, 23, 8);
+ MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ gMain.state++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 6:
+ if (IsLinkConnectionEstablished())
+ {
+ register u8 *ptr asm("r0");
+ register u32 offset1 asm("r2");
+ register u32 offset2 asm("r1");
- if (GetLinkPlayerDataExchangeStatusTimed() == 3)
- {
- sub_800832C();
- MenuZeroFillWindowRect(6, 5, 23, 8);
- GetEventLoadMessage(gStringVar4, 1);
- sub_8072044(gStringVar4);
- ptr = (u8 *)&gMain;
- offset1 = offsetof(struct Main, state);
- asm("" ::: "r1");
- ptr += offset1;
- *ptr = 13;
- }
- else if (CheckLanguageMatch())
- {
- register u8 *ptr2 asm("r1");
- register int offset3 asm("r0");
- register int dummy asm("r2");
- sub_8072044(gSystemText_DontCutLink);
- ptr2 = (u8 *)&gMain;
- offset3 = offsetof(struct Main, state);
- if (dummy)
- dummy++;
- ptr2 += offset3;
- (*ptr2)++;
- break;
- }
- else
- {
- CloseLink();
- MenuZeroFillWindowRect(6, 5, 23, 8);
- label:
- GetEventLoadMessage(gStringVar4, 1);
- sub_8072044(gStringVar4);
- ptr = (u8 *)&gMain;
- offset2 = offsetof(struct Main, state);
- ptr += offset2;
- *ptr = 13;
- }
+ if (!gReceivedRemoteLinkPlayers)
break;
+
+ if (GetLinkPlayerDataExchangeStatusTimed() == 3)
+ {
+ sub_800832C();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ ptr = (u8 *)&gMain;
+ offset1 = offsetof(struct Main, state);
+ asm("" ::: "r1");
+ ptr += offset1;
+ *ptr = 13;
}
- if (gMain.newKeys & B_BUTTON)
+ else if (CheckLanguageMatch())
{
- PlaySE(SE_SELECT);
- CloseLink();
- gMain.state = 15;
+ register u8 *ptr2 asm("r1");
+ register int offset3 asm("r0");
+ register int dummy asm("r2");
+ sub_8072044(gSystemText_DontCutLink);
+ ptr2 = (u8 *)&gMain;
+ offset3 = offsetof(struct Main, state);
+ if (dummy)
+ dummy++;
+ ptr2 += offset3;
+ (*ptr2)++;
break;
}
- break;
-#endif
- case 7:
- if (MenuUpdateWindowText())
- gMain.state++;
- break;
- case 8:
- if (GetBlockReceivedStatus())
+ else
{
- ResetBlockReceivedFlags();
- gMain.state++;
+ CloseLink();
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ label:
+ GetEventLoadMessage(gStringVar4, 1);
+ sub_8072044(gStringVar4);
+ ptr = (u8 *)&gMain;
+ offset2 = offsetof(struct Main, state);
+ ptr += offset2;
+ *ptr = 13;
}
break;
- case 9:
- gMain.state++;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
break;
- case 10:
- sub_800832C();
+ }
+ break;
+#endif
+ case 7:
+ if (MenuUpdateWindowText())
gMain.state++;
- break;
- case 11:
- if (gReceivedRemoteLinkPlayers)
- break;
- unkVal = sub_812613C(unk_2000000);
- CpuFill32(0, unk_2000000, 0x7D4);
- if (!GetEventLoadMessage(gStringVar4, unkVal))
- TrySavingData(NORMAL_SAVE);
+ break;
+ case 8:
+ if (GetBlockReceivedStatus())
+ {
+ ResetBlockReceivedFlags();
gMain.state++;
+ }
+ break;
+ case 9:
+ gMain.state++;
+ break;
+ case 10:
+ sub_800832C();
+ gMain.state++;
+ break;
+ case 11:
+ if (gReceivedRemoteLinkPlayers)
break;
- case 12:
- sub_8072044(gStringVar4);
+ unkVal = sub_812613C(unk_2000000);
+ CpuFill32(0, unk_2000000, 0x7D4);
+ if (!GetEventLoadMessage(gStringVar4, unkVal))
+ TrySavingData(NORMAL_SAVE);
+ gMain.state++;
+ break;
+ case 12:
+ sub_8072044(gStringVar4);
+ gMain.state++;
+ break;
+ case 13:
+ MenuZeroFillWindowRect(6, 5, 23, 8);
+ if (MenuUpdateWindowText())
+ {
gMain.state++;
- break;
- case 13:
- MenuZeroFillWindowRect(6, 5, 23, 8);
- if (MenuUpdateWindowText())
- {
- gMain.state++;
- gUnknown_02039338 = 0;
- }
- break;
- case 14:
- if (gMain.newKeys & A_BUTTON)
- {
- PlaySE(SE_SELECT);
- gMain.state++;
- }
- break;
- case 15:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gUnknown_02039338 = 0;
+ }
+ break;
+ case 14:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
gMain.state++;
- break;
- case 16:
- if (!gPaletteFade.active)
- DoSoftReset();
- break;
+ }
+ break;
+ case 15:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gMain.state++;
+ break;
+ case 16:
+ if (!gPaletteFade.active)
+ DoSoftReset();
+ break;
}
if (gLinkStatus & 0x40)
diff --git a/src/naming_screen.c b/src/naming_screen.c
index b14c690e2..53ee5ff19 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "naming_screen.h"
#include "asm.h"
+#include "data2.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
@@ -8,6 +9,7 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
#include "text.h"
#include "trig.h"
@@ -48,7 +50,6 @@ extern const struct SpriteTemplate gSpriteTemplate_83CE670;
extern const struct SpriteTemplate gSpriteTemplate_83CE688;
extern const struct SpriteSheet gUnknown_083CE6A0[];
extern const struct SpritePalette gUnknown_083CE708[];
-extern const u8 gOtherText_SentToPC[];
extern const u8 gNamingScreenMenu_Gfx[];
extern u16 gMenuMessageBoxContentTileOffset;
extern const u16 gNamingScreenPalettes[];
@@ -56,10 +57,6 @@ extern const u16 gUnknown_083CE748[];
extern const u16 gUnknown_083CEBF8[];
extern const u16 gUnknown_083CF0A8[];
extern const u16 gUnknown_08E86258[];
-extern const u8 gSpeciesNames[][11];
-extern const u8 OtherText_YourName[];
-extern const u8 OtherText_BoxName[];
-extern const u8 OtherText_PokeName[];
static void C2_NamingScreen(void);
static void sub_80B5AA0(void);
diff --git a/src/option_menu.c b/src/option_menu.c
index 613012972..878df16ba 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -4,6 +4,7 @@
#include "menu.h"
#include "palette.h"
#include "sprite.h"
+#include "strings2.h"
#include "task.h"
extern void SetPokemonCryStereo(u32 val);
@@ -33,28 +34,6 @@ enum {
extern u8 gUnknown_0839F63C[];
extern u8 gUnknown_0839F5FC[]; //palette
-extern u8 gSystemText_Normal[];
-extern u8 gSystemText_LR[];
-extern u8 gSystemText_LA[];
-extern u8 gSystemText_Terminator[];
-extern u8 gSystemText_Type[];
-extern u8 gSystemText_Mono[];
-extern u8 gSystemText_Stereo[];
-extern u8 gSystemText_Shift[];
-extern u8 gSystemText_Set[];
-extern u8 gSystemText_On[];
-extern u8 gSystemText_Off[];
-extern u8 gSystemText_Slow[];
-extern u8 gSystemText_Mid[];
-extern u8 gSystemText_Fast[];
-extern u8 gSystemText_OptionMenu[];
-extern u8 gSystemText_TextSpeed[];
-extern u8 gSystemText_BattleScene[];
-extern u8 gSystemText_BattleStyle[];
-extern u8 gSystemText_Sound[];
-extern u8 gSystemText_ButtonMode[];
-extern u8 gSystemText_Frame[];
-extern u8 gSystemText_Cancel[];
static void Task_OptionMenuFadeIn(u8 taskId);
static void Task_OptionMenuProcessInput(u8 taskId);
@@ -93,135 +72,135 @@ void CB2_InitOptionMenu(void)
{
switch (gMain.state)
{
- default:
- case 0:
+ default:
+ case 0:
+ {
+ u8 *addr;
+ u32 size;
+
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ addr = (u8 *)VRAM;
+ size = 0x18000;
+ while (1)
{
- u8 *addr;
- u32 size;
-
- SetVBlankCallback(NULL);
- REG_DISPCNT = 0;
- REG_BG2CNT = 0;
- REG_BG1CNT = 0;
- REG_BG0CNT = 0;
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- addr = (u8 *)VRAM;
- size = 0x18000;
- while (1)
+ DmaFill16(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
{
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
+ DmaFill16(3, 0, addr, size);
+ break;
}
- DmaClear32(3, OAM, OAM_SIZE);
- DmaClear16(3, PLTT, PLTT_SIZE);
- gMain.state++;
- break;
- }
- case 1:
- ResetPaletteFade();
- remove_some_task();
- ResetTasks();
- ResetSpriteData();
- gMain.state++;
- break;
- case 2:
- SetUpWindowConfig(&gWindowConfig_81E71B4);
- gMain.state++;
- break;
- case 3:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E71B4);
- gMain.state++;
- break;
- case 4:
- if (!MultistepInitMenuWindowContinue())
- return;
- gMain.state++;
- break;
- case 5:
- LoadPalette(gUnknown_0839F5FC, 0x80, 0x40);
- CpuCopy16(gUnknown_0839F63C, (void *)0x0600BEE0, 0x40);
- gMain.state++;
- break;
- case 6:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- gMain.state++;
- break;
- case 7:
- {
- u16 savedIme;
-
- REG_WIN0H = 0;
- REG_WIN0V = 0;
- REG_WIN1H = 0;
- REG_WIN1V = 0;
- REG_WININ = 0x1111;
- REG_WINOUT = 0x31;
- REG_BLDCNT = 0xE1;
- REG_BLDALPHA = 0;
- REG_BLDY = 7;
- savedIme = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = savedIme;
- REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(VBlankCB);
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON |
- DISPCNT_WIN0_ON | DISPCNT_WIN1_ON;
- gMain.state++;
- break;
- }
- case 8:
- {
- u8 taskId = CreateTask(Task_OptionMenuFadeIn, 0);
-
- gTasks[taskId].data[TD_MENUSELECTION] = 0;
- gTasks[taskId].data[TD_TEXTSPEED] = gSaveBlock2.optionsTextSpeed;
- gTasks[taskId].data[TD_BATTLESCENE] = gSaveBlock2.optionsBattleSceneOff;
- gTasks[taskId].data[TD_BATTLESTYLE] = gSaveBlock2.optionsBattleStyle;
- gTasks[taskId].data[TD_SOUND] = gSaveBlock2.optionsSound;
- gTasks[taskId].data[TD_BUTTONMODE] = gSaveBlock2.optionsButtonMode;
- gTasks[taskId].data[TD_FRAMETYPE] = gSaveBlock2.optionsWindowFrameType;
-
- MenuDrawTextWindow(2, 0, 27, 3);
- MenuDrawTextWindow(2, 4, 27, 19);
-
- MenuPrint(gSystemText_OptionMenu, 4, 1);
- MenuPrint(gSystemText_TextSpeed, 4, 5);
- MenuPrint(gSystemText_BattleScene, 4, 7);
- MenuPrint(gSystemText_BattleStyle, 4, 9);
- MenuPrint(gSystemText_Sound, 4, 11);
- MenuPrint(gSystemText_ButtonMode, 4, 13);
- MenuPrint(gSystemText_Frame, 4, 15);
- MenuPrint(gSystemText_Cancel, 4, 17);
-
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
-
- REG_WIN0H = WIN_RANGE(17, 223);
- REG_WIN0V = WIN_RANGE(1, 31);
-
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
- gMain.state++;
- break;
}
- case 9:
- SetMainCallback2(MainCB);
+ DmaClear32(3, OAM, OAM_SIZE);
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ gMain.state++;
+ break;
+ }
+ case 1:
+ ResetPaletteFade();
+ remove_some_task();
+ ResetTasks();
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 2:
+ SetUpWindowConfig(&gWindowConfig_81E71B4);
+ gMain.state++;
+ break;
+ case 3:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E71B4);
+ gMain.state++;
+ break;
+ case 4:
+ if (!MultistepInitMenuWindowContinue())
return;
+ gMain.state++;
+ break;
+ case 5:
+ LoadPalette(gUnknown_0839F5FC, 0x80, 0x40);
+ CpuCopy16(gUnknown_0839F63C, (void *)0x0600BEE0, 0x40);
+ gMain.state++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gMain.state++;
+ break;
+ case 7:
+ {
+ u16 savedIme;
+
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_WININ = 0x1111;
+ REG_WINOUT = 0x31;
+ REG_BLDCNT = 0xE1;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 7;
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(VBlankCB);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON |
+ DISPCNT_WIN0_ON | DISPCNT_WIN1_ON;
+ gMain.state++;
+ break;
+ }
+ case 8:
+ {
+ u8 taskId = CreateTask(Task_OptionMenuFadeIn, 0);
+
+ gTasks[taskId].data[TD_MENUSELECTION] = 0;
+ gTasks[taskId].data[TD_TEXTSPEED] = gSaveBlock2.optionsTextSpeed;
+ gTasks[taskId].data[TD_BATTLESCENE] = gSaveBlock2.optionsBattleSceneOff;
+ gTasks[taskId].data[TD_BATTLESTYLE] = gSaveBlock2.optionsBattleStyle;
+ gTasks[taskId].data[TD_SOUND] = gSaveBlock2.optionsSound;
+ gTasks[taskId].data[TD_BUTTONMODE] = gSaveBlock2.optionsButtonMode;
+ gTasks[taskId].data[TD_FRAMETYPE] = gSaveBlock2.optionsWindowFrameType;
+
+ MenuDrawTextWindow(2, 0, 27, 3);
+ MenuDrawTextWindow(2, 4, 27, 19);
+
+ MenuPrint(gSystemText_OptionMenu, 4, 1);
+ MenuPrint(gSystemText_TextSpeed, 4, 5);
+ MenuPrint(gSystemText_BattleScene, 4, 7);
+ MenuPrint(gSystemText_BattleStyle, 4, 9);
+ MenuPrint(gSystemText_Sound, 4, 11);
+ MenuPrint(gSystemText_ButtonMode, 4, 13);
+ MenuPrint(gSystemText_Frame, 4, 15);
+ MenuPrint(gSystemText_Cancel, 4, 17);
+
+ TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
+ BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
+ BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
+ Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
+ ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
+ FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+
+ REG_WIN0H = WIN_RANGE(17, 223);
+ REG_WIN0V = WIN_RANGE(1, 31);
+
+ HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ gMain.state++;
+ break;
+ }
+ case 9:
+ SetMainCallback2(MainCB);
+ return;
}
}
@@ -264,30 +243,30 @@ static void Task_OptionMenuProcessInput(u8 taskId)
{
switch (gTasks[taskId].data[TD_MENUSELECTION])
{
- case MENUITEM_TEXTSPEED:
- gTasks[taskId].data[TD_TEXTSPEED] = TextSpeed_ProcessInput(gTasks[taskId].data[TD_TEXTSPEED]);
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
- break;
- case MENUITEM_BATTLESCENE:
- gTasks[taskId].data[TD_BATTLESCENE] = BattleScene_ProcessInput(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
- break;
- case MENUITEM_BATTLESTYLE:
- gTasks[taskId].data[TD_BATTLESTYLE] = BattleStyle_ProcessInput(gTasks[taskId].data[TD_BATTLESTYLE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
- break;
- case MENUITEM_SOUND:
- gTasks[taskId].data[TD_SOUND] = Sound_ProcessInput(gTasks[taskId].data[TD_SOUND]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
- break;
- case MENUITEM_BUTTONMODE:
- gTasks[taskId].data[TD_BUTTONMODE] = ButtonMode_ProcessInput(gTasks[taskId].data[TD_BUTTONMODE]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
- break;
- case MENUITEM_FRAMETYPE:
- gTasks[taskId].data[TD_FRAMETYPE] = FrameType_ProcessInput(gTasks[taskId].data[TD_FRAMETYPE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
- break;
+ case MENUITEM_TEXTSPEED:
+ gTasks[taskId].data[TD_TEXTSPEED] = TextSpeed_ProcessInput(gTasks[taskId].data[TD_TEXTSPEED]);
+ TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
+ break;
+ case MENUITEM_BATTLESCENE:
+ gTasks[taskId].data[TD_BATTLESCENE] = BattleScene_ProcessInput(gTasks[taskId].data[TD_BATTLESCENE]);
+ BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
+ break;
+ case MENUITEM_BATTLESTYLE:
+ gTasks[taskId].data[TD_BATTLESTYLE] = BattleStyle_ProcessInput(gTasks[taskId].data[TD_BATTLESTYLE]);
+ BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
+ break;
+ case MENUITEM_SOUND:
+ gTasks[taskId].data[TD_SOUND] = Sound_ProcessInput(gTasks[taskId].data[TD_SOUND]);
+ Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
+ break;
+ case MENUITEM_BUTTONMODE:
+ gTasks[taskId].data[TD_BUTTONMODE] = ButtonMode_ProcessInput(gTasks[taskId].data[TD_BUTTONMODE]);
+ ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
+ break;
+ case MENUITEM_FRAMETYPE:
+ gTasks[taskId].data[TD_FRAMETYPE] = FrameType_ProcessInput(gTasks[taskId].data[TD_FRAMETYPE]);
+ FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+ break;
}
}
}
@@ -323,7 +302,7 @@ static void HighlightOptionMenuItem(u8 index)
REG_WIN1V = WIN_RANGE_(index * 16 + 40, index * 16 + 56);
}
-static void DrawOptionMenuChoice(u8 *text, u8 x, u8 y, u8 style)
+static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style)
{
u8 dst[16];
u16 i;
diff --git a/src/party_menu.c b/src/party_menu.c
index 8eb181f46..ee6bcf2a9 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -1,10 +1,12 @@
#include "global.h"
#include "asm.h"
+#include "data2.h"
#include "menu.h"
#include "pokemon.h"
#include "songs.h"
#include "sound.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "sprite.h"
#include "palette.h"
@@ -86,51 +88,6 @@ extern const u16 gUnknown_08376504[];
extern void (*const gUnknown_08376B54[])(u8);
extern const u8 *const gUnknown_08376D04[DATA_COUNT];
extern const struct UnknownStruct5 gUnknown_08376BB4[][6];
-extern const u8 gOtherText_TallPlusAndRightArrow[];
-extern const u8 gOtherText_WontHaveAnyEffect[];
-extern const u8 gOtherText_ElevatedTo[];
-extern const u8 gOtherText_MailMustBeRemoved[];
-extern const u8 gOtherText_AlreadyHolding[];
-extern const u8 gOtherText_TakenAndReplaced[];
-extern const u8 gOtherText_BagFullCannotRemoveItem[];
-extern const u8 gOtherText_WasGivenToHold[];
-extern const u8 gOtherText_PokeHoldingItemCantMail[];
-extern const u8 gOtherText_MailTransferredMailbox[];
-extern const u8 gOtherText_NotHoldingAnything[];
-extern const u8 gOtherText_ReceivedTheThingFrom[];
-extern const u8 gOtherText_SendRemovedMailPrompt[];
-extern const u8 gOtherText_MailTaken[];
-extern const u8 gOtherText_MailWasSent[];
-extern const u8 gOtherText_MailboxIsFull[];
-extern const u8 gOtherText_MailRemovedMessageLost[];
-extern const u8 gOtherText_WantsToLearn[];
-extern const u8 gOtherText_NotCompatible[];
-extern const u8 gOtherText_AlreadyKnows[];
-extern const u8 gOtherText_LearnedMove[];
-extern const u8 gOtherText_WhichMoveToForget2[];
-extern const u8 gOtherText_ForgetMove123_2[];
-extern const u8 gOtherText_StopTryingTo[];
-extern const u8 gOtherText_DidNotLearnMove2[];
-extern const u8 gOtherText_RegainedHealth[];
-extern const u8 gOtherText_HPRestoredBy[];
-extern const u8 gOtherText_CuredPoisoning[];
-extern const u8 gOtherText_WokeUp[];
-extern const u8 gOtherText_BurnHealed[];
-extern const u8 gOtherText_ThawedOut[];
-extern const u8 gOtherText_CuredParalysis[];
-extern const u8 gOtherText_SnapConfusion[];
-extern const u8 gOtherText_GotOverLove[];
-extern const u8 gOtherText_BecameHealthy[];
-extern const u8 gOtherText_Hp2[];
-extern const u8 gOtherText_Attack[];
-extern const u8 gOtherText_Defense[];
-extern const u8 gOtherText_Speed[];
-extern const u8 gOtherText_SpAtk2[];
-extern const u8 gOtherText_SpDef2[];
-extern const u8 gOtherText_WasRaised[];
-extern const u8 gOtherText_PPIncreased[];
-extern const u8 gOtherText_PPRestored[];
-extern const u8 gMoveNames[][13];
extern const u8 *const gItemEffectTable[];
extern bool8 IsDoubleBattle(void);
diff --git a/src/player_pc.c b/src/player_pc.c
index f0f0709b1..c012afb02 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -10,6 +10,7 @@
#include "script.h"
#include "sound.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#define NEW_GAME_PC_ITEMS(i, type) ((u16)(gNewGamePCItems + type)[i * 2])
@@ -21,7 +22,7 @@ enum
QUANTITY,
};
-extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
+extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16);
extern void DoPlayerPCDecoration(u8);
extern void BuyMenuFreeMemory(void);
extern void DestroyVerticalScrollIndicator(u8);
@@ -40,13 +41,8 @@ extern void sub_80F98DC(int);
extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args
-extern u8 gOtherText_NoItems[];
-
extern u16 gNewGamePCItems[];
-extern u8 gOtherText_WhatWillYouDo[];
-extern u8 gOtherText_NoMailHere[];
-
extern u8 *gUnknown_02039314;
extern struct MenuAction gUnknown_08406298[];
@@ -57,7 +53,6 @@ extern u8 gUnknown_08406327[];
extern u8 gUnknown_08406330[];
extern u8 gUnknown_0840631E[];
extern u8 gUnknown_08406318[];
-extern u8 gOtherText_CancelNoTerminator[];
extern u8 gUnknown_030007B4;
extern u8 unk_201FE00[];
@@ -784,17 +779,17 @@ void sub_813ABE8(u8 taskId)
switch(GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1)
{
- case 0:
- case 1:
- case 3:
- sub_813AB64((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
- break;
- case 4:
- sub_813AB90((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
- break;
- case 2:
- sub_813ABAC((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
- break;
+ case 0:
+ case 1:
+ case 3:
+ sub_813AB64((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
+ case 4:
+ sub_813AB90((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
+ case 2:
+ sub_813ABAC((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
}
}
else
@@ -809,15 +804,15 @@ beforeLabel:
switch(data[1])
{
- default:
- CreateVerticalScrollIndicators(0, 0xB8, 8);
- break;
+ default:
+ CreateVerticalScrollIndicators(0, 0xB8, 8);
+ break;
weirdCase:
- sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (j + 2) * 8, 0x68, 1);
- goto beforeLabel;
- case 0:
- DestroyVerticalScrollIndicator(0);
- break;
+ sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (j + 2) * 8, 0x68, 1);
+ goto beforeLabel;
+ case 0:
+ DestroyVerticalScrollIndicator(0);
+ break;
}
if(data[1] + data[4] <= data[2])
diff --git a/src/pokedex.c b/src/pokedex.c
index 5ea1f9938..97bac3390 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -12,7 +12,9 @@
#include "songs.h"
#include "sound.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
+#include "trig.h"
// I'm #define-ing these just for now so I can keep using the old unkXXX member names
#define unk60E selectedPokemon
@@ -77,7 +79,6 @@ extern struct SpriteTemplate gSpriteTemplate_83A056C;
extern struct SpriteTemplate gSpriteTemplate_83A0584;
extern struct SpriteTemplate gSpriteTemplate_83A059C;
extern struct SpriteTemplate gSpriteTemplate_83A05B4;
-extern s16 gSineTable[];
extern struct PokedexListItem *gUnknown_0202FFBC;
extern IntrCallback gUnknown_03005CEC;
extern u8 gUnknown_08E96BD4[];
@@ -90,12 +91,6 @@ extern u8 gUnknown_08E96ACC[];
extern u8 gUnknown_08E96B58[];
extern struct PokedexEntry gPokedexEntries[];
-extern u8 gDexText_UnknownPoke[];
-extern u8 gDexText_UnknownHeight[];
-extern u8 gDexText_UnknownWeight[];
-extern u8 gDexText_CryOf[];
-extern u8 gDexText_SizeComparedTo[];
-extern u8 gDexText_RegisterComplete[];
extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
@@ -108,7 +103,6 @@ extern u16 NationalToHoennOrder(u16);
extern u16 gPokedexOrder_Alphabetical[];
extern u16 gPokedexOrder_Weight[];
extern u16 gPokedexOrder_Height[];
-extern u8 gSpeciesNames[][11];
u16 NationalPokedexNumToSpecies(u16);
@@ -207,97 +201,97 @@ void CB2_InitPokedex(void)
{
switch (gMain.state)
{
- case 0:
- default:
- {
- u8 *addr;
- u32 size;
+ case 0:
+ default:
+ {
+ u8 *addr;
+ u32 size;
- SetVBlankCallback(NULL);
- sub_8091060(0);
- addr = (u8 *)VRAM;
- size = VRAM_SIZE;
- while (1)
+ SetVBlankCallback(NULL);
+ sub_8091060(0);
+ addr = (u8 *)VRAM;
+ size = VRAM_SIZE;
+ while (1)
+ {
+ DmaFill16(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
{
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
+ DmaFill16(3, 0, addr, size);
+ break;
}
- DmaClear32(3, OAM, OAM_SIZE);
- DmaClear16(3, PLTT, PLTT_SIZE);
- gMain.state = 1;
- break;
}
+ DmaClear32(3, OAM, OAM_SIZE);
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ gMain.state = 1;
+ break;
+ }
+ case 1:
+ remove_some_task();
+ ResetTasks();
+ ResetSpriteData();
+ ResetPaletteFade();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ SetUpWindowConfig(&gWindowConfig_81E7048);
+ InitMenuWindow(&gWindowConfig_81E7048);
+ gMain.state++;
+ break;
+ case 2:
+ switch (Random() & 3)
+ {
+ case 0:
+ default:
+ gPokedexView = (struct PokedexView *)0x02018000;
+ break;
case 1:
- remove_some_task();
- ResetTasks();
- ResetSpriteData();
- ResetPaletteFade();
- FreeAllSpritePalettes();
- gReservedSpritePaletteCount = 8;
- SetUpWindowConfig(&gWindowConfig_81E7048);
- InitMenuWindow(&gWindowConfig_81E7048);
- gMain.state++;
+ gPokedexView = (struct PokedexView *)0x02018800;
break;
case 2:
- switch (Random() & 3)
- {
- case 0:
- default:
- gPokedexView = (struct PokedexView *)0x02018000;
- break;
- case 1:
- gPokedexView = (struct PokedexView *)0x02018800;
- break;
- case 2:
- gPokedexView = (struct PokedexView *)0x02019000;
- break;
- case 3:
- gPokedexView = (struct PokedexView *)0x02019800;
- break;
- }
- ClearPokedexView(gPokedexView);
- CreateTask(Task_PokedexShowMainScreen, 0);
- gPokedexView->dexMode = gSaveBlock2.pokedex.unknown1;
- if (!IsNationalPokedexEnabled())
- gPokedexView->dexMode = DEX_MODE_HOENN;
- gPokedexView->dexOrder = gSaveBlock2.pokedex.order;
- gPokedexView->selectedPokemon = gUnknown_0202FFB8;
- gPokedexView->unk62C = gUnknown_0202FFBA;
- gPokedexView->selectedScreen = PAGE_SCREEN;
- gPokedexView->unk64E = 0;
- if (!IsNationalPokedexEnabled())
- {
- gPokedexView->unk61A = GetHoennPokedexCount(0);
- gPokedexView->unk61C = GetHoennPokedexCount(1);
- }
- else
- {
- gPokedexView->unk61A = GetNationalPokedexCount(0);
- gPokedexView->unk61C = GetNationalPokedexCount(1);
- }
- gPokedexView->unk62D = 8;
- gMain.state++;
+ gPokedexView = (struct PokedexView *)0x02019000;
break;
case 3:
+ gPokedexView = (struct PokedexView *)0x02019800;
+ break;
+ }
+ ClearPokedexView(gPokedexView);
+ CreateTask(Task_PokedexShowMainScreen, 0);
+ gPokedexView->dexMode = gSaveBlock2.pokedex.unknown1;
+ if (!IsNationalPokedexEnabled())
+ gPokedexView->dexMode = DEX_MODE_HOENN;
+ gPokedexView->dexOrder = gSaveBlock2.pokedex.order;
+ gPokedexView->selectedPokemon = gUnknown_0202FFB8;
+ gPokedexView->unk62C = gUnknown_0202FFBA;
+ gPokedexView->selectedScreen = PAGE_SCREEN;
+ gPokedexView->unk64E = 0;
+ if (!IsNationalPokedexEnabled())
{
- u16 savedIme;
-
- savedIme = REG_IME;
- REG_IME = 0;
- REG_IE |= 1;
- REG_IME = savedIme;
- REG_DISPSTAT |= 8;
- SetVBlankCallback(sub_808C0B8);
- SetMainCallback2(MainCB);
- SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
- m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80);
+ gPokedexView->unk61A = GetHoennPokedexCount(0);
+ gPokedexView->unk61C = GetHoennPokedexCount(1);
+ }
+ else
+ {
+ gPokedexView->unk61A = GetNationalPokedexCount(0);
+ gPokedexView->unk61C = GetNationalPokedexCount(1);
}
+ gPokedexView->unk62D = 8;
+ gMain.state++;
+ break;
+ case 3:
+ {
+ u16 savedIme;
+
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= 1;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= 8;
+ SetVBlankCallback(sub_808C0B8);
+ SetMainCallback2(MainCB);
+ SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80);
+ }
}
}
@@ -423,29 +417,29 @@ void Task_PokedexMainScreenMenu(u8 taskId)
{
switch (gPokedexView->menuCursorPos)
{
- case 0: //BACK TO LIST
- default:
- gMain.newKeys |= START_BUTTON; //Exit menu
- break;
- case 1: //LIST TOP
- gPokedexView->selectedPokemon = 0;
- gPokedexView->unk62C = 0x40;
- sub_808E82C();
- sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
- gMain.newKeys |= START_BUTTON; //Exit menu
- break;
- case 2: //LIST BOTTOM
- gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
- gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
- sub_808E82C();
- sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
- gMain.newKeys |= START_BUTTON; //Exit menu
- break;
- case 3: //CLOSE POKEDEX
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gTasks[taskId].func = Task_ClosePokedex;
- PlaySE(SE_PC_OFF);
- break;
+ case 0: //BACK TO LIST
+ default:
+ gMain.newKeys |= START_BUTTON; //Exit menu
+ break;
+ case 1: //LIST TOP
+ gPokedexView->selectedPokemon = 0;
+ gPokedexView->unk62C = 0x40;
+ sub_808E82C();
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gMain.newKeys |= START_BUTTON; //Exit menu
+ break;
+ case 2: //LIST BOTTOM
+ gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
+ gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
+ sub_808E82C();
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gMain.newKeys |= START_BUTTON; //Exit menu
+ break;
+ case 3: //CLOSE POKEDEX
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_ClosePokedex;
+ PlaySE(SE_PC_OFF);
+ break;
}
}
@@ -614,34 +608,34 @@ void Task_PokedexResultsScreenMenu(u8 taskId)
{
switch (gPokedexView->menuCursorPos)
{
- case 0: //BACK TO LIST
- default:
- gMain.newKeys |= START_BUTTON;
- break;
- case 1: //LIST TOP
- gPokedexView->selectedPokemon = 0;
- gPokedexView->unk62C = 0x40;
- sub_808E82C();
- sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
- gMain.newKeys |= START_BUTTON;
- break;
- case 2: //LIST BOTTOM
- gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
- gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
- sub_808E82C();
- sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
- gMain.newKeys |= START_BUTTON;
- break;
- case 3: //BACK TO POKEDEX
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen;
- PlaySE(SE_TRACK_DOOR);
- break;
- case 4: //CLOSE POKEDEX
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gTasks[taskId].func = Task_PokedexResultsScreenExitPokedex;
- PlaySE(SE_PC_OFF);
- break;
+ case 0: //BACK TO LIST
+ default:
+ gMain.newKeys |= START_BUTTON;
+ break;
+ case 1: //LIST TOP
+ gPokedexView->selectedPokemon = 0;
+ gPokedexView->unk62C = 0x40;
+ sub_808E82C();
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gMain.newKeys |= START_BUTTON;
+ break;
+ case 2: //LIST BOTTOM
+ gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
+ gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
+ sub_808E82C();
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gMain.newKeys |= START_BUTTON;
+ break;
+ case 3: //BACK TO POKEDEX
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_PokedexResultsScreenReturnToMainScreen;
+ PlaySE(SE_TRACK_DOOR);
+ break;
+ case 4: //CLOSE POKEDEX
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_PokedexResultsScreenExitPokedex;
+ PlaySE(SE_PC_OFF);
+ break;
}
}
@@ -726,83 +720,83 @@ bool8 sub_808D344(u8 a)
{
switch (gMain.state)
{
- case 0:
- default:
- if (gPaletteFade.active)
- return 0;
- //_0808D39E
- SetVBlankCallback(NULL);
- gPokedexView->unk64A = a;
- sub_8091060(0);
- REG_BG2VOFS = gPokedexView->unk62D;
- LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM));
- LZ77UnCompVram(gUnknown_08E96738, (void *)(VRAM + 0x6800));
- LZ77UnCompVram(gUnknown_08E9C6DC, (void *)(VRAM + 0x7800));
- DmaClear16(3, VRAM + 0x6000, 0x500);
- if (a == 0)
- LZ77UnCompVram(gUnknown_08E96888, (void *)(VRAM + 0x6500));
- else
- LZ77UnCompVram(gUnknown_08E96994, (void *)(VRAM + 0x6500));
- ResetPaletteFade();
- if (a == 0)
- gPokedexView->unk64C_1 = 0;
- else
- gPokedexView->unk64C_1 = 1;
- sub_808D640();
- gMain.state = 1;
- break;
- case 1:
- ResetSpriteData();
- FreeAllSpritePalettes();
- gReservedSpritePaletteCount = 8;
- LoadCompressedObjectPic(&gUnknown_083A05CC);
- LoadSpritePalettes(gUnknown_083A05DC);
- sub_808E978(a);
- gMain.state++;
- break;
- case 2:
- SetUpWindowConfig(&gWindowConfig_81E7048);
- InitMenuWindow(&gWindowConfig_81E7048);
- LZ77UnCompVram(gUnknown_0839FA7C, (void *)(VRAM + 0xFF80));
- gMain.state++;
- break;
- case 3:
- if (a == 0)
- SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
- sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
- gPokedexView->menuIsOpen = 0;
- gPokedexView->menuY = 0;
- gMain.state++;
- break;
- case 4:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- SetVBlankCallback(sub_808C0B8);
- gMain.state++;
- break;
- case 5:
- REG_WININ = 0x3F3F;
- REG_WINOUT = 0x1D3F;
- REG_WIN0H = 0;
- REG_WIN0V = 0;
- REG_WIN1H = 0;
- REG_WIN1V = 0;
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_OBJWIN_ON;
- gMain.state++;
- break;
- case 6:
- if (!gPaletteFade.active)
- {
- gMain.state = 0;
- return 1;
- }
- else
- return 0;
+ case 0:
+ default:
+ if (gPaletteFade.active)
+ return 0;
+ //_0808D39E
+ SetVBlankCallback(NULL);
+ gPokedexView->unk64A = a;
+ sub_8091060(0);
+ REG_BG2VOFS = gPokedexView->unk62D;
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM));
+ LZ77UnCompVram(gUnknown_08E96738, (void *)(VRAM + 0x6800));
+ LZ77UnCompVram(gUnknown_08E9C6DC, (void *)(VRAM + 0x7800));
+ DmaClear16(3, VRAM + 0x6000, 0x500);
+ if (a == 0)
+ LZ77UnCompVram(gUnknown_08E96888, (void *)(VRAM + 0x6500));
+ else
+ LZ77UnCompVram(gUnknown_08E96994, (void *)(VRAM + 0x6500));
+ ResetPaletteFade();
+ if (a == 0)
+ gPokedexView->unk64C_1 = 0;
+ else
+ gPokedexView->unk64C_1 = 1;
+ sub_808D640();
+ gMain.state = 1;
+ break;
+ case 1:
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ LoadCompressedObjectPic(&gUnknown_083A05CC);
+ LoadSpritePalettes(gUnknown_083A05DC);
+ sub_808E978(a);
+ gMain.state++;
+ break;
+ case 2:
+ SetUpWindowConfig(&gWindowConfig_81E7048);
+ InitMenuWindow(&gWindowConfig_81E7048);
+ LZ77UnCompVram(gUnknown_0839FA7C, (void *)(VRAM + 0xFF80));
+ gMain.state++;
+ break;
+ case 3:
+ if (a == 0)
+ SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gPokedexView->menuIsOpen = 0;
+ gPokedexView->menuY = 0;
+ gMain.state++;
+ break;
+ case 4:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ SetVBlankCallback(sub_808C0B8);
+ gMain.state++;
+ break;
+ case 5:
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x1D3F;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_OBJWIN_ON;
+ gMain.state++;
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ gMain.state = 0;
+ return 1;
+ }
+ else
+ return 0;
}
return 0;
}
@@ -826,136 +820,136 @@ void SortPokedex(u8 dexMode, u8 sortMode)
switch (dexMode)
{
- default:
- case DEX_MODE_HOENN:
+ default:
+ case DEX_MODE_HOENN:
+ vars[0] = 202;
+ vars[1] = 1;
+ break;
+ case DEX_MODE_NATIONAL:
+ if (IsNationalPokedexEnabled())
+ {
+ vars[0] = 386;
+ vars[1] = 0;
+ }
+ else
+ {
vars[0] = 202;
vars[1] = 1;
- break;
- case DEX_MODE_NATIONAL:
- if (IsNationalPokedexEnabled())
- {
- vars[0] = 386;
- vars[1] = 0;
- }
- else
- {
- vars[0] = 202;
- vars[1] = 1;
- }
- break;
+ }
+ break;
}
switch (sortMode)
{
- case 0:
+ case 0:
+ {
+ if (vars[1])
{
- if (vars[1])
+ for (i = 0; i < vars[0]; i++)
{
- for (i = 0; i < vars[0]; i++)
- {
- vars[2] = HoennToNationalOrder(i + 1);
- gPokedexView->unk0[i].dexNum = vars[2];
- gPokedexView->unk0[i].seen = sub_8090D90(vars[2], 0);
- gPokedexView->unk0[i].owned = sub_8090D90(vars[2], 1);
- if (gPokedexView->unk0[i].seen)
- gPokedexView->unk60C = i + 1;
- }
+ vars[2] = HoennToNationalOrder(i + 1);
+ gPokedexView->unk0[i].dexNum = vars[2];
+ gPokedexView->unk0[i].seen = sub_8090D90(vars[2], 0);
+ gPokedexView->unk0[i].owned = sub_8090D90(vars[2], 1);
+ if (gPokedexView->unk0[i].seen)
+ gPokedexView->unk60C = i + 1;
}
- else
- {
- bool32 r10;
- s16 r5;
+ }
+ else
+ {
+ bool32 r10;
+ s16 r5;
- r10 = r5 = i = 0;
- for (i = 0; i < vars[0]; i++)
+ r10 = r5 = i = 0;
+ for (i = 0; i < vars[0]; i++)
+ {
+ vars[2] = i + 1;
+ if (sub_8090D90(vars[2], 0))
+ r10 = 1;
+ if (r10)
{
- vars[2] = i + 1;
- if (sub_8090D90(vars[2], 0))
- r10 = 1;
- if (r10)
- {
- asm(""); //Needed to match for some reason
- gPokedexView->unk0[r5].dexNum = vars[2];
- gPokedexView->unk0[r5].seen = sub_8090D90(vars[2], 0);
- gPokedexView->unk0[r5].owned = sub_8090D90(vars[2], 1);
- if (gPokedexView->unk0[r5].seen)
- gPokedexView->unk60C = r5 + 1;
- r5++;
- }
+ asm(""); //Needed to match for some reason
+ gPokedexView->unk0[r5].dexNum = vars[2];
+ gPokedexView->unk0[r5].seen = sub_8090D90(vars[2], 0);
+ gPokedexView->unk0[r5].owned = sub_8090D90(vars[2], 1);
+ if (gPokedexView->unk0[r5].seen)
+ gPokedexView->unk60C = r5 + 1;
+ r5++;
}
}
- break;
}
- case 1:
- for (i = 0; i < 411; i++)
- {
- vars[2] = gPokedexOrder_Alphabetical[i];
+ break;
+ }
+ case 1:
+ for (i = 0; i < 411; i++)
+ {
+ vars[2] = gPokedexOrder_Alphabetical[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 0))
- {
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = sub_8090D90(vars[2], 1);
- gPokedexView->unk60C++;
- }
- }
- break;
- case 2:
- for (i = 385; i >= 0; i--)
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 0))
{
- vars[2] = gPokedexOrder_Weight[i];
-
- if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
- {
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
- }
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = sub_8090D90(vars[2], 1);
+ gPokedexView->unk60C++;
}
- break;
- case 3:
- for (i = 0; i < 386; i++)
- {
- vars[2] = gPokedexOrder_Weight[i];
+ }
+ break;
+ case 2:
+ for (i = 385; i >= 0; i--)
+ {
+ vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
- {
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
- }
- }
- break;
- case 4:
- for (i = 385; i >=0; i--)
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- vars[2] = gPokedexOrder_Height[i];
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
+ }
+ }
+ break;
+ case 3:
+ for (i = 0; i < 386; i++)
+ {
+ vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
- {
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
- }
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
+ {
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
- break;
- case 5:
- for (i = 0; i < 386; i++)
+ }
+ break;
+ case 4:
+ for (i = 385; i >=0; i--)
+ {
+ vars[2] = gPokedexOrder_Height[i];
+
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- vars[2] = gPokedexOrder_Height[i];
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
+ }
+ }
+ break;
+ case 5:
+ for (i = 0; i < 386; i++)
+ {
+ vars[2] = gPokedexOrder_Height[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
- {
- gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
- gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
- gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
- gPokedexView->unk60C++;
- }
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
+ {
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
- break;
+ }
+ break;
}
for (i = gPokedexView->unk60C; i < 386; i++)
{
@@ -969,87 +963,87 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
{
switch (a)
{
- case 0:
- default:
- {
- u16 i;
- s16 _b = b - 5;
+ case 0:
+ default:
+ {
+ u16 i;
+ s16 _b = b - 5;
- for (i = 0; i <= 10; i++)
- {
- if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
- sub_808E090(0x11, i * 2, c);
- else
- {
- sub_808E090(0x11, i * 2, c);
- if (gPokedexView->unk0[_b].seen)
- {
- sub_808DEB0(_b, 0x12, i * 2, c);
- sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, i * 2, c);
- sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, i * 2);
- }
- else
- {
- sub_808DEB0(_b, 0x12, i * 2, c);
- sub_808DF88(0, 0x11, i * 2, c);
- sub_808DFE4(0, 0x17, i * 2);
- }
- }
- _b++;
- }
- break;
- }
- case 1:
+ for (i = 0; i <= 10; i++)
{
- s16 _b = b - 5;
-
if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
- sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ sub_808E090(0x11, i * 2, c);
else
{
- sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ sub_808E090(0x11, i * 2, c);
if (gPokedexView->unk0[_b].seen)
{
- sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
- sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, gPokedexView->unk630 * 2, c);
- sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, gPokedexView->unk630 * 2);
+ sub_808DEB0(_b, 0x12, i * 2, c);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, i * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, i * 2);
}
else
{
- sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
- sub_808DF88(0, 0x11, gPokedexView->unk630 * 2, c);
- sub_808DFE4(0, 0x17, gPokedexView->unk630 * 2);
+ sub_808DEB0(_b, 0x12, i * 2, c);
+ sub_808DF88(0, 0x11, i * 2, c);
+ sub_808DFE4(0, 0x17, i * 2);
}
}
- break;
+ _b++;
}
- case 2:
+ break;
+ }
+ case 1:
+ {
+ s16 _b = b - 5;
+
+ if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ else
{
- s16 _b = b + 5;
- u16 r2 = gPokedexView->unk630 + 10;
+ sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ if (gPokedexView->unk0[_b].seen)
+ {
+ sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, gPokedexView->unk630 * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, gPokedexView->unk630 * 2);
+ }
+ else
+ {
+ sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
+ sub_808DF88(0, 0x11, gPokedexView->unk630 * 2, c);
+ sub_808DFE4(0, 0x17, gPokedexView->unk630 * 2);
+ }
+ }
+ break;
+ }
+ case 2:
+ {
+ s16 _b = b + 5;
+ u16 r2 = gPokedexView->unk630 + 10;
- if (r2 > 15)
- r2 -= 16;
- if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
- sub_808E090(0x11, r2 * 2, c);
+ if (r2 > 15)
+ r2 -= 16;
+ if ((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ sub_808E090(0x11, r2 * 2, c);
+ else
+ {
+ sub_808E090(0x11, r2 * 2, c);
+ if (gPokedexView->unk0[_b].seen)
+ {
+ sub_808DEB0(_b, 0x12, r2 * 2, c);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, r2 * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, r2 * 2);
+ }
else
{
- sub_808E090(0x11, r2 * 2, c);
- if (gPokedexView->unk0[_b].seen)
- {
- sub_808DEB0(_b, 0x12, r2 * 2, c);
- sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, r2 * 2, c);
- sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, r2 * 2);
- }
- else
- {
- sub_808DEB0(_b, 0x12, r2 * 2, c);
- sub_808DF88(0, 0x11, r2 * 2, c);
- sub_808DFE4(0, 0x17, r2 * 2);
- }
+ sub_808DEB0(_b, 0x12, r2 * 2, c);
+ sub_808DF88(0, 0x11, r2 * 2, c);
+ sub_808DFE4(0, 0x17, r2 * 2);
}
- break;
}
+ break;
+ }
}
}
@@ -1268,26 +1262,26 @@ bool8 sub_808E208(u8 a, u8 b, u8 c)
gPokedexView->unk62E--;
switch (a)
{
- case 1:
- for (i = 0; i < 4; i++)
- {
- if (gPokedexView->unk61E[i] != 0xFFFF)
- gSprites[gPokedexView->unk61E[i]].data5 += b;
- }
- foo = 16 * (c - gPokedexView->unk62E) / c;
- REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 - foo;
- gPokedexView->unk62C -= gPokedexView->unk628;
- break;
- case 2:
- for (i = 0; i < 4; i++)
- {
- if (gPokedexView->unk61E[i] != 0xFFFF)
- gSprites[gPokedexView->unk61E[i]].data5 -= b;
- }
- foo = 16 * (c - gPokedexView->unk62E) / c;
- REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 + foo;
- gPokedexView->unk62C += gPokedexView->unk628;
- break;
+ case 1:
+ for (i = 0; i < 4; i++)
+ {
+ if (gPokedexView->unk61E[i] != 0xFFFF)
+ gSprites[gPokedexView->unk61E[i]].data5 += b;
+ }
+ foo = 16 * (c - gPokedexView->unk62E) / c;
+ REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 - foo;
+ gPokedexView->unk62C -= gPokedexView->unk628;
+ break;
+ case 2:
+ for (i = 0; i < 4; i++)
+ {
+ if (gPokedexView->unk61E[i] != 0xFFFF)
+ gSprites[gPokedexView->unk61E[i]].data5 -= b;
+ }
+ foo = 16 * (c - gPokedexView->unk62E) / c;
+ REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 + foo;
+ gPokedexView->unk62C += gPokedexView->unk628;
+ break;
}
return 0;
}
@@ -1307,36 +1301,36 @@ void sub_808E398(u8 a, u16 b)
gPokedexView->unk632 = gPokedexView->unk630;
switch (a)
{
- case 1:
+ case 1:
+ {
+ unk = sub_808E888(b - 1);
+ if (unk != 0xFFFF)
{
- unk = sub_808E888(b - 1);
- if (unk != 0xFFFF)
- {
- spriteId = sub_808E8C8(unk, 0x60, 0x50);
- gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 0xFFC0;
- }
- if (gPokedexView->unk630 > 0)
- gPokedexView->unk630--;
- else
- gPokedexView->unk630 = 0xF;
- break;
+ spriteId = sub_808E8C8(unk, 0x60, 0x50);
+ gSprites[spriteId].callback = sub_808EE28;
+ gSprites[spriteId].data5 = 0xFFC0;
}
- case 2:
+ if (gPokedexView->unk630 > 0)
+ gPokedexView->unk630--;
+ else
+ gPokedexView->unk630 = 0xF;
+ break;
+ }
+ case 2:
+ {
+ unk = sub_808E888(b + 1);
+ if (unk != 0xFFFF)
{
- unk = sub_808E888(b + 1);
- if (unk != 0xFFFF)
- {
- spriteId = sub_808E8C8(unk, 0x60, 0x50);
- gSprites[spriteId].callback = sub_808EE28;
- gSprites[spriteId].data5 = 0x40;
- }
- if (gPokedexView->unk630 <= 0xE)
- gPokedexView->unk630++;
- else
- gPokedexView->unk630 = 0;
- break;
+ spriteId = sub_808E8C8(unk, 0x60, 0x50);
+ gSprites[spriteId].callback = sub_808EE28;
+ gSprites[spriteId].data5 = 0x40;
}
+ if (gPokedexView->unk630 <= 0xE)
+ gPokedexView->unk630++;
+ else
+ gPokedexView->unk630 = 0;
+ break;
+ }
}
}
#ifdef NONMATCHING
@@ -2206,126 +2200,126 @@ void Task_InitPageScreenMultistep(u8 taskId)
{
switch (gMain.state)
{
- case 0:
- default:
- if (!gPaletteFade.active)
- {
- u16 r2;
-
- gPokedexView->unk64A = 1;
- gPokedexView->unk64E = 0;
- gUnknown_03005CEC = gMain.vblankCallback;
- SetVBlankCallback(NULL);
- r2 = 0;
- if (gTasks[taskId].data[1] != 0)
- r2 += 0x1000;
- if (gTasks[taskId].data[2] != 0)
- r2 |= 0x200;
- sub_8091060(r2);
- gMain.state = 1;
- }
- break;
- case 1:
- LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
- LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
- sub_8091738(gUnknown_0202FFBC->dexNum, 2, 0x3FC);
- gMain.state++;
- break;
- case 2:
- sub_80904FC(0xD);
- sub_8090584(gPokedexView->selectedScreen, 0xD);
- sub_808D640();
- gMain.state++;
- break;
- case 3:
- SetUpWindowConfig(&gWindowConfig_81E7064);
- InitMenuWindow(&gWindowConfig_81E7064);
- gMain.state++;
- break;
- case 4:
- if (gPokedexView->dexMode == DEX_MODE_HOENN)
- sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3);
- else
- sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3);
- //_0808F45A
- sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3);
- MenuPrint(gDexText_UnknownPoke, 11, 5);
- MenuPrint(gDexText_UnknownHeight, 16, 7);
- MenuPrint(gDexText_UnknownWeight, 16, 9);
- if (gUnknown_0202FFBC->owned)
- {
- sub_8091304(gPokedexEntries[gUnknown_0202FFBC->dexNum].categoryName, 11, 5);
- sub_8091458(gPokedexEntries[gUnknown_0202FFBC->dexNum].height, 16, 7);
- sub_8091564(gPokedexEntries[gUnknown_0202FFBC->dexNum].weight, 16, 9);
- MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
- sub_80917CC(14, 0x3FC);
- }
- //_0808F50C
- else
- {
- MenuPrint(gUnknown_083A05F8, 2, 13);
- LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
- }
- gMain.state++;
- break;
- case 5:
- if (gTasks[taskId].data[1] == 0)
- {
- //_0808F540
- gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
- gSprites[gTasks[taskId].data[4]].oam.priority = 0;
- }
- gMain.state++;
- break;
- case 6:
+ case 0:
+ default:
+ if (!gPaletteFade.active)
{
- u32 r3 = 0;
+ u16 r2;
- if (gTasks[taskId].data[2] != 0)
- r3 = 0x14;
+ gPokedexView->unk64A = 1;
+ gPokedexView->unk64E = 0;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ r2 = 0;
if (gTasks[taskId].data[1] != 0)
- {
- r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10));
- }
- BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0);
- SetVBlankCallback(gUnknown_03005CEC);
- gMain.state++;
- break;
+ r2 += 0x1000;
+ if (gTasks[taskId].data[2] != 0)
+ r2 |= 0x200;
+ sub_8091060(r2);
+ gMain.state = 1;
}
- case 7:
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
+ sub_8091738(gUnknown_0202FFBC->dexNum, 2, 0x3FC);
+ gMain.state++;
+ break;
+ case 2:
+ sub_80904FC(0xD);
+ sub_8090584(gPokedexView->selectedScreen, 0xD);
+ sub_808D640();
+ gMain.state++;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E7064);
+ InitMenuWindow(&gWindowConfig_81E7064);
+ gMain.state++;
+ break;
+ case 4:
+ if (gPokedexView->dexMode == DEX_MODE_HOENN)
+ sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3);
+ else
+ sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3);
+ //_0808F45A
+ sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3);
+ MenuPrint(gDexText_UnknownPoke, 11, 5);
+ MenuPrint(gDexText_UnknownHeight, 16, 7);
+ MenuPrint(gDexText_UnknownWeight, 16, 9);
+ if (gUnknown_0202FFBC->owned)
+ {
+ sub_8091304(gPokedexEntries[gUnknown_0202FFBC->dexNum].categoryName, 11, 5);
+ sub_8091458(gPokedexEntries[gUnknown_0202FFBC->dexNum].height, 16, 7);
+ sub_8091564(gPokedexEntries[gUnknown_0202FFBC->dexNum].weight, 16, 9);
+ MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
+ sub_80917CC(14, 0x3FC);
+ }
+ //_0808F50C
+ else
+ {
+ MenuPrint(gUnknown_083A05F8, 2, 13);
+ LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
+ }
+ gMain.state++;
+ break;
+ case 5:
+ if (gTasks[taskId].data[1] == 0)
+ {
+ //_0808F540
+ gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
+ gSprites[gTasks[taskId].data[4]].oam.priority = 0;
+ }
+ gMain.state++;
+ break;
+ case 6:
+ {
+ u32 r3 = 0;
+
+ if (gTasks[taskId].data[2] != 0)
+ r3 = 0x14;
+ if (gTasks[taskId].data[1] != 0)
+ {
+ r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10));
+ }
+ BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ }
+ case 7:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ gMain.state++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ {
gMain.state++;
- break;
- case 8:
- if (!gPaletteFade.active)
+ if (gTasks[taskId].data[3] == 0)
{
- gMain.state++;
- if (gTasks[taskId].data[3] == 0)
- {
- StopCryAndClearCrySongs();
- PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA);
- }
- else
- gMain.state++;
+ StopCryAndClearCrySongs();
+ PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA);
}
- break;
- case 9:
- if (!IsCryPlayingOrClearCrySongs())
+ else
gMain.state++;
- break;
- case 10:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[2] = 1;
- gTasks[taskId].data[3] = 1;
- gTasks[taskId].func = Task_PageScreenProcessInput;
- gMain.state = 0;
- break;
+ }
+ break;
+ case 9:
+ if (!IsCryPlayingOrClearCrySongs())
+ gMain.state++;
+ break;
+ case 10:
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 1;
+ gTasks[taskId].data[3] = 1;
+ gTasks[taskId].func = Task_PageScreenProcessInput;
+ gMain.state = 0;
+ break;
}
}
@@ -2462,99 +2456,99 @@ void Task_InitCryScreenMultistep(u8 taskId)
{
switch (gMain.state)
{
- case 0:
- default:
- if (!gPaletteFade.active)
- {
- m4aMPlayStop(&gMPlay_BGM);
- gPokedexView->unk64A = 6;
- gUnknown_03005CEC = gMain.vblankCallback;
- SetVBlankCallback(NULL);
- sub_8091060(0x200);
- gPokedexView->selectedScreen = CRY_SCREEN;
- gMain.state = 1;
- }
- break;
- case 1:
- LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
- LZ77UnCompVram(gUnknown_0839F8A0, (void *)(VRAM + 0x7000));
- gMain.state++;
- break;
- case 2:
- sub_8090540(0xD);
- sub_8090644(2, 0xD);
- sub_808D640();
- DmaClear16(3, (void *)(VRAM + 0xF800), 0x500);
- gMain.state++;
- break;
- case 3:
- SetUpWindowConfig(&gWindowConfig_81E702C);
- InitMenuWindow(&gWindowConfig_81E702C);
- ResetPaletteFade();
- gMain.state++;
- break;
- case 4:
- MenuPrint(gDexText_CryOf, 10, 4);
- sub_8091260(gUnknown_0202FFBC->dexNum, 10, 6, 2);
- gMain.state++;
- break;
- case 5:
- gTasks[taskId].data[4] = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
- gSprites[gTasks[taskId].data[4]].oam.priority = 0;
- gUnknown_03005E98 = 0;
- gMain.state++;
- break;
- case 6:
+ case 0:
+ default:
+ if (!gPaletteFade.active)
{
- struct CryRelatedStruct sp8;
-
- sp8.unk0 = 0x4020;
- sp8.unk2 = 0x1F;
- sp8.paletteNo = 8;
- sp8.yPos = 0x1E;
- sp8.xPos = 0xC;
- if (sub_8119E3C(&sp8, 0) != 0)
- {
- gMain.state++;
- gUnknown_03005E98 = 0;
- }
- break;
+ m4aMPlayStop(&gMPlay_BGM);
+ gPokedexView->unk64A = 6;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x200);
+ gPokedexView->selectedScreen = CRY_SCREEN;
+ gMain.state = 1;
}
- case 7:
- {
- struct CryRelatedStruct sp10;
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_0839F8A0, (void *)(VRAM + 0x7000));
+ gMain.state++;
+ break;
+ case 2:
+ sub_8090540(0xD);
+ sub_8090644(2, 0xD);
+ sub_808D640();
+ DmaClear16(3, (void *)(VRAM + 0xF800), 0x500);
+ gMain.state++;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E702C);
+ InitMenuWindow(&gWindowConfig_81E702C);
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 4:
+ MenuPrint(gDexText_CryOf, 10, 4);
+ sub_8091260(gUnknown_0202FFBC->dexNum, 10, 6, 2);
+ gMain.state++;
+ break;
+ case 5:
+ gTasks[taskId].data[4] = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
+ gSprites[gTasks[taskId].data[4]].oam.priority = 0;
+ gUnknown_03005E98 = 0;
+ gMain.state++;
+ break;
+ case 6:
+ {
+ struct CryRelatedStruct sp8;
- sp10.unk0 = 0x3000;
- sp10.unk2 = 0xE;
- sp10.paletteNo = 9;
- sp10.xPos = 0x12;
- sp10.yPos = 3;
- if (ShowPokedexCryScreen(&sp10, 1) != 0)
- {
- gMain.state++;
- }
- break;
- }
- case 8:
- BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
- SetVBlankCallback(gUnknown_03005CEC);
+ sp8.unk0 = 0x4020;
+ sp8.unk2 = 0x1F;
+ sp8.paletteNo = 8;
+ sp8.yPos = 0x1E;
+ sp8.xPos = 0xC;
+ if (sub_8119E3C(&sp8, 0) != 0)
+ {
gMain.state++;
- break;
- case 9:
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG0CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ gUnknown_03005E98 = 0;
+ }
+ break;
+ }
+ case 7:
+ {
+ struct CryRelatedStruct sp10;
+
+ sp10.unk0 = 0x3000;
+ sp10.unk2 = 0xE;
+ sp10.paletteNo = 9;
+ sp10.xPos = 0x12;
+ sp10.yPos = 3;
+ if (ShowPokedexCryScreen(&sp10, 1) != 0)
+ {
gMain.state++;
- break;
- case 10:
- gPokedexView->unk64F = 0;
- gMain.state = 0;
- gTasks[taskId].func = Task_CryScreenProcessInput;
- break;
+ }
+ break;
+ }
+ case 8:
+ BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ case 9:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ gMain.state++;
+ break;
+ case 10:
+ gPokedexView->unk64F = 0;
+ gMain.state = 0;
+ gTasks[taskId].func = Task_CryScreenProcessInput;
+ break;
}
}
@@ -2616,15 +2610,15 @@ void sub_808FFBC(u8 taskId)
DestroyCryMeterNeedleSprite();
switch (gPokedexView->unk64F)
{
- default:
- case 1:
- gTasks[taskId].func = Task_InitPageScreenMultistep;
- break;
- case 2:
- gTasks[taskId].func = Task_InitAreaScreenMultistep;
- break;
- case 3:
- gTasks[taskId].func = Task_InitSizeScreenMultistep;
+ default:
+ case 1:
+ gTasks[taskId].func = Task_InitPageScreenMultistep;
+ break;
+ case 2:
+ gTasks[taskId].func = Task_InitAreaScreenMultistep;
+ break;
+ case 3:
+ gTasks[taskId].func = Task_InitSizeScreenMultistep;
}
}
}
@@ -2646,87 +2640,87 @@ void Task_InitSizeScreenMultistep(u8 taskId)
switch (gMain.state)
{
- default:
- case 0:
- if (!gPaletteFade.active)
- {
- gPokedexView->unk64A = 7;
- gUnknown_03005CEC = gMain.vblankCallback;
- SetVBlankCallback(NULL);
- sub_8091060(0x200);
- gPokedexView->selectedScreen = SIZE_SCREEN;
- gMain.state = 1;
- }
- break;
- case 1:
- LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
- LZ77UnCompVram(gUnknown_0839F988, (void *)(VRAM + 0x7000));
- gMain.state++;
- break;
- case 2:
- sub_8090540(0xD);
- sub_8090644(3, 0xD);
- sub_808D640();
- gMain.state++;
- break;
- case 3:
+ default:
+ case 0:
+ if (!gPaletteFade.active)
{
- u8 string[40]; //I hope this is the correct size
+ gPokedexView->unk64A = 7;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x200);
+ gPokedexView->selectedScreen = SIZE_SCREEN;
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_0839F988, (void *)(VRAM + 0x7000));
+ gMain.state++;
+ break;
+ case 2:
+ sub_8090540(0xD);
+ sub_8090644(3, 0xD);
+ sub_808D640();
+ gMain.state++;
+ break;
+ case 3:
+ {
+ u8 string[40]; //I hope this is the correct size
- SetUpWindowConfig(&gWindowConfig_81E702C);
- InitMenuWindow(&gWindowConfig_81E702C);
- string[0] = EOS;
- StringAppend(string, gDexText_SizeComparedTo);
- StringAppend(string, gSaveBlock2.playerName);
- sub_8072BD8(string, 3, 15, 0xC0);
- gMain.state++;
- break;
+ SetUpWindowConfig(&gWindowConfig_81E702C);
+ InitMenuWindow(&gWindowConfig_81E702C);
+ string[0] = EOS;
+ StringAppend(string, gDexText_SizeComparedTo);
+ StringAppend(string, gSaveBlock2.playerName);
+ sub_8072BD8(string, 3, 15, 0xC0);
+ gMain.state++;
+ break;
+ }
+ case 4:
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 5:
+ spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0);
+ gSprites[spriteId].oam.affineMode = 1;
+ gSprites[spriteId].oam.matrixNum = 1;
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset;
+ SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ gMain.state++;
+ break;
+ case 6:
+ spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1);
+ gSprites[spriteId].oam.affineMode = 1;
+ gSprites[spriteId].oam.matrixNum = 2;
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset;
+ SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ gMain.state++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ case 8:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ gMain.state++;
+ break;
+ case 9:
+ if (!gPaletteFade.active)
+ {
+ gPokedexView->unk64F = 0;
+ gMain.state = 0;
+ gTasks[taskId].func = Task_SizeScreenProcessInput;
}
- case 4:
- ResetPaletteFade();
- gMain.state++;
- break;
- case 5:
- spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0);
- gSprites[spriteId].oam.affineMode = 1;
- gSprites[spriteId].oam.matrixNum = 1;
- gSprites[spriteId].oam.priority = 0;
- gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset;
- SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale);
- LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
- gMain.state++;
- break;
- case 6:
- spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1);
- gSprites[spriteId].oam.affineMode = 1;
- gSprites[spriteId].oam.matrixNum = 2;
- gSprites[spriteId].oam.priority = 0;
- gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset;
- SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale);
- LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
- gMain.state++;
- break;
- case 7:
- BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
- SetVBlankCallback(gUnknown_03005CEC);
- gMain.state++;
- break;
- case 8:
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
- gMain.state++;
- break;
- case 9:
- if (!gPaletteFade.active)
- {
- gPokedexView->unk64F = 0;
- gMain.state = 0;
- gTasks[taskId].func = Task_SizeScreenProcessInput;
- }
- break;
+ break;
}
}
@@ -3094,81 +3088,81 @@ void sub_8090750(u8 taskId)
switch (gTasks[taskId].data[0])
{
- default:
- case 0:
- if (!gPaletteFade.active)
- {
- gUnknown_03005CEC = gMain.vblankCallback;
- SetVBlankCallback(NULL);
- sub_8091060(0x100);
- gTasks[taskId].data[0] = 1;
- }
- break;
- case 1:
+ default:
+ case 0:
+ if (!gPaletteFade.active)
{
- u16 i;
-
- LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000));
- LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
- for (i = 0; i < 0x280; i++)
- ((u16 *)(VRAM + 0x7800))[i] += 0x2000;
- sub_8091738(gTasks[taskId].data[1], 2, 0x3FC);
- ResetPaletteFade();
- LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E);
- gTasks[taskId].data[0]++;
- break;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x100);
+ gTasks[taskId].data[0] = 1;
}
- case 2:
- SetUpWindowConfig(&gWindowConfig_81E7064);
- InitMenuWindow(&gWindowConfig_81E7064);
- DmaClear16(3, (void *)(VRAM + 0xC000), 0x200);
- gTasks[taskId].data[0]++;
- break;
- case 3:
- sub_8072BD8(gDexText_RegisterComplete, 2, 0, 0xD0);
- if (!IsNationalPokedexEnabled())
- sub_8091154(NationalToHoennOrder(dexNum), 13, 3);
- else
- sub_8091154(dexNum, 13, 3);
- sub_80911C8(dexNum, 16, 3);
- MenuPrint(gDexText_UnknownPoke, 11, 5);
- MenuPrint(gDexText_UnknownHeight, 16, 7);
- MenuPrint(gDexText_UnknownWeight, 16, 9);
- sub_8091304(&gPokedexEntries[dexNum], 11, 5);
- sub_8091458(gPokedexEntries[dexNum].height, 16, 7);
- sub_8091564(gPokedexEntries[dexNum].weight, 16, 9);
- MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
- sub_80917CC(14, 0x3FC);
- gTasks[taskId].data[0]++;
- break;
- case 4:
- {
- u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0);
+ break;
+ case 1:
+ {
+ u16 i;
- gSprites[spriteId].oam.priority = 0;
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- SetVBlankCallback(gUnknown_03005CEC);
- gTasks[taskId].data[3] = spriteId;
- gTasks[taskId].data[0]++;
- break;
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000));
+ LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
+ for (i = 0; i < 0x280; i++)
+ ((u16 *)(VRAM + 0x7800))[i] += 0x2000;
+ sub_8091738(gTasks[taskId].data[1], 2, 0x3FC);
+ ResetPaletteFade();
+ LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E);
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 2:
+ SetUpWindowConfig(&gWindowConfig_81E7064);
+ InitMenuWindow(&gWindowConfig_81E7064);
+ DmaClear16(3, (void *)(VRAM + 0xC000), 0x200);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ sub_8072BD8(gDexText_RegisterComplete, 2, 0, 0xD0);
+ if (!IsNationalPokedexEnabled())
+ sub_8091154(NationalToHoennOrder(dexNum), 13, 3);
+ else
+ sub_8091154(dexNum, 13, 3);
+ sub_80911C8(dexNum, 16, 3);
+ MenuPrint(gDexText_UnknownPoke, 11, 5);
+ MenuPrint(gDexText_UnknownHeight, 16, 7);
+ MenuPrint(gDexText_UnknownWeight, 16, 9);
+ sub_8091304(&gPokedexEntries[dexNum], 11, 5);
+ sub_8091458(gPokedexEntries[dexNum].height, 16, 7);
+ sub_8091564(gPokedexEntries[dexNum].weight, 16, 9);
+ MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
+ sub_80917CC(14, 0x3FC);
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ {
+ u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0);
+
+ gSprites[spriteId].oam.priority = 0;
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gTasks[taskId].data[3] = spriteId;
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 5:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ gTasks[taskId].data[0]++;
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ PlayCry1(NationalPokedexNumToSpecies(dexNum), 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].func = sub_8090A3C;
}
- case 5:
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
- gTasks[taskId].data[0]++;
- break;
- case 6:
- if (!gPaletteFade.active)
- {
- PlayCry1(NationalPokedexNumToSpecies(dexNum), 0);
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].data[4] = 0;
- gTasks[taskId].func = sub_8090A3C;
- }
- break;
+ break;
}
}
*/
diff --git a/src/pokemon_1.c b/src/pokemon_1.c
index 204fa7b9a..dacbb81c3 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon_1.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "asm.h"
+#include "data2.h"
#include "items.h"
#include "main.h"
#include "pokemon.h"
@@ -25,7 +26,6 @@ extern u8 byte_2024E88;
extern u32 gExperienceTables[8][101];
extern struct BaseStats gBaseStats[];
-extern struct BattleMove gBattleMoves[];
extern const u16 *gLevelUpLearnsets[];
void ZeroBoxMonData(struct BoxPokemon *boxMon)
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 3be11f453..7fbfc1271 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "asm.h"
+#include "data2.h"
#include "event_data.h"
#include "main.h"
#include "pokemon.h"
@@ -8,6 +9,7 @@
#include "sprite.h"
#include "string_util.h"
#include "text.h"
+#include "strings2.h"
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[6];
@@ -34,16 +36,10 @@ extern u16 gTrainerBattleOpponent;
extern struct PokemonStorage gPokemonStorage;
extern u8 gBadEggNickname[];
-extern u8 gEggNickname[];
extern u32 gBitTable[];
extern struct BaseStats gBaseStats[];
-extern u8 gSpeciesNames[][11];
-extern struct BattleMove gBattleMoves[];
extern const struct SpriteTemplate gSpriteTemplate_8208288[];
-extern const union AmimCmd *const gSpriteAnimTable_81E7C64[];
//array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.)
-extern const union AnimCmd *const *const gUnknown_081EC2A4[];
-extern const union AnimCmd *const *const gUnknown_081ECACC[];
extern u8 gTrainerClassToPicIndex[];
extern u8 gTrainerClassToNameIndex[];
extern u8 gSecretBaseTrainerClasses[];
@@ -417,307 +413,307 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
switch (field)
{
- case MON_DATA_PERSONALITY:
- retVal = boxMon->personality;
- break;
- case MON_DATA_OT_ID:
- retVal = boxMon->otId;
- break;
- case MON_DATA_NICKNAME:
+ case MON_DATA_PERSONALITY:
+ retVal = boxMon->personality;
+ break;
+ case MON_DATA_OT_ID:
+ retVal = boxMon->otId;
+ break;
+ case MON_DATA_NICKNAME:
+ {
+ if (boxMon->isBadEgg)
{
- if (boxMon->isBadEgg)
- {
- StringCopy(data, gBadEggNickname);
- retVal = StringLength(data);
- }
- else if (boxMon->isEgg)
- {
- StringCopy(data, gEggNickname);
- retVal = StringLength(data);
- }
- else
- {
- retVal = 0;
-
- while (retVal < POKEMON_NAME_LENGTH && boxMon->nickname[retVal] != EOS)
- {
- data[retVal] = boxMon->nickname[retVal];
- retVal++;
- }
-
- data[retVal] = EOS;
- ConvertInternationalString(data, boxMon->language);
- retVal = StringLength(data);
- }
- break;
+ StringCopy(data, gBadEggNickname);
+ retVal = StringLength(data);
}
- case MON_DATA_LANGUAGE:
- retVal = boxMon->language;
- break;
- case MON_DATA_SANITY_BIT1:
- retVal = boxMon->isBadEgg;
- break;
- case MON_DATA_SANITY_BIT2:
- retVal = boxMon->hasSpecies;
- break;
- case MON_DATA_SANITY_BIT3:
- retVal = boxMon->isEgg;
- break;
- case MON_DATA_OT_NAME:
+ else if (boxMon->isEgg)
+ {
+ StringCopy(data, gEggNickname);
+ retVal = StringLength(data);
+ }
+ else
{
retVal = 0;
- while (retVal < OT_NAME_LENGTH && boxMon->otName[retVal] != EOS)
+ while (retVal < POKEMON_NAME_LENGTH && boxMon->nickname[retVal] != EOS)
{
- data[retVal] = boxMon->otName[retVal];
+ data[retVal] = boxMon->nickname[retVal];
retVal++;
}
data[retVal] = EOS;
- break;
+ ConvertInternationalString(data, boxMon->language);
+ retVal = StringLength(data);
}
- case MON_DATA_MARKINGS:
- retVal = boxMon->markings;
- break;
- case MON_DATA_CHECKSUM:
- retVal = boxMon->checksum;
- break;
- case MON_DATA_10:
- retVal = boxMon->unknown;
- break;
- case MON_DATA_SPECIES:
- retVal = boxMon->isBadEgg ? SPECIES_EGG : substruct0->species;
- break;
- case MON_DATA_HELD_ITEM:
- retVal = substruct0->heldItem;
- break;
- case MON_DATA_EXP:
- retVal = substruct0->experience;
- break;
- case MON_DATA_PP_BONUSES:
- retVal = substruct0->ppBonuses;
- break;
- case MON_DATA_FRIENDSHIP:
- retVal = substruct0->friendship;
- break;
- case MON_DATA_MOVE1:
- case MON_DATA_MOVE2:
- case MON_DATA_MOVE3:
- case MON_DATA_MOVE4:
- retVal = substruct1->moves[field - MON_DATA_MOVE1];
- break;
- case MON_DATA_PP1:
- case MON_DATA_PP2:
- case MON_DATA_PP3:
- case MON_DATA_PP4:
- retVal = substruct1->pp[field - MON_DATA_PP1];
- break;
- case MON_DATA_HP_EV:
- retVal = substruct2->hpEV;
- break;
- case MON_DATA_ATK_EV:
- retVal = substruct2->attackEV;
- break;
- case MON_DATA_DEF_EV:
- retVal = substruct2->defenseEV;
- break;
- case MON_DATA_SPD_EV:
- retVal = substruct2->speedEV;
- break;
- case MON_DATA_SPATK_EV:
- retVal = substruct2->spAttackEV;
- break;
- case MON_DATA_SPDEF_EV:
- retVal = substruct2->spDefenseEV;
- break;
- case MON_DATA_COOL:
- retVal = substruct2->cool;
- break;
- case MON_DATA_BEAUTY:
- retVal = substruct2->beauty;
- break;
- case MON_DATA_CUTE:
- retVal = substruct2->cute;
- break;
- case MON_DATA_SMART:
- retVal = substruct2->smart;
- break;
- case MON_DATA_TOUGH:
- retVal = substruct2->tough;
- break;
- case MON_DATA_SHEEN:
- retVal = substruct2->sheen;
- break;
- case MON_DATA_POKERUS:
- retVal = substruct3->pokerus;
- break;
- case MON_DATA_MET_LOCATION:
- retVal = substruct3->metLocation;
- break;
- case MON_DATA_MET_LEVEL:
- retVal = substruct3->metLevel;
- break;
- case MON_DATA_MET_GAME:
- retVal = substruct3->metGame;
- break;
- case MON_DATA_POKEBALL:
- retVal = substruct3->pokeball;
- break;
- case MON_DATA_OT_GENDER:
- retVal = substruct3->otGender;
- break;
- case MON_DATA_HP_IV:
- retVal = substruct3->hpIV;
- break;
- case MON_DATA_ATK_IV:
- retVal = substruct3->attackIV;
- break;
- case MON_DATA_DEF_IV:
- retVal = substruct3->defenseIV;
- break;
- case MON_DATA_SPD_IV:
- retVal = substruct3->speedIV;
- break;
- case MON_DATA_SPATK_IV:
- retVal = substruct3->spAttackIV;
- break;
- case MON_DATA_SPDEF_IV:
- retVal = substruct3->spDefenseIV;
- break;
- case MON_DATA_IS_EGG:
- retVal = substruct3->isEgg;
- break;
- case MON_DATA_ALT_ABILITY:
- retVal = substruct3->altAbility;
- break;
- case MON_DATA_COOL_RIBBON:
- retVal = substruct3->coolRibbon;
- break;
- case MON_DATA_BEAUTY_RIBBON:
- retVal = substruct3->beautyRibbon;
- break;
- case MON_DATA_CUTE_RIBBON:
- retVal = substruct3->cuteRibbon;
- break;
- case MON_DATA_SMART_RIBBON:
- retVal = substruct3->smartRibbon;
- break;
- case MON_DATA_TOUGH_RIBBON:
- retVal = substruct3->toughRibbon;
- break;
- case MON_DATA_CHAMPION_RIBBON:
- retVal = substruct3->championRibbon;
- break;
- case MON_DATA_WINNING_RIBBON:
- retVal = substruct3->winningRibbon;
- break;
- case MON_DATA_VICTORY_RIBBON:
- retVal = substruct3->victoryRibbon;
- break;
- case MON_DATA_ARTIST_RIBBON:
- retVal = substruct3->artistRibbon;
- break;
- case MON_DATA_EFFORT_RIBBON:
- retVal = substruct3->effortRibbon;
- break;
- case MON_DATA_GIFT_RIBBON_1:
- retVal = substruct3->giftRibbon1;
- break;
- case MON_DATA_GIFT_RIBBON_2:
- retVal = substruct3->giftRibbon2;
- break;
- case MON_DATA_GIFT_RIBBON_3:
- retVal = substruct3->giftRibbon3;
- break;
- case MON_DATA_GIFT_RIBBON_4:
- retVal = substruct3->giftRibbon4;
- break;
- case MON_DATA_GIFT_RIBBON_5:
- retVal = substruct3->giftRibbon5;
- break;
- case MON_DATA_GIFT_RIBBON_6:
- retVal = substruct3->giftRibbon6;
- break;
- case MON_DATA_GIFT_RIBBON_7:
- retVal = substruct3->giftRibbon7;
- break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- retVal = substruct3->fatefulEncounter;
- break;
- case MON_DATA_SPECIES2:
- retVal = substruct0->species;
- if (substruct0->species && (substruct3->isEgg || boxMon->isBadEgg))
- retVal = SPECIES_EGG;
- break;
- case MON_DATA_IVS:
- retVal = substruct3->hpIV | (substruct3->attackIV << 5) | (substruct3->defenseIV << 10) | (substruct3->speedIV << 15) | (substruct3->spAttackIV << 20) | (substruct3->spDefenseIV << 25);
- break;
- case MON_DATA_KNOWN_MOVES:
- if (substruct0->species && !substruct3->isEgg)
- {
- u16 *moves = (u16 *)data;
- s32 i = 0;
-
- while (moves[i] != 355)
- {
- u16 move = moves[i];
- if (substruct1->moves[0] == move
- || substruct1->moves[1] == move
- || substruct1->moves[2] == move
- || substruct1->moves[3] == move)
- retVal |= gBitTable[i];
- i++;
- }
- }
- break;
- case MON_DATA_RIBBON_COUNT:
- retVal = 0;
- if (substruct0->species && !substruct3->isEgg)
- {
- retVal += substruct3->coolRibbon;
- retVal += substruct3->beautyRibbon;
- retVal += substruct3->cuteRibbon;
- retVal += substruct3->smartRibbon;
- retVal += substruct3->toughRibbon;
- retVal += substruct3->championRibbon;
- retVal += substruct3->winningRibbon;
- retVal += substruct3->victoryRibbon;
- retVal += substruct3->artistRibbon;
- retVal += substruct3->effortRibbon;
- retVal += substruct3->giftRibbon1;
- retVal += substruct3->giftRibbon2;
- retVal += substruct3->giftRibbon3;
- retVal += substruct3->giftRibbon4;
- retVal += substruct3->giftRibbon5;
- retVal += substruct3->giftRibbon6;
- retVal += substruct3->giftRibbon7;
- }
- break;
- case MON_DATA_RIBBONS:
- retVal = 0;
- if (substruct0->species && !substruct3->isEgg)
+ break;
+ }
+ case MON_DATA_LANGUAGE:
+ retVal = boxMon->language;
+ break;
+ case MON_DATA_SANITY_BIT1:
+ retVal = boxMon->isBadEgg;
+ break;
+ case MON_DATA_SANITY_BIT2:
+ retVal = boxMon->hasSpecies;
+ break;
+ case MON_DATA_SANITY_BIT3:
+ retVal = boxMon->isEgg;
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ retVal = 0;
+
+ while (retVal < OT_NAME_LENGTH && boxMon->otName[retVal] != EOS)
+ {
+ data[retVal] = boxMon->otName[retVal];
+ retVal++;
+ }
+
+ data[retVal] = EOS;
+ break;
+ }
+ case MON_DATA_MARKINGS:
+ retVal = boxMon->markings;
+ break;
+ case MON_DATA_CHECKSUM:
+ retVal = boxMon->checksum;
+ break;
+ case MON_DATA_10:
+ retVal = boxMon->unknown;
+ break;
+ case MON_DATA_SPECIES:
+ retVal = boxMon->isBadEgg ? SPECIES_EGG : substruct0->species;
+ break;
+ case MON_DATA_HELD_ITEM:
+ retVal = substruct0->heldItem;
+ break;
+ case MON_DATA_EXP:
+ retVal = substruct0->experience;
+ break;
+ case MON_DATA_PP_BONUSES:
+ retVal = substruct0->ppBonuses;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ retVal = substruct0->friendship;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ retVal = substruct1->moves[field - MON_DATA_MOVE1];
+ break;
+ case MON_DATA_PP1:
+ case MON_DATA_PP2:
+ case MON_DATA_PP3:
+ case MON_DATA_PP4:
+ retVal = substruct1->pp[field - MON_DATA_PP1];
+ break;
+ case MON_DATA_HP_EV:
+ retVal = substruct2->hpEV;
+ break;
+ case MON_DATA_ATK_EV:
+ retVal = substruct2->attackEV;
+ break;
+ case MON_DATA_DEF_EV:
+ retVal = substruct2->defenseEV;
+ break;
+ case MON_DATA_SPD_EV:
+ retVal = substruct2->speedEV;
+ break;
+ case MON_DATA_SPATK_EV:
+ retVal = substruct2->spAttackEV;
+ break;
+ case MON_DATA_SPDEF_EV:
+ retVal = substruct2->spDefenseEV;
+ break;
+ case MON_DATA_COOL:
+ retVal = substruct2->cool;
+ break;
+ case MON_DATA_BEAUTY:
+ retVal = substruct2->beauty;
+ break;
+ case MON_DATA_CUTE:
+ retVal = substruct2->cute;
+ break;
+ case MON_DATA_SMART:
+ retVal = substruct2->smart;
+ break;
+ case MON_DATA_TOUGH:
+ retVal = substruct2->tough;
+ break;
+ case MON_DATA_SHEEN:
+ retVal = substruct2->sheen;
+ break;
+ case MON_DATA_POKERUS:
+ retVal = substruct3->pokerus;
+ break;
+ case MON_DATA_MET_LOCATION:
+ retVal = substruct3->metLocation;
+ break;
+ case MON_DATA_MET_LEVEL:
+ retVal = substruct3->metLevel;
+ break;
+ case MON_DATA_MET_GAME:
+ retVal = substruct3->metGame;
+ break;
+ case MON_DATA_POKEBALL:
+ retVal = substruct3->pokeball;
+ break;
+ case MON_DATA_OT_GENDER:
+ retVal = substruct3->otGender;
+ break;
+ case MON_DATA_HP_IV:
+ retVal = substruct3->hpIV;
+ break;
+ case MON_DATA_ATK_IV:
+ retVal = substruct3->attackIV;
+ break;
+ case MON_DATA_DEF_IV:
+ retVal = substruct3->defenseIV;
+ break;
+ case MON_DATA_SPD_IV:
+ retVal = substruct3->speedIV;
+ break;
+ case MON_DATA_SPATK_IV:
+ retVal = substruct3->spAttackIV;
+ break;
+ case MON_DATA_SPDEF_IV:
+ retVal = substruct3->spDefenseIV;
+ break;
+ case MON_DATA_IS_EGG:
+ retVal = substruct3->isEgg;
+ break;
+ case MON_DATA_ALT_ABILITY:
+ retVal = substruct3->altAbility;
+ break;
+ case MON_DATA_COOL_RIBBON:
+ retVal = substruct3->coolRibbon;
+ break;
+ case MON_DATA_BEAUTY_RIBBON:
+ retVal = substruct3->beautyRibbon;
+ break;
+ case MON_DATA_CUTE_RIBBON:
+ retVal = substruct3->cuteRibbon;
+ break;
+ case MON_DATA_SMART_RIBBON:
+ retVal = substruct3->smartRibbon;
+ break;
+ case MON_DATA_TOUGH_RIBBON:
+ retVal = substruct3->toughRibbon;
+ break;
+ case MON_DATA_CHAMPION_RIBBON:
+ retVal = substruct3->championRibbon;
+ break;
+ case MON_DATA_WINNING_RIBBON:
+ retVal = substruct3->winningRibbon;
+ break;
+ case MON_DATA_VICTORY_RIBBON:
+ retVal = substruct3->victoryRibbon;
+ break;
+ case MON_DATA_ARTIST_RIBBON:
+ retVal = substruct3->artistRibbon;
+ break;
+ case MON_DATA_EFFORT_RIBBON:
+ retVal = substruct3->effortRibbon;
+ break;
+ case MON_DATA_GIFT_RIBBON_1:
+ retVal = substruct3->giftRibbon1;
+ break;
+ case MON_DATA_GIFT_RIBBON_2:
+ retVal = substruct3->giftRibbon2;
+ break;
+ case MON_DATA_GIFT_RIBBON_3:
+ retVal = substruct3->giftRibbon3;
+ break;
+ case MON_DATA_GIFT_RIBBON_4:
+ retVal = substruct3->giftRibbon4;
+ break;
+ case MON_DATA_GIFT_RIBBON_5:
+ retVal = substruct3->giftRibbon5;
+ break;
+ case MON_DATA_GIFT_RIBBON_6:
+ retVal = substruct3->giftRibbon6;
+ break;
+ case MON_DATA_GIFT_RIBBON_7:
+ retVal = substruct3->giftRibbon7;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ retVal = substruct3->fatefulEncounter;
+ break;
+ case MON_DATA_SPECIES2:
+ retVal = substruct0->species;
+ if (substruct0->species && (substruct3->isEgg || boxMon->isBadEgg))
+ retVal = SPECIES_EGG;
+ break;
+ case MON_DATA_IVS:
+ retVal = substruct3->hpIV | (substruct3->attackIV << 5) | (substruct3->defenseIV << 10) | (substruct3->speedIV << 15) | (substruct3->spAttackIV << 20) | (substruct3->spDefenseIV << 25);
+ break;
+ case MON_DATA_KNOWN_MOVES:
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ u16 *moves = (u16 *)data;
+ s32 i = 0;
+
+ while (moves[i] != 355)
{
- retVal = substruct3->championRibbon
- | (substruct3->coolRibbon << 1)
- | (substruct3->beautyRibbon << 4)
- | (substruct3->cuteRibbon << 7)
- | (substruct3->smartRibbon << 10)
- | (substruct3->toughRibbon << 13)
- | (substruct3->winningRibbon << 16)
- | (substruct3->victoryRibbon << 17)
- | (substruct3->artistRibbon << 18)
- | (substruct3->effortRibbon << 19)
- | (substruct3->giftRibbon1 << 20)
- | (substruct3->giftRibbon2 << 21)
- | (substruct3->giftRibbon3 << 22)
- | (substruct3->giftRibbon4 << 23)
- | (substruct3->giftRibbon5 << 24)
- | (substruct3->giftRibbon6 << 25)
- | (substruct3->giftRibbon7 << 26);
+ u16 move = moves[i];
+ if (substruct1->moves[0] == move
+ || substruct1->moves[1] == move
+ || substruct1->moves[2] == move
+ || substruct1->moves[3] == move)
+ retVal |= gBitTable[i];
+ i++;
}
- break;
- default:
- break;
+ }
+ break;
+ case MON_DATA_RIBBON_COUNT:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal += substruct3->coolRibbon;
+ retVal += substruct3->beautyRibbon;
+ retVal += substruct3->cuteRibbon;
+ retVal += substruct3->smartRibbon;
+ retVal += substruct3->toughRibbon;
+ retVal += substruct3->championRibbon;
+ retVal += substruct3->winningRibbon;
+ retVal += substruct3->victoryRibbon;
+ retVal += substruct3->artistRibbon;
+ retVal += substruct3->effortRibbon;
+ retVal += substruct3->giftRibbon1;
+ retVal += substruct3->giftRibbon2;
+ retVal += substruct3->giftRibbon3;
+ retVal += substruct3->giftRibbon4;
+ retVal += substruct3->giftRibbon5;
+ retVal += substruct3->giftRibbon6;
+ retVal += substruct3->giftRibbon7;
+ }
+ break;
+ case MON_DATA_RIBBONS:
+ retVal = 0;
+ if (substruct0->species && !substruct3->isEgg)
+ {
+ retVal = substruct3->championRibbon
+ | (substruct3->coolRibbon << 1)
+ | (substruct3->beautyRibbon << 4)
+ | (substruct3->cuteRibbon << 7)
+ | (substruct3->smartRibbon << 10)
+ | (substruct3->toughRibbon << 13)
+ | (substruct3->winningRibbon << 16)
+ | (substruct3->victoryRibbon << 17)
+ | (substruct3->artistRibbon << 18)
+ | (substruct3->effortRibbon << 19)
+ | (substruct3->giftRibbon1 << 20)
+ | (substruct3->giftRibbon2 << 21)
+ | (substruct3->giftRibbon3 << 22)
+ | (substruct3->giftRibbon4 << 23)
+ | (substruct3->giftRibbon5 << 24)
+ | (substruct3->giftRibbon6 << 25)
+ | (substruct3->giftRibbon7 << 26);
+ }
+ break;
+ default:
+ break;
}
if (field > MON_DATA_10)
@@ -800,239 +796,239 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data)
switch (field)
{
- case MON_DATA_PERSONALITY:
- SET32(boxMon->personality);
- break;
- case MON_DATA_OT_ID:
- SET32(boxMon->otId);
- break;
- case MON_DATA_NICKNAME:
- {
- s32 i;
- for (i = 0; i < POKEMON_NAME_LENGTH; i++)
- boxMon->nickname[i] = data[i];
- break;
- }
- case MON_DATA_LANGUAGE:
- SET8(boxMon->language);
- break;
- case MON_DATA_SANITY_BIT1:
- SET8(boxMon->isBadEgg);
- break;
- case MON_DATA_SANITY_BIT2:
- SET8(boxMon->hasSpecies);
- break;
- case MON_DATA_SANITY_BIT3:
- SET8(boxMon->isEgg);
- break;
- case MON_DATA_OT_NAME:
- {
- s32 i;
- for (i = 0; i < OT_NAME_LENGTH; i++)
- boxMon->otName[i] = data[i];
- break;
- }
- case MON_DATA_MARKINGS:
- SET8(boxMon->markings);
- break;
- case MON_DATA_CHECKSUM:
- SET16(boxMon->checksum);
- break;
- case MON_DATA_10:
- SET16(boxMon->unknown);
- break;
- case MON_DATA_SPECIES:
- {
- SET16(substruct0->species);
- if (substruct0->species)
- boxMon->hasSpecies = 1;
- else
- boxMon->hasSpecies = 0;
- break;
- }
- case MON_DATA_HELD_ITEM:
- SET16(substruct0->heldItem);
- break;
- case MON_DATA_EXP:
- SET32(substruct0->experience);
- break;
- case MON_DATA_PP_BONUSES:
- SET8(substruct0->ppBonuses);
- break;
- case MON_DATA_FRIENDSHIP:
- SET8(substruct0->friendship);
- break;
- case MON_DATA_MOVE1:
- case MON_DATA_MOVE2:
- case MON_DATA_MOVE3:
- case MON_DATA_MOVE4:
- SET16(substruct1->moves[field - MON_DATA_MOVE1]);
- break;
- case MON_DATA_PP1:
- case MON_DATA_PP2:
- case MON_DATA_PP3:
- case MON_DATA_PP4:
- SET8(substruct1->pp[field - MON_DATA_PP1]);
- break;
- case MON_DATA_HP_EV:
- SET8(substruct2->hpEV);
- break;
- case MON_DATA_ATK_EV:
- SET8(substruct2->attackEV);
- break;
- case MON_DATA_DEF_EV:
- SET8(substruct2->defenseEV);
- break;
- case MON_DATA_SPD_EV:
- SET8(substruct2->speedEV);
- break;
- case MON_DATA_SPATK_EV:
- SET8(substruct2->spAttackEV);
- break;
- case MON_DATA_SPDEF_EV:
- SET8(substruct2->spDefenseEV);
- break;
- case MON_DATA_COOL:
- SET8(substruct2->cool);
- break;
- case MON_DATA_BEAUTY:
- SET8(substruct2->beauty);
- break;
- case MON_DATA_CUTE:
- SET8(substruct2->cute);
- break;
- case MON_DATA_SMART:
- SET8(substruct2->smart);
- break;
- case MON_DATA_TOUGH:
- SET8(substruct2->tough);
- break;
- case MON_DATA_SHEEN:
- SET8(substruct2->sheen);
- break;
- case MON_DATA_POKERUS:
- SET8(substruct3->pokerus);
- break;
- case MON_DATA_MET_LOCATION:
- SET8(substruct3->metLocation);
- break;
- case MON_DATA_MET_LEVEL:
- {
- u8 metLevel = *data;
- substruct3->metLevel = metLevel;
- break;
- }
- case MON_DATA_MET_GAME:
- SET8(substruct3->metGame);
- break;
- case MON_DATA_POKEBALL:
- {
- u8 pokeball = *data;
- substruct3->pokeball = pokeball;
- break;
- }
- case MON_DATA_OT_GENDER:
- SET8(substruct3->otGender);
- break;
- case MON_DATA_HP_IV:
- SET8(substruct3->hpIV);
- break;
- case MON_DATA_ATK_IV:
- SET8(substruct3->attackIV);
- break;
- case MON_DATA_DEF_IV:
- SET8(substruct3->defenseIV);
- break;
- case MON_DATA_SPD_IV:
- SET8(substruct3->speedIV);
- break;
- case MON_DATA_SPATK_IV:
- SET8(substruct3->spAttackIV);
- break;
- case MON_DATA_SPDEF_IV:
- SET8(substruct3->spDefenseIV);
- break;
- case MON_DATA_IS_EGG:
- SET8(substruct3->isEgg);
- if (substruct3->isEgg)
- boxMon->isEgg = 1;
- else
- boxMon->isEgg = 0;
- break;
- case MON_DATA_ALT_ABILITY:
- SET8(substruct3->altAbility);
- break;
- case MON_DATA_COOL_RIBBON:
- SET8(substruct3->coolRibbon);
- break;
- case MON_DATA_BEAUTY_RIBBON:
- SET8(substruct3->beautyRibbon);
- break;
- case MON_DATA_CUTE_RIBBON:
- SET8(substruct3->cuteRibbon);
- break;
- case MON_DATA_SMART_RIBBON:
- SET8(substruct3->smartRibbon);
- break;
- case MON_DATA_TOUGH_RIBBON:
- SET8(substruct3->toughRibbon);
- break;
- case MON_DATA_CHAMPION_RIBBON:
- SET8(substruct3->championRibbon);
- break;
- case MON_DATA_WINNING_RIBBON:
- SET8(substruct3->winningRibbon);
- break;
- case MON_DATA_VICTORY_RIBBON:
- SET8(substruct3->victoryRibbon);
- break;
- case MON_DATA_ARTIST_RIBBON:
- SET8(substruct3->artistRibbon);
- break;
- case MON_DATA_EFFORT_RIBBON:
- SET8(substruct3->effortRibbon);
- break;
- case MON_DATA_GIFT_RIBBON_1:
- SET8(substruct3->giftRibbon1);
- break;
- case MON_DATA_GIFT_RIBBON_2:
- SET8(substruct3->giftRibbon2);
- break;
- case MON_DATA_GIFT_RIBBON_3:
- SET8(substruct3->giftRibbon3);
- break;
- case MON_DATA_GIFT_RIBBON_4:
- SET8(substruct3->giftRibbon4);
- break;
- case MON_DATA_GIFT_RIBBON_5:
- SET8(substruct3->giftRibbon5);
- break;
- case MON_DATA_GIFT_RIBBON_6:
- SET8(substruct3->giftRibbon6);
- break;
- case MON_DATA_GIFT_RIBBON_7:
- SET8(substruct3->giftRibbon7);
- break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- SET8(substruct3->fatefulEncounter);
- break;
- case MON_DATA_IVS:
- {
+ case MON_DATA_PERSONALITY:
+ SET32(boxMon->personality);
+ break;
+ case MON_DATA_OT_ID:
+ SET32(boxMon->otId);
+ break;
+ case MON_DATA_NICKNAME:
+ {
+ s32 i;
+ for (i = 0; i < POKEMON_NAME_LENGTH; i++)
+ boxMon->nickname[i] = data[i];
+ break;
+ }
+ case MON_DATA_LANGUAGE:
+ SET8(boxMon->language);
+ break;
+ case MON_DATA_SANITY_BIT1:
+ SET8(boxMon->isBadEgg);
+ break;
+ case MON_DATA_SANITY_BIT2:
+ SET8(boxMon->hasSpecies);
+ break;
+ case MON_DATA_SANITY_BIT3:
+ SET8(boxMon->isEgg);
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ s32 i;
+ for (i = 0; i < OT_NAME_LENGTH; i++)
+ boxMon->otName[i] = data[i];
+ break;
+ }
+ case MON_DATA_MARKINGS:
+ SET8(boxMon->markings);
+ break;
+ case MON_DATA_CHECKSUM:
+ SET16(boxMon->checksum);
+ break;
+ case MON_DATA_10:
+ SET16(boxMon->unknown);
+ break;
+ case MON_DATA_SPECIES:
+ {
+ SET16(substruct0->species);
+ if (substruct0->species)
+ boxMon->hasSpecies = 1;
+ else
+ boxMon->hasSpecies = 0;
+ break;
+ }
+ case MON_DATA_HELD_ITEM:
+ SET16(substruct0->heldItem);
+ break;
+ case MON_DATA_EXP:
+ SET32(substruct0->experience);
+ break;
+ case MON_DATA_PP_BONUSES:
+ SET8(substruct0->ppBonuses);
+ break;
+ case MON_DATA_FRIENDSHIP:
+ SET8(substruct0->friendship);
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ SET16(substruct1->moves[field - MON_DATA_MOVE1]);
+ break;
+ case MON_DATA_PP1:
+ case MON_DATA_PP2:
+ case MON_DATA_PP3:
+ case MON_DATA_PP4:
+ SET8(substruct1->pp[field - MON_DATA_PP1]);
+ break;
+ case MON_DATA_HP_EV:
+ SET8(substruct2->hpEV);
+ break;
+ case MON_DATA_ATK_EV:
+ SET8(substruct2->attackEV);
+ break;
+ case MON_DATA_DEF_EV:
+ SET8(substruct2->defenseEV);
+ break;
+ case MON_DATA_SPD_EV:
+ SET8(substruct2->speedEV);
+ break;
+ case MON_DATA_SPATK_EV:
+ SET8(substruct2->spAttackEV);
+ break;
+ case MON_DATA_SPDEF_EV:
+ SET8(substruct2->spDefenseEV);
+ break;
+ case MON_DATA_COOL:
+ SET8(substruct2->cool);
+ break;
+ case MON_DATA_BEAUTY:
+ SET8(substruct2->beauty);
+ break;
+ case MON_DATA_CUTE:
+ SET8(substruct2->cute);
+ break;
+ case MON_DATA_SMART:
+ SET8(substruct2->smart);
+ break;
+ case MON_DATA_TOUGH:
+ SET8(substruct2->tough);
+ break;
+ case MON_DATA_SHEEN:
+ SET8(substruct2->sheen);
+ break;
+ case MON_DATA_POKERUS:
+ SET8(substruct3->pokerus);
+ break;
+ case MON_DATA_MET_LOCATION:
+ SET8(substruct3->metLocation);
+ break;
+ case MON_DATA_MET_LEVEL:
+ {
+ u8 metLevel = *data;
+ substruct3->metLevel = metLevel;
+ break;
+ }
+ case MON_DATA_MET_GAME:
+ SET8(substruct3->metGame);
+ break;
+ case MON_DATA_POKEBALL:
+ {
+ u8 pokeball = *data;
+ substruct3->pokeball = pokeball;
+ break;
+ }
+ case MON_DATA_OT_GENDER:
+ SET8(substruct3->otGender);
+ break;
+ case MON_DATA_HP_IV:
+ SET8(substruct3->hpIV);
+ break;
+ case MON_DATA_ATK_IV:
+ SET8(substruct3->attackIV);
+ break;
+ case MON_DATA_DEF_IV:
+ SET8(substruct3->defenseIV);
+ break;
+ case MON_DATA_SPD_IV:
+ SET8(substruct3->speedIV);
+ break;
+ case MON_DATA_SPATK_IV:
+ SET8(substruct3->spAttackIV);
+ break;
+ case MON_DATA_SPDEF_IV:
+ SET8(substruct3->spDefenseIV);
+ break;
+ case MON_DATA_IS_EGG:
+ SET8(substruct3->isEgg);
+ if (substruct3->isEgg)
+ boxMon->isEgg = 1;
+ else
+ boxMon->isEgg = 0;
+ break;
+ case MON_DATA_ALT_ABILITY:
+ SET8(substruct3->altAbility);
+ break;
+ case MON_DATA_COOL_RIBBON:
+ SET8(substruct3->coolRibbon);
+ break;
+ case MON_DATA_BEAUTY_RIBBON:
+ SET8(substruct3->beautyRibbon);
+ break;
+ case MON_DATA_CUTE_RIBBON:
+ SET8(substruct3->cuteRibbon);
+ break;
+ case MON_DATA_SMART_RIBBON:
+ SET8(substruct3->smartRibbon);
+ break;
+ case MON_DATA_TOUGH_RIBBON:
+ SET8(substruct3->toughRibbon);
+ break;
+ case MON_DATA_CHAMPION_RIBBON:
+ SET8(substruct3->championRibbon);
+ break;
+ case MON_DATA_WINNING_RIBBON:
+ SET8(substruct3->winningRibbon);
+ break;
+ case MON_DATA_VICTORY_RIBBON:
+ SET8(substruct3->victoryRibbon);
+ break;
+ case MON_DATA_ARTIST_RIBBON:
+ SET8(substruct3->artistRibbon);
+ break;
+ case MON_DATA_EFFORT_RIBBON:
+ SET8(substruct3->effortRibbon);
+ break;
+ case MON_DATA_GIFT_RIBBON_1:
+ SET8(substruct3->giftRibbon1);
+ break;
+ case MON_DATA_GIFT_RIBBON_2:
+ SET8(substruct3->giftRibbon2);
+ break;
+ case MON_DATA_GIFT_RIBBON_3:
+ SET8(substruct3->giftRibbon3);
+ break;
+ case MON_DATA_GIFT_RIBBON_4:
+ SET8(substruct3->giftRibbon4);
+ break;
+ case MON_DATA_GIFT_RIBBON_5:
+ SET8(substruct3->giftRibbon5);
+ break;
+ case MON_DATA_GIFT_RIBBON_6:
+ SET8(substruct3->giftRibbon6);
+ break;
+ case MON_DATA_GIFT_RIBBON_7:
+ SET8(substruct3->giftRibbon7);
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ SET8(substruct3->fatefulEncounter);
+ break;
+ case MON_DATA_IVS:
+ {
#ifdef BUGFIX_SETMONIVS
- u32 ivs = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
+ u32 ivs = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24);
#else
- u32 ivs = *data; // Bug: Only the HP IV and the lower 3 bits of the Attack IV are read. The rest become 0.
+ u32 ivs = *data; // Bug: Only the HP IV and the lower 3 bits of the Attack IV are read. The rest become 0.
#endif
- substruct3->hpIV = ivs & 0x1F;
- substruct3->attackIV = (ivs >> 5) & 0x1F;
- substruct3->defenseIV = (ivs >> 10) & 0x1F;
- substruct3->speedIV = (ivs >> 15) & 0x1F;
- substruct3->spAttackIV = (ivs >> 20) & 0x1F;
- substruct3->spDefenseIV = (ivs >> 25) & 0x1F;
- break;
- }
- default:
- break;
+ substruct3->hpIV = ivs & 0x1F;
+ substruct3->attackIV = (ivs >> 5) & 0x1F;
+ substruct3->defenseIV = (ivs >> 10) & 0x1F;
+ substruct3->speedIV = (ivs >> 15) & 0x1F;
+ substruct3->spAttackIV = (ivs >> 20) & 0x1F;
+ substruct3->spDefenseIV = (ivs >> 25) & 0x1F;
+ break;
+ }
+ default:
+ break;
}
if (field > MON_DATA_10)
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 270a52ad5..f9eb3a7e9 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "asm.h"
#include "battle.h"
+#include "data2.h"
#include "event_data.h"
#include "hold_effects.h"
#include "item.h"
@@ -74,9 +75,6 @@ extern u8 gEnemyMonIndex;
extern u8 gUnknown_02024C0B;
extern u8 gUnknown_02024E6C;
extern struct SpindaSpot gSpindaSpotGraphics[];
-extern void *gUnknown_081FAF4C[];
-extern u8 gSpeciesNames[][11];
-extern struct Trainer gTrainers[];
extern s8 gNatureStatTable[][5];
extern s8 gUnknown_082082FE[][3];
extern u16 gTrainerBattleOpponent;
@@ -88,8 +86,6 @@ extern u32 gTMHMLearnsets[][2];
extern const u16 *gLevelUpLearnsets[];
extern u8 gBattleMonForms[];
extern const u8 BattleText_Wally[];
-extern const struct SpritePalette gMonPaletteTable[];
-extern const struct SpritePalette gMonShinyPaletteTable[];
extern const u16 gHMMoves[];
extern s8 gUnknown_083F7E28[];
extern u8 byte_2024C06;
@@ -169,28 +165,28 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
{
switch (j)
{
- case 2:
- if (val & 0x10)
- val &= 0xEF;
- case 0:
- if (i == effectByte && (val & effectBit))
- return offset;
- offset++;
- break;
- case 1:
- if (i == effectByte && (val & effectBit))
- return offset;
- offset++;
- break;
- case 3:
- if (i == effectByte && (val & effectBit))
- return offset;
- offset++;
- break;
- case 7:
- if (i == effectByte)
- return 0;
- break;
+ case 2:
+ if (val & 0x10)
+ val &= 0xEF;
+ case 0:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 1:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 3:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 7:
+ if (i == effectByte)
+ return 0;
+ break;
}
}
j++;
@@ -208,21 +204,21 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
{
switch (j)
{
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- if (i == effectByte && (val & effectBit))
- return offset;
- offset++;
- break;
- case 7:
- if (i == effectByte)
- return 0;
- break;
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ if (i == effectByte && (val & effectBit))
+ return offset;
+ offset++;
+ break;
+ case 7:
+ if (i == effectByte)
+ return 0;
+ break;
}
}
j++;
@@ -1153,26 +1149,26 @@ u16 sub_8040728(void)
{
switch (gTrainers[gTrainerBattleOpponent].trainerClass)
{
- case 2:
- case 0x31:
- return BGM_BATTLE30;
- case 3:
- case 4:
- case 0x32:
- case 0x33:
- return BGM_BATTLE31;
- case 0x19:
- return BGM_BATTLE32;
- case 0x20:
- return BGM_BATTLE33;
- case 0x2E:
- if (!StringCompare(gTrainers[gTrainerBattleOpponent].trainerName, BattleText_Wally))
- return BGM_BATTLE20;
- return BGM_BATTLE35;
- case 0x18:
- return BGM_BATTLE38;
- default:
+ case 2:
+ case 0x31:
+ return BGM_BATTLE30;
+ case 3:
+ case 4:
+ case 0x32:
+ case 0x33:
+ return BGM_BATTLE31;
+ case 0x19:
+ return BGM_BATTLE32;
+ case 0x20:
+ return BGM_BATTLE33;
+ case 0x2E:
+ if (!StringCompare(gTrainers[gTrainerBattleOpponent].trainerName, BattleText_Wally))
return BGM_BATTLE20;
+ return BGM_BATTLE35;
+ case 0x18:
+ return BGM_BATTLE38;
+ default:
+ return BGM_BATTLE20;
}
}
return BGM_BATTLE27;
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 6540858c1..b2f8a1569 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -1,8 +1,10 @@
#include "global.h"
#include "pokemon_size_record.h"
+#include "data2.h"
#include "event_data.h"
#include "species.h"
#include "string_util.h"
+#include "strings2.h"
#include "text.h"
extern u16 SpeciesToNationalPokedexNum(u16);
@@ -15,9 +17,7 @@ struct UnknownStruct
u16 unk4;
};
-extern u8 gOtherText_Marco[];
extern u16 gScriptResult;
-extern u8 gSpeciesNames[][11];
static const struct UnknownStruct sBigMonSizeTable[] =
{
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 5f96512f0..56a56e455 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -4,22 +4,11 @@
#include "menu.h"
#include "pokemon.h"
#include "string_util.h"
+#include "strings2.h"
extern struct Pokemon *unk_2018000;
extern u8 *(gNatureNames[]);
-extern const u8 gOtherText_Terminator4[];
-extern const u8 gOtherText_Nature[];
-
-extern const u8 gOtherText_Met[];
-extern const u8 gOtherText_Egg2[];
-extern const u8 gOtherText_ObtainedInTrade[];
-extern const u8 gOtherText_FatefulEncounter[];
-extern const u8 gOtherText_Met2[];
-extern const u8 gOtherText_EggDayCare[];
-extern const u8 gOtherText_EggNicePlace[];
-extern const u8 gOtherText_EggObtainedInTrade[];
-extern const u8 gOtherText_EggHotSprings[];
u8 *sub_80A1E9C(u8 *dest, u8 *src, u8);
u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon);
diff --git a/src/pokenav.c b/src/pokenav.c
index 60e7c73e1..f50f039f8 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "battle.h"
+#include "data2.h"
#include "string_util.h"
struct UnkPokenavStruct_Sub {
@@ -17,8 +18,6 @@ struct UnkPokenavStruct {
extern struct UnkPokenavStruct *gUnknown_083DFEC4;
-extern const struct Trainer gTrainers[];
-extern const u8 gTrainerClassNames[][13];
void sub_80F700C(u8 *arg0, u16 arg1) {
struct Trainer *trainer;
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 58722010f..c84cfd2ae 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -10,6 +10,7 @@
#include "songs.h"
#include "sound.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
extern void *recordMixingSecretBases;
@@ -28,8 +29,6 @@ extern u16 gSpecialVar_0x8005;
extern u32 gUnknown_03005D2C;
extern u8 gUnknown_03000718;
extern u8 gUnknown_0300071C[];
-extern u8 gOtherText_MixingComplete[];
-extern u8 gOtherText_MixingRecordsWithFriend[];
extern bool8 gReceivedRemoteLinkPlayers;
#define BUFFER_CHUNK_SIZE 200
@@ -262,31 +261,31 @@ void Task_RecordMixing_SendPacket(u8 taskId)
switch (task->data[TD_STATE])
{
- case 0: //Copy record data to send buffer
- {
- void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4];
+ case 0: //Copy record data to send buffer
+ {
+ void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4];
- memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE);
- task->data[TD_STATE]++;
- break;
- }
- case 1:
- if (GetMultiplayerId() == 0)
- sub_8007E9C(1);
+ memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE);
+ task->data[TD_STATE]++;
+ break;
+ }
+ case 1:
+ if (GetMultiplayerId() == 0)
+ sub_8007E9C(1);
+ task->data[TD_STATE]++;
+ break;
+ case 2:
+ break;
+ case 3:
+ task->data[4]++;
+ if ((u16)task->data[4] == 24)
task->data[TD_STATE]++;
- break;
- case 2:
- break;
- case 3:
- task->data[4]++;
- if ((u16)task->data[4] == 24)
- task->data[TD_STATE]++;
- else
- task->data[TD_STATE] = 0;
- break;
- case 4:
- if (!gTasks[task->data[10]].isActive)
- task->func = Task_RecordMixing_SendPacket_SwitchToReceive;
+ else
+ task->data[TD_STATE] = 0;
+ break;
+ case 4:
+ if (!gTasks[task->data[10]].isActive)
+ task->func = Task_RecordMixing_SendPacket_SwitchToReceive;
}
}
diff --git a/src/rom3.c b/src/rom3.c
index ef7b9a7ed..be6ae0b27 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -15,7 +15,6 @@ extern u8 unk_2000000[];
extern u16 gBattleTypeFlags;
extern const u32 gBitTable[];
extern u16 gBattleWeather;
-extern const struct BattleMove gBattleMoves[];
extern struct BattlePokemon gBattleMons[];
extern u8 gUnknown_020238C4;
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 437c62400..9561db690 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle.h"
#include "blend_palette.h"
+#include "data2.h"
#include "decompress.h"
#include "palette.h"
#include "species.h"
@@ -40,13 +41,6 @@ struct TransformStatus {
u16 species;
};
-struct MonCoords {
- // This would use a bitfield, but sub_8079F44
- // uses it as a u8 and casting won't match.
- u8 coords; // u8 x:4, y:4;
- u8 y_offset;
-};
-
struct Struct_gUnknown_0837F578 {
u8 field_0;
u8 field_1;
@@ -101,11 +95,8 @@ extern struct Struct_unk_2019348 unk_2019348;
extern struct TransformStatus gTransformStatuses[];
extern u16 gBattleMonPartyPositions[];
extern u16 gBattleTypeFlags;
-extern struct MonCoords gMonBackPicCoords[];
-extern struct MonCoords gMonFrontPicCoords[];
extern u32 gTransformPersonalities[NUM_BATTLE_SLOTS];
extern u8 gBattleMonForms[NUM_BATTLE_SLOTS];
-extern u8 gEnemyMonElevation[];
extern u16 gUnknown_0202F7CA[];
extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS];
extern u8 gBattleAnimPlayerMonIndex;
@@ -116,9 +107,6 @@ extern u8 gUnknown_02024A68; // gNumBattleMons?
extern struct OamMatrix gOamMatrices[];
extern struct Struct_2017810 unk_2017810[];
extern u8 gUnknown_0202F7BE;
-extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18;
-extern struct SpriteSheet gMonFrontPicTable[];
-extern struct SpriteSheet gMonBackPicTable[];
extern u8 IsContest();
extern bool8 sub_8078874(u8);
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index d46abc74d..a3de0bd00 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -7,6 +7,7 @@
#include "palette.h"
#include "save.h"
#include "sprite.h"
+#include "strings.h"
#include "task.h"
#include "text.h"
@@ -36,13 +37,6 @@ extern u32 gGameContinueCallback;
extern u8 gBirchHelpGfx[];
-extern u8 gSystemText_SaveFailedBackupCheck[];
-extern u8 gSystemText_CheckCompleteSaveAttempt[];
-extern u8 gSystemText_BackupDamagedGameContinue[];
-extern u8 gSystemText_SaveCompletedPressA[];
-extern u8 gSystemText_SaveCompletedGameEnd[];
-extern u8 gSystemText_GameplayEnded[];
-
extern u8 gBirchGrassTilemap[];
extern u8 gBirchBagTilemap[];
extern u8 gBirchBagGrassPal[0x40];
@@ -110,59 +104,59 @@ static void CB2_SaveFailedScreen(void)
switch (gMain.state)
{
- case 0:
- default:
- SetVBlankCallback(0);
- REG_DISPCNT = 0;
- REG_BG3CNT = 0;
- REG_BG2CNT = 0;
- REG_BG1CNT = 0;
- REG_BG0CNT = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- DmaFill16(3, 0, VRAM, VRAM_SIZE);
- DmaFill32(3, 0, OAM, OAM_SIZE);
- DmaFill16(3, 0, PLTT, PLTT_SIZE);
- LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
- LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000));
- LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800));
- LZ77UnCompVram(&gSaveFailedClockGfx, (void *)(VRAM + 0x10020));
- ResetSpriteData();
- ResetTasks();
- ResetPaletteFade();
- LoadPalette(&gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal));
- LoadPalette(&gSaveFailedClockPal, 0x100, sizeof(gSaveFailedClockPal));
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- MenuDrawTextWindow(13, CLOCK_WIN_TOP, 16, CLOCK_WIN_TOP + 3); // clock window
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19); // message window
- MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ime = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = ime;
- REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(VBlankCB);
- REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
- REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG2_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_0;
- gMain.state++;
- break;
- case 1:
- if (!UpdatePaletteFade())
- {
- SetMainCallback2(CB2_WipeSave);
- SetVBlankCallback(VBlankCB_UpdateClockGraphics);
- }
- break;
+ case 0:
+ default:
+ SetVBlankCallback(0);
+ REG_DISPCNT = 0;
+ REG_BG3CNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ DmaFill16(3, 0, VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, OAM, OAM_SIZE);
+ DmaFill16(3, 0, PLTT, PLTT_SIZE);
+ LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
+ LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000));
+ LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800));
+ LZ77UnCompVram(&gSaveFailedClockGfx, (void *)(VRAM + 0x10020));
+ ResetSpriteData();
+ ResetTasks();
+ ResetPaletteFade();
+ LoadPalette(&gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal));
+ LoadPalette(&gSaveFailedClockPal, 0x100, sizeof(gSaveFailedClockPal));
+ SetUpWindowConfig(&gWindowConfig_81E6C3C);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ MenuDrawTextWindow(13, CLOCK_WIN_TOP, 16, CLOCK_WIN_TOP + 3); // clock window
+ MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19); // message window
+ MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ ime = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = ime;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(VBlankCB);
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG2_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_0;
+ gMain.state++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ SetMainCallback2(CB2_WipeSave);
+ SetVBlankCallback(VBlankCB_UpdateClockGraphics);
+ }
+ break;
}
}
diff --git a/src/save_menu_util.c b/src/save_menu_util.c
index 7899fabb1..8910bb300 100644
--- a/src/save_menu_util.c
+++ b/src/save_menu_util.c
@@ -5,11 +5,7 @@
#include "menu.h"
#include "pokedex.h"
#include "string_util.h"
-
-extern u8 gOtherText_Player[];
-extern u8 gOtherText_Badges[];
-extern u8 gOtherText_Pokedex[];
-extern u8 gOtherText_PlayTime[];
+#include "strings2.h"
void HandleDrawSaveWindowInfo(s16 left, s16 top)
{
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 136181bd3..33867b58a 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -6,6 +6,7 @@
#include "clock.h"
#include "coins.h"
#include "contest_painting.h"
+#include "data2.h"
#include "decoration.h"
#include "event_data.h"
#include "field_door.h"
@@ -59,9 +60,6 @@ extern SpecialFunc gSpecials[];
extern u8 *gStdScripts[];
extern u8 *gStdScripts_End[];
-extern u8 gSpeciesNames[][11];
-extern u8 gMoveNames[][13];
-
extern u8 * const gUnknown_083CE048[];
extern struct Decoration gDecorations[];
diff --git a/src/script_menu.c b/src/script_menu.c
index eba438397..50941f9ac 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -913,19 +913,19 @@ void task_picbox(u8 taskId)
switch (task->data[0])
{
- case 0:
- task->data[0]++;
- break;
- case 1:
- break;
- case 2:
- FreeResourcesAndDestroySprite(&gSprites[task->data[2]]);
- task->data[0]++;
- break;
- case 3:
- MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
- DestroyTask(taskId);
- break;
+ case 0:
+ task->data[0]++;
+ break;
+ case 1:
+ break;
+ case 2:
+ FreeResourcesAndDestroySprite(&gSprites[task->data[2]]);
+ task->data[0]++;
+ break;
+ case 3:
+ MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
+ DestroyTask(taskId);
+ break;
}
}
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index 912458655..d111cf8f6 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -3,6 +3,7 @@
#include "battle.h"
#include "berry.h"
#include "contest.h"
+#include "data2.h"
#include "decompress.h"
#include "event_data.h"
#include "items.h"
@@ -21,9 +22,6 @@
#define CONTEST_ENTRY_PIC_LEFT 10
#define CONTEST_ENTRY_PIC_TOP 3
-extern const struct SpriteSheet gMonFrontPicTable[];
-extern struct MonCoords gMonFrontPicCoords[];
-
extern void sub_80C46EC(void);
extern void sub_80C4740(void);
extern void sub_80C48F4(void);
@@ -35,7 +33,6 @@ extern void sub_8042044(struct Pokemon *mon, u16, u8);
extern void sub_8121E10(void);
extern void sub_8121E34(void);
-extern void *gUnknown_081FAF4C[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern struct SpritePalette *sub_80409C8(u16, u32, u32);
@@ -73,18 +70,18 @@ void sub_80C4C28(void)
switch(specialVar)
{
- case 0:
- var = 3;
- break;
- case 1:
- var = 4;
- break;
- case 2:
- var = 5;
- break;
- default:
- var = 100;
- break;
+ case 0:
+ var = 3;
+ break;
+ case 1:
+ var = 4;
+ break;
+ case 2:
+ var = 5;
+ break;
+ default:
+ var = 100;
+ break;
}
gSpecialVar_0x8004 = var;
}
@@ -103,22 +100,22 @@ void sub_80C4C78(void)
switch(gScriptContestCategory)
{
- case 0:
- var = 8;
- break;
- case 1:
- var = 9;
- break;
- case 2:
- var = 10;
- break;
- case 3:
- var = 11;
- break;
- case 4:
- default:
- var = 12;
- break;
+ case 0:
+ var = 8;
+ break;
+ case 1:
+ var = 9;
+ break;
+ case 2:
+ var = 10;
+ break;
+ case 3:
+ var = 11;
+ break;
+ case 4:
+ default:
+ var = 12;
+ break;
}
returnVar = gSaveBlock1.sbStruct.unkSB2.sb1_2EFC_struct2[var].var;
@@ -437,7 +434,7 @@ void ShowContestEntryMonPic(void)
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = species;
HandleLoadSpecialPokePic((struct SpriteSheet *)&gMonFrontPicTable[species].data,
- gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y,
+ gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,
(u32)gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], species, var1);
paletteData = sub_80409C8(species, var2, var1);
LoadCompressedObjectPalette(paletteData);
@@ -467,26 +464,26 @@ void sub_80C5190(u8 taskId)
switch(task->data[0])
{
- case 2:
- sprite = &gSprites[task->data[2]];
- FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum));
-
- if(sprite->oam.affineMode)
- FreeOamMatrix(sprite->oam.matrixNum);
-
- DestroySprite(sprite);
- task->data[0]++;
- break;
- case 0:
- task->data[0]++;
- break;
- case 3:
- MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
- DestroyTask(taskId);
- break;
- case 1:
- default:
- break;
+ case 2:
+ sprite = &gSprites[task->data[2]];
+ FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum));
+
+ if(sprite->oam.affineMode)
+ FreeOamMatrix(sprite->oam.matrixNum);
+
+ DestroySprite(sprite);
+ task->data[0]++;
+ break;
+ case 0:
+ task->data[0]++;
+ break;
+ case 3:
+ MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
+ DestroyTask(taskId);
+ break;
+ case 1:
+ default:
+ break;
}
}
@@ -593,15 +590,15 @@ void CheckForAlivePartyMons(void)
switch(var)
{
- case 1:
- gScriptResult = var;
- break;
- case 0:
- gScriptResult = var;
- break;
- case 2:
- gScriptResult = var;
- break;
+ case 1:
+ gScriptResult = var;
+ break;
+ case 0:
+ gScriptResult = var;
+ break;
+ case 2:
+ gScriptResult = var;
+ break;
}
}
@@ -663,12 +660,12 @@ void sub_80C5580(void)
switch(var)
{
- case 0:
- gScriptResult = 0;
- break;
- default:
- gScriptResult = 1;
- break;
+ case 0:
+ gScriptResult = 0;
+ break;
+ default:
+ gScriptResult = 1;
+ break;
}
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
@@ -686,14 +683,14 @@ void SetBattleTowerPlayerParty(void)
switch(var)
{
- case 0: // player quit battle tower?
- LoadPlayerParty();
- gScriptResult = 0;
- break;
- default: // load battle tower.
- ReducePlayerPartyToThree();
- gScriptResult = 1;
- break;
+ case 0: // player quit battle tower?
+ LoadPlayerParty();
+ gScriptResult = 0;
+ break;
+ default: // load battle tower.
+ ReducePlayerPartyToThree();
+ gScriptResult = 1;
+ break;
}
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c
index ce62f2abb..9e833ec34 100644
--- a/src/script_pokemon_util_80F99CC.c
+++ b/src/script_pokemon_util_80F99CC.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "asm.h"
#include "battle_party_menu.h"
+#include "data2.h"
#include "palette.h"
#include "pokemon.h"
#include "rom4.h"
@@ -17,8 +18,6 @@ extern u16 gSpecialVar_0x8005;
extern u8 gUnknown_02038694;
extern u16 gScriptResult;
-extern u8 gMoveNames[][13];
-
extern void (*gUnknown_0300485C)(void);
extern void OpenPartyMenu(u8, u8);
@@ -81,62 +80,62 @@ bool8 sub_80F9ACC(void)
{
switch(EWRAM_1B000.unk264)
{
- case 0:
- if(EWRAM_1B000.unk266 < gPlayerPartyCount)
- {
- TryCreatePartyMenuMonIcon(EWRAM_1B000.unk260, EWRAM_1B000.unk266, &gPlayerParty[EWRAM_1B000.unk266]);
- EWRAM_1B000.unk266++;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264++;
- }
- break;
- case 1:
- LoadHeldItemIconGraphics();
- EWRAM_1B000.unk264++;
- break;
- case 2:
- CreateHeldItemIcons_806DC34(EWRAM_1B000.unk260);
- EWRAM_1B000.unk264++;
- break;
- case 3:
- if(sub_806BD58(EWRAM_1B000.unk260, EWRAM_1B000.unk266) != 1)
- {
- EWRAM_1B000.unk266++;
- break;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264++;
- break;
- }
- case 4:
- PartyMenuPrintMonsLevelOrStatus();
+ case 0:
+ if(EWRAM_1B000.unk266 < gPlayerPartyCount)
+ {
+ TryCreatePartyMenuMonIcon(EWRAM_1B000.unk260, EWRAM_1B000.unk266, &gPlayerParty[EWRAM_1B000.unk266]);
+ EWRAM_1B000.unk266++;
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
EWRAM_1B000.unk264++;
+ }
+ break;
+ case 1:
+ LoadHeldItemIconGraphics();
+ EWRAM_1B000.unk264++;
+ break;
+ case 2:
+ CreateHeldItemIcons_806DC34(EWRAM_1B000.unk260);
+ EWRAM_1B000.unk264++;
+ break;
+ case 3:
+ if(sub_806BD58(EWRAM_1B000.unk260, EWRAM_1B000.unk266) != 1)
+ {
+ EWRAM_1B000.unk266++;
break;
- case 5:
- PrintPartyMenuMonNicknames();
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
EWRAM_1B000.unk264++;
break;
- case 6:
- sub_80F9C00();
- EWRAM_1B000.unk264++;
+ }
+ case 4:
+ PartyMenuPrintMonsLevelOrStatus();
+ EWRAM_1B000.unk264++;
+ break;
+ case 5:
+ PrintPartyMenuMonNicknames();
+ EWRAM_1B000.unk264++;
+ break;
+ case 6:
+ sub_80F9C00();
+ EWRAM_1B000.unk264++;
+ break;
+ case 7: // the only case that can return true.
+ if(sub_806B58C(EWRAM_1B000.unk266) != 1)
+ {
+ EWRAM_1B000.unk266++;
break;
- case 7: // the only case that can return true.
- if(sub_806B58C(EWRAM_1B000.unk266) != 1)
- {
- EWRAM_1B000.unk266++;
- break;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264 = 0;
- return TRUE;
- }
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
+ EWRAM_1B000.unk264 = 0;
+ return TRUE;
+ }
}
return FALSE;
}
@@ -149,15 +148,15 @@ void sub_80F9C00(void)
{
switch(sub_80AE47C(&gPlayerParty[i]))
{
- case 0:
- case 3:
- case 4:
- sub_806BC3C(i, 0x7E);
- break;
- case 1:
- case 2:
- sub_806BC3C(i, 0x70);
- break;
+ case 0:
+ case 3:
+ case 4:
+ sub_806BC3C(i, 0x7E);
+ break;
+ case 1:
+ case 2:
+ sub_806BC3C(i, 0x70);
+ break;
}
}
}
@@ -168,18 +167,18 @@ void sub_80F9C6C(u8 var)
{
switch(sub_806BD80(var))
{
- case 1:
- PlaySE(5);
- gUnknown_02038694 = sub_806CA38(var);
- gSpecialVar_0x8004 = gUnknown_02038694;
- sub_8123138(var);
- break;
- case 2:
- PlaySE(5);
- gUnknown_02038694 = 0xFF;
- gSpecialVar_0x8004 = 0xFF;
- sub_8123138(var);
- break;
+ case 1:
+ PlaySE(5);
+ gUnknown_02038694 = sub_806CA38(var);
+ gSpecialVar_0x8004 = gUnknown_02038694;
+ sub_8123138(var);
+ break;
+ case 2:
+ PlaySE(5);
+ gUnknown_02038694 = 0xFF;
+ gSpecialVar_0x8004 = 0xFF;
+ sub_8123138(var);
+ break;
}
}
}
@@ -188,62 +187,62 @@ bool8 sub_80F9CE8(void) // this is the same function as sub_80F9ACC except case
{
switch(EWRAM_1B000.unk264)
{
- case 0:
- if(EWRAM_1B000.unk266 < gPlayerPartyCount)
- {
- TryCreatePartyMenuMonIcon(EWRAM_1B000.unk260, EWRAM_1B000.unk266, &gPlayerParty[EWRAM_1B000.unk266]);
- EWRAM_1B000.unk266++;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264++;
- }
- break;
- case 1:
- LoadHeldItemIconGraphics();
- EWRAM_1B000.unk264++;
- break;
- case 2:
- CreateHeldItemIcons_806DC34(EWRAM_1B000.unk260);
- EWRAM_1B000.unk264++;
- break;
- case 3:
- if(sub_806BD58(EWRAM_1B000.unk260, EWRAM_1B000.unk266) != 1)
- {
- EWRAM_1B000.unk266++;
- break;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264++;
- break;
- }
- case 4:
- PartyMenuPrintMonsLevelOrStatus();
+ case 0:
+ if(EWRAM_1B000.unk266 < gPlayerPartyCount)
+ {
+ TryCreatePartyMenuMonIcon(EWRAM_1B000.unk260, EWRAM_1B000.unk266, &gPlayerParty[EWRAM_1B000.unk266]);
+ EWRAM_1B000.unk266++;
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
EWRAM_1B000.unk264++;
+ }
+ break;
+ case 1:
+ LoadHeldItemIconGraphics();
+ EWRAM_1B000.unk264++;
+ break;
+ case 2:
+ CreateHeldItemIcons_806DC34(EWRAM_1B000.unk260);
+ EWRAM_1B000.unk264++;
+ break;
+ case 3:
+ if(sub_806BD58(EWRAM_1B000.unk260, EWRAM_1B000.unk266) != 1)
+ {
+ EWRAM_1B000.unk266++;
break;
- case 5:
- PrintPartyMenuMonNicknames();
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
EWRAM_1B000.unk264++;
break;
- case 6:
- sub_80F9E1C();
- EWRAM_1B000.unk264++;
+ }
+ case 4:
+ PartyMenuPrintMonsLevelOrStatus();
+ EWRAM_1B000.unk264++;
+ break;
+ case 5:
+ PrintPartyMenuMonNicknames();
+ EWRAM_1B000.unk264++;
+ break;
+ case 6:
+ sub_80F9E1C();
+ EWRAM_1B000.unk264++;
+ break;
+ case 7: // the only case that can return true.
+ if(sub_806B58C(EWRAM_1B000.unk266) != 1)
+ {
+ EWRAM_1B000.unk266++;
break;
- case 7: // the only case that can return true.
- if(sub_806B58C(EWRAM_1B000.unk266) != 1)
- {
- EWRAM_1B000.unk266++;
- break;
- }
- else
- {
- EWRAM_1B000.unk266 = 0;
- EWRAM_1B000.unk264 = 0;
- return TRUE;
- }
+ }
+ else
+ {
+ EWRAM_1B000.unk266 = 0;
+ EWRAM_1B000.unk264 = 0;
+ return TRUE;
+ }
}
return FALSE;
}
@@ -267,16 +266,16 @@ void sub_80F9E64(u8 var)
{
switch(sub_806BD80(var))
{
- case 1:
- PlaySE(5);
- gSpecialVar_0x8004 = sub_806CA38(var);
- gSpecialVar_0x8005 = sub_8040574(&gPlayerParty[gSpecialVar_0x8004]);
- sub_8123138(var);
- break;
- case 2:
- PlaySE(5);
- gSpecialVar_0x8004 = 0xFF;
- sub_8123138(var);
+ case 1:
+ PlaySE(5);
+ gSpecialVar_0x8004 = sub_806CA38(var);
+ gSpecialVar_0x8005 = sub_8040574(&gPlayerParty[gSpecialVar_0x8004]);
+ sub_8123138(var);
+ break;
+ case 2:
+ PlaySE(5);
+ gSpecialVar_0x8004 = 0xFF;
+ sub_8123138(var);
}
}
}
diff --git a/src/secret_base.c b/src/secret_base.c
index 2769806f6..c210a55d2 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -237,24 +237,24 @@ void sub_80BBA48(u8 taskid)
{
u16 curbaseid;
switch (gTasks[taskid].data[0]) {
- case 0:
- gTasks[taskid].data[0] = 1;
- break;
- case 1:
- if (!gPaletteFade.active) {
- gTasks[taskid].data[0] = 2;
- }
- break;
- case 2:
- curbaseid = VarGet(VAR_0x4054);
- if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff)
- gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++;
- sub_80BBA14();
- warp_in();
- gUnknown_0300485C = sub_8080990;
- SetMainCallback2(CB2_LoadMap);
- DestroyTask(taskid);
- break;
+ case 0:
+ gTasks[taskid].data[0] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active) {
+ gTasks[taskid].data[0] = 2;
+ }
+ break;
+ case 2:
+ curbaseid = VarGet(VAR_0x4054);
+ if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff)
+ gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++;
+ sub_80BBA14();
+ warp_in();
+ gUnknown_0300485C = sub_8080990;
+ SetMainCallback2(CB2_LoadMap);
+ DestroyTask(taskid);
+ break;
}
}
@@ -782,23 +782,23 @@ bool8 sub_80BC050(void)
void sub_80BC074(u8 taskid)
{
switch (gTasks[taskid].data[0]) {
- case 0:
- ScriptContext2_Enable();
- gTasks[taskid].data[0] = 1;
- break;
- case 1:
- if (!gPaletteFade.active) {
- gTasks[taskid].data[0] = 2;
- }
- break;
- case 2:
- copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E);
- warp_in();
- gUnknown_0300485C = mapldr_default;
- SetMainCallback2(CB2_LoadMap);
- ScriptContext2_Disable();
- DestroyTask(taskid);
- break;
+ case 0:
+ ScriptContext2_Enable();
+ gTasks[taskid].data[0] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active) {
+ gTasks[taskid].data[0] = 2;
+ }
+ break;
+ case 2:
+ copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E);
+ warp_in();
+ gUnknown_0300485C = mapldr_default;
+ SetMainCallback2(CB2_LoadMap);
+ ScriptContext2_Disable();
+ DestroyTask(taskid);
+ break;
}
}
diff --git a/src/shop.c b/src/shop.c
index 780dff02a..81c403e92 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -9,6 +9,7 @@
#include "script.h"
#include "sound.h"
#include "sprite.h"
+#include "strings.h"
#include "task.h"
struct UnknownShopStruct
@@ -28,8 +29,6 @@ extern struct MenuAction gUnknown_083CC6D0[];
extern u8 gUnknown_083CC6E8[];
extern u8 gUnknown_083CC6EB[];
-extern u8 gOtherText_CanIHelpYou[];
-extern u8 gOtherText_AnythingElse[];
extern u8 gBuyMenuFrame_Gfx[];
extern u16 gBuyMenuFrame_Tilemap[];
@@ -38,7 +37,7 @@ extern u16 gUnknown_083CC710[2];
extern void sub_80A6300(void);
extern void sub_80BE3BC(void);
-extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
+extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16);
extern u8 sub_807D770(void);
extern void pal_fill_black(void);
extern void sub_80B3764(int, int);
@@ -342,17 +341,17 @@ void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s8 var4)
switch(tempVar4)
{
- case 0: // _080B335C
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3);
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4);
- break;
- case 1: // _080B3364
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3);
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4);
- break;
- case 2: // _080B3398
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3);
- BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4);
- break;
+ case 0: // _080B335C
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3);
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4);
+ break;
+ case 1: // _080B3364
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3);
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4);
+ break;
+ case 2: // _080B3398
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3);
+ BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[1], offset1, offset2, var3 + 4);
+ break;
}
}
diff --git a/src/smokescreen.c b/src/smokescreen.c
index 1d3a14a5b..0406c1cb3 100644
--- a/src/smokescreen.c
+++ b/src/smokescreen.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "data2.h"
#include "decompress.h"
#include "sprite.h"
@@ -6,9 +7,6 @@ extern u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *));
static void sub_8046388(struct Sprite *);
-extern struct SpriteSheet gUnknown_081FAEA4;
-extern struct SpritePalette gUnknown_081FAEAC;
-extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
u8 sub_8046234(s16 x, s16 y, u8 a3)
{
diff --git a/src/start_menu.c b/src/start_menu.c
index 37d361c0b..a3258bab1 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -21,6 +21,8 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
+#include "strings2.h"
#include "task.h"
#include "trainer_card.h"
@@ -54,24 +56,11 @@ EWRAM_DATA static u8 sNumStartMenuActions = 0;
EWRAM_DATA static u8 sCurrentStartMenuActions[10] = {0};
//Text strings
-extern u8 gSystemText_Saving[];
extern u8 gSaveText_PlayerSavedTheGame[];
extern u8 gSaveText_DontTurnOff[];
-extern u8 gSystemText_SaveErrorExchangeBackup[];
extern u8 gSaveText_ThereIsAlreadyAFile[];
extern u8 gSaveText_ThereIsADifferentFile[];
extern u8 gSaveText_WouldYouLikeToSave[];
-extern u8 gOtherText_SafariStock[];
-extern u8 SystemText_Pokedex[];
-extern u8 SystemText_Pokemon[];
-extern u8 SystemText_BAG[];
-extern u8 SystemText_Pokenav[];
-extern u8 SystemText_Player[];
-extern u8 SystemText_Save[];
-extern u8 SystemText_Option[];
-extern u8 SystemText_Exit[];
-extern u8 SystemText_Retire[];
-extern u8 SystemText_Player[];
static u8 StartMenu_PokedexCallback(void);
static u8 StartMenu_PokemonCallback(void);
@@ -113,7 +102,7 @@ static u8 SaveCallback1(void);
static u8 SaveCallback2(void);
static void sub_807160C(void);
static u8 RunSaveDialogCallback(void);
-static void DisplaySaveMessageWithCallback(u8 *ptr, u8 (*func)(void));
+static void DisplaySaveMessageWithCallback(const u8 *ptr, u8 (*func)(void));
static void Task_SaveDialog(u8 taskId);
static void sub_8071700(void);
static void HideSaveDialog(void);
@@ -227,30 +216,30 @@ static bool32 InitStartMenuMultistep(s16 *step, s16 *index)
{
switch (*step)
{
- case 1:
- BuildStartMenuActions();
+ case 1:
+ BuildStartMenuActions();
+ (*step)++;
+ break;
+ case 2:
+ MenuDrawTextWindow(22, 0, 29, sNumStartMenuActions * 2 + 3);
+ *index = 0;
+ (*step)++;
+ break;
+ case 3:
+ if (GetSafariZoneFlag())
+ DisplaySafariBallsWindow();
+ (*step)++;
+ break;
+ case 4:
+ if (PrintStartMenuItemsMultistep(index, 2))
(*step)++;
- break;
- case 2:
- MenuDrawTextWindow(22, 0, 29, sNumStartMenuActions * 2 + 3);
- *index = 0;
- (*step)++;
- break;
- case 3:
- if (GetSafariZoneFlag())
- DisplaySafariBallsWindow();
- (*step)++;
- break;
- case 4:
- if (PrintStartMenuItemsMultistep(index, 2))
- (*step)++;
- break;
- case 0:
- (*step)++;
- break;
- case 5:
- sStartMenuCursorPos = InitMenu(0, 0x17, 2, sNumStartMenuActions, sStartMenuCursorPos, 6);
- return TRUE;
+ break;
+ case 0:
+ (*step)++;
+ break;
+ case 5:
+ sStartMenuCursorPos = InitMenu(0, 0x17, 2, sNumStartMenuActions, sStartMenuCursorPos, 6);
+ return TRUE;
}
return FALSE;
}
@@ -288,14 +277,14 @@ void sub_80712B4(u8 taskId)
switch (task->data[0])
{
- case 0:
- gCallback_03004AE8 = StartMenu_InputProcessCallback;
- task->data[0]++;
- break;
- case 1:
- if (gCallback_03004AE8() == 1)
- DestroyTask(taskId);
- break;
+ case 0:
+ gCallback_03004AE8 = StartMenu_InputProcessCallback;
+ task->data[0]++;
+ break;
+ case 1:
+ if (gCallback_03004AE8() == 1)
+ DestroyTask(taskId);
+ break;
}
}
@@ -475,20 +464,20 @@ static u8 SaveCallback2(void)
{
switch (RunSaveDialogCallback())
{
- case SAVE_IN_PROGRESS:
- return FALSE;
- case SAVE_CANCELED:
- //Go back to start menu
- MenuZeroFillScreen();
- InitStartMenu();
- gCallback_03004AE8 = StartMenu_InputProcessCallback;
- return FALSE;
- case SAVE_SUCCESS:
- case SAVE_ERROR:
- MenuZeroFillScreen();
- sub_8064E2C();
- ScriptContext2_Disable();
- return TRUE;
+ case SAVE_IN_PROGRESS:
+ return FALSE;
+ case SAVE_CANCELED:
+ //Go back to start menu
+ MenuZeroFillScreen();
+ InitStartMenu();
+ gCallback_03004AE8 = StartMenu_InputProcessCallback;
+ return FALSE;
+ case SAVE_SUCCESS:
+ case SAVE_ERROR:
+ MenuZeroFillScreen();
+ sub_8064E2C();
+ ScriptContext2_Disable();
+ return TRUE;
}
return FALSE;
}
@@ -517,7 +506,7 @@ void InitSaveDialog(void)
CreateTask(Task_SaveDialog, 0x50);
}
-static void DisplaySaveMessageWithCallback(u8 *ptr, u8 (*func)(void))
+static void DisplaySaveMessageWithCallback(const u8 *ptr, u8 (*func)(void))
{
StringExpandPlaceholders(gStringVar4, ptr);
MenuDisplayMessageBox();
@@ -532,15 +521,15 @@ static void Task_SaveDialog(u8 taskId)
switch (status)
{
- case SAVE_CANCELED:
- case SAVE_ERROR:
- gScriptResult = 0;
- break;
- case SAVE_SUCCESS:
- gScriptResult = status;
- break;
- case SAVE_IN_PROGRESS:
- return;
+ case SAVE_CANCELED:
+ case SAVE_ERROR:
+ gScriptResult = 0;
+ break;
+ case SAVE_SUCCESS:
+ gScriptResult = status;
+ break;
+ case SAVE_IN_PROGRESS:
+ return;
}
DestroyTask(taskId);
EnableBothScriptContexts();
@@ -602,29 +591,29 @@ static u8 SaveDialogCB_ProcessConfirmYesNoMenu(void)
{
switch (ProcessMenuInputNoWrap_())
{
- case 0: //YES
- HideSaveDialog();
- switch (gSaveFileStatus)
+ case 0: //YES
+ HideSaveDialog();
+ switch (gSaveFileStatus)
+ {
+ case 0:
+ case 2:
+ if (gDifferentSaveFile == FALSE)
{
- case 0:
- case 2:
- if (gDifferentSaveFile == FALSE)
- {
- saveDialogCallback = SaveDialogCB_SaveFileExists;
- return SAVE_IN_PROGRESS;
- }
- saveDialogCallback = SaveDialogCB_DisplaySavingMessage;
- return SAVE_IN_PROGRESS;
- default:
- saveDialogCallback = SaveDialogCB_SaveFileExists;
- return SAVE_IN_PROGRESS;
+ saveDialogCallback = SaveDialogCB_SaveFileExists;
+ return SAVE_IN_PROGRESS;
}
- break;
- case -1: //B button
- case 1: //NO
- HideSaveDialog();
- sub_8071700();
- return SAVE_CANCELED;
+ saveDialogCallback = SaveDialogCB_DisplaySavingMessage;
+ return SAVE_IN_PROGRESS;
+ default:
+ saveDialogCallback = SaveDialogCB_SaveFileExists;
+ return SAVE_IN_PROGRESS;
+ }
+ break;
+ case -1: //B button
+ case 1: //NO
+ HideSaveDialog();
+ sub_8071700();
+ return SAVE_CANCELED;
}
return SAVE_IN_PROGRESS;
}
@@ -648,15 +637,15 @@ static u8 SaveDialogCB_ProcessOverwriteYesNoMenu(void)
{
switch (ProcessMenuInputNoWrap_())
{
- case 0: //YES
- HideSaveDialog();
- saveDialogCallback = SaveDialogCB_DisplaySavingMessage;
- break;
- case -1: //B button
- case 1: //NO
- HideSaveDialog();
- sub_8071700();
- return SAVE_CANCELED;
+ case 0: //YES
+ HideSaveDialog();
+ saveDialogCallback = SaveDialogCB_DisplaySavingMessage;
+ break;
+ case -1: //B button
+ case 1: //NO
+ HideSaveDialog();
+ sub_8071700();
+ return SAVE_CANCELED;
}
return SAVE_IN_PROGRESS;
}
@@ -749,55 +738,55 @@ static bool32 sub_80719FC(u8 *step)
{
switch (*step)
{
- case 0:
+ case 0:
+ {
+ u8 *addr;
+ u32 size;
+
+ REG_DISPCNT = 0;
+ SetVBlankCallback(NULL);
+ remove_some_task();
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ addr = (void *)VRAM;
+ size = 0x18000;
+ while (1)
{
- u8 *addr;
- u32 size;
-
- REG_DISPCNT = 0;
- SetVBlankCallback(NULL);
- remove_some_task();
- DmaClear16(3, PLTT, PLTT_SIZE);
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
+ DmaFill16(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
{
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
+ DmaFill16(3, 0, addr, size);
+ break;
}
- break;
}
- case 1:
- ResetSpriteData();
- ResetTasks();
- ResetPaletteFade();
- dp12_8087EA4();
- break;
- case 2:
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON;
- break;
- case 3:
- {
- u32 savedIme;
-
- BlendPalettes(-1, 0x10, 0);
- SetVBlankCallback(sub_80719F0);
- savedIme = REG_IME;
- REG_IME = 0;
- REG_IE |= 1;
- REG_IME = savedIme;
- break;
- }
- case 4:
- return TRUE;
+ break;
+ }
+ case 1:
+ ResetSpriteData();
+ ResetTasks();
+ ResetPaletteFade();
+ dp12_8087EA4();
+ break;
+ case 2:
+ SetUpWindowConfig(&gWindowConfig_81E6CE4);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON;
+ break;
+ case 3:
+ {
+ u32 savedIme;
+
+ BlendPalettes(-1, 0x10, 0);
+ SetVBlankCallback(sub_80719F0);
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= 1;
+ REG_IME = savedIme;
+ break;
+ }
+ case 4:
+ return TRUE;
}
(*step)++;
return FALSE;
@@ -826,31 +815,31 @@ static void Task_8071B64(u8 taskId)
{
switch (*step)
{
- case 0:
- MenuDisplayMessageBox();
- MenuPrint(gSystemText_Saving, 2, 15);
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- (*step)++;
- break;
- case 1:
- SetSecretBase2Field_9_AndHideBG();
- sub_8125E2C();
- (*step)++;
- break;
- case 2:
- if (!sub_8125E6C())
- break;
- ClearSecretBase2Field_9_2();
- (*step)++;
- break;
- case 3:
- BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- (*step)++;
- break;
- case 4:
- SetMainCallback2(gMain.savedCallback);
- DestroyTask(taskId);
+ case 0:
+ MenuDisplayMessageBox();
+ MenuPrint(gSystemText_Saving, 2, 15);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ (*step)++;
+ break;
+ case 1:
+ SetSecretBase2Field_9_AndHideBG();
+ sub_8125E2C();
+ (*step)++;
+ break;
+ case 2:
+ if (!sub_8125E6C())
break;
+ ClearSecretBase2Field_9_2();
+ (*step)++;
+ break;
+ case 3:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ (*step)++;
+ break;
+ case 4:
+ SetMainCallback2(gMain.savedCallback);
+ DestroyTask(taskId);
+ break;
}
}
}
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 6ef410d21..32b6adf36 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "starter_choose.h"
#include "asm.h"
+#include "data2.h"
#include "decompress.h"
#include "main.h"
#include "menu.h"
@@ -11,23 +12,11 @@
#include "species.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings.h"
#include "task.h"
#include "trig.h"
-struct MonCoords
-{
- u8 x, y;
-};
-
-extern void * const gUnknown_081FAF4C[];
-extern const u8 gOtherText_DoYouChoosePoke[];
extern u16 gScriptResult;
-extern const u8 gSpeciesNames[][11];
-extern const u8 gOtherText_Poke[];
-extern const struct SpriteSheet gMonFrontPicTable[];
-extern const struct MonCoords gMonFrontPicCoords[];
-extern const struct SpritePalette gMonPaletteTable[];
-extern const u8 gOtherText_BirchInTrouble[];
extern struct SpriteTemplate gUnknown_02024E8C;
//--------------------------------------------------
@@ -448,26 +437,26 @@ static void Task_StarterChoose5(u8 taskId)
switch (ProcessMenuInputNoWrap_())
{
- case 0: // YES
- //Return the starter choice and exit.
- gScriptResult = gTasks[taskId].tStarterSelection;
- SetMainCallback2(gMain.savedCallback);
- break;
- case 1: // NO
- case -1: // B button
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(21, 7, 27, 12);
-
- spriteId = gTasks[taskId].tPkmnSpriteId;
- FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
- FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
- DestroySprite(&gSprites[spriteId]);
-
- spriteId = gTasks[taskId].tCircleSpriteId;
- FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
- DestroySprite(&gSprites[spriteId]);
- gTasks[taskId].func = Task_StarterChoose6;
- break;
+ case 0: // YES
+ //Return the starter choice and exit.
+ gScriptResult = gTasks[taskId].tStarterSelection;
+ SetMainCallback2(gMain.savedCallback);
+ break;
+ case 1: // NO
+ case -1: // B button
+ PlaySE(SE_SELECT);
+ MenuZeroFillWindowRect(21, 7, 27, 12);
+
+ spriteId = gTasks[taskId].tPkmnSpriteId;
+ FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
+ FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
+ DestroySprite(&gSprites[spriteId]);
+
+ spriteId = gTasks[taskId].tCircleSpriteId;
+ FreeOamMatrix(gSprites[spriteId].oam.matrixNum);
+ DestroySprite(&gSprites[spriteId]);
+ gTasks[taskId].func = Task_StarterChoose6;
+ break;
}
}
@@ -567,7 +556,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
DecompressPicFromTable_2(
&gMonFrontPicTable[species],
- gMonFrontPicCoords[species].x, gMonFrontPicCoords[species].y,
+ gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,
gUnknown_081FAF4C[0], gUnknown_081FAF4C[1],
species);
LoadCompressedObjectPalette(&gMonPaletteTable[species]);
diff --git a/src/string_util.c b/src/string_util.c
index 957d70153..9686256a1 100644
--- a/src/string_util.c
+++ b/src/string_util.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "string_util.h"
+#include "strings.h"
#include "text.h"
u8 gUnknownStringVar[16];
@@ -23,20 +24,6 @@ static const s32 sPowersOfTen[] =
1000000000,
};
-extern u8 gExpandedPlaceholder_Empty[];
-extern u8 gExpandedPlaceholder_Kun[];
-extern u8 gExpandedPlaceholder_Chan[];
-extern u8 gExpandedPlaceholder_Sapphire[];
-extern u8 gExpandedPlaceholder_Ruby[];
-extern u8 gExpandedPlaceholder_Aqua[];
-extern u8 gExpandedPlaceholder_Magma[];
-extern u8 gExpandedPlaceholder_Archie[];
-extern u8 gExpandedPlaceholder_Maxie[];
-extern u8 gExpandedPlaceholder_Kyogre[];
-extern u8 gExpandedPlaceholder_Groudon[];
-extern u8 gExpandedPlaceholder_Brendan[];
-extern u8 gExpandedPlaceholder_May[];
-
u8 *StringCopy10(u8 *dest, const u8 *src)
{
u8 i;
@@ -473,17 +460,17 @@ static u8 *ExpandPlaceholder_StringVar3(void)
static u8 *ExpandPlaceholder_KunChan(void)
{
if (gSaveBlock2.playerGender == MALE)
- return gExpandedPlaceholder_Kun;
+ return (u8 *) gExpandedPlaceholder_Kun;
else
- return gExpandedPlaceholder_Chan;
+ return (u8 *) gExpandedPlaceholder_Chan;
}
static u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2.playerGender == MALE)
- return gExpandedPlaceholder_May;
+ return (u8 *) gExpandedPlaceholder_May;
else
- return gExpandedPlaceholder_Brendan;
+ return (u8 *) gExpandedPlaceholder_Brendan;
}
#define VERSION_DEPENDENT_PLACEHOLDER_LIST \
@@ -497,11 +484,11 @@ static u8 *ExpandPlaceholder_RivalName(void)
#ifdef SAPPHIRE
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##s; }
+static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##s; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#else
#define X(ph, r, s) \
-static u8 *ExpandPlaceholder_##ph(void) { return gExpandedPlaceholder_##r; }
+static u8 *ExpandPlaceholder_##ph(void) { return (u8 *) gExpandedPlaceholder_##r; }
VERSION_DEPENDENT_PLACEHOLDER_LIST
#endif
@@ -530,7 +517,7 @@ u8 *GetExpandedPlaceholder(u32 id)
};
if (id >= ARRAY_COUNT(funcs))
- return gExpandedPlaceholder_Empty;
+ return (u8 *) gExpandedPlaceholder_Empty;
else
return funcs[id]();
}
diff --git a/src/text.c b/src/text.c
index 7be72833a..02cafea48 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1755,21 +1755,21 @@ u16 InitWindowTileData(struct Window *win, u16 startOffset)
case 1:
switch (win->config->fontNum)
{
- case 0:
- case 3:
- retVal = LoadFixedWidthFont(win, startOffset);
- break;
- case 1:
- case 2:
- retVal = LoadFixedWidthFont_Font1Latin(win, startOffset);
- break;
- case 4:
- case 5:
- retVal = LoadFixedWidthFont_Font4Latin(win, startOffset);
- break;
- case 6:
- retVal = LoadFixedWidthFont_Braille(win, startOffset);
- break;
+ case 0:
+ case 3:
+ retVal = LoadFixedWidthFont(win, startOffset);
+ break;
+ case 1:
+ case 2:
+ retVal = LoadFixedWidthFont_Font1Latin(win, startOffset);
+ break;
+ case 4:
+ case 5:
+ retVal = LoadFixedWidthFont_Font4Latin(win, startOffset);
+ break;
+ case 6:
+ retVal = LoadFixedWidthFont_Braille(win, startOffset);
+ break;
}
break;
}
@@ -1888,30 +1888,30 @@ static void MultistepLoadFont_LoadGlyph(struct Window *win, u16 startOffset, u8
switch (win->config->fontNum)
{
- case 0:
- case 3:
- buffer = win->tileData + 32 * startOffset + 64 * glyph;
- LoadFixedWidthGlyph(win, glyph, buffer);
- break;
- case 1:
- case 2:
- buffer = win->tileData + 32 * (glyph + startOffset);
- ApplyColors_UnshadowedFont(
- &sFont1LatinGlyphs[8 * glyph],
- (u32 *)buffer,
- win->foregroundColor,
- win->backgroundColor);
- break;
- case 4:
- case 5:
- buffer = win->tileData + 32 * (glyph + startOffset);
- ApplyColors_ShadowedFont(
- &gFont4LatinGlyphs[8 * glyph],
- buffer,
- win->foregroundColor,
- win->shadowColor,
- win->backgroundColor);
- break;
+ case 0:
+ case 3:
+ buffer = win->tileData + 32 * startOffset + 64 * glyph;
+ LoadFixedWidthGlyph(win, glyph, buffer);
+ break;
+ case 1:
+ case 2:
+ buffer = win->tileData + 32 * (glyph + startOffset);
+ ApplyColors_UnshadowedFont(
+ &sFont1LatinGlyphs[8 * glyph],
+ (u32 *)buffer,
+ win->foregroundColor,
+ win->backgroundColor);
+ break;
+ case 4:
+ case 5:
+ buffer = win->tileData + 32 * (glyph + startOffset);
+ ApplyColors_ShadowedFont(
+ &gFont4LatinGlyphs[8 * glyph],
+ buffer,
+ win->foregroundColor,
+ win->shadowColor,
+ win->backgroundColor);
+ break;
}
}
diff --git a/src/trainer_card.c b/src/trainer_card.c
index e6ed79c15..ef3a2d857 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -14,6 +14,7 @@
#include "sound.h"
#include "sprite.h"
#include "string_util.h"
+#include "strings2.h"
#include "task.h"
typedef void (*Callback)(void);
@@ -64,16 +65,6 @@ extern u16 gUnknown_083B5F4C[];
extern u16 gUnknown_08E8CFC0[];
extern u16 gUnknown_08E8D9C0[];
-extern u8 gOtherText_TrainersTrainerCard[];
-extern u8 gOtherText_FirstHOF[];
-extern u8 gOtherText_LinkCableBattles[];
-extern u8 gOtherText_BattleTowerWinRecord[];
-extern u8 gOtherText_ContestRecord[];
-extern u8 gOtherText_MixingRecord[];
-extern u8 gOtherText_TradeRecord[];
-extern u8 gOtherText_Boy[];
-extern u8 gOtherText_Girl[];
-
extern bool8 (*const gUnknown_083B5EBC[])(struct Task *);
extern bool8 (*const gUnknown_083B5ED8[])(struct Task *);
@@ -1831,7 +1822,7 @@ static void TrainerCard_Back_PrintPokemonTrades(void)
void unref_sub_8094588(u16 left, u16 top)
{
- u8 *text = gOtherText_Boy;
+ const u8 *text = gOtherText_Boy;
if (gSaveBlock2.playerGender == FEMALE)
{
diff --git a/src/trig.c b/src/trig.c
index 8b75b3838..d64231087 100644
--- a/src/trig.c
+++ b/src/trig.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "trig.h"
-extern s16 gSineTable[];
extern s16 gSineDegreeTable[];
// amplitude * sin(index*(π/128))
diff --git a/src/tv.c b/src/tv.c
index ea1f13047..d2e38c088 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "asm.h"
#include "tv.h"
+#include "data2.h"
#include "event_data.h"
#include "field_message_box.h"
#include "flags.h"
@@ -69,9 +70,6 @@ extern u8 gUnknown_020387E8;
extern struct UnkTvStruct gUnknown_03005D38;
-extern u8 gSpeciesNames[][11];
-extern u8 gMoveNames[][13];
-
extern u8 *gTVBravoTrainerTextGroup[];
extern u8 *gTVBravoTrainerBattleTowerTextGroup[];
extern u8 *gTVSmartShopperTextGroup[];
@@ -157,61 +155,61 @@ extern u8 GabbyAndTyGetBattleNum(void);
void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) {
switch (GabbyAndTyGetBattleNum()) {
- case 1:
- gSpecialVar_0x8004 = 0xE;
- gSpecialVar_0x8005 = 0xD;
- break;
- case 2:
- gSpecialVar_0x8004 = 0x5;
- gSpecialVar_0x8005 = 0x6;
- break;
- case 3:
- gSpecialVar_0x8004 = 0x12;
- gSpecialVar_0x8005 = 0x11;
- break;
- case 4:
- gSpecialVar_0x8004 = 0x15;
- gSpecialVar_0x8005 = 0x16;
- break;
- case 5:
- gSpecialVar_0x8004 = 0x8;
- gSpecialVar_0x8005 = 0x9;
- break;
- case 6:
- gSpecialVar_0x8004 = 0x13;
- gSpecialVar_0x8005 = 0x14;
- break;
- case 7:
- gSpecialVar_0x8004 = 0x17;
- gSpecialVar_0x8005 = 0x18;
- break;
- case 8:
- gSpecialVar_0x8004 = 0xA;
- gSpecialVar_0x8005 = 0xB;
- break;
+ case 1:
+ gSpecialVar_0x8004 = 0xE;
+ gSpecialVar_0x8005 = 0xD;
+ break;
+ case 2:
+ gSpecialVar_0x8004 = 0x5;
+ gSpecialVar_0x8005 = 0x6;
+ break;
+ case 3:
+ gSpecialVar_0x8004 = 0x12;
+ gSpecialVar_0x8005 = 0x11;
+ break;
+ case 4:
+ gSpecialVar_0x8004 = 0x15;
+ gSpecialVar_0x8005 = 0x16;
+ break;
+ case 5:
+ gSpecialVar_0x8004 = 0x8;
+ gSpecialVar_0x8005 = 0x9;
+ break;
+ case 6:
+ gSpecialVar_0x8004 = 0x13;
+ gSpecialVar_0x8005 = 0x14;
+ break;
+ case 7:
+ gSpecialVar_0x8004 = 0x17;
+ gSpecialVar_0x8005 = 0x18;
+ break;
+ case 8:
+ gSpecialVar_0x8004 = 0xA;
+ gSpecialVar_0x8005 = 0xB;
+ break;
}
}
void sub_80BDE48(void) {
switch (gSpecialVar_0x8005) {
- case TVSHOW_FAN_CLUB_LETTER:
- sub_80BE5FC();
- break;
- case TVSHOW_RECENT_HAPPENINGS:
- sub_80BE65C();
- break;
- case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
- sub_80BE6A0();
- break;
- case TVSHOW_UNKN_SHOWTYPE_04:
- nullsub_21();
- break;
- case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
- sub_80BE188();
- break;
- case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
- sub_80BE320();
- break;
+ case TVSHOW_FAN_CLUB_LETTER:
+ sub_80BE5FC();
+ break;
+ case TVSHOW_RECENT_HAPPENINGS:
+ sub_80BE65C();
+ break;
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ sub_80BE6A0();
+ break;
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ nullsub_21();
+ break;
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ sub_80BE188();
+ break;
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ sub_80BE320();
+ break;
}
}
@@ -1025,28 +1023,28 @@ bool8 IsPriceDiscounted(u8 arg0)
{
switch (arg0)
{
- case 1:
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY && gScriptLastTalked == 0x1a)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- break;
- case 3:
- if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- break;
- default:
+ case 1:
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY && gScriptLastTalked == 0x1a)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ break;
+ case 3:
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
+ {
return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return TRUE;
}
}
@@ -1098,18 +1096,18 @@ void sub_80BEF10(u8 strvaridx, u8 rank)
{
switch (rank)
{
- case NORMAL_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]);
- break;
- case SUPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]);
- break;
- case HYPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]);
- break;
- case MASTER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]);
- break;
+ case NORMAL_RANK:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]);
+ break;
+ case SUPER_RANK:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]);
+ break;
+ case HYPER_RANK:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]);
+ break;
+ case MASTER_RANK:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]);
+ break;
}
}
@@ -1117,21 +1115,21 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category)
{
switch (category)
{
- case CONTEST_COOL:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]);
- break;
- case CONTEST_BEAUTY:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]);
- break;
- case CONTEST_CUTE:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]);
- break;
- case CONTEST_SMART:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]);
- break;
- case CONTEST_TOUGH:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]);
- break;
+ case CONTEST_COOL:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]);
+ break;
+ case CONTEST_BEAUTY:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]);
+ break;
+ case CONTEST_CUTE:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]);
+ break;
+ case CONTEST_SMART:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]);
+ break;
+ case CONTEST_TOUGH:
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]);
+ break;
}
}
@@ -1260,27 +1258,27 @@ void sub_80BF2C4(void)
{
gScriptResult = 0;
switch (gSpecialVar_0x8005) {
- case TVSHOW_FAN_CLUB_LETTER:
- sub_80BF334();
- break;
- case TVSHOW_RECENT_HAPPENINGS:
- sub_80BF3A4();
- break;
- case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
- sub_80BF3DC();
- break;
- case TVSHOW_UNKN_SHOWTYPE_04:
- sub_80BF46C();
- break;
- case TVSHOW_NAME_RATER_SHOW:
- sub_80BF478();
- break;
- case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
- sub_80BF484();
- break;
- case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
- sub_80BF4BC();
- break;
+ case TVSHOW_FAN_CLUB_LETTER:
+ sub_80BF334();
+ break;
+ case TVSHOW_RECENT_HAPPENINGS:
+ sub_80BF3A4();
+ break;
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ sub_80BF3DC();
+ break;
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ sub_80BF46C();
+ break;
+ case TVSHOW_NAME_RATER_SHOW:
+ sub_80BF478();
+ break;
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ sub_80BF484();
+ break;
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ sub_80BF4BC();
+ break;
}
}
@@ -1827,18 +1825,18 @@ void sub_80BFD44(u8 *arg0, u32 arg1, u8 arg2)
}
ewramTVShows = &gUnknown_02007000;
switch (arg2) {
- case 0:
- sub_80BFE24(&gSaveBlock1.tvShows, &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
- break;
- case 1:
- sub_80BFE24(&ewramTVShows->tvshows[0], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
- break;
- case 2:
- sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[3]);
- break;
- case 3:
- sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &gSaveBlock1.tvShows);
- break;
+ case 0:
+ sub_80BFE24(&gSaveBlock1.tvShows, &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
+ break;
+ case 1:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[2], &ewramTVShows->tvshows[3]);
+ break;
+ case 2:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &gSaveBlock1.tvShows, &ewramTVShows->tvshows[3]);
+ break;
+ case 3:
+ sub_80BFE24(&ewramTVShows->tvshows[0], &ewramTVShows->tvshows[1], &ewramTVShows->tvshows[2], &gSaveBlock1.tvShows);
+ break;
}
sub_80BF588(gSaveBlock1.tvShows.shows);
sub_80C04A0();
@@ -1899,15 +1897,15 @@ bool8 sub_80BFF68(struct SaveTVStruct ** arg1, struct SaveTVStruct ** arg2, u8 i
value = FALSE;
switchval = sub_80BFB54(tv2->shows[gUnknown_03000722].common.var00);
switch (switchval) {
- case 2:
- value = sub_80C004C(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
- break;
- case 3:
- value = sub_80C00B4(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
- break;
- case 4:
- value = sub_80C0134(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
- break;
+ case 2:
+ value = sub_80C004C(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
+ break;
+ case 3:
+ value = sub_80C00B4(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
+ break;
+ case 4:
+ value = sub_80C0134(&tv1->shows[gUnknown_03005D38.var0], &tv2->shows[gUnknown_03000722], idx);
+ break;
}
if (value == TRUE) {
sub_80BF55C(tv2->shows, gUnknown_03000722);
@@ -2102,50 +2100,50 @@ void sub_80C01D4(void) {
u8 i;
for (i=0; i<24; i++) {
switch (gSaveBlock1.tvShows.shows[i].common.var00) {
- case 0:
- break;
- case TVSHOW_FAN_CLUB_LETTER:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubLetter.species, i);
- break;
- case TVSHOW_RECENT_HAPPENINGS:
- break;
- case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubOpinions.var02, i);
- break;
- case TVSHOW_UNKN_SHOWTYPE_04:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var06, i);
- break;
- case TVSHOW_NAME_RATER_SHOW:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.species, i);
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.var1C, i);
- break;
- case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainer.species, i);
- break;
- case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var0a, i);
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var14, i);
- break;
- case TVSHOW_POKEMON_TODAY_CAUGHT:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonToday.species, i);
- break;
- case TVSHOW_SMART_SHOPPER:
- break;
- case TVSHOW_POKEMON_TODAY_FAILED:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species, i);
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species2, i);
- break;
- case TVSHOW_FISHING_ADVICE:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonAngler.var04, i);
- break;
- case TVSHOW_WORLD_OF_MASTERS:
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var08, i);
- sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var04, i);
- break;
- case TVSHOW_MASS_OUTBREAK:
- break;
- default:
- sub_80C03A8(i);
+ case 0:
+ break;
+ case TVSHOW_FAN_CLUB_LETTER:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubLetter.species, i);
+ break;
+ case TVSHOW_RECENT_HAPPENINGS:
+ break;
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].fanclubOpinions.var02, i);
+ break;
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var06, i);
+ break;
+ case TVSHOW_NAME_RATER_SHOW:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.species, i);
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].nameRaterShow.var1C, i);
+ break;
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainer.species, i);
+ break;
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var0a, i);
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].bravoTrainerTower.var14, i);
+ break;
+ case TVSHOW_POKEMON_TODAY_CAUGHT:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonToday.species, i);
+ break;
+ case TVSHOW_SMART_SHOPPER:
+ break;
+ case TVSHOW_POKEMON_TODAY_FAILED:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species, i);
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonTodayFailed.species2, i);
+ break;
+ case TVSHOW_FISHING_ADVICE:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].pokemonAngler.var04, i);
+ break;
+ case TVSHOW_WORLD_OF_MASTERS:
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var08, i);
+ sub_80C03C8(gSaveBlock1.tvShows.shows[i].worldOfMasters.var04, i);
+ break;
+ case TVSHOW_MASS_OUTBREAK:
+ break;
+ default:
+ sub_80C03A8(i);
}
}
}
@@ -2508,45 +2506,45 @@ void sub_80C0788(void) {
void DoTVShow(void) {
if (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var01 != 0) {
switch (gSaveBlock1.tvShows.shows[gSpecialVar_0x8004].common.var00) {
- case TVSHOW_FAN_CLUB_LETTER:
- DoTVShowPokemonFanClubLetter();
- break;
- case TVSHOW_RECENT_HAPPENINGS:
- DoTVShowRecentHappenings();
- break;
- case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
- DoTVShowPokemonFanClubOpinions();
- break;
- case TVSHOW_UNKN_SHOWTYPE_04:
- nullsub_22();
- break;
- case TVSHOW_MASS_OUTBREAK:
- DoTVShowPokemonNewsMassOutbreak();
- break;
- case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
- DoTVShowBravoTrainerPokemonProfile();
- break;
- case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
- DoTVShowBravoTrainerBattleTowerProfile();
- break;
- case TVSHOW_POKEMON_TODAY_CAUGHT:
- DoTVShowPokemonTodaySuccessfulCapture();
- break;
- case TVSHOW_SMART_SHOPPER:
- DoTVShowTodaysSmartShopper();
- break;
- case TVSHOW_NAME_RATER_SHOW:
- DoTVShowTheNameRaterShow();
- break;
- case TVSHOW_POKEMON_TODAY_FAILED:
- DoTVShowPokemonTodayFailedCapture();
- break;
- case TVSHOW_FISHING_ADVICE:
- DoTVShowPokemonAngler();
- break;
- case TVSHOW_WORLD_OF_MASTERS:
- DoTVShowTheWorldOfMasters();
- break;
+ case TVSHOW_FAN_CLUB_LETTER:
+ DoTVShowPokemonFanClubLetter();
+ break;
+ case TVSHOW_RECENT_HAPPENINGS:
+ DoTVShowRecentHappenings();
+ break;
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ DoTVShowPokemonFanClubOpinions();
+ break;
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ nullsub_22();
+ break;
+ case TVSHOW_MASS_OUTBREAK:
+ DoTVShowPokemonNewsMassOutbreak();
+ break;
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ DoTVShowBravoTrainerPokemonProfile();
+ break;
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ DoTVShowBravoTrainerBattleTowerProfile();
+ break;
+ case TVSHOW_POKEMON_TODAY_CAUGHT:
+ DoTVShowPokemonTodaySuccessfulCapture();
+ break;
+ case TVSHOW_SMART_SHOPPER:
+ DoTVShowTodaysSmartShopper();
+ break;
+ case TVSHOW_NAME_RATER_SHOW:
+ DoTVShowTheNameRaterShow();
+ break;
+ case TVSHOW_POKEMON_TODAY_FAILED:
+ DoTVShowPokemonTodayFailedCapture();
+ break;
+ case TVSHOW_FISHING_ADVICE:
+ DoTVShowPokemonAngler();
+ break;
+ case TVSHOW_WORLD_OF_MASTERS:
+ DoTVShowTheWorldOfMasters();
+ break;
}
}
}
@@ -2571,91 +2569,91 @@ void DoTVShowTheNameRaterShow(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]);
- TVShowConvertInternationalString(gStringVar3, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
- gUnknown_020387E8 = sub_80BF7E8(&tvShow->nameRaterShow) + 1;
- break;
- case 1:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- if (tvShow->nameRaterShow.random == 0) {
- gUnknown_020387E8 = 9;
- } else if (tvShow->nameRaterShow.random == 1) {
- gUnknown_020387E8 = 10;
- } else if (tvShow->nameRaterShow.random == 2) {
- gUnknown_020387E8 = 11;
- }
- break;
- case 2:
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
- if (tvShow->nameRaterShow.random == 0) {
- gUnknown_020387E8 = 9;
- } else if (tvShow->nameRaterShow.random == 1) {
- gUnknown_020387E8 = 10;
- } else if (tvShow->nameRaterShow.random == 2) {
- gUnknown_020387E8 = 11;
- }
- break;
- case 9:
- case 10:
- case 11:
- sub_80BF820(0, 1, 0, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
- sub_80BF820(0, 0, 0, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
- gUnknown_020387E8 = 12;
- break;
- case 13:
- sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
- sub_80BF820(0, 0, 2, 0, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.language);
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
- gUnknown_020387E8 = 14;
- break;
- case 14:
- sub_80BF820(0, 0, 3, 0, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.language);
- sub_80BF820(0, 0, 2, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
- gUnknown_020387E8 = 18;
- break;
- case 15:
- sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]);
- sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow);
- gUnknown_020387E8 = 16;
- break;
- case 16:
- sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
- sub_80BF820(0, 0, 2, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow);
- gUnknown_020387E8 = 17;
- break;
- case 17:
- sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow);
- TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage);
- sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.var1C, &tvShow->nameRaterShow);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.var1C]);
- gUnknown_020387E8 = 18;
- break;
- case 12:
- switchval = 18;
- gUnknown_020387E8 = 18;
- case 18:
- TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
- TVShowConvertInternationalString(gStringVar2, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
+ gUnknown_020387E8 = sub_80BF7E8(&tvShow->nameRaterShow) + 1;
+ break;
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ if (tvShow->nameRaterShow.random == 0) {
+ gUnknown_020387E8 = 9;
+ } else if (tvShow->nameRaterShow.random == 1) {
+ gUnknown_020387E8 = 10;
+ } else if (tvShow->nameRaterShow.random == 2) {
+ gUnknown_020387E8 = 11;
+ }
+ break;
+ case 2:
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
+ if (tvShow->nameRaterShow.random == 0) {
+ gUnknown_020387E8 = 9;
+ } else if (tvShow->nameRaterShow.random == 1) {
+ gUnknown_020387E8 = 10;
+ } else if (tvShow->nameRaterShow.random == 2) {
+ gUnknown_020387E8 = 11;
+ }
+ break;
+ case 9:
+ case 10:
+ case 11:
+ sub_80BF820(0, 1, 0, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
+ sub_80BF820(0, 0, 0, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
+ gUnknown_020387E8 = 12;
+ break;
+ case 13:
+ sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
+ sub_80BF820(0, 0, 2, 0, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.language);
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
+ gUnknown_020387E8 = 14;
+ break;
+ case 14:
+ sub_80BF820(0, 0, 3, 0, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.language);
+ sub_80BF820(0, 0, 2, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
+ gUnknown_020387E8 = 18;
+ break;
+ case 15:
+ sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]);
+ sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow);
+ gUnknown_020387E8 = 16;
+ break;
+ case 16:
+ sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage);
+ sub_80BF820(0, 0, 2, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow);
+ gUnknown_020387E8 = 17;
+ break;
+ case 17:
+ sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow);
+ TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage);
+ sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.var1C, &tvShow->nameRaterShow);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.var1C]);
+ gUnknown_020387E8 = 18;
+ break;
+ case 12:
+ switchval = 18;
+ gUnknown_020387E8 = 18;
+ case 18:
+ TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage);
+ TVShowConvertInternationalString(gStringVar2, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language);
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVNameRaterTextGroup[switchval]);
}
@@ -2667,64 +2665,64 @@ void DoTVShowPokemonTodaySuccessfulCapture(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
- TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
- if (tvShow->pokemonToday.ball == ITEM_MASTER_BALL) {
- gUnknown_020387E8 = 5;
- } else {
- gUnknown_020387E8 = 1;
- }
- break;
- case 1:
- gUnknown_020387E8 = 2;
- break;
- case 2:
- StringCopy(gStringVar2, ItemId_GetItem(tvShow->pokemonToday.ball)->name);
- sub_80BF088(2, tvShow->pokemonToday.var12);
- if (tvShow->pokemonToday.var12 < 4) {
- gUnknown_020387E8 = 3;
- } else {
- gUnknown_020387E8 = 4;
- }
- break;
- case 3:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
- TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
- gUnknown_020387E8 = 6;
- break;
- case 4:
- gUnknown_020387E8 = 6;
- break;
- case 5:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
- gUnknown_020387E8 = 6;
- break;
- case 6:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
- TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
- gUnknown_020387E8 += (Random() % 4) + 1;
- break;
- case 7:
- case 8:
- StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]);
- TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
- sub_80BF638(2, tvShow->pokemonToday.species);
- gUnknown_020387E8 = 11;
- break;
- case 9:
- case 10:
- StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]);
- TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
- gUnknown_020387E8 = 11;
- break;
- case 11:
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
+ if (tvShow->pokemonToday.ball == ITEM_MASTER_BALL) {
+ gUnknown_020387E8 = 5;
+ } else {
+ gUnknown_020387E8 = 1;
+ }
+ break;
+ case 1:
+ gUnknown_020387E8 = 2;
+ break;
+ case 2:
+ StringCopy(gStringVar2, ItemId_GetItem(tvShow->pokemonToday.ball)->name);
+ sub_80BF088(2, tvShow->pokemonToday.var12);
+ if (tvShow->pokemonToday.var12 < 4) {
+ gUnknown_020387E8 = 3;
+ } else {
+ gUnknown_020387E8 = 4;
+ }
+ break;
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
+ gUnknown_020387E8 = 6;
+ break;
+ case 4:
+ gUnknown_020387E8 = 6;
+ break;
+ case 5:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
+ gUnknown_020387E8 = 6;
+ break;
+ case 6:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
+ gUnknown_020387E8 += (Random() % 4) + 1;
+ break;
+ case 7:
+ case 8:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]);
+ TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
+ sub_80BF638(2, tvShow->pokemonToday.species);
+ gUnknown_020387E8 = 11;
+ break;
+ case 9:
+ case 10:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]);
+ TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2);
+ gUnknown_020387E8 = 11;
+ break;
+ case 11:
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVPokemonTodayTextGroup[switchval]);
}
@@ -2737,40 +2735,40 @@ void DoTVShowPokemonTodayFailedCapture(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonTodayFailed.species]);
- gUnknown_020387E8 = 1;
- break;
- case 1:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
- sub_80FBFB4(gStringVar2, tvShow->pokemonTodayFailed.var12, 0);
- StringCopy(gStringVar3, gSpeciesNames[tvShow->pokemonTodayFailed.species2]);
- if (tvShow->pokemonTodayFailed.var11 == 1) {
- gUnknown_020387E8 = 3;
- } else {
- gUnknown_020387E8 = 2;
- }
- break;
- case 2:
- case 3:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
- sub_80BF088(1, tvShow->pokemonTodayFailed.var10);
- rval = (Random() % 3);
- if (rval == 0) {
- gUnknown_020387E8 = 5;
- } else {
- gUnknown_020387E8 = 4;
- }
- break;
- case 4:
- case 5:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
- gUnknown_020387E8 = 6;
- break;
- case 6:
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonTodayFailed.species]);
+ gUnknown_020387E8 = 1;
+ break;
+ case 1:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
+ sub_80FBFB4(gStringVar2, tvShow->pokemonTodayFailed.var12, 0);
+ StringCopy(gStringVar3, gSpeciesNames[tvShow->pokemonTodayFailed.species2]);
+ if (tvShow->pokemonTodayFailed.var11 == 1) {
+ gUnknown_020387E8 = 3;
+ } else {
+ gUnknown_020387E8 = 2;
+ }
+ break;
+ case 2:
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
+ sub_80BF088(1, tvShow->pokemonTodayFailed.var10);
+ rval = (Random() % 3);
+ if (rval == 0) {
+ gUnknown_020387E8 = 5;
+ } else {
+ gUnknown_020387E8 = 4;
+ }
+ break;
+ case 4:
+ case 5:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language);
+ gUnknown_020387E8 = 6;
+ break;
+ case 6:
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVPokemonTodayFailedCaptureTextGroup[switchval]);
}
@@ -2783,46 +2781,46 @@ void DoTVShowPokemonFanClubLetter(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->fanclubLetter.playerName, tvShow->fanclubLetter.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubLetter.species]);
- gUnknown_020387E8 = 50;
- break;
- case 1:
- rval = (Random() % 4) + 1;
- if (rval == 1) {
- gUnknown_020387E8 = 2;
- } else {
- gUnknown_020387E8 = rval + 2;
- }
- break;
- case 2:
- gUnknown_020387E8 = 51;
- break;
- case 3:
- gUnknown_020387E8 += (Random() % 3) + 1;
- break;
- case 4:
- case 5:
- case 6:
- sub_80BF79C(tvShow);
- gUnknown_020387E8 = 7;
- break;
- case 7:
- rval = (Random() % 0x1f) + 0x46;
- sub_80BF088(2, rval);
- TVShowDone();
- break;
- case 50:
- ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2);
- ShowFieldMessage(gStringVar4);
- gUnknown_020387E8 = 1;
- return;
- case 51:
- ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2);
- ShowFieldMessage(gStringVar4);
- gUnknown_020387E8 = 3;
- return;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubLetter.playerName, tvShow->fanclubLetter.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubLetter.species]);
+ gUnknown_020387E8 = 50;
+ break;
+ case 1:
+ rval = (Random() % 4) + 1;
+ if (rval == 1) {
+ gUnknown_020387E8 = 2;
+ } else {
+ gUnknown_020387E8 = rval + 2;
+ }
+ break;
+ case 2:
+ gUnknown_020387E8 = 51;
+ break;
+ case 3:
+ gUnknown_020387E8 += (Random() % 3) + 1;
+ break;
+ case 4:
+ case 5:
+ case 6:
+ sub_80BF79C(tvShow);
+ gUnknown_020387E8 = 7;
+ break;
+ case 7:
+ rval = (Random() % 0x1f) + 0x46;
+ sub_80BF088(2, rval);
+ TVShowDone();
+ break;
+ case 50:
+ ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2);
+ ShowFieldMessage(gStringVar4);
+ gUnknown_020387E8 = 1;
+ return;
+ case 51:
+ ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2);
+ ShowFieldMessage(gStringVar4);
+ gUnknown_020387E8 = 3;
+ return;
}
ShowFieldMessage(gTVFanClubTextGroup[switchval]);
}
@@ -2834,27 +2832,27 @@ void DoTVShowRecentHappenings(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->recentHappenings.playerName, tvShow->recentHappenings.language);
- sub_80BF79C(tvShow);
- gUnknown_020387E8 = 50;
- break;
- case 1:
- gUnknown_020387E8 += 1 + (Random() % 3);
- break;
- case 2:
- case 3:
- case 4:
- gUnknown_020387E8 = 5;
- break;
- case 5:
- TVShowDone();
- break;
- case 50:
- ConvertEasyChatWordsToString(gStringVar4, tvShow->recentHappenings.var04, 2, 2);
- ShowFieldMessage(gStringVar4);
- gUnknown_020387E8 = 1;
- return;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->recentHappenings.playerName, tvShow->recentHappenings.language);
+ sub_80BF79C(tvShow);
+ gUnknown_020387E8 = 50;
+ break;
+ case 1:
+ gUnknown_020387E8 += 1 + (Random() % 3);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ gUnknown_020387E8 = 5;
+ break;
+ case 5:
+ TVShowDone();
+ break;
+ case 50:
+ ConvertEasyChatWordsToString(gStringVar4, tvShow->recentHappenings.var04, 2, 2);
+ ShowFieldMessage(gStringVar4);
+ gUnknown_020387E8 = 1;
+ return;
}
ShowFieldMessage(gTVRecentHappeningsTextGroup[switchval]);
}
@@ -2866,25 +2864,25 @@ void DoTVShowPokemonFanClubOpinions(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
- TVShowConvertInternationalString(gStringVar3, tvShow->fanclubOpinions.var10, tvShow->fanclubOpinions.var0E);
- gUnknown_020387E8 = tvShow->fanclubOpinions.var04B + 1;
- break;
- case 1:
- case 2:
- case 3:
- TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
- sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[0]);
- gUnknown_020387E8 = 4;
- break;
- case 4:
- TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
- sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[1]);
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
+ TVShowConvertInternationalString(gStringVar3, tvShow->fanclubOpinions.var10, tvShow->fanclubOpinions.var0E);
+ gUnknown_020387E8 = tvShow->fanclubOpinions.var04B + 1;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]);
+ sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[0]);
+ gUnknown_020387E8 = 4;
+ break;
+ case 4:
+ TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language);
+ sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[1]);
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVFanClubOpinionsTextGroup[switchval]);
}
@@ -2914,50 +2912,50 @@ void DoTVShowInSearchOfTrainers(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0);
- if (gSaveBlock1.gabbyAndTyData.val9 > 1) {
- gUnknown_020387E8 = 1;
- } else {
- gUnknown_020387E8 = 2;
- }
- break;
- case 1:
+ case 0:
+ sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0);
+ if (gSaveBlock1.gabbyAndTyData.val9 > 1) {
+ gUnknown_020387E8 = 1;
+ } else {
gUnknown_020387E8 = 2;
- break;
- case 2:
- if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) {
- gUnknown_020387E8 = 4;
- } else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) {
- gUnknown_020387E8 = 5;
- } else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) {
- gUnknown_020387E8 = 6;
- } else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) {
- gUnknown_020387E8 = 7;
- } else {
- gUnknown_020387E8 = 3;
- }
- break;
- case 3:
- StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
- StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.move1]);
- StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
- gUnknown_020387E8 = 8;
- break;
- case 4:
- case 5:
- case 6:
- case 7:
- gUnknown_020387E8 = 8;
- break;
- case 8:
- sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.move2);
- StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
- StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
- gScriptResult = 1;
- gUnknown_020387E8 = 0;;
- TakeTVShowInSearchOfTrainersOffTheAir();
- break;
+ }
+ break;
+ case 1:
+ gUnknown_020387E8 = 2;
+ break;
+ case 2:
+ if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) {
+ gUnknown_020387E8 = 4;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) {
+ gUnknown_020387E8 = 5;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) {
+ gUnknown_020387E8 = 6;
+ } else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) {
+ gUnknown_020387E8 = 7;
+ } else {
+ gUnknown_020387E8 = 3;
+ }
+ break;
+ case 3:
+ StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
+ StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.move1]);
+ StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
+ gUnknown_020387E8 = 8;
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ gUnknown_020387E8 = 8;
+ break;
+ case 8:
+ sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.move2);
+ StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]);
+ StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]);
+ gScriptResult = 1;
+ gUnknown_020387E8 = 0;;
+ TakeTVShowInSearchOfTrainersOffTheAir();
+ break;
}
ShowFieldMessage(gTVGabbyAndTyTextGroup[switchval]);
}
@@ -2974,18 +2972,18 @@ void DoTVShowPokemonAngler(void) {
}
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]);
- sub_80BF088(2, tvShow->pokemonAngler.var03);
- TVShowDone();
- break;
- case 1:
- TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language);
- StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]);
- sub_80BF088(2, tvShow->pokemonAngler.var02);
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]);
+ sub_80BF088(2, tvShow->pokemonAngler.var03);
+ TVShowDone();
+ break;
+ case 1:
+ TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language);
+ StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]);
+ sub_80BF088(2, tvShow->pokemonAngler.var02);
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVFishingGuruAdviceTextGroup[switchval]);
}
@@ -2997,24 +2995,24 @@ void DoTVShowTheWorldOfMasters(void) {
gScriptResult = 0;
switchval = gUnknown_020387E8;
switch (switchval) {
- case 0:
- TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName,
- tvShow->worldOfMasters.language);
- sub_80BF088(1, tvShow->worldOfMasters.var06);
- sub_80BF088(2, tvShow->worldOfMasters.var02);
- gUnknown_020387E8 = 1;
- break;
- case 1:
- StringCopy(gStringVar1, gSpeciesNames[tvShow->worldOfMasters.var08]);
- gUnknown_020387E8 = 2;
- break;
- case 2:
- TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName,
- tvShow->worldOfMasters.language);
- sub_80FBFB4(gStringVar2, tvShow->worldOfMasters.var0a, 0);
- StringCopy(gStringVar3, gSpeciesNames[tvShow->worldOfMasters.var04]);
- TVShowDone();
- break;
+ case 0:
+ TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName,
+ tvShow->worldOfMasters.language);
+ sub_80BF088(1, tvShow->worldOfMasters.var06);
+ sub_80BF088(2, tvShow->worldOfMasters.var02);
+ gUnknown_020387E8 = 1;
+ break;
+ case 1:
+ StringCopy(gStringVar1, gSpeciesNames[tvShow->worldOfMasters.var08]);
+ gUnknown_020387E8 = 2;
+ break;
+ case 2:
+ TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName,
+ tvShow->worldOfMasters.language);
+ sub_80FBFB4(gStringVar2, tvShow->worldOfMasters.var0a, 0);
+ StringCopy(gStringVar3, gSpeciesNames[tvShow->worldOfMasters.var04]);
+ TVShowDone();
+ break;
}
ShowFieldMessage(gTVWorldOfMastersTextGroup[switchval]);
}
diff --git a/src/wallclock.c b/src/wallclock.c
index 0f3665c65..0b9948adc 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -8,6 +8,7 @@
#include "rtc.h"
#include "songs.h"
#include "sound.h"
+#include "strings2.h"
#include "task.h"
#include "trig.h"
@@ -15,7 +16,6 @@ extern u16 gSpecialVar_0x8004;
extern u8 gMiscClock_Gfx[];
extern u8 gUnknown_08E95774[];
extern u8 gUnknown_08E954B0[];
-extern u8 gOtherText_CorrectTimePrompt[];
extern const struct MenuAction gMenuYesNoItems[];
extern u16 gMiscClockMale_Pal[];
extern u16 gMiscClockFemale_Pal[];
@@ -428,17 +428,17 @@ static void Task_SetClock4(u8 taskId)
{
switch (ProcessMenuInputNoWrap_())
{
- case 0: //YES
- PlaySE(SE_SELECT);
- gTasks[taskId].func = Task_SetClock5; //Move on
- return;
- case -1: //B button
- case 1: //NO
- sub_8072DEC();
- PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- MenuZeroFillWindowRect(2, 16, 27, 19);
- gTasks[taskId].func = Task_SetClock2; //Go back and let player adjust clock
+ case 0: //YES
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = Task_SetClock5; //Move on
+ return;
+ case -1: //B button
+ case 1: //NO
+ sub_8072DEC();
+ PlaySE(SE_SELECT);
+ MenuZeroFillWindowRect(23, 8, 29, 13);
+ MenuZeroFillWindowRect(2, 16, 27, 19);
+ gTasks[taskId].func = Task_SetClock2; //Go back and let player adjust clock
}
}
@@ -501,18 +501,18 @@ static u16 CalcNewMinHandAngle(u16 angle, u8 direction, u8 speed)
switch (direction)
{
- case MVMT_BACKWARD:
- if (angle)
- angle = angle - delta;
- else
- angle = 360 - delta;
- break;
- case MVMT_FORWARD:
- if (angle < 360 - delta)
- angle = angle + delta;
- else
- angle = 0;
- break;
+ case MVMT_BACKWARD:
+ if (angle)
+ angle = angle - delta;
+ else
+ angle = 360 - delta;
+ break;
+ case MVMT_FORWARD:
+ if (angle < 360 - delta)
+ angle = angle + delta;
+ else
+ angle = 0;
+ break;
}
return angle;
}
@@ -522,32 +522,32 @@ static u8 AdvanceClock(u8 taskId, u8 direction)
{
switch (direction)
{
- case MVMT_BACKWARD:
- if (gTasks[taskId].tMinutes > 0)
- gTasks[taskId].tMinutes--;
+ case MVMT_BACKWARD:
+ if (gTasks[taskId].tMinutes > 0)
+ gTasks[taskId].tMinutes--;
+ else
+ {
+ gTasks[taskId].tMinutes = 59;
+ if (gTasks[taskId].tHours > 0)
+ gTasks[taskId].tHours--;
else
- {
- gTasks[taskId].tMinutes = 59;
- if (gTasks[taskId].tHours > 0)
- gTasks[taskId].tHours--;
- else
- gTasks[taskId].tHours = 23;
- UpdateClockPeriod(taskId, direction);
- }
- break;
- case MVMT_FORWARD:
- if (gTasks[taskId].tMinutes < 59)
- gTasks[taskId].tMinutes++;
+ gTasks[taskId].tHours = 23;
+ UpdateClockPeriod(taskId, direction);
+ }
+ break;
+ case MVMT_FORWARD:
+ if (gTasks[taskId].tMinutes < 59)
+ gTasks[taskId].tMinutes++;
+ else
+ {
+ gTasks[taskId].tMinutes = 0;
+ if (gTasks[taskId].tHours < 23)
+ gTasks[taskId].tHours++;
else
- {
- gTasks[taskId].tMinutes = 0;
- if (gTasks[taskId].tHours < 23)
- gTasks[taskId].tHours++;
- else
- gTasks[taskId].tHours = 0;
- UpdateClockPeriod(taskId, direction);
- }
- break;
+ gTasks[taskId].tHours = 0;
+ UpdateClockPeriod(taskId, direction);
+ }
+ break;
}
return 0;
}
@@ -559,28 +559,28 @@ static void UpdateClockPeriod(u8 taskId, u8 direction)
switch (direction)
{
- case MVMT_BACKWARD:
- switch (hours)
- {
- case 11:
- gTasks[taskId].tPeriod = PERIOD_AM;
- break;
- case 23:
- gTasks[taskId].tPeriod = PERIOD_PM;
- break;
- }
+ case MVMT_BACKWARD:
+ switch (hours)
+ {
+ case 11:
+ gTasks[taskId].tPeriod = PERIOD_AM;
break;
- case MVMT_FORWARD:
- switch (hours)
- {
- case 0:
- gTasks[taskId].tPeriod = PERIOD_AM;
- break;
- case 12:
- gTasks[taskId].tPeriod = PERIOD_PM;
- break;
- }
+ case 23:
+ gTasks[taskId].tPeriod = PERIOD_PM;
break;
+ }
+ break;
+ case MVMT_FORWARD:
+ switch (hours)
+ {
+ case 0:
+ gTasks[taskId].tPeriod = PERIOD_AM;
+ break;
+ case 12:
+ gTasks[taskId].tPeriod = PERIOD_PM;
+ break;
+ }
+ break;
}
}