diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-04 18:50:53 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-04 18:50:53 -0500 |
commit | eff6795887cc27f2c5139df9a6da70f4f02338b4 (patch) | |
tree | f91be2b0b7194b4ddff13f4935a0edafc4284a43 /src/field | |
parent | 3ea9cff2c67b3db195c3326afc56fa0662c2327a (diff) | |
parent | b1a7733c1cead8ed3d4a58c42d638afd0ead8ab0 (diff) |
Merge branch 'master' into unk_text_8095904
Diffstat (limited to 'src/field')
34 files changed, 1331 insertions, 1118 deletions
diff --git a/src/field/bard_music.c b/src/field/bard_music.c index daf003233..5c48749cf 100644 --- a/src/field/bard_music.c +++ b/src/field/bard_music.c @@ -11,29 +11,185 @@ struct BardSound /*0x06*/ u16 var06; }; -extern const struct BardSound (*const gBardMusicTable[])[][6]; -extern s16 *gUnknown_08417068[]; -extern u32 gUnknown_084170F4[]; +static const s16 Unknown_8416F08[] = {-768, 6144}; +static const s16 Unknown_8416F0C[] = {2304, 6144}; +static const s16 Unknown_8416F10[] = {256, 6144}; +static const s16 Unknown_8416F14[] = {1024, 6144}; +static const s16 Unknown_8416F18[] = {2816, 6144}; +static const s16 Unknown_8416F1C[] = {-768, -256, 6144}; +static const s16 Unknown_8416F22[] = {-768, 512, 6144}; +static const s16 Unknown_8416F28[] = {512, 1024, 6144}; +static const s16 Unknown_8416F2E[] = {1536, 2048, 6144}; +static const s16 Unknown_8416F34[] = {2304, 2048, 6144}; +static const s16 Unknown_8416F3A[] = {-768, -256, -768, 6144}; +static const s16 Unknown_8416F42[] = {1024, -768, 1024, 6144}; +static const s16 Unknown_8416F4A[] = {2304, 2048, 1536, 6144}; +static const s16 Unknown_8416F52[] = {256, 512, 1024, 6144}; +static const s16 Unknown_8416F5A[] = {1536, 4096, 3328, 6144}; +static const s16 Unknown_8416F62[] = {1024, 2304, 1024, 2304, 6144}; +static const s16 Unknown_8416F6C[] = {2304, 1024, 3328, 1024, 6144}; +static const s16 Unknown_8416F76[] = {256, 512, 1024, 1536, 6144}; +static const s16 Unknown_8416F80[] = {2048, 1536, 1024, 512, 6144}; +static const s16 Unknown_8416F8A[] = {3840, 3328, 2816, 2560, 6144}; +static const s16 Unknown_8416F94[] = {-768, -256, 256, 512, 1024, 6144}; +static const s16 Unknown_8416FA0[] = {2304, 2048, 1536, 1024, 512, 6144}; +static const s16 Unknown_8416FAC[] = {256, 1024, 2304, 1024, 256, 6144}; +static const s16 Unknown_8416FB8[] = {2304, 1024, 2304, 1024, -768, 6144}; +static const s16 Unknown_8416FC4[] = {2816, 2048, 1024, 1024, 1536, 6144}; +static const s16 Unknown_8416FD0[] = {-768, -256, 256, 512, 1024, 1536, 6144}; +static const s16 Unknown_8416FDE[] = {2048, 1536, 1024, 512, 256, -256, 6144}; +static const s16 Unknown_8416FEC[] = {256, 512, 1024, 256, 512, 4096, 6144}; +static const s16 Unknown_8416FFA[] = {1024, -768, 2304, 1024, 2304, 1024, 6144}; +static const s16 Unknown_8417008[] = {2048, 2304, 2048, 2304, 2048, 2304, 6144}; +static const s16 Unknown_8417016[] = {512, 256, 512, 256, 512, 1024, 512, 6144}; +static const s16 Unknown_8417026[] = {256, 256, -256, -256, -768, 1024, -768, 6144}; +static const s16 Unknown_8417036[] = {2048, 2304, 2816, 3328, 3584, 3328, 2816, 6144}; +static const s16 Unknown_8417046[] = {2048, 1536, 1024, 512, 3328, 2816, 2304, 6144}; +static const s16 Unknown_8417056[] = {768, 1024, 1536, 2048, 1792, 2048, 1024, 6144}; + +static const s16 *const sWordPitches[] = { + Unknown_8416F08, + Unknown_8416F0C, + Unknown_8416F10, + Unknown_8416F14, + Unknown_8416F18, + Unknown_8416F1C, + Unknown_8416F22, + Unknown_8416F28, + Unknown_8416F2E, + Unknown_8416F34, + Unknown_8416F3A, + Unknown_8416F42, + Unknown_8416F4A, + Unknown_8416F52, + Unknown_8416F5A, + Unknown_8416F62, + Unknown_8416F6C, + Unknown_8416F76, + Unknown_8416F80, + Unknown_8416F8A, + Unknown_8416F94, + Unknown_8416FA0, + Unknown_8416FAC, + Unknown_8416FB8, + Unknown_8416FC4, + Unknown_8416FD0, + Unknown_8416FDE, + Unknown_8416FEC, + Unknown_8416FFA, + Unknown_8417008, + Unknown_8417016, + Unknown_8417026, + Unknown_8417036, + Unknown_8417046, + Unknown_8417056 +}; + +static const u32 sBardSoundLengthDeltas[] = { + 9, + 22, + 15, + 16, + 39, + 21, + 9, + 30, + 24, + 15, + 25, + 12, + 22, + 45, + 24, + 15, + 40, + 9, + 21, + 42, + 18, + 9, + 22, + 15, + 27, + 48, + 18, + 27, + 33, + 24, + 25, + 39, + 19, + 16, + 54, + 18, + 9, + 45, + 15, + 12, + 39, + 23, + 5, + 45, + 12, + 21, + 48, + 12, + 21, + 69, + 18, + 15 +}; + +#if ENGLISH +#include "../src/data/bard_music_en.h" +#elif GERMAN +#include "../src/data/bard_music_de.h" +#endif // ENGLISH/GERMAN + +static const struct BardSound (*const gBardMusicTable[])[6] = { + BardMusic_POKEMON, + BardMusic_TRAINER, + BardMusic_STATUS, + BardMusic_BATTLE, + BardMusic_GREETINGS, + BardMusic_PEOPLE, + BardMusic_VOICES, + BardMusic_SPEECH, + BardMusic_ENDINGS, + BardMusic_FEELINGS, + BardMusic_CONDITIONS, + BardMusic_ACTIONS, + BardMusic_LIFESTYLE, + BardMusic_HOBBIES, + BardMusic_TIME, + BardMusic_MISC, + BardMusic_ADJECTIVES, + BardMusic_EVENTS, + BardMusic_MOVE_1, + BardMusic_MOVE_2, + BardMusic_TRENDY_SAYING, + BardMusic_POKEMON_2 +}; static s16 CalcWordPitch(u32 arg0, u32 songPos) { - return gUnknown_08417068[arg0][songPos]; + return sWordPitches[arg0][songPos]; } #if ENGLISH const struct BardSound *GetWordSounds(u16 group, u16 word) { - const struct BardSound (*sounds)[][6] = gBardMusicTable[group]; + const struct BardSound (*sounds)[6] = gBardMusicTable[group]; - return (*sounds)[word]; + return sounds[word]; } #elif GERMAN const struct BardSound *GetWordSounds(u16 group, u16 word) { - const struct BardSound (*sounds)[][6] = gBardMusicTable[group]; + const struct BardSound (*sounds)[6] = gBardMusicTable[group]; u32 index = de_sub_80EB748(group, word); - return (*sounds)[index]; + return sounds[index]; } #endif @@ -48,7 +204,7 @@ s32 GetWordPhonemes(struct BardSong *song, const struct BardSound *src, u16 arg2 song->phonemes[i].sound = src[i].var00; if (src[i].var00 != 0xFF) { - s32 length = src[i].var01 + gUnknown_084170F4[src[i].var00]; + s32 length = src[i].var01 + sBardSoundLengthDeltas[src[i].var00]; song->phonemes[i].length = length; song->phonemes[i].volume = src[i].volume; diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 6b6064c16..caebc6a7b 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -294,24 +294,24 @@ void sub_8134548(void) ResetBattleTowerStreak(levelType); if (!var1) { - VarSet(VAR_0x4000, 5); + VarSet(VAR_TEMP_0, 5); } break; case 1: ResetBattleTowerStreak(levelType); - VarSet(VAR_0x4000, 1); + VarSet(VAR_TEMP_0, 1); var1++; break; case 4: - VarSet(VAR_0x4000, 2); + VarSet(VAR_TEMP_0, 2); var1++; break; case 5: - VarSet(VAR_0x4000, 3); + VarSet(VAR_TEMP_0, 3); var1++; break; case 2: - VarSet(VAR_0x4000, 4); + VarSet(VAR_TEMP_0, 4); var1++; break; case 3: @@ -323,7 +323,7 @@ void sub_8134548(void) if ((gSaveBlock2.battleTower.var_4AE[0] == 3 || gSaveBlock2.battleTower.var_4AE[0] == 6) && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6)) { - VarSet(VAR_0x4000, 5); + VarSet(VAR_TEMP_0, 5); } ValidateBattleTowerRecordChecksums(); @@ -801,7 +801,7 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex) if (i != 30) { u8 trainerObjectGfxId = sMaleTrainerGfxIds[i]; - VarSet(0x4010, trainerObjectGfxId); + VarSet(VAR_OBJ_GFX_ID_0, trainerObjectGfxId); return; } @@ -809,11 +809,11 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex) if (i != 20) { u8 trainerObjectGfxId = sFemaleTrainerGfxIds[i]; - VarSet(0x4010, trainerObjectGfxId); + VarSet(VAR_OBJ_GFX_ID_0, trainerObjectGfxId); return; } - VarSet(0x4010, MAP_OBJ_GFX_BOY_1); + VarSet(VAR_OBJ_GFX_ID_0, MAP_OBJ_GFX_BOY_1); } void SetEReaderTrainerGfxId(void) @@ -1608,7 +1608,7 @@ void sub_8135534(u8 taskId) } } -void sub_813556C(void) +void StartSpecialBattle(void) { s32 i; u16 heldItem; @@ -1616,7 +1616,7 @@ void sub_813556C(void) switch (gSpecialVar_0x8004) { - case 0: + case 0: // battle tower battle gBattleTypeFlags = (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_TRAINER); gTrainerBattleOpponent = 0; @@ -1627,7 +1627,7 @@ void sub_813556C(void) transition = BattleSetup_GetBattleTowerBattleTransition(); BattleTransition_StartOnField(transition); break; - case 1: + case 1: // secret base battle for (i = 0; i < PARTY_SIZE; i++) { heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); @@ -1639,7 +1639,7 @@ void sub_813556C(void) transition = BattleSetup_GetBattleTowerBattleTransition(); BattleTransition_StartOnField(transition); break; - case 2: + case 2: // e-reader trainer battle ZeroEnemyPartyMons(); for (i = 0; i < 3; i++) @@ -1658,7 +1658,7 @@ void sub_813556C(void) } } -void sub_8135668(void) +void SetBattleTowerProperty(void) { s32 i; u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType; @@ -1740,7 +1740,7 @@ void sub_8135668(void) } } -void sub_81358A4(void) +void BattleTowerUtil(void) { u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType; @@ -1789,7 +1789,7 @@ void sub_81358A4(void) } } -void sub_8135A14(void) +void SetBattleTowerParty(void) { s32 i; @@ -1954,7 +1954,7 @@ void sub_8135AC4(void) sub_8135A3C(); } -void sub_8135BA0(void) +void SaveBattleTowerProgress(void) { u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType; @@ -1976,7 +1976,7 @@ void sub_8135BA0(void) gSaveBlock2.battleTower.var_4AE[battleTowerLevelType] = gSpecialVar_0x8004; } - VarSet(VAR_0x4000, 0); + VarSet(VAR_TEMP_0, 0); gSaveBlock2.battleTower.unk_554 = 1; TrySavingData(EREADER_SAVE); } @@ -2336,7 +2336,7 @@ void PrintEReaderTrainerFarewellMessage(void) } } -void sub_813610C(void) +void TryEnableBravoTrainerBattleTower(void) { s32 i; diff --git a/src/field/berry_tag_screen.c b/src/field/berry_tag_screen.c index 2abbac287..960a163c1 100644 --- a/src/field/berry_tag_screen.c +++ b/src/field/berry_tag_screen.c @@ -29,7 +29,7 @@ struct Struct2000000 }; extern struct Struct2000000 gSharedMem; -extern u16 gUnknown_030041B4; +extern u16 gBattle_BG1_Y; static EWRAM_DATA u8 gUnknown_0203932C = 0; static EWRAM_DATA s16 gUnknown_0203932E[5] = {0}; @@ -77,8 +77,8 @@ static void sub_8146014(void) static void sub_814602C(void) { - REG_BG0VOFS = gUnknown_030041B4; - REG_BG1VOFS = gUnknown_030041B4; + REG_BG0VOFS = gBattle_BG1_Y; + REG_BG1VOFS = gBattle_BG1_Y; LoadOam(); ProcessSpriteCopyRequests(); @@ -183,7 +183,7 @@ static void sub_8146288(void) REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5) | BGCNT_16COLOR | BGCNT_TXT256x256; REG_BG2CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256; REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256; - gUnknown_030041B4 = 0; + gBattle_BG1_Y = 0; } bool8 sub_81462B8(void) @@ -394,17 +394,17 @@ static void sub_8146798(u8 taskId) { s16 *taskData = gTasks[taskId].data; - gUnknown_030041B4 = (gUnknown_030041B4 + taskData[0]) & 0xFF; - if ((taskData[0] > 0 && gUnknown_030041B4 == 144) - || (taskData[0] < 0 && gUnknown_030041B4 == 112)) + gBattle_BG1_Y = (gBattle_BG1_Y + taskData[0]) & 0xFF; + if ((taskData[0] > 0 && gBattle_BG1_Y == 144) + || (taskData[0] < 0 && gBattle_BG1_Y == 112)) { sub_8146810(gTasks[taskId].data[1]); sub_81468BC(); } - if (gUnknown_030041B4 == 0) + if (gBattle_BG1_Y == 0) { - gTasks[taskId].data[0] = gUnknown_030041B4; - gTasks[taskId].data[1] = gUnknown_030041B4; + gTasks[taskId].data[0] = gBattle_BG1_Y; + gTasks[taskId].data[1] = gBattle_BG1_Y; gTasks[taskId].func = sub_8146480; } } diff --git a/src/field/coord_event_weather.c b/src/field/coord_event_weather.c index 9c5a1ca4d..db4e9c161 100644 --- a/src/field/coord_event_weather.c +++ b/src/field/coord_event_weather.c @@ -1,115 +1,116 @@ #include "global.h" +#include "constants/weather.h" #include "coord_event_weather.h" #include "field_weather.h" struct CoordEventWeather { - u8 weather; + u8 coordEventWeather; void (*func)(void); }; -static void CoordEventWeather_Indoor(void); +static void CoordEventWeather_Clouds(void); static void CoordEventWeather_Sunny(void); -static void CoordEventWeather_Rain(void); -static void CoordEventWeather_Snowflakes(void); +static void CoordEventWeather_LightRain(void); +static void CoordEventWeather_Snow(void); static void CoordEventWeather_Thunderstorm(void); static void CoordEventWeather_Fog(void); static void CoordEventWeather_DiagonalFog(void); -static void CoordEventWeather_Snow(void); +static void CoordEventWeather_Ash(void); static void CoordEventWeather_Sandstorm(void); -static void CoordEventWeather_Cloudy(void); +static void CoordEventWeather_Dark(void); static void CoordEventWeather_Drought(void); -static void CoordEventWeather_UnderwaterFog(void); -static void CoordEventWeather_UnderwaterBubbles(void); +static void CoordEventWeather_Route119Cycle(void); +static void CoordEventWeather_Route123Cycle(void); static const struct CoordEventWeather sCoordEventWeatherFuncs[] = { - { 0x1, CoordEventWeather_Indoor }, - { 0x2, CoordEventWeather_Sunny }, - { 0x3, CoordEventWeather_Rain }, - { 0x4, CoordEventWeather_Snowflakes }, - { 0x5, CoordEventWeather_Thunderstorm }, - { 0x6, CoordEventWeather_Fog }, - { 0x7, CoordEventWeather_DiagonalFog }, - { 0x8, CoordEventWeather_Snow }, - { 0x9, CoordEventWeather_Sandstorm }, - { 0xa, CoordEventWeather_Cloudy }, - { 0xb, CoordEventWeather_Drought }, - { 0x14, CoordEventWeather_UnderwaterFog }, - { 0x15, CoordEventWeather_UnderwaterBubbles }, + { COORD_EVENT_WEATHER_CLOUDS, CoordEventWeather_Clouds }, + { COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny }, + { COORD_EVENT_WEATHER_RAIN_LIGHT, CoordEventWeather_LightRain }, + { COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow }, + { COORD_EVENT_WEATHER_RAIN_MED, CoordEventWeather_Thunderstorm }, + { COORD_EVENT_WEATHER_FOG_1, CoordEventWeather_Fog }, + { COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog }, + { COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash }, + { COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm }, + { COORD_EVENT_WEATHER_DARK, CoordEventWeather_Dark }, + { COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought }, + { COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle }, + { COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle }, }; -static void CoordEventWeather_Indoor(void) +static void CoordEventWeather_Clouds(void) { - SetWeather(1); + SetWeather(WEATHER_CLOUDS); } static void CoordEventWeather_Sunny(void) { - SetWeather(2); + SetWeather(WEATHER_SUNNY); } -static void CoordEventWeather_Rain(void) +static void CoordEventWeather_LightRain(void) { - SetWeather(3); + SetWeather(WEATHER_RAIN_LIGHT); } -static void CoordEventWeather_Snowflakes(void) +static void CoordEventWeather_Snow(void) { - SetWeather(4); + SetWeather(WEATHER_SNOW); } static void CoordEventWeather_Thunderstorm(void) { - SetWeather(5); + SetWeather(WEATHER_RAIN_MED); } static void CoordEventWeather_Fog(void) { - SetWeather(6); + SetWeather(WEATHER_FOG_1); } static void CoordEventWeather_DiagonalFog(void) { - SetWeather(9); + SetWeather(WEATHER_FOG_2); } -static void CoordEventWeather_Snow(void) +static void CoordEventWeather_Ash(void) { - SetWeather(7); + SetWeather(WEATHER_ASH); } static void CoordEventWeather_Sandstorm(void) { - SetWeather(8); + SetWeather(WEATHER_SANDSTORM); } -static void CoordEventWeather_Cloudy(void) +static void CoordEventWeather_Dark(void) { - SetWeather(11); + SetWeather(WEATHER_DARK); } static void CoordEventWeather_Drought(void) { - SetWeather(12); + SetWeather(WEATHER_DROUGHT); } -static void CoordEventWeather_UnderwaterFog(void) +static void CoordEventWeather_Route119Cycle(void) { - SetWeather(20); + SetWeather(WEATHER_ROUTE119_CYCLE); } -static void CoordEventWeather_UnderwaterBubbles(void) +static void CoordEventWeather_Route123Cycle(void) { - SetWeather(21); + SetWeather(WEATHER_ROUTE123_CYCLE); } -void DoCoordEventWeather(u8 n) +void DoCoordEventWeather(u8 coordEventWeather) { u8 i; for (i = 0; i < ARRAY_COUNT(sCoordEventWeatherFuncs); i++) { - if (sCoordEventWeatherFuncs[i].weather == n) + if (sCoordEventWeatherFuncs[i].coordEventWeather == coordEventWeather) { sCoordEventWeatherFuncs[i].func(); return; diff --git a/src/field/decoration.c b/src/field/decoration.c index 8b774afc3..87a9d8028 100644 --- a/src/field/decoration.c +++ b/src/field/decoration.c @@ -1426,139 +1426,6 @@ const struct YesNoFuncTable gUnknown_083EC634[] = { {sub_8109D04, sub_80FF058} }; -const u16 gUnknown_083EC654[] = {0x6318, 0x739C, 0x7FFF}; -const u8 gUnknown_083EC65A[] = _("{PALETTE 13}{STR_VAR_1}"); - -const u8 Unknown_3EC660[] = {0, 1, 2, 3}; -const u8 Unknown_3EC664[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13}; -const u8 Unknown_3EC670[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; -const u8 Unknown_3EC680[] = {0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21}; -const u8 Unknown_3EC68C[] = {0, 1, 2, 3, 4, 5, 6, 7}; -const u8 Unknown_3EC694[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; -const u8 Unknown_3EC6B4[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45}; -const u8 Unknown_3EC6D8[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29}; - -const u8 Unknown_3EC6F0[] = {0, 0, 0, 0}; -const u8 Unknown_3EC6F4[] = {0, 0, 1, 1, 0, 0, 1, 1}; -const u8 Unknown_3EC6FC[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2}; -const u8 Unknown_3EC708[] = {0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7}; -const u8 Unknown_3EC728[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3}; -const u8 Unknown_3EC738[] = {0, 0, 0, 0, 1, 1, 1, 1}; -const u8 Unknown_3EC740[] = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2}; -const u8 Unknown_3EC74C[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7}; -const u8 Unknown_3EC76C[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8}; -const u8 Unknown_3EC790[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5}; - -const u8 Unknown_3EC7A8[] = {4, 5, 6, 7}; -const u8 Unknown_3EC7AC[] = {4, 5, 4, 5, 6, 7, 6, 7}; -const u8 Unknown_3EC7B4[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; -const u8 Unknown_3EC7C0[] = {4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7}; -const u8 Unknown_3EC7E0[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; -const u8 Unknown_3EC7F0[] = {4, 5, 6, 7, 4, 5, 6, 7}; -const u8 Unknown_3EC7F8[] = {4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7}; -const u8 Unknown_3EC804[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; -const u8 Unknown_3EC824[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; -const u8 Unknown_3EC848[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; - -const struct UnkStruct_803EC860 gUnknown_083EC860[] = { - {Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4}, - {Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8}, - {Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc}, - {Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20}, - {Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10}, - {Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8}, - {Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc}, - {Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20}, - {Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24}, - {Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18} -}; - -const struct UnkStruct_083EC900 gUnknown_083EC900[] = { - {0, 1, 0x78, 0x4e}, - {1, 2, 0x80, 0x4e}, - {1, 3, 0x90, 0x56}, - {1, 3, 0x90, 0x46}, - {0, 2, 0x80, 0x46}, - {2, 2, 0x78, 0x46}, - {2, 3, 0x80, 0x56}, - {2, 3, 0x80, 0x36}, - {0, 3, 0x90, 0x46}, - {1, 3, 0x90, 0x46} -}; - -const union AnimCmd gSpriteAnim_83EC928[] = { - ANIMCMD_FRAME(.imageValue = 0, .duration = 0), - ANIMCMD_END -}; - -const union AnimCmd *const gSpriteAnimTable_83EC930[] = { - gSpriteAnim_83EC928 -}; - -const struct SpriteFrameImage gSpriteImageTable_83EC934[] = { - {.data = gUnknown_02038900.image, .size = sizeof(gUnknown_02038900.image)} -}; - -const struct SpriteTemplate gSpriteTemplate_83EC93C = { - .tileTag = 0xffff, - .paletteTag = 3000, - .oam = &gUnknown_020391AC, - .anims = gSpriteAnimTable_83EC930, - .images = gSpriteImageTable_83EC934, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81009A8 -}; - -const struct SpritePalette gUnknown_083EC954 = {.data = (u16 *)&gUnknown_02038900.palette, .tag = 3000}; - -const struct YesNoFuncTable gUnknown_083EC95C = {.yesFunc = sub_81000C4, .noFunc = sub_810065C}; -const struct YesNoFuncTable gUnknown_083EC964 = {.yesFunc = sub_810026C, .noFunc = sub_810065C}; -const struct YesNoFuncTable gUnknown_083EC96C[] = { - {.yesFunc = sub_80FFAB0, .noFunc = sub_80FFB08}, - {.yesFunc = sub_8100F88, .noFunc = sub_8100FB4} -}; - -const u8 gUnknown_083EC97C[] = {4, 4, 4, 4, 0, 3, 3, 0}; -const u8 gUnknown_083EC984[] = {4, 4, 4, 4, 0, 4, 3, 0}; - -const u16 gUnknown_083EC98C[] = INCBIN_U16("graphics/unknown/83EC98C.gbapal"); -const u16 Unknown_3EC9AC[] = INCBIN_U16("graphics/unknown/83EC9AC.gbapal"); -const struct YesNoFuncTable gUnknown_083EC9CC = {.yesFunc = sub_810153C, .noFunc = sub_8100EEC}; -const struct YesNoFuncTable gUnknown_083EC9D4 = {.yesFunc = sub_8101590, .noFunc = sub_8100EEC}; -const u32 gSpriteImage_83EC9DC[] = INCBIN_U32("graphics/unknown_sprites/83EC9DC.4bpp"); -const struct SpritePalette gUnknown_083ECA5C = {.data = gUnknown_083EC98C, .tag = 8}; -const struct SpritePalette gUnknown_083ECA64 = {.data = Unknown_3EC9AC, .tag = 8}; -const struct OamData gOamData_83ECA6C = { - .size = 1, .priority = 1 -}; - -const union AnimCmd gSpriteAnim_83ECA74[] = { - ANIMCMD_FRAME(.imageValue = 0, .duration = 0), - ANIMCMD_END -}; - -const union AnimCmd *const gSpriteAnimTable_83ECA7C[] = { - gSpriteAnim_83ECA74 -}; - -const struct SpriteFrameImage gSpriteImageTable_83ECA80[] = { - obj_frame_tiles(gSpriteImage_83EC9DC) -}; - -const struct SpriteTemplate gSpriteTemplate_83ECA88 = { - .tileTag = 0xffff, - .paletteTag = 8, - .oam = &gOamData_83ECA6C, - .anims = gSpriteAnimTable_83ECA7C, - .images = gSpriteImageTable_83ECA80, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8101698 -}; - -const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C}; - -u8 *const unref_label_083ECAA8[] = {gSharedMem}; - // text extern u8 gUnknown_0815F399[]; @@ -1605,8 +1472,9 @@ void DoPlayerPCDecoration(u8 taskId) void sub_80FE2B4(void) { - u16 palettes[3]; - memcpy(palettes, gUnknown_083EC654, sizeof gUnknown_083EC654); + u16 palettes[3] = {RGB(24, 24, 24), + RGB(28, 28, 28), + RGB(31, 31, 31)}; LoadPalette(&palettes[2], 0xdf, 2); LoadPalette(&palettes[1], 0xd1, 2); LoadPalette(&palettes[0], 0xd8, 2); @@ -1908,6 +1776,8 @@ void sub_80FE948(u8 taskId) } } +const u8 gUnknown_083EC65A[] = _("{PALETTE 13}{STR_VAR_1}"); + void sub_80FEABC(u8 taskId, u8 dummy1) { u16 i; @@ -3568,6 +3438,136 @@ u16 sub_810089C(u16 a0) return ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles)[a0] & 0xfff; } +const u8 Unknown_3EC660[] = {0, 1, 2, 3}; +const u8 Unknown_3EC664[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13}; +const u8 Unknown_3EC670[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; +const u8 Unknown_3EC680[] = {0, 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21}; +const u8 Unknown_3EC68C[] = {0, 1, 2, 3, 4, 5, 6, 7}; +const u8 Unknown_3EC694[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; +const u8 Unknown_3EC6B4[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45}; +const u8 Unknown_3EC6D8[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29}; + +const u8 Unknown_3EC6F0[] = {0, 0, 0, 0}; +const u8 Unknown_3EC6F4[] = {0, 0, 1, 1, 0, 0, 1, 1}; +const u8 Unknown_3EC6FC[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2}; +const u8 Unknown_3EC708[] = {0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7}; +const u8 Unknown_3EC728[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3}; +const u8 Unknown_3EC738[] = {0, 0, 0, 0, 1, 1, 1, 1}; +const u8 Unknown_3EC740[] = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2}; +const u8 Unknown_3EC74C[] = {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3, 4, 4, 5, 5, 4, 4, 5, 5, 6, 6, 7, 7, 6, 6, 7, 7}; +const u8 Unknown_3EC76C[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 6, 6, 7, 7, 8, 8}; +const u8 Unknown_3EC790[] = {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5}; + +const u8 Unknown_3EC7A8[] = {4, 5, 6, 7}; +const u8 Unknown_3EC7AC[] = {4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC7B4[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC7C0[] = {4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC7E0[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC7F0[] = {4, 5, 6, 7, 4, 5, 6, 7}; +const u8 Unknown_3EC7F8[] = {4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7}; +const u8 Unknown_3EC804[] = {4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7, 4, 5, 4, 5, 6, 7, 6, 7}; +const u8 Unknown_3EC824[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; +const u8 Unknown_3EC848[] = {4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7}; + +const struct UnkStruct_803EC860 gUnknown_083EC860[] = { + {Unknown_3EC660, Unknown_3EC6F0, Unknown_3EC7A8, 0x4}, + {Unknown_3EC68C, Unknown_3EC6F4, Unknown_3EC7AC, 0x8}, + {Unknown_3EC664, Unknown_3EC6FC, Unknown_3EC7B4, 0xc}, + {Unknown_3EC694, Unknown_3EC708, Unknown_3EC7C0, 0x20}, + {Unknown_3EC670, Unknown_3EC728, Unknown_3EC7E0, 0x10}, + {Unknown_3EC68C, Unknown_3EC738, Unknown_3EC7F0, 0x8}, + {Unknown_3EC680, Unknown_3EC740, Unknown_3EC7F8, 0xc}, + {Unknown_3EC694, Unknown_3EC74C, Unknown_3EC804, 0x20}, + {Unknown_3EC6B4, Unknown_3EC76C, Unknown_3EC824, 0x24}, + {Unknown_3EC6D8, Unknown_3EC790, Unknown_3EC848, 0x18} +}; + +const struct UnkStruct_083EC900 gUnknown_083EC900[] = { + {0, 1, 0x78, 0x4e}, + {1, 2, 0x80, 0x4e}, + {1, 3, 0x90, 0x56}, + {1, 3, 0x90, 0x46}, + {0, 2, 0x80, 0x46}, + {2, 2, 0x78, 0x46}, + {2, 3, 0x80, 0x56}, + {2, 3, 0x80, 0x36}, + {0, 3, 0x90, 0x46}, + {1, 3, 0x90, 0x46} +}; + +const union AnimCmd gSpriteAnim_83EC928[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83EC930[] = { + gSpriteAnim_83EC928 +}; + +const struct SpriteFrameImage gSpriteImageTable_83EC934[] = { + {.data = gUnknown_02038900.image, .size = sizeof(gUnknown_02038900.image)} +}; + +const struct SpriteTemplate gSpriteTemplate_83EC93C = { + .tileTag = 0xffff, + .paletteTag = 3000, + .oam = &gUnknown_020391AC, + .anims = gSpriteAnimTable_83EC930, + .images = gSpriteImageTable_83EC934, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81009A8 +}; + +const struct SpritePalette gUnknown_083EC954 = {.data = (u16 *)&gUnknown_02038900.palette, .tag = 3000}; + +const struct YesNoFuncTable gUnknown_083EC95C = {.yesFunc = sub_81000C4, .noFunc = sub_810065C}; +const struct YesNoFuncTable gUnknown_083EC964 = {.yesFunc = sub_810026C, .noFunc = sub_810065C}; +const struct YesNoFuncTable gUnknown_083EC96C[] = { + {.yesFunc = sub_80FFAB0, .noFunc = sub_80FFB08}, + {.yesFunc = sub_8100F88, .noFunc = sub_8100FB4} +}; + +const u8 gUnknown_083EC97C[] = {4, 4, 4, 4, 0, 3, 3, 0}; +const u8 gUnknown_083EC984[] = {4, 4, 4, 4, 0, 4, 3, 0}; + +const u16 gUnknown_083EC98C[] = INCBIN_U16("graphics/unknown/83EC98C.gbapal"); +const u16 Unknown_3EC9AC[] = INCBIN_U16("graphics/unknown/83EC9AC.gbapal"); +const struct YesNoFuncTable gUnknown_083EC9CC = {.yesFunc = sub_810153C, .noFunc = sub_8100EEC}; +const struct YesNoFuncTable gUnknown_083EC9D4 = {.yesFunc = sub_8101590, .noFunc = sub_8100EEC}; +const u32 gSpriteImage_83EC9DC[] = INCBIN_U32("graphics/unknown_sprites/83EC9DC.4bpp"); +const struct SpritePalette gUnknown_083ECA5C = {.data = gUnknown_083EC98C, .tag = 8}; +const struct SpritePalette gUnknown_083ECA64 = {.data = Unknown_3EC9AC, .tag = 8}; +const struct OamData gOamData_83ECA6C = { + .size = 1, .priority = 1 +}; + +const union AnimCmd gSpriteAnim_83ECA74[] = { + ANIMCMD_FRAME(.imageValue = 0, .duration = 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83ECA7C[] = { + gSpriteAnim_83ECA74 +}; + +const struct SpriteFrameImage gSpriteImageTable_83ECA80[] = { + obj_frame_tiles(gSpriteImage_83EC9DC) +}; + +const struct SpriteTemplate gSpriteTemplate_83ECA88 = { + .tileTag = 0xffff, + .paletteTag = 8, + .oam = &gOamData_83ECA6C, + .anims = gSpriteAnimTable_83ECA7C, + .images = gSpriteImageTable_83ECA80, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8101698 +}; + +const struct YesNoFuncTable gUnknown_083ECAA0 = {.yesFunc = sub_8101848, .noFunc = sub_80FED3C}; + +u8 *const unref_label_083ECAA8[] = {gSharedMem}; + void sub_81008BC(struct UnkStruct_02038900 *unk_02038900) { u8 i; diff --git a/src/field/dewford_trend.c b/src/field/dewford_trend.c index b67f3a2bd..9afb7a16d 100644 --- a/src/field/dewford_trend.c +++ b/src/field/dewford_trend.c @@ -202,14 +202,14 @@ void sub_80FA4E4(void *a, u32 b, u8 unused) *(dst++) = *(src++); } -void sub_80FA5BC(void) +void BufferTrendyPhraseString(void) { struct EasyChatPair *s = &gSaveBlock1.easyChatPairs[gSpecialVar_0x8004]; ConvertEasyChatWordsToString(gStringVar1, s->words, 2, 1); } -void sub_80FA5E4(void) +void TrendyPhraseIsOld(void) { u16 result = 0; @@ -222,7 +222,7 @@ void sub_80FA5E4(void) gSpecialVar_Result = result; } -void sub_80FA648(void) +void GetDewfordHallPaintingNameIndex(void) { gSpecialVar_Result = (gSaveBlock1.easyChatPairs[0].words[0] + gSaveBlock1.easyChatPairs[0].words[1]) & 7; } diff --git a/src/field/easy_chat.c b/src/field/easy_chat.c index 1dce5863e..94532506f 100644 --- a/src/field/easy_chat.c +++ b/src/field/easy_chat.c @@ -314,7 +314,7 @@ void sub_80EB7C4(void) ShowFieldAutoScrollMessage(gStringVar4); } -void sub_80EB83C(void) +void BufferRandomHobbyOrLifestyleString(void) { u16 group, local2; diff --git a/src/field/event_data.c b/src/field/event_data.c index 587da8138..9d6d2372b 100644 --- a/src/field/event_data.c +++ b/src/field/event_data.c @@ -112,10 +112,10 @@ bool32 CanResetRTC(void) u16 *GetVarPointer(u16 id) { - if (id < 0x4000) + if (id < VARS_START) return NULL; if (id < 0x8000) - return &gSaveBlock1.vars[id - 0x4000]; + return &gSaveBlock1.vars[id - VARS_START]; return gSpecialVars[id - 0x8000]; } @@ -138,7 +138,7 @@ bool8 VarSet(u16 id, u16 value) u8 VarGetFieldObjectGraphicsId(u8 id) { - return VarGet(0x4010 + id); + return VarGet(VAR_OBJ_GFX_ID_0 + id); } u8 *GetFlagPointer(u16 id) diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c index cd7d3a2e2..52e66f16e 100644 --- a/src/field/field_control_avatar.c +++ b/src/field/field_control_avatar.c @@ -355,7 +355,7 @@ static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unuse case 5: case 6: case 7: - gSpecialVar_0x8004 = ((u32)bgEvent->bgUnion.script >> 16) + 0x258; + gSpecialVar_0x8004 = ((u32)bgEvent->bgUnion.script >> 16) + FLAG_HIDDEN_ITEMS_START; gSpecialVar_0x8005 = (u32)bgEvent->bgUnion.script; if (FlagGet(gSpecialVar_0x8004) == TRUE) return NULL; @@ -363,7 +363,7 @@ static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *position, u8 unuse case 8: if (c == 2) { - gSpecialVar_0x8004 = (u32)bgEvent->bgUnion.script; + gSpecialVar_0x8004 = bgEvent->bgUnion.secretBaseId; if (sub_80BC050()) return gUnknown_081A2C51; } @@ -493,7 +493,7 @@ bool8 sub_8068870(u16 a) bool8 sub_8068894(void) { - sub_8082B78(); + IncrementRematchStepCounter(); happiness_algorithm_step(); if (overworld_poison_step() == TRUE) { diff --git a/src/field/field_effect.c b/src/field/field_effect.c index 4337300da..1e2aaa4ed 100644 --- a/src/field/field_effect.c +++ b/src/field/field_effect.c @@ -310,114 +310,6 @@ void (*const gUnknown_0839F378[])(struct Task *) = { sub_8087914 }; -const u8 gUnknown_0839F380[] = {1, 3, 4, 2, 1}; - -void (*const gUnknown_0839F388[])(struct Task *) = { - sub_8087AA4, - sub_8087AC8 -}; - -void (*const gUnknown_0839F390[])(struct Task *) = { - sub_8087BEC, - sub_8087C14, - sub_8087CA4, - sub_8087D78 -}; - -void (*const gUnknown_0839F3A0[])(struct Task *) = { - sub_8087E4C, - sub_8087ED8, - sub_8087FDC -}; - -void (*const gUnknown_0839F3AC[])(struct Task *) = { - sub_8088150, - sub_80881C0, - sub_8088228, - sub_80882B4, - sub_80882E4, - sub_8088338, - sub_8088380 -}; - -void (*const gUnknown_0839F3C8[])(struct Task *) = { - sub_80884AC, - sub_80884E8, - sub_8088554, - sub_80885A8, - sub_80885D8, - sub_808860C, - sub_808862C -}; - -void (*const gUnknown_0839F3E4[])(struct Task *) = { - sub_8088984, - sub_80889E4, - sub_8088A30, - sub_8088A78, - sub_8088AF4 -}; - -void (*const gUnknown_0839F3F8[])(struct Task *) = { - sub_8088CA0, - sub_8088CF8, - sub_8088D3C, - sub_8088D94, - sub_8088DD8, - sub_8088E2C, - sub_8088EB4, - sub_8088F10, - sub_8088F30 -}; - -const union AffineAnimCmd SpriteAffineAnim_839F41C[] = { - AFFINEANIMCMD_FRAME(8, 8, -30, 0), - AFFINEANIMCMD_FRAME(28, 28, 0, 30), - AFFINEANIMCMD_END -}; - -const union AffineAnimCmd SpriteAffineAnim_839F434[] = { - AFFINEANIMCMD_FRAME(256, 256, 64, 0), - AFFINEANIMCMD_FRAME(-10, -10, 0, 22), - AFFINEANIMCMD_END -}; - -const union AffineAnimCmd *const gSpriteAffineAnimTable_0839F44C[] = { - SpriteAffineAnim_839F41C, - SpriteAffineAnim_839F434 -}; - -void (*const gUnknown_0839F454[])(struct Task *) = { - sub_80892A0, - sub_8089354, - sub_80893C0, - sub_8089414, - sub_808948C, - sub_80894C4, - fishE -}; - -const s16 gUnknown_0839F470[] = { - -2, - -4, - -5, - -6, - -7, - -8, - -8, - -8, - -7, - -7, - -6, - -5, - -3, - -2, - 0, - 2, - 4, - 8 -}; - static u8 sActiveList[32]; extern u8 *gFieldEffectScriptPointers[]; @@ -2100,8 +1992,7 @@ void sub_80878F4(struct Task *task) void sub_8087914(struct Task *task) { struct MapObject *mapObject; - u8 unknown_0839F380[5]; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; if (task->data[14] != 0 && (--task->data[14]) == 0) { sub_8053FF8(); @@ -2130,6 +2021,11 @@ void sub_8087914(struct Task *task) } } +void (*const gUnknown_0839F388[])(struct Task *) = { + sub_8087AA4, + sub_8087AC8 +}; + void sub_8087A74(u8); void mapldr_080859D4(void) @@ -2159,10 +2055,8 @@ void sub_8087AA4(struct Task *task) void sub_8087AC8(struct Task *task) { - struct MapObject *mapObject; - u8 unknown_0839F380[5]; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); - mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; if (task->data[1] == 0 || (--task->data[1]) == 0) { if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(mapObject) && !FieldObjectClearAnimIfSpecialAnimFinished(mapObject)) @@ -2195,6 +2089,13 @@ void sub_8087BA8(void) CreateTask(sub_8087BBC, 0); } +void (*const gUnknown_0839F390[])(struct Task *) = { + sub_8087BEC, + sub_8087C14, + sub_8087CA4, + sub_8087D78 +}; + void sub_8087BBC(u8 taskId) { gUnknown_0839F390[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -2211,10 +2112,8 @@ void sub_8087BEC(struct Task *task) void sub_8087C14(struct Task *task) { - struct MapObject *mapObject; - u8 unknown_0839F380[5]; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); - mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; if (task->data[1] == 0 || (--task->data[1]) == 0) { FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); @@ -2233,12 +2132,9 @@ void sub_8087C14(struct Task *task) void sub_8087CA4(struct Task *task) { - struct MapObject *mapObject; - struct Sprite *sprite; - u8 unknown_0839F380[5]; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); - mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; - sprite = &gSprites[gPlayerAvatar.spriteId]; + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; if ((--task->data[1]) <= 0) { task->data[1] = 4; @@ -2288,6 +2184,12 @@ void mapldr_08085D88(void) CreateTask(sub_8087E1C, 0); } +void (*const gUnknown_0839F3A0[])(struct Task *) = { + sub_8087E4C, + sub_8087ED8, + sub_8087FDC +}; + void sub_8087E1C(u8 taskId) { gUnknown_0839F3A0[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -2314,12 +2216,9 @@ void sub_8087E4C(struct Task *task) void sub_8087ED8(struct Task *task) { - u8 unknown_0839F380[5]; - struct MapObject *mapObject; - struct Sprite *sprite; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); - mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; - sprite = &gSprites[gPlayerAvatar.spriteId]; + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; if ((sprite->pos2.y += task->data[1]) >= -8) { if (task->data[13] == 0) @@ -2356,10 +2255,8 @@ void sub_8087ED8(struct Task *task) void sub_8087FDC(struct Task *task) { - u8 unknown_0839F380[5]; - struct MapObject *mapObject; - memcpy(unknown_0839F380, gUnknown_0839F380, sizeof gUnknown_0839F380); - mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; + u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; if ((--task->data[1]) == 0) { FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); @@ -2409,6 +2306,16 @@ bool8 FldEff_FieldMoveShowMonInit(void) return FALSE; } +void (*const gUnknown_0839F3AC[])(struct Task *) = { + sub_8088150, + sub_80881C0, + sub_8088228, + sub_80882B4, + sub_80882E4, + sub_8088338, + sub_8088380 +}; + void sub_8088120(u8 taskId) { gUnknown_0839F3AC[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -2565,6 +2472,16 @@ bool8 sub_8088708(struct Task *); void sub_80886F8(struct Task *); bool8 sub_80887C0(struct Task *); +void (*const gUnknown_0839F3C8[])(struct Task *) = { + sub_80884AC, + sub_80884E8, + sub_8088554, + sub_80885A8, + sub_80885D8, + sub_808860C, + sub_808862C +}; + void sub_808847C(u8 taskId) { gUnknown_0839F3C8[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -2884,6 +2801,14 @@ u8 FldEff_UseSurf(void) return FALSE; } +void (*const gUnknown_0839F3E4[])(struct Task *) = { + sub_8088984, + sub_80889E4, + sub_8088A30, + sub_8088A78, + sub_8088AF4 +}; + void sub_8088954(u8 taskId) { gUnknown_0839F3E4[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -3012,6 +2937,18 @@ u8 FldEff_UseFly(void) return 0; } +void (*const gUnknown_0839F3F8[])(struct Task *) = { + sub_8088CA0, + sub_8088CF8, + sub_8088D3C, + sub_8088D94, + sub_8088DD8, + sub_8088E2C, + sub_8088EB4, + sub_8088F10, + sub_8088F30 +}; + void sub_8088C70(u8 taskId) { gUnknown_0839F3F8[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -3170,6 +3107,23 @@ void sub_8088FFC(u8 a0, u8 a1) gSprites[a0].data[6] = a1; } +const union AffineAnimCmd SpriteAffineAnim_839F41C[] = { + AFFINEANIMCMD_FRAME(8, 8, -30, 0), + AFFINEANIMCMD_FRAME(28, 28, 0, 30), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd SpriteAffineAnim_839F434[] = { + AFFINEANIMCMD_FRAME(256, 256, 64, 0), + AFFINEANIMCMD_FRAME(-10, -10, 0, 22), + AFFINEANIMCMD_END +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_0839F44C[] = { + SpriteAffineAnim_839F41C, + SpriteAffineAnim_839F434 +}; + void sub_8089018(struct Sprite *sprite) { if (sprite->data[7] == 0) @@ -3282,6 +3236,16 @@ u8 FldEff_FlyIn(void) return 0; } +void (*const gUnknown_0839F454[])(struct Task *) = { + sub_80892A0, + sub_8089354, + sub_80893C0, + sub_8089414, + sub_808948C, + sub_80894C4, + fishE +}; + void sub_8089270(u8 taskId) { gUnknown_0839F454[gTasks[taskId].data[0]](&gTasks[taskId]); @@ -3333,10 +3297,27 @@ void sub_8089354(struct Task *task) void sub_80893C0(struct Task *task) { - s16 unknown_0839F470[18]; - struct Sprite *sprite; - memcpy(unknown_0839F470, gUnknown_0839F470, sizeof gUnknown_0839F470); - sprite = &gSprites[gPlayerAvatar.spriteId]; + s16 unknown_0839F470[18] = { + -2, + -4, + -5, + -6, + -7, + -8, + -8, + -8, + -7, + -7, + -6, + -5, + -3, + -2, + 0, + 2, + 4, + 8 + }; + struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; sprite->pos2.y = unknown_0839F470[task->data[2]]; if ((++task->data[2]) >= 18) { diff --git a/src/field/field_effect_helpers.c b/src/field/field_effect_helpers.c index 1d831d2e9..165829a55 100644 --- a/src/field/field_effect_helpers.c +++ b/src/field/field_effect_helpers.c @@ -31,50 +31,6 @@ static u32 ShowDisguiseFieldEffect(u8, u8, u8); const u8 UnusedEggString_8401E28[] = _("タマゴ"); -const u16 gUnknown_08401E2C[] = { - 0x0c, - 0x1c, - 0x2c -}; - -const u8 gUnknown_08401E32[] = { - 0, - 1, - 2, - 3 -}; - -const u16 gUnknown_08401E36[] = { - 4, - 4, - 4, - 16 -}; - -void (*const gUnknown_08401E40[])(struct Sprite *) = { - sub_81275A0, - sub_81275C4 -}; - -void (*const gUnknown_08401E48[])(struct Sprite *) = { - sub_8127DA0, - sub_8127DD0, - sub_8127E30 -}; - -const u8 gUnknown_08401E54[] = { - 0, - 0, - 1, - 2, - 3 -}; - -const u16 gUnknown_08401E5A[] = { - 3, - 7 -}; - void SetUpReflection(struct MapObject *mapObject, struct Sprite *sprite, bool8 flag) { struct Sprite *newSprite; @@ -107,9 +63,7 @@ static s16 sub_81268D0(struct MapObject *mapObject) static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite) { u8 whichElement; - u16 unk_8041e2c[ARRAY_COUNT(gUnknown_08401E2C)]; - - memcpy(unk_8041e2c, gUnknown_08401E2C, sizeof gUnknown_08401E2C); + u16 unk_8041e2c[] = {0x0c, 0x1c, 0x2c}; sprite->data[2] = 0; if (!GetFieldObjectGraphicsInfo(mapObject->graphicsId)->disableReflectionPaletteLoad && ((whichElement = sub_8057450(mapObject->mapobj_unk_1F)) || (whichElement = sub_8057450(mapObject->mapobj_unk_1E)))) { @@ -237,6 +191,20 @@ void sub_8126BC4(u8 spriteId, u8 animNum, s16 x, s16 y) } } +const u8 gUnknown_08401E32[] = { + 0, + 1, + 2, + 3 +}; + +const u16 gUnknown_08401E36[] = { + 4, + 4, + 4, + 16 +}; + u32 FldEff_Shadow(void) { u8 mapObjectId; @@ -589,6 +557,11 @@ u32 FldEff_BikeTireTracks(void) return spriteId; } +void (*const gUnknown_08401E40[])(struct Sprite *) = { + sub_81275A0, + sub_81275C4 +}; + void sub_8127584(struct Sprite *sprite) { gUnknown_08401E40[sprite->data[0]](sprite); @@ -917,6 +890,12 @@ u32 FldEff_Ash(void) return 0; } +void (*const gUnknown_08401E48[])(struct Sprite *) = { + sub_8127DA0, + sub_8127DD0, + sub_8127E30 +}; + void sub_8127D84(struct Sprite *sprite) { gUnknown_08401E48[sprite->data[0]](sprite); @@ -1018,9 +997,7 @@ void sub_8127F7C(struct Sprite *sprite) static void sub_8127FD4(struct MapObject *mapObject, struct Sprite *sprite) { - u8 unk_8041E54[ARRAY_COUNT(gUnknown_08401E54)]; - - memcpy(unk_8041E54, gUnknown_08401E54, sizeof gUnknown_08401E54); + u8 unk_8041E54[] = {0, 0, 1, 2, 3}; if (sub_8127F64(sprite) == 0) { StartSpriteAnimIfDifferent(sprite, unk_8041E54[mapObject->placeholder18]); @@ -1134,11 +1111,8 @@ __attribute__((naked)) static void sub_812800C(struct MapObject *mapObject, stru static void sub_81280A0(struct MapObject *mapObject, struct Sprite *linkedSprite, struct Sprite *sprite) { - u16 unk_8401E5A[ARRAY_COUNT(gUnknown_08401E5A)]; - u8 v0; - - memcpy(unk_8401E5A, gUnknown_08401E5A, sizeof gUnknown_08401E5A); - v0 = sub_8127F5C(sprite); + u16 unk_8401E5A[] = {3, 7}; + u8 v0 = sub_8127F5C(sprite); if (v0 != 0) { if (((u16)(++ sprite->data[4]) & unk_8401E5A[sprite->data[5]]) == 0) diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c index 829ce2dfa..5014e97e3 100644 --- a/src/field/field_fadetransition.c +++ b/src/field/field_fadetransition.c @@ -327,7 +327,7 @@ void sub_8080DC4(u8 taskId) } } -void atk17_seteffectuser(void) +void atk17_seteffectsecondary(void) { pal_fill_black(); CreateStartMenuTask(sub_8080DC4); diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c index 81c0c5854..ba7c3d68e 100644 --- a/src/field/field_map_obj.c +++ b/src/field/field_map_obj.c @@ -2020,7 +2020,7 @@ u8 GetFieldObjectIdByLocalId(u8 localId) #ifdef NONMATCHING u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 c) { - struct MapObject2 *mapObj; //TODO: resolve the mapobj_unk_19b weirdness + struct MapObject *mapObj; //TODO: resolve the mapobj_unk_19b weirdness u8 var; u16 r3; u16 r2; @@ -2029,8 +2029,8 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 if (GetAvailableFieldObjectSlot(template->localId, b, c, &var) != 0) return 16; //_0805ACCE - mapObj = (struct MapObject2 *)&gMapObjects[var]; - npc_clear_ids_and_state((struct MapObject *)mapObj); + mapObj = &gMapObjects[var]; + npc_clear_ids_and_state(mapObj); r3 = template->x + 7; r2 = template->y + 7; mapObj->active = TRUE; @@ -2048,8 +2048,8 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 mapObj->coords3.y = r2; mapObj->mapobj_unk_0B_0 = template->elevation; mapObj->elevation = template->elevation; - mapObj->mapobj_unk_19 = template->unkA_0; - mapObj->mapobj_unk_19b = template->unkA_4; + mapObj->range.as_nybbles.x = template->unkA_0; + mapObj->range.as_nybbles.y = template->unkA_4; mapObj->trainerType = template->unkC; mapObj->trainerRange_berryTreeId = template->unkE; mapObj->mapobj_unk_20 = gUnknown_0836DC09[template->movementType]; @@ -2058,10 +2058,10 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 //asm("":::"r5","r6"); if (gUnknown_0836DBBC[mapObj->animPattern] != 0) { - if (mapObj->mapobj_unk_19 == 0) - mapObj->mapobj_unk_19++; - if (mapObj->mapobj_unk_19b == 0) - mapObj->mapobj_unk_19b++; + if (mapObj->range.as_nybbles.x == 0) + mapObj->range.as_nybbles.x++; + if (mapObj->range.as_nybbles.y == 0) + mapObj->range.as_nybbles.y++; } return var; } @@ -5464,7 +5464,7 @@ u8 sub_805FF20(struct MapObject *mapObject, u8 direction) return npc_block_way(mapObject, x, y, direction); } -bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject2 *mapObject, s16 x, s16 y); +bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *mapObject, s16 x, s16 y); static bool8 DoesObjectCollideWithObjectAt(struct MapObject *mapObject, s16 x, s16 y); bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction); @@ -5472,7 +5472,7 @@ u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u32 dirn) { u8 direction; direction = dirn; - if (IsCoordOutsideFieldObjectMovementRect((struct MapObject2 *)mapObject, x, y)) + if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) return 1; else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction)) return 2; @@ -5489,7 +5489,7 @@ u8 sub_8060024(struct MapObject *mapObject, s16 x, s16 y, u8 direction) { u8 flags = 0; - if (IsCoordOutsideFieldObjectMovementRect((struct MapObject2 *)mapObject, x, y)) + if (IsCoordOutsideFieldObjectMovementRect(mapObject, x, y)) flags |= 1; if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction) || (mapObject->mapobj_bit_15 && !CanCameraMoveInDirection(direction))) flags |= 2; @@ -5500,22 +5500,22 @@ u8 sub_8060024(struct MapObject *mapObject, s16 x, s16 y, u8 direction) return flags; } -bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject2 *mapObject, s16 x, s16 y) +bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject *mapObject, s16 x, s16 y) { s16 minv; s16 maxv; - if (mapObject->mapobj_unk_19 != 0) + if (mapObject->range.as_nybbles.x != 0) { - minv = mapObject->coords1.x - (mapObject->mapobj_unk_19); - maxv = mapObject->coords1.x + (mapObject->mapobj_unk_19); + minv = mapObject->coords1.x - (mapObject->range.as_nybbles.x); + maxv = mapObject->coords1.x + (mapObject->range.as_nybbles.x); if (minv > x || maxv < x) return TRUE; } - if (mapObject->mapobj_unk_19b != 0) + if (mapObject->range.as_nybbles.y != 0) { - minv = mapObject->coords1.y - (mapObject->mapobj_unk_19b); - maxv = mapObject->coords1.y + (mapObject->mapobj_unk_19b); + minv = mapObject->coords1.y - (mapObject->range.as_nybbles.y); + maxv = mapObject->coords1.y + (mapObject->range.as_nybbles.y); if (minv > y || maxv < y) return TRUE; } diff --git a/src/field/field_map_obj_helpers.c b/src/field/field_map_obj_helpers.c index f1a113d44..328b66ed2 100644 --- a/src/field/field_map_obj_helpers.c +++ b/src/field/field_map_obj_helpers.c @@ -7,13 +7,92 @@ typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir); -extern s16 gUnknown_08376194[]; -extern SpriteStepFunc *gUnknown_08376180[]; -extern s8 *gUnknown_083761D0[]; -extern s16 gUnknown_083761DC[]; -extern u8 gUnknown_083761E2[]; -extern s16 gUnknown_083761E6[]; -extern u8 gUnknown_083761EC[]; +void Step1(struct Sprite *sprite, u8 dir); +void Step2(struct Sprite *sprite, u8 dir); +void Step3(struct Sprite *sprite, u8 dir); +void Step4(struct Sprite *sprite, u8 dir); +void Step8(struct Sprite *sprite, u8 dir); + +const SpriteStepFunc Unknown_83760F0[] = { + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1 +}; + +const SpriteStepFunc Unknown_8376130[] = { + Step2, + Step2, + Step2, + Step2, + Step2, + Step2, + Step2, + Step2 +}; + +const SpriteStepFunc Unknown_8376150[] = { + Step2, + Step3, + Step3, + Step2, + Step3, + Step3 +}; + +const SpriteStepFunc Unknown_8376168[] = { + Step4, + Step4, + Step4, + Step4 +}; + +const SpriteStepFunc Unknown_8376178[] = { + Step8, + Step8 +}; + +const SpriteStepFunc *const gUnknown_08376180[] = { + Unknown_83760F0, + Unknown_8376130, + Unknown_8376150, + Unknown_8376168, + Unknown_8376178 +}; + +const s16 gUnknown_08376194[] = { + 16, 8, 6, 4, 2 +}; + +const s8 Unknown_837619E[] = { + -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 +}; + +const s8 Unknown_83761AE[] = { + 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 +}; + +const s8 Unknown_83761BE[] = { + -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 +}; + +const s8 *const gUnknown_083761D0[] = { + Unknown_837619E, + Unknown_83761AE, + Unknown_83761BE +}; bool8 FreezeMapObject(struct MapObject *mapObject) { @@ -156,14 +235,9 @@ void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4) u8 sub_8064704(struct Sprite *sprite) { - u8 v2; - s16 v5[3]; - u8 v6[3]; - - memcpy(v5, gUnknown_083761DC, 6); - memcpy(v6, gUnknown_083761E2, 3); - - v2 = 0; + s16 v5[3] = {0x10, 0x10, 0x20}; + u8 v6[3] = {0, 0, 1}; + u8 v2 = 0; if (sprite->data[4]) Step1(sprite, sprite->data[3]); @@ -186,14 +260,9 @@ u8 sub_8064704(struct Sprite *sprite) u8 sub_806478C(struct Sprite *sprite) { - u8 v2; - s16 v5[3]; - u8 v6[3]; - - memcpy(v5, gUnknown_083761E6, 6); - memcpy(v6, gUnknown_083761EC, 3); - - v2 = 0; + s16 v5[3] = {0x20, 0x20, 0x40}; + u8 v6[3] = {1, 1, 2}; + u8 v2 = 0; if (sprite->data[4] && !(sprite->data[6] & 1)) Step1(sprite, sprite->data[3]); diff --git a/src/field/field_special_scene.c b/src/field/field_special_scene.c index 0b7fe336e..67b652a57 100644 --- a/src/field/field_special_scene.c +++ b/src/field/field_special_scene.c @@ -291,7 +291,7 @@ bool8 sub_80C7754(void) void Task_HandlePorthole(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 *var = GetVarPointer(VAR_PORTHOLE); + u16 *var = GetVarPointer(VAR_PORTHOLE_STATE); struct WarpData *location = &gSaveBlock1.location; switch (data[0]) @@ -337,8 +337,8 @@ void Task_HandlePorthole(u8 taskId) } break; case EXIT_PORTHOLE: // exit porthole. - FlagClear(0x4001); - FlagClear(0x4000); + FlagClear(FLAG_SPECIAL_FLAG_1); + FlagClear(FLAG_SPECIAL_FLAG_0); copy_saved_warp2_bank_and_enter_x_to_warp1(0); sp13E_warp_to_last_warp(); DestroyTask(taskId); @@ -352,7 +352,7 @@ void sub_80C78A0(void) gSprites[spriteId].coordOffsetEnabled = FALSE; - if (VarGet(0x40B4) == 2) + if (VarGet(VAR_PORTHOLE_STATE) == 2) { StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(4)); } @@ -374,8 +374,8 @@ void sub_80C791C(void) void sub_80C7958(void) { FlagSet(FLAG_SYS_CRUISE_MODE); - FlagSet(0x4001); - FlagSet(0x4000); + FlagSet(FLAG_SPECIAL_FLAG_1); + FlagSet(FLAG_SPECIAL_FLAG_0); saved_warp2_set(0, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1); sub_80C7754(); sub_8080F9C(); diff --git a/src/field/field_specials.c b/src/field/field_specials.c index 87a9e2d5d..fc6f690a3 100644 --- a/src/field/field_specials.c +++ b/src/field/field_specials.c @@ -99,13 +99,13 @@ u16 GetPlayerAvatarBike(void) return 0; } -static void DetermineCyclingRoadResults(u32 arg0, u8 arg1) +static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { u8 result; - if (arg1 <= 99) + if (numBikeCollisions <= 99) { - ConvertIntToDecimalStringN(gStringVar1, arg1, STR_CONV_MODE_LEFT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2); StringAppend(gStringVar1, gOtherText_Times); } else @@ -113,11 +113,11 @@ static void DetermineCyclingRoadResults(u32 arg0, u8 arg1) StringCopy(gStringVar1, gOtherText_99Times); } - if (arg0 < 3600) + if (numFrames < 3600) { - ConvertIntToDecimalStringN(gStringVar2, arg0 / 60, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2); gStringVar2[2] = CHAR_DECIMAL_SEPARATOR; - ConvertIntToDecimalStringN(&gStringVar2[3], ((arg0 % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2); StringAppend(gStringVar2, gOtherText_Seconds); } else @@ -126,44 +126,44 @@ static void DetermineCyclingRoadResults(u32 arg0, u8 arg1) } result = 0; - if (arg1 == 0) + if (numBikeCollisions == 0) { result = 5; } - else if (arg1 < 4) + else if (numBikeCollisions < 4) { result = 4; } - else if (arg1 < 10) + else if (numBikeCollisions < 10) { result = 3; } - else if (arg1 < 20) + else if (numBikeCollisions < 20) { result = 2; } - else if (arg1 < 100) + else if (numBikeCollisions < 100) { result = 1; } - if (arg0 / 60 <= 10) + if (numFrames / 60 <= 10) { result += 5; } - else if (arg0 / 60 <= 15) + else if (numFrames / 60 <= 15) { result += 4; } - else if (arg0 / 60 <= 20) + else if (numFrames / 60 <= 20) { result += 3; } - else if (arg0 / 60 <= 40) + else if (numFrames / 60 <= 40) { result += 2; } - else if (arg0 / 60 < 60) + else if (numFrames / 60 < 60) { result += 1; } @@ -173,36 +173,36 @@ static void DetermineCyclingRoadResults(u32 arg0, u8 arg1) } void FinishCyclingRoadChallenge(void) { - const u32 time = gMain.vblankCounter1 - gBikeCyclingTimer; + const u32 numFrames = gMain.vblankCounter1 - gBikeCyclingTimer; - DetermineCyclingRoadResults(time, gBikeCollisions); - RecordCyclingRoadResults(time, gBikeCollisions); + DetermineCyclingRoadResults(numFrames, gBikeCollisions); + RecordCyclingRoadResults(numFrames, gBikeCollisions); } -static void RecordCyclingRoadResults(u32 arg0, u8 arg1) { - u16 high = VarGet(0x4028); - u16 low = VarGet(0x4029); - u32 record = high + (low << 16); +static void RecordCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) { + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); - if (record > arg0 || record == 0) + if (framesRecord > numFrames || framesRecord == 0) { - VarSet(0x4028, arg0); - VarSet(0x4029, arg0 >> 16); - VarSet(0x4027, arg1); + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_L, numFrames); + VarSet(VAR_CYCLING_ROAD_RECORD_TIME_H, numFrames >> 16); + VarSet(VAR_CYCLING_ROAD_RECORD_COLLISIONS, numBikeCollisions); } } u16 GetRecordedCyclingRoadResults(void) { - u16 high = VarGet(0x4028); - u16 low = VarGet(0x4029); - u32 record = high + (low << 16); + u16 low = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_L); + u16 high = VarGet(VAR_CYCLING_ROAD_RECORD_TIME_H); + u32 framesRecord = low + (high << 16); - if (record == 0) + if (framesRecord == 0) { return FALSE; } - DetermineCyclingRoadResults(record, VarGet(0x4027)); + DetermineCyclingRoadResults(framesRecord, VarGet(VAR_CYCLING_ROAD_RECORD_COLLISIONS)); return TRUE; } @@ -212,9 +212,9 @@ void UpdateCyclingRoadState(void) { return; } - if (VarGet(0x40a9) == 2 || VarGet(0x40a9) == 3) + if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3) { - VarSet(0x40a9, 0); + VarSet(VAR_CYCLING_CHALLENGE_STATE, 0); Overworld_SetSavedMusic(SE_STOP); } } @@ -242,7 +242,7 @@ bool32 CountSSTidalStep(u16 delta) u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) { u16 *varCruiseStepCount = GetVarPointer(VAR_CRUISE_STEP_COUNT); - switch (*GetVarPointer(VAR_PORTHOLE)) + switch (*GetVarPointer(VAR_PORTHOLE_STATE)) { case 1: case 8: @@ -312,28 +312,23 @@ u8 GetLinkPartnerNames(void) return nLinkPlayers; } -const u8 gUnknown_083F8358[4] = {7, 9, 8, 10}; -const s8 gUnknown_083F835C[4][2] = { - { 0, 1}, - { 1, 0}, - { 0, -1}, - {-1, 0} -}; - void SpawnBerryBlenderLinkPlayerSprites(void) { - u8 unknown_083F8358[4]; - u8 unknown_083F835C[4][2]; + u8 j = 0; + s16 x = 0; + s16 y = 0; + u8 unknown_083F8358[] = {7, 9, 8, 10}; + s8 unknown_083F835C[][2] = { + { 0, 1}, + { 1, 0}, + { 0, -1}, + {-1, 0} + }; u8 myLinkPlayerNumber; u8 playerDirectionLowerNybble; u8 rivalAvatarGraphicsId; u8 i; - u8 j = 0; - s16 x = 0; - s16 y = 0; - memcpy(unknown_083F8358, gUnknown_083F8358, sizeof gUnknown_083F8358); - memcpy(unknown_083F835C, gUnknown_083F835C, sizeof gUnknown_083F835C); myLinkPlayerNumber = sub_8008218(); playerDirectionLowerNybble = player_get_direction_lower_nybble(); switch (playerDirectionLowerNybble) @@ -362,7 +357,7 @@ void SpawnBerryBlenderLinkPlayerSprites(void) if (myLinkPlayerNumber != i) { rivalAvatarGraphicsId = GetRivalAvatarGraphicsIdByStateIdAndGender(0, gLinkPlayers[i].gender); - SpawnSpecialFieldObjectParametrized(rivalAvatarGraphicsId, unknown_083F8358[j], 0xf0 - i, (s8)unknown_083F835C[j][0] + x + 7, (s8)unknown_083F835C[j][1] + y + 7, 0); + SpawnSpecialFieldObjectParametrized(rivalAvatarGraphicsId, unknown_083F8358[j], 0xf0 - i, unknown_083F835C[j][0] + x + 7, unknown_083F835C[j][1] + y + 7, 0); j++; if (j == 4) { @@ -693,7 +688,7 @@ void GetRivalSonDaughterString(void) } } -u8 sub_810E300(void) +u8 GetBattleOutcome(void) { return gBattleOutcome; } @@ -963,11 +958,11 @@ void EndLotteryCornerComputerEffect(void) } static void sub_810E874(void); -void sub_810E944(void); +void DisplayCurrentElevatorFloor(void); void sub_810E984(u8); bool8 sub_810EAC8(u8, u8); void sub_810EB90(u8, u8); -void sub_810EBEC(void); +void ShakeScreenInElevator(void); void sub_810EC34(u8); void sub_810EC9C(u8); void sub_810ECB0(void); @@ -1079,11 +1074,11 @@ static void sub_810E874(void) { MenuPrint(gUnknown_083F8380[gUnknown_03000760[i].var0], 1, 2 * i + 1); } - sub_810E944(); + DisplayCurrentElevatorFloor(); CreateTask(sub_810E984, 8); } -void sub_810E944(void) +void DisplayCurrentElevatorFloor(void) { MenuDrawTextWindow(20, 0, 29, 5); sub_8072BD8(gOtherText_NowOn, 21, 1, 64); @@ -1121,7 +1116,7 @@ void sub_810E984(u8 taskId) { gSpecialVar_Result = 1; gSpecialVar_0x8005 = gUnknown_0203925B; - sub_810EBEC(); + ShakeScreenInElevator(); FieldObjectTurnByLocalIdAndMap(gSpecialVar_LastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, DIR_SOUTH); sub_810EEDC(); MenuZeroFillScreen(); @@ -1305,7 +1300,7 @@ void sub_810EB90(u8 newPos, u8 maxItems) } } -void sub_810EBEC(void) +void ShakeScreenInElevator(void) { u8 taskId = CreateTask(sub_810EC34, 9); gTasks[taskId].data[0] = 1; @@ -1784,12 +1779,12 @@ void GetSecretBaseNearbyMapName(void) GetMapSectionName(gStringVar1, VarGet(VAR_SECRET_BASE_MAP), 0); } -u16 sub_810F404(void) +u16 GetBestBattleTowerStreak(void) { return GetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK); } -void sub_810F414(void) +void BufferEReaderTrainerName(void) { SetEReaderTrainerName(gStringVar1); } @@ -1798,7 +1793,7 @@ const u8 gUnknown_083F83E0[] = {12, 2, 4, 5, 1, 8, 7, 11, 3, 10, 9, 6}; const u8 gUnknown_083F83EC[] = {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5}; const u8 gUnknown_083F83F8[] = {3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5}; -u8 sub_810F424(void) +u8 GetSlotMachineId(void) { u32 v0 = gSaveBlock1.easyChatPairs[0].unk0_0 + gSaveBlock1.easyChatPairs[0].unk2 + gUnknown_083F83E0[gSpecialVar_0x8004]; if (GetPriceReduction(2)) @@ -1808,10 +1803,10 @@ u8 sub_810F424(void) return gUnknown_083F83EC[v0 % 12]; } -bool8 sub_810F488(void) +bool8 FoundAbandonedShipRoom1Key(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = 0x277; + u16 flag = FLAG_HIDDEN_ITEM_1F; *specVar = flag; if (!FlagGet(flag)) { @@ -1820,10 +1815,10 @@ bool8 sub_810F488(void) return TRUE; } -bool8 sub_810F4B0(void) +bool8 FoundAbandonedShipRoom2Key(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = 0x278; + u16 flag = FLAG_HIDDEN_ITEM_20; *specVar = flag; if (!FlagGet(flag)) { @@ -1832,10 +1827,10 @@ bool8 sub_810F4B0(void) return TRUE; } -bool8 sub_810F4D4(void) +bool8 FoundAbandonedShipRoom4Key(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = 0x279; + u16 flag = FLAG_HIDDEN_ITEM_21; *specVar = flag; if (!FlagGet(flag)) { @@ -1844,10 +1839,10 @@ bool8 sub_810F4D4(void) return TRUE; } -bool8 sub_810F4FC(void) +bool8 FoundAbandonedShipRoom6Key(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = 0x27a; + u16 flag = FLAG_HIDDEN_ITEM_22; *specVar = flag; if (!FlagGet(flag)) { @@ -1879,18 +1874,18 @@ bool8 ScrSpecial_AreLeadMonEVsMaxedOut(void) return FALSE; } -u8 sub_810F5BC(void) +u8 TryUpdateRusturfTunnelState(void) { if (!FlagGet(FLAG_RUSTURF_TUNNEL_OPENED) && gSaveBlock1.location.mapGroup == MAP_GROUP(RUSTURF_TUNNEL) && gSaveBlock1.location.mapNum == MAP_NUM(RUSTURF_TUNNEL)) { if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1)) { - VarSet(VAR_0x409a, 4); + VarSet(VAR_RUSTURF_TUNNEL_STATE, 4); return TRUE; } else if (FlagGet(FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2)) { - VarSet(VAR_0x409a, 5); + VarSet(VAR_RUSTURF_TUNNEL_STATE, 5); return TRUE; } } @@ -1919,7 +1914,7 @@ void PutZigzagoonInPlayerParty(void) bool8 IsStarterInParty(void) { u8 i; - u16 starter = GetStarterPokemon(VarGet(VAR_FIRST_POKE)); + u16 starter = GetStarterPokemon(VarGet(VAR_STARTER_MON)); u8 partyCount = CalculatePlayerPartyCount(); for (i = 0; i < partyCount; i++) { @@ -2000,9 +1995,9 @@ static void sub_810F814(u8 taskId) EnableBothScriptContexts(); } -bool8 sub_810F828(void) +bool8 FoundBlackGlasses(void) { - return FlagGet(FLAG_UNKNOWN_2B8); + return FlagGet(FLAG_HIDDEN_ITEM_BLACK_GLASSES); } void SetRoute119Weather(void) @@ -2045,10 +2040,10 @@ void sub_810F8FC(void) sub_805ADDC(6); } -u16 sub_810F908(void) +u16 GetDaysUntilPacifidlogTMAvailable(void) { - u16 var40c2 = VarGet(VAR_0x40C2); - if (gLocalTime.days - var40c2 >= 7) + u16 tmReceivedDay = VarGet(VAR_PACIFIDLOG_TM_RECEIVED_DAY); + if (gLocalTime.days - tmReceivedDay >= 7) { return 0; } @@ -2056,16 +2051,16 @@ u16 sub_810F908(void) { return 8; } - return 7 - (gLocalTime.days - var40c2); + return 7 - (gLocalTime.days - tmReceivedDay); } -u16 sub_810F950(void) +u16 SetPacifidlogTMReceivedDay(void) { - VarSet(VAR_0x40C2, gLocalTime.days); + VarSet(VAR_PACIFIDLOG_TM_RECEIVED_DAY, gLocalTime.days); return gLocalTime.days; } -bool8 sub_810F96C(void) +bool8 MonOTNameMatchesPlayer(void) { GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_NAME, gStringVar1); if (!StringCompareWithoutExtCtrlCodes(gSaveBlock2.playerName, gStringVar1)) @@ -2075,7 +2070,7 @@ bool8 sub_810F96C(void) return TRUE; } -void sub_810F9AC(void) +void BufferLottoTicketNumber(void) { if (gSpecialVar_Result >= 10000) { @@ -2114,64 +2109,64 @@ const u8 gUnknown_083F8408[] = {8, 9, 10, 11, 12, 13, 14, 15}; const u8 gUnknown_083F8410[] = {8, 13, 14, 11, 10, 12, 15, 9}; bool8 sub_810FF30(void); -void sub_810FCE8(void); +void UpdateMovedLilycoveFanClubMembers(void); void sub_810FF48(void); void sub_810FD80(void); -u16 sub_810FCB0(void); +u16 GetNumMovedLilycoveFanClubMembers(void); int sub_810FB9C(void); void ResetFanClub(void) { - gSaveBlock1.vars[0x41] = 0; - gSaveBlock1.vars[0x42] = 0; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = 0; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = 0; } void sub_810FA74(void) { if (sub_810FF30()) { - sub_810FCE8(); - gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours; + UpdateMovedLilycoveFanClubMembers(); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2.playTimeHours; } } void sub_810FAA0(void) { - if (!((gSaveBlock1.vars[0x41] >> 7) & 1)) + if (!((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 1)) { sub_810FF48(); sub_810FD80(); - gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours; - FlagClear(0x315); - FlagClear(0x316); - FlagClear(0x317); - FlagClear(0x318); - VarSet(VAR_0x4095, 1); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2.playTimeHours; + FlagClear(FLAG_HIDE_FANCLUB_OLD_LADY); + FlagClear(FLAG_HIDE_FANCLUB_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LITTLE_BOY); + FlagClear(FLAG_HIDE_FANCLUB_LADY); + VarSet(VAR_LILYCOVE_FAN_CLUB_STATE, 1); } } u8 sub_810FB10(u8 a0) { - if (VarGet(VAR_0x4095) == 2) + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) { - if ((gSaveBlock1.vars[0x41] & 0x7f) + gUnknown_083F8404[a0] >= 20) + if ((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7f) + gUnknown_083F8404[a0] >= 20) { - if (sub_810FCB0() < 3) + if (GetNumMovedLilycoveFanClubMembers() < 3) { sub_810FB9C(); - gSaveBlock1.vars[0x41] &= 0xff80; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xff80; } else { - gSaveBlock1.vars[0x41] = (gSaveBlock1.vars[0x41] & 0xff80) | 20; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xff80) | 20; } } else { - gSaveBlock1.vars[0x41] += gUnknown_083F8404[a0]; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] += gUnknown_083F8404[a0]; } } - return gSaveBlock1.vars[0x41] & 0x7f; + return gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0x7f; } int sub_810FB9C(void) @@ -2180,17 +2175,17 @@ int sub_810FB9C(void) int retval = 0; for (i=0; i<8; i++) { - if (!((gSaveBlock1.vars[0x41] >> gUnknown_083F8408[i]) & 0x01)) + if (!((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_083F8408[i]) & 0x01)) { retval = i; if (Random() & 1) { - gSaveBlock1.vars[0x41] |= (1 << gUnknown_083F8408[i]); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= (1 << gUnknown_083F8408[i]); return retval; } } } - gSaveBlock1.vars[0x41] |= (1 << gUnknown_083F8408[retval]); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= (1 << gUnknown_083F8408[retval]); return retval; } @@ -2198,85 +2193,86 @@ int sub_810FC18(void) { u8 i; int retval = 0; - if (sub_810FCB0() == TRUE) + if (GetNumMovedLilycoveFanClubMembers() == 1) { return 0; } for (i=0; i<8; i++) { - if ((gSaveBlock1.vars[0x41] >> gUnknown_083F8410[i]) & 1) + if ((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_083F8410[i]) & 1) { retval = i; if (Random() & 1) { - gSaveBlock1.vars[0x41] ^= (1 << gUnknown_083F8410[i]); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= (1 << gUnknown_083F8410[i]); return retval; } } } - if ((gSaveBlock1.vars[0x41] >> gUnknown_083F8410[retval]) & 1) + if ((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gUnknown_083F8410[retval]) & 1) { - gSaveBlock1.vars[0x41] ^= (1 << gUnknown_083F8410[retval]); + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] ^= (1 << gUnknown_083F8410[retval]); } return retval; } -u16 sub_810FCB0(void) +u16 GetNumMovedLilycoveFanClubMembers(void) { u8 i; u8 retval = 0; - for (i=0; i<8; i++) + for (i = 0; i < 8; i++) { - if ((gSaveBlock1.vars[0x41] >> (i + 8)) & 1) + if ((gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> (i + 8)) & 1) { - retval ++; + retval++; } } + return retval; } -void sub_810FCE8(void) +void UpdateMovedLilycoveFanClubMembers(void) { u8 i = 0; if (gSaveBlock2.playTimeHours < 999) { while (1) { - if (sub_810FCB0() < 5) + if (GetNumMovedLilycoveFanClubMembers() < 5) { - gSaveBlock1.vars[0x42] = gSaveBlock2.playTimeHours; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] = gSaveBlock2.playTimeHours; break; } else if (i == 8) { break; } - else if (gSaveBlock2.playTimeHours - gSaveBlock1.vars[0x42] < 12) + else if (gSaveBlock2.playTimeHours - gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] < 12) { return; } sub_810FC18(); - gSaveBlock1.vars[0x42] += 12; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_2 - VARS_START] += 12; i++; } } } -bool8 sub_810FD60(void) +bool8 ShouldMoveLilycoveFanClubMember(void) { - return (gSaveBlock1.vars[0x41] >> gSpecialVar_0x8004) & 0x01; + return (gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> gSpecialVar_0x8004) & 0x01; } void sub_810FD80(void) { - gSaveBlock1.vars[0x41] |= 0x2000; - gSaveBlock1.vars[0x41] |= 0x100; - gSaveBlock1.vars[0x41] |= 0x400; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x2000; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x100; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x400; } void sub_810FE1C(void *, u8, u8); -void sub_810FDAC(void) +void BufferStreakTrainerText(void) { u8 a = 0; u8 b = 0; @@ -2355,7 +2351,7 @@ void sub_810FE1C(void *linkRecords, u8 a, u8 b) void sub_810FEFC(void) { - if (VarGet(VAR_0x4095) == 2) + if (VarGet(VAR_LILYCOVE_FAN_CLUB_STATE) == 2) { sub_810FA74(); if (gBattleOutcome == 1) @@ -2371,12 +2367,12 @@ void sub_810FEFC(void) bool8 sub_810FF30(void) { - return (gSaveBlock1.vars[0x41] >> 7) & 0x01; + return (gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] >> 7) & 0x01; } void sub_810FF48(void) { - gSaveBlock1.vars[0x41] |= 0x80; + gSaveBlock1.vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] |= 0x80; } u8 sub_810FF60(void) diff --git a/src/field/field_tasks.c b/src/field/field_tasks.c index 108ba64ba..ce5fc6c0e 100644 --- a/src/field/field_tasks.c +++ b/src/field/field_tasks.c @@ -554,20 +554,20 @@ const u16 gUnknown_083763E4[] = { 0, 0, 0, - VAR_0x4001, - VAR_0x4002, - VAR_0x4003, - VAR_0x4004, + VAR_TEMP_1, + VAR_TEMP_2, + VAR_TEMP_3, + VAR_TEMP_4, 0, 0, - VAR_0x4005, - VAR_0x4006, - VAR_0x4007, + VAR_TEMP_5, + VAR_TEMP_6, + VAR_TEMP_7, 0, 0, - VAR_0x4008, - VAR_0x4009, - VAR_0x400A, + VAR_TEMP_8, + VAR_TEMP_9, + VAR_TEMP_A, 0, 0, 0, @@ -608,14 +608,14 @@ bool32 sub_8069D34(s16 x, s16 y) return FALSE; } -void sub_8069D78(void) +void SetSootopolisGymCrackedIceMetatiles(void) { s32 x, y; s32 width = gMapHeader.mapData->width; s32 height = gMapHeader.mapData->height; - for (x=0; x<width; x++) + for (x = 0; x < width; x++) { - for (y=0; y<height; y++) + for (y = 0; y < height; y++) { if (sub_8069D34(x, y) == TRUE) { diff --git a/src/field/field_weather.c b/src/field/field_weather.c index 19ccca3bf..4a819bddf 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -5,6 +5,7 @@ #include "palette.h" #include "random.h" #include "script.h" +#include "constants/weather.h" #include "constants/songs.h" #include "sound.h" #include "sprite.h" @@ -397,31 +398,31 @@ void sub_807CCAC(void) case WEATHER_RAIN_MED: case WEATHER_RAIN_HEAVY: case WEATHER_SNOW: - case 11: + case WEATHER_DARK: if (sub_807CDC4() == 0) { gWeatherPtr->unknown_6C0 = 3; gWeatherPtr->unknown_6C6 = 3; } break; - case 12: + case WEATHER_DROUGHT: if (sub_807CE24() == 0) { gWeatherPtr->unknown_6C0 = -6; gWeatherPtr->unknown_6C6 = 3; } break; - case 6: + case WEATHER_FOG_1: if (sub_807CE7C() == 0) { gWeatherPtr->unknown_6C0 = 0; gWeatherPtr->unknown_6C6 = 3; } break; - case 7: - case 8: - case 9: - case 10: + case WEATHER_ASH: + case WEATHER_SANDSTORM: + case WEATHER_FOG_2: + case WEATHER_FOG_3: default: if (!gPaletteFade.active) { @@ -807,9 +808,9 @@ void fade_screen(u8 a, u8 delay) case WEATHER_RAIN_MED: case WEATHER_RAIN_HEAVY: case WEATHER_SNOW: - case 6: - case 11: - case 12: + case WEATHER_FOG_1: + case WEATHER_DARK: + case WEATHER_DROUGHT: r2 = 1; break; default: @@ -854,7 +855,7 @@ void sub_807D78C(u8 a) case 1: if (gWeatherPtr->unknown_6CA != 0) { - if (gWeatherPtr->currWeather == 6) + if (gWeatherPtr->currWeather == WEATHER_FOG_1) sub_807D540(r4); r4 *= 16; for (i = 0; i < 16; i++) @@ -867,7 +868,7 @@ void sub_807D78C(u8 a) BlendPalette(r4, 16, gPaletteFade.y, gPaletteFade.blendColor); break; default: - if (gWeatherPtr->currWeather != 6) + if (gWeatherPtr->currWeather != WEATHER_FOG_1) { sub_807CEBC(r4, 1, gWeatherPtr->unknown_6C0); } diff --git a/src/field/field_weather_effects.c b/src/field/field_weather_effects.c index 31eda4393..5a59d6c2a 100644 --- a/src/field/field_weather_effects.c +++ b/src/field/field_weather_effects.c @@ -4,6 +4,7 @@ #include "overworld.h" #include "random.h" #include "script.h" +#include "constants/weather.h" #include "constants/songs.h" #include "sound.h" #include "sprite.h" diff --git a/src/field/fldeff_secret_base_pc.c b/src/field/fldeff_secret_base_pc.c index 8d71a4fb9..394c4bc56 100644 --- a/src/field/fldeff_secret_base_pc.c +++ b/src/field/fldeff_secret_base_pc.c @@ -60,7 +60,7 @@ void DoSecretBasePCTurnOffEffect(void) GetXYCoordsOneStepInFrontOfPlayer(&x, &y); PlaySE(SE_PC_OFF); - if (!VarGet(VAR_0x4054)) + if (!VarGet(VAR_CURRENT_SECRET_BASE)) MapGridSetMetatileIdAt(x, y, 3616); else MapGridSetMetatileIdAt(x, y, 3617); diff --git a/src/field/item_menu.c b/src/field/item_menu.c index 4e283ffe9..e9b8b24d3 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -153,7 +153,7 @@ static const u8 *sPopupMenuActionList; // common void (*gFieldItemUseCallback)(u8) = NULL; -extern u16 gUnknown_030041B4; +extern u16 gBattle_BG1_Y; extern struct PocketScrollState gBagPocketScrollStates[]; extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots extern const u8 Event_NoRegisteredItem[]; @@ -4499,7 +4499,7 @@ u8 CreateBerrySprite(u8 berryId, s16 x, s16 y) static void SpriteCB_BerrySprite(struct Sprite *sprite) { - sprite->pos2.y = -gUnknown_030041B4; + sprite->pos2.y = -gBattle_BG1_Y; } void sub_80A7DD4(void) diff --git a/src/field/item_use.c b/src/field/item_use.c index 37cd8ba78..e1fdddce0 100644 --- a/src/field/item_use.c +++ b/src/field/item_use.c @@ -14,6 +14,7 @@ #include "fieldmap.h" #include "item.h" #include "item_menu.h" +#include "constants/flags.h" #include "constants/items.h" #include "mail.h" #include "main.h" @@ -328,7 +329,7 @@ bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId) for (i = 0; i < events->bgEventCount; i++) { - if ((events -> bgEvents[i].kind == 7) && !FlagGet(events -> bgEvents[i].bgUnion.hiddenItem.hiddenItemId + 600)) + if ((events -> bgEvents[i].kind == 7) && !FlagGet(events -> bgEvents[i].bgUnion.hiddenItem.hiddenItemId + FLAG_HIDDEN_ITEMS_START)) { // do a distance lookup of each item so long as the index remains less than the objects on the current map. distanceX = (u16)events -> bgEvents[i].x + 7; @@ -360,7 +361,7 @@ bool8 HiddenItemAtPos(struct MapEvents *events, s16 x, s16 y) { if (bgEvent[i].kind == 7 && x == (u16)bgEvent[i].x && y == (u16)bgEvent[i].y) // hidden item and coordinates matches x and y passed? { - if (!FlagGet(bgEvent[i].bgUnion.hiddenItem.hiddenItemId + 600)) + if (!FlagGet(bgEvent[i].bgUnion.hiddenItem.hiddenItemId + FLAG_HIDDEN_ITEMS_START)) return TRUE; else return FALSE; @@ -921,7 +922,7 @@ static void PrepareItemUseMessage(void) void ItemUseOutOfBattle_Repel(u8 var) { - if (VarGet(VAR_REPEL_STEP_COUNT) == FALSE) + if (VarGet(VAR_REPEL_STEP_COUNT) == 0) { VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); PrepareItemUseMessage(); diff --git a/src/field/lottery_corner.c b/src/field/lottery_corner.c index 83febc56e..03de26054 100644 --- a/src/field/lottery_corner.c +++ b/src/field/lottery_corner.c @@ -30,7 +30,7 @@ void ResetLotteryCorner(void) u16 rand = Random(); SetLotteryNumber((Random() << 16) | rand); - VarSet(VAR_POKELOT_PRIZE, 0); + VarSet(VAR_LOTTERY_PRIZE, 0); } void SetRandomLotteryNumber(u16 i) @@ -152,19 +152,19 @@ static u8 GetMatchingDigits(u16 winNumber, u16 otId) // lottery numbers go from 0 to 99999, not 65535 (0xFFFF). interestingly enough, the function that calls GetLotteryNumber shifts to u16, so it cant be anything above 65535 anyway. void SetLotteryNumber(u32 lotteryNum) { - u16 lowNum = lotteryNum >> 16; - u16 highNum = lotteryNum; + u16 high = lotteryNum >> 16; + u16 low = lotteryNum; - VarSet(VAR_POKELOT_RND1, highNum); - VarSet(VAR_POKELOT_RND2, lowNum); + VarSet(VAR_LOTTERY_RND_L, low); + VarSet(VAR_LOTTERY_RND_H, high); } u32 GetLotteryNumber(void) { - u16 highNum = VarGet(VAR_POKELOT_RND1); - u16 lowNum = VarGet(VAR_POKELOT_RND2); + u16 low = VarGet(VAR_LOTTERY_RND_L); + u16 high = VarGet(VAR_LOTTERY_RND_H); - return (lowNum << 16) | highNum; + return (high << 16) | low; } // interestingly, this may have been the original lottery number set function, but GF tried to change it to 32-bit later but didnt finish changing all calls as one GetLotteryNumber still shifts to u16. diff --git a/src/field/map_name_popup.c b/src/field/map_name_popup.c index 01105d0db..2e2dfc72e 100644 --- a/src/field/map_name_popup.c +++ b/src/field/map_name_popup.c @@ -19,7 +19,7 @@ bool8 unref_sub_80A2F44(void) void ShowMapNamePopup(void) { - if (FlagGet(0x4000) != TRUE) + if (FlagGet(FLAG_SPECIAL_FLAG_0) != TRUE) { if (!FuncIsActiveTask(Task_MapNamePopup)) { diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 30f6f5233..4db513f65 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -10,6 +10,7 @@ #include "overworld.h" #include "random.h" #include "script.h" +#include "constants/map_objects.h" #include "constants/songs.h" #include "sound.h" #include "string_util.h" @@ -974,7 +975,7 @@ static void Task_BardSong(u8 taskId) void sub_80F83D0(void) { - VarSet(0x4010, 0x45 + GetCurrentMauvilleOldMan()); + VarSet(VAR_OBJ_GFX_ID_0, MAP_OBJ_GFX_BARD + GetCurrentMauvilleOldMan()); } struct Story diff --git a/src/field/money.c b/src/field/money.c index f277ac905..d0f0ab1f6 100644 --- a/src/field/money.c +++ b/src/field/money.c @@ -291,12 +291,12 @@ void CloseMoneyWindow(u8 x, u8 y) MenuZeroFillWindowRect(x, y, x + 13, y + 3); } -bool8 sub_80B7CE8(void) +bool8 HasEnoughMoneyFor(void) { return IsEnoughMoney(gSaveBlock1.money, gSpecialVar_0x8005); } -void sub_80B7D0C(void) +void PayMoneyFor(void) { RemoveMoney(&gSaveBlock1.money, gSpecialVar_0x8005); } diff --git a/src/field/overworld.c b/src/field/overworld.c index 834a2afa4..e239daec7 100644 --- a/src/field/overworld.c +++ b/src/field/overworld.c @@ -287,7 +287,7 @@ void LoadMapObjTemplatesFromHeader(void) { // Clear map object templates CpuFill32(0, gSaveBlock1.mapObjectTemplates, sizeof(gSaveBlock1.mapObjectTemplates)); - + // Copy map header events to save block CpuCopy32(gMapHeader.events->mapObjects, gSaveBlock1.mapObjectTemplates, @@ -600,7 +600,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum) ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); prev_quest_postbuffer_cursor_backup_reset(); - sub_8082BD0(mapGroup, mapNum); + TryUpdateRandomTrainerRematches(mapGroup, mapNum); DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); @@ -635,7 +635,7 @@ void sub_8053994(u32 a1) ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); prev_quest_postbuffer_cursor_backup_reset(); - sub_8082BD0(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum); + TryUpdateRandomTrainerRematches(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum); if (a1 != 1) DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); @@ -816,7 +816,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp) { - if (VarGet(VAR_WEATHER_INSTITUTE_CLEARED)) + if (VarGet(VAR_WEATHER_INSTITUTE_STATE)) return FALSE; if (warp->mapGroup != MAP_GROUP(ROUTE119_WEATHER_INSTITUTE_1F)) return FALSE; @@ -981,7 +981,7 @@ static void PlayAmbientCry(void) s16 x, y; s8 pan; s8 volume; - + PlayerGetDestCoords(&x, &y); if (sIsAmbientCryWaterMon == TRUE && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) @@ -1158,7 +1158,7 @@ void OverworldBasic(void) sub_8072EDC(); } -// This CB2 is used when starting +// This CB2 is used when starting void CB2_OverworldBasic(void) { OverworldBasic(); @@ -1329,7 +1329,7 @@ void sub_805465C(void) void sub_805469C(void) { FieldClearVBlankHBlankCallbacks(); - gFieldCallback = atk17_seteffectuser; + gFieldCallback = atk17_seteffectsecondary; c2_exit_to_overworld_2_switch(); } @@ -2430,7 +2430,7 @@ void SpawnLinkPlayerMapObject(u8 linkPlayerId, s16 x, s16 y, u8 a4) mapObj->active = 1; mapObj->mapobj_bit_1 = a4; - mapObj->mapobj_unk_19 = 2; + mapObj->range.as_byte = 2; mapObj->spriteId = 64; InitLinkPlayerMapObjectPos(mapObj, x, y); @@ -2453,7 +2453,7 @@ void unref_sub_8055A6C(u8 linkPlayerId, u8 a2) { u8 mapObjId = gLinkPlayerMapObjects[linkPlayerId].mapObjId; struct MapObject *mapObj = &gMapObjects[mapObjId]; - mapObj->mapobj_unk_19 = a2; + mapObj->range.as_byte = a2; } } @@ -2487,7 +2487,7 @@ u8 sub_8055B30(u8 linkPlayerId) { u8 mapObjId = gLinkPlayerMapObjects[linkPlayerId].mapObjId; struct MapObject *mapObj = &gMapObjects[mapObjId]; - return mapObj->mapobj_unk_19; + return mapObj->range.as_byte; } u8 sub_8055B50(u8 linkPlayerId) @@ -2559,10 +2559,10 @@ static u8 sub_8055CB0(struct LinkPlayerMapObject *linkPlayerMapObj, struct MapOb { s16 x, y; - mapObj->mapobj_unk_19 = npc_something3(a3, mapObj->mapobj_unk_19); - FieldObjectMoveDestCoords(mapObj, mapObj->mapobj_unk_19, &x, &y); + mapObj->range.as_byte = npc_something3(a3, mapObj->range.as_byte); + FieldObjectMoveDestCoords(mapObj, mapObj->range.as_byte, &x, &y); - if (LinkPlayerDetectCollision(linkPlayerMapObj->mapObjId, mapObj->mapobj_unk_19, x, y)) + if (LinkPlayerDetectCollision(linkPlayerMapObj->mapObjId, mapObj->range.as_byte, x, y)) { return 0; } @@ -2577,7 +2577,7 @@ static u8 sub_8055CB0(struct LinkPlayerMapObject *linkPlayerMapObj, struct MapOb static u8 sub_8055D18(struct LinkPlayerMapObject *linkPlayerMapObj, struct MapObject *mapObj, u8 a3) { - mapObj->mapobj_unk_19 = npc_something3(a3, mapObj->mapobj_unk_19); + mapObj->range.as_byte = npc_something3(a3, mapObj->range.as_byte); return 0; } @@ -2590,7 +2590,7 @@ static void sub_8055D38(struct LinkPlayerMapObject *linkPlayerMapObj, struct Map { mapObj->mapobj_unk_21--; linkPlayerMapObj->mode = 1; - MoveCoords(mapObj->mapobj_unk_19, &mapObj->coords1.x, &mapObj->coords1.y); + MoveCoords(mapObj->range.as_byte, &mapObj->coords1.x, &mapObj->coords1.y); if (!mapObj->mapobj_unk_21) { npc_coords_shift_still(mapObj); @@ -2662,9 +2662,9 @@ void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(mapObj->elevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(mapObj->elevation); if (!linkPlayerMapObj->mode) - StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(mapObj->mapobj_unk_19)); + StartSpriteAnim(sprite, FieldObjectDirectionToImageAnimId(mapObj->range.as_byte)); else - StartSpriteAnimIfDifferent(sprite, get_go_image_anim_num(mapObj->mapobj_unk_19)); + StartSpriteAnimIfDifferent(sprite, get_go_image_anim_num(mapObj->range.as_byte)); sub_806487C(sprite, 0); if (mapObj->mapobj_bit_2) { diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 089f93f9e..9c1150515 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -436,34 +436,6 @@ static const struct PartyMenuHandlersStruct PartyMenuHandlers[] = { {HandleMoveTutorPartyMenu, SetupMoveTutorPartyMenu, 0}, // PARTY_MENU_TYPE_MOVE_TUTOR }; -static const u16 gUnknown_08376CD4[] = { - 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, - 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, -}; - -static const u16 gUnknown_08376CEC[] = { - 0x2A, 0x0B, 0x0C, 0x0D, 0x0E, 0x2F, - 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, -}; - -static const u8 *const StatNames[] = { - gOtherText_HP, - gOtherText_Attack, - gOtherText_Defense, - gOtherText_SpAtk, - gOtherText_SpDef, - gOtherText_Speed, -}; - -static const u8 StatDataTypes[] = { - MON_DATA_MAX_HP, - MON_DATA_ATK, - MON_DATA_DEF, - MON_DATA_SPATK, - MON_DATA_SPDEF, - MON_DATA_SPEED, -}; - struct Unk201C000 { /*0x00*/ struct Pokemon *pokemon; @@ -1227,12 +1199,11 @@ void sub_806BB3C(s16 a, u16 b) void sub_806BB9C(u8 a) { u8 i; - u16 *vramPtr; - const u16 arr[12]; - - memcpy(&arr, gUnknown_08376CD4, sizeof gUnknown_08376CD4); - - vramPtr = (u16 *)(BG_VRAM + 0x3C30); + u16 arr[12] = { + 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, + 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, + }; + u16 *vramPtr = (u16 *)(BG_VRAM + 0x3C30); for (i = 0; i < PARTY_SIZE; i++) { vramPtr[i] = arr[i] + (a << 12); @@ -1243,12 +1214,11 @@ void sub_806BB9C(u8 a) void sub_806BBEC(u8 a) { u8 i; - u16 *vramPtr; - const u16 arr[12]; - - memcpy(&arr, gUnknown_08376CEC, sizeof gUnknown_08376CEC); - - vramPtr = (u16 *)(BG_VRAM + 0x3CB0); + u16 arr[12] = { + 0x2A, 0x0B, 0x0C, 0x0D, 0x0E, 0x2F, + 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + }; + u16 *vramPtr = (u16 *)(BG_VRAM + 0x3CB0); for (i = 0; i < PARTY_SIZE; i++) { vramPtr[i] = arr[i] + (a << 12); @@ -4910,6 +4880,23 @@ void DoPPUpItemEffect(u8 taskId, u16 b, TaskFunc c) gMain.newKeys = 0; } +static const u8 *const StatNames[] = { + gOtherText_HP, + gOtherText_Attack, + gOtherText_Defense, + gOtherText_SpAtk, + gOtherText_SpDef, + gOtherText_Speed, +}; + +static const u8 StatDataTypes[] = { + MON_DATA_MAX_HP, + MON_DATA_ATK, + MON_DATA_DEF, + MON_DATA_SPATK, + MON_DATA_SPDEF, + MON_DATA_SPEED, +}; void DoRareCandyItemEffect(u8 taskId, u16 b, TaskFunc c) { u8 i; diff --git a/src/field/player_pc.c b/src/field/player_pc.c index d92d13ce4..4fef09386 100644 --- a/src/field/player_pc.c +++ b/src/field/player_pc.c @@ -171,15 +171,6 @@ static const u8 gNonSelectedItemQuantityFormatText[] = _("{STR_VAR_1}"); static const u8 gSelectedItemQuantityFormatText[] = _("{COLOR RED}{STR_VAR_1}"); static const u8 gUnknown_08406330[] = _("{CLEAR_TO 32}"); -static const u16 gUnknown_08406334[3] = -{ - 0x5294, - 0x6B5A, - 0x7FFF -}; - -static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); - extern u8 *gUnknown_02039314; extern struct MenuAction gUnknown_08406298[]; @@ -205,8 +196,8 @@ void NewGameInitPCItems(void) u8 i; // because Game Freak don't know how to use a struct or a 2d array - for(i = 0, ClearItemSlots(gSaveBlock1.pcItems, ARRAY_COUNT(gSaveBlock1.pcItems)); NEW_GAME_PC_ITEMS(i, ITEM_ID) && NEW_GAME_PC_ITEMS(i, QUANTITY) && - AddPCItem(NEW_GAME_PC_ITEMS(i, ITEM_ID), NEW_GAME_PC_ITEMS(i, QUANTITY)) == TRUE; i++) + for(i = 0, ClearItemSlots(gSaveBlock1.pcItems, ARRAY_COUNT(gSaveBlock1.pcItems)); NEW_GAME_PC_ITEMS(i, PC_ITEM_ID) && NEW_GAME_PC_ITEMS(i, PC_QUANTITY) && + AddPCItem(NEW_GAME_PC_ITEMS(i, PC_ITEM_ID), NEW_GAME_PC_ITEMS(i, PC_QUANTITY)) == TRUE; i++) ; } @@ -1007,9 +998,12 @@ static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) static void ItemStorage_LoadPalette(void) { - u16 arr[3]; + u16 arr[] = { + 0x5294, + 0x6B5A, + 0x7FFF + }; - memcpy(arr, gUnknown_08406334, sizeof(arr)); LoadPalette(&arr[2], 0xDF, 2); LoadPalette(&arr[1], 0xD1, 2); LoadPalette(&arr[0], 0xD8, 2); @@ -1261,6 +1255,8 @@ static void Mailbox_ReturnToFieldFromReadMail(void) SetMainCallback2(c2_exit_to_overworld_2_switch); } +static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); + static void Mailbox_MoveToBag(u8 taskId) { HandleDestroyMenuCursors(); diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c index 4a904fbb1..640d4731f 100644 --- a/src/field/pokeblock.c +++ b/src/field/pokeblock.c @@ -426,7 +426,7 @@ void sub_810BADC(void) SetMainCallback2(sub_810B96C); } -void sub_810BAF4(void) +void OpenPokeblockCaseOnFeeder(void) { sub_810BA7C(3); SetMainCallback2(sub_810B96C); @@ -1041,7 +1041,7 @@ u8 sub_810C9E8(struct Pokeblock *pokeblock) return feel; } -s8 sub_810CA00(void) +s8 GetFirstFreePokeblockSlot(void) { u8 i; for (i=0; i<ARRAY_COUNT(gSaveBlock1.pokeblocks); i++) @@ -1056,7 +1056,7 @@ s8 sub_810CA00(void) bool8 sub_810CA34(struct Pokeblock *pokeblock) { - s8 idx = sub_810CA00(); + s8 idx = GetFirstFreePokeblockSlot(); if (idx == -1) { return FALSE; diff --git a/src/field/scrcmd.c b/src/field/scrcmd.c index d5fc56e8d..05a909e81 100644 --- a/src/field/scrcmd.c +++ b/src/field/scrcmd.c @@ -1722,7 +1722,7 @@ bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx) { u16 index = VarGet(ScriptReadHalfword(ctx)); - trainer_flag_set(index); + SetTrainerFlag(index); return FALSE; } @@ -1730,7 +1730,7 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx) { u16 index = VarGet(ScriptReadHalfword(ctx)); - trainer_flag_clear(index); + ClearTrainerFlag(index); return FALSE; } diff --git a/src/field/secret_base.c b/src/field/secret_base.c index 7589ab1e3..2e4138a3b 100644 --- a/src/field/secret_base.c +++ b/src/field/secret_base.c @@ -180,7 +180,7 @@ void sub_80BB5E4(void) if (gUnknown_020387DC != gSaveBlock1.secretBases[i].secretBaseId) continue; gSpecialVar_Result = 1; - VarSet(VAR_0x4054, i); + VarSet(VAR_CURRENT_SECRET_BASE, i); break; } } @@ -284,7 +284,7 @@ void sub_80BB8CC(void) for (idx=0; idx<4; idx++) { gSaveBlock1.secretBases[0].trainerId[idx] = gSaveBlock2.playerTrainerId[idx]; } - VarSet(VAR_0x4054, 0); + VarSet(VAR_CURRENT_SECRET_BASE, 0); nameLength = sub_80BB8A8(gSaveBlock2.playerName); memset(gSaveBlock1.secretBases[0].playerName, 0xFF, OT_NAME_LENGTH); StringCopyN(gSaveBlock1.secretBases[0].playerName, gSaveBlock2.playerName, nameLength); @@ -333,7 +333,7 @@ void sub_80BBA48(u8 taskid) } break; case 2: - curbaseid = VarGet(VAR_0x4054); + curbaseid = VarGet(VAR_CURRENT_SECRET_BASE); if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff) gSaveBlock1.secretBases[curbaseid].sbr_field_10++; sub_80BBA14(); @@ -412,7 +412,7 @@ void sub_80BBCCC(u8 flagIn) u16 curBaseId; u16 x, y; if (CurrentMapIsSecretBase()) { - curBaseId = VarGet(VAR_0x4054); + curBaseId = VarGet(VAR_CURRENT_SECRET_BASE); for (x=0; x<16; x++) { if (gSaveBlock1.secretBases[curBaseId].decorations[x] > 0 && gSaveBlock1.secretBases[curBaseId].decorations[x] <= 0x78 && gDecorations[gSaveBlock1.secretBases[curBaseId].decorations[x]].permission != DECORPERM_SOLID_MAT) { sub_80FF394((gSaveBlock1.secretBases[curBaseId].decorationPos[x] >> 4) + 7, (gSaveBlock1.secretBases[curBaseId].decorationPos[x] & 0xF) + 7, gSaveBlock1.secretBases[curBaseId].decorations[x]); @@ -437,7 +437,7 @@ void sub_80BBDD0(void) u8 metatile; u8 permission; u8 ndecor; - u16 curBase = VarGet(VAR_0x4054); + u16 curBase = VarGet(VAR_CURRENT_SECRET_BASE); if (!CurrentMapIsSecretBase()) { roomdecor = gSaveBlock1.playerRoomDecor; roomdecorpos = gSaveBlock1.playerRoomDecorPos; @@ -478,8 +478,8 @@ void sub_80BBDD0(void) void sub_80BBFA4(void) { - int curBase = VarGet(VAR_0x4054); - VarSet(VAR_0x401F, gUnknown_083D13EC[sub_80BCCA4(curBase)]); + int curBase = VarGet(VAR_CURRENT_SECRET_BASE); + VarSet(VAR_OBJ_GFX_ID_F, gUnknown_083D13EC[sub_80BCCA4(curBase)]); } void sub_80BBFD8(struct MapPosition *position, struct MapEvents *events) @@ -571,12 +571,12 @@ u8 *sub_80BC190(u8 *dest, u8 arg1) { // 80bc190 } u8 *GetSecretBaseMapName(u8 *dest) { - gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_0x4054)].secretBaseId; - return sub_80BC190(dest, VarGet(VAR_0x4054)); + gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].secretBaseId; + return sub_80BC190(dest, VarGet(VAR_CURRENT_SECRET_BASE)); } -void sub_80BC224(void) { - u8 *var0 = gSaveBlock1.secretBases[(u8)VarGet(VAR_0x4054)].playerName; +void BufferSecretBaseOwnerName(void) { + u8 *var0 = gSaveBlock1.secretBases[(u8)VarGet(VAR_CURRENT_SECRET_BASE)].playerName; u8 *var1 = gStringVar1; u8 var2 = sub_80BB8A8(var0); u8 *var3 = StringCopyN(var1, var0, var2); @@ -830,7 +830,7 @@ void sub_80BC474(void) } } -void sub_80BC50C(void) +void MoveSecretBase(void) { u16 backupValue; sub_80BC474(); @@ -1173,7 +1173,7 @@ void sub_80BCBF8(u8 taskId) void sub_80BCC54(u8 taskId) { - u16 curBaseIndex = VarGet(VAR_0x4054); + u16 curBaseIndex = VarGet(VAR_CURRENT_SECRET_BASE); BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); @@ -1197,9 +1197,9 @@ u8 sub_80BCCA4(u8 secretBaseIndex) + gSaveBlock1.secretBases[secretBaseIndex].gender * 5; } -const u8 *sub_80BCCE8(void) +const u8 *GetSecretBaseTrainerLoseText(void) { - u8 param = sub_80BCCA4(VarGet(VAR_0x4054)); + u8 param = sub_80BCCA4(VarGet(VAR_CURRENT_SECRET_BASE)); if (param == 0) return UnknownString_81A1BB2; if (param == 1) return UnknownString_81A1F67; if (param == 2) return UnknownString_81A2254; @@ -1229,7 +1229,7 @@ void unref_sub_80BCD7C(u8 secretBaseIndex) void sub_80BCE1C(void) { - u16 curBaseIndex = VarGet(VAR_0x4054); + u16 curBaseIndex = VarGet(VAR_CURRENT_SECRET_BASE); sub_810FB10(1); CreateSecretBaseEnemyParty(&gSaveBlock1.secretBases[curBaseIndex]); @@ -1237,12 +1237,12 @@ void sub_80BCE1C(void) void sub_80BCE4C() { - gSaveBlock1.secretBases[VarGet(VAR_0x4054)].sbr_field_1_5 = gSpecialVar_Result; + gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].sbr_field_1_5 = gSpecialVar_Result; } void sub_80BCE90() { - u16 curBaseIndex = VarGet(VAR_0x4054); + u16 curBaseIndex = VarGet(VAR_CURRENT_SECRET_BASE); if (!FlagGet(FLAG_DAILY_UNKNOWN_8C2)) { diff --git a/src/field/trainer_see.c b/src/field/trainer_see.c index 38bc6971c..3034b2b65 100644 --- a/src/field/trainer_see.c +++ b/src/field/trainer_see.c @@ -9,14 +9,22 @@ #include "task.h" #include "util.h" +static bool8 CheckTrainer(u8); +static void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); +static void objc_exclamation_mark_probably(struct Sprite *sprite); +static bool8 TrainerCanApproachPlayer(struct MapObject *); +static void sub_80842C8(struct MapObject *, u8); +static bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject *trainerObj, u8 approachDistance, u8 direction); +static void RunTrainerSeeFuncList(u8 taskId); + const u8 gSpriteImage_839B308[] = INCBIN_U8("graphics/unknown_sprites/839B4E0/0.4bpp"); const u8 gSpriteImage_839B388[] = INCBIN_U8("graphics/unknown_sprites/839B4E0/1.4bpp"); const u8 gSpriteImage_839B408[] = INCBIN_U8("graphics/unknown_sprites/839B408.4bpp"); -u8 GetTrainerApproachDistanceSouth(struct MapObject *trainerObj, s16 range, s16 x, s16 y); -u8 GetTrainerApproachDistanceNorth(struct MapObject *trainerObj, s16 range, s16 x, s16 y); -u8 GetTrainerApproachDistanceWest(struct MapObject *trainerObj, s16 range, s16 x, s16 y); -u8 GetTrainerApproachDistanceEast(struct MapObject *trainerObj, s16 range, s16 x, s16 y); +static u8 GetTrainerApproachDistanceSouth(struct MapObject *trainerObj, s16 range, s16 x, s16 y); +static u8 GetTrainerApproachDistanceNorth(struct MapObject *trainerObj, s16 range, s16 x, s16 y); +static u8 GetTrainerApproachDistanceWest(struct MapObject *trainerObj, s16 range, s16 x, s16 y); +static u8 GetTrainerApproachDistanceEast(struct MapObject *trainerObj, s16 range, s16 x, s16 y); static u8 (*const sDirectionalApproachDistanceFuncs[])(struct MapObject *, s16, s16, s16) = { @@ -26,9 +34,6 @@ static u8 (*const sDirectionalApproachDistanceFuncs[])(struct MapObject *, s16, GetTrainerApproachDistanceEast, }; -extern struct SpriteTemplate gSpriteTemplate_839B510; -extern struct SpriteTemplate gSpriteTemplate_839B528; - bool8 CheckTrainers(void) { u8 mapObjId; @@ -43,7 +48,7 @@ bool8 CheckTrainers(void) return FALSE; } -bool8 CheckTrainer(u8 mapObjId) +static bool8 CheckTrainer(u8 mapObjId) { u8 *scriptPtr = GetFieldObjectScriptPointerByFieldObjectId(mapObjId); @@ -69,7 +74,7 @@ bool8 CheckTrainer(u8 mapObjId) } } -bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj) +static bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj) { s16 x, y; u8 i; @@ -79,14 +84,14 @@ bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj) if (trainerObj->trainerType == 1) // can only see in one direction { approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->mapobj_unk_18 - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y); - return CheckPathBetweenTrainerAndPlayer((struct MapObject2 *)trainerObj, approachDistance, trainerObj->mapobj_unk_18); + return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->mapobj_unk_18); } else // can see in all directions { for (i = 0; i < 4; i++) { approachDistance = sDirectionalApproachDistanceFuncs[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y); - if (CheckPathBetweenTrainerAndPlayer((struct MapObject2 *)trainerObj, approachDistance, i + 1)) // directions are 1-4 instead of 0-3. south north west east + if (CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, i + 1)) // directions are 1-4 instead of 0-3. south north west east return approachDistance; } } @@ -94,7 +99,7 @@ bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj) } // Returns how far south the player is from trainer. 0 if out of trainer's sight. -u8 GetTrainerApproachDistanceSouth(struct MapObject *trainerObj, s16 range, s16 x, s16 y) +static u8 GetTrainerApproachDistanceSouth(struct MapObject *trainerObj, s16 range, s16 x, s16 y) { if (trainerObj->coords2.x == x && y > trainerObj->coords2.y @@ -105,7 +110,7 @@ u8 GetTrainerApproachDistanceSouth(struct MapObject *trainerObj, s16 range, s16 } // Returns how far north the player is from trainer. 0 if out of trainer's sight. -u8 GetTrainerApproachDistanceNorth(struct MapObject *trainerObj, s16 range, s16 x, s16 y) +static u8 GetTrainerApproachDistanceNorth(struct MapObject *trainerObj, s16 range, s16 x, s16 y) { if (trainerObj->coords2.x == x && y < trainerObj->coords2.y @@ -116,7 +121,7 @@ u8 GetTrainerApproachDistanceNorth(struct MapObject *trainerObj, s16 range, s16 } // Returns how far west the player is from trainer. 0 if out of trainer's sight. -u8 GetTrainerApproachDistanceWest(struct MapObject *trainerObj, s16 range, s16 x, s16 y) +static u8 GetTrainerApproachDistanceWest(struct MapObject *trainerObj, s16 range, s16 x, s16 y) { if (trainerObj->coords2.y == y && x < trainerObj->coords2.x @@ -127,7 +132,7 @@ u8 GetTrainerApproachDistanceWest(struct MapObject *trainerObj, s16 range, s16 x } // Returns how far east the player is from trainer. 0 if out of trainer's sight. -u8 GetTrainerApproachDistanceEast(struct MapObject *trainerObj, s16 range, s16 x, s16 y) +static u8 GetTrainerApproachDistanceEast(struct MapObject *trainerObj, s16 range, s16 x, s16 y) { if (trainerObj->coords2.y == y && x > trainerObj->coords2.x @@ -143,7 +148,7 @@ u8 GetTrainerApproachDistanceEast(struct MapObject *trainerObj, s16 range, s16 x #define COLLISION_MASK 1 #endif -bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 approachDistance, u8 direction) +static bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject *trainerObj, u8 approachDistance, u8 direction) { s16 x, y; u8 unk19_temp; @@ -159,21 +164,21 @@ bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 approac for (i = 0; i <= approachDistance - 1; i++, MoveCoords(direction, &x, &y)) { - collision = sub_8060024((struct MapObject *)trainerObj, x, y, direction); + collision = sub_8060024(trainerObj, x, y, direction); if (collision != 0 && (collision & COLLISION_MASK)) return FALSE; } // preserve mapobj_unk_19 before clearing. - unk19_temp = trainerObj->mapobj_unk_19; - unk19b_temp = trainerObj->mapobj_unk_19b; - trainerObj->mapobj_unk_19 = 0; - trainerObj->mapobj_unk_19b = 0; + unk19_temp = trainerObj->range.as_nybbles.x; + unk19b_temp = trainerObj->range.as_nybbles.y; + trainerObj->range.as_nybbles.x = 0; + trainerObj->range.as_nybbles.y = 0; collision = npc_block_way((struct MapObject *)trainerObj, x, y, direction); - trainerObj->mapobj_unk_19 = unk19_temp; - trainerObj->mapobj_unk_19b = unk19b_temp; + trainerObj->range.as_nybbles.x = unk19_temp; + trainerObj->range.as_nybbles.y = unk19b_temp; if (collision == 4) return approachDistance; @@ -183,7 +188,7 @@ bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 approac #define tTrainerObjHi data[1] #define tTrainerObjLo data[2] -void sub_80842C8(struct MapObject *trainerObj, u8 b) +static void sub_80842C8(struct MapObject *trainerObj, u8 b) { u8 taskId = CreateTask(RunTrainerSeeFuncList, 0x50); struct Task *task = &gTasks[taskId]; @@ -193,7 +198,7 @@ void sub_80842C8(struct MapObject *trainerObj, u8 b) task->data[3] = b; } -void sub_80842FC(TaskFunc followupFunc) +static void sub_80842FC(TaskFunc followupFunc) { TaskFunc taskFunc = RunTrainerSeeFuncList; u8 taskId = FindTaskIdByFunc(taskFunc); @@ -232,7 +237,7 @@ static bool8 (*const gTrainerSeeFuncList[])(u8 taskId, struct Task *task, struct sub_80846C8, }; -void RunTrainerSeeFuncList(u8 taskId) +static void RunTrainerSeeFuncList(u8 taskId) { struct Task *task = &gTasks[taskId]; struct MapObject *trainerObj = (struct MapObject *)((task->tTrainerObjHi << 16) | (task->tTrainerObjLo)); @@ -450,6 +455,41 @@ static void Task_DestroyTrainerApproachTask(u8 taskId) EnableBothScriptContexts(); } +static const struct OamData gOamData_839B4D8 = { + .size = 1, .priority = 1 +}; + +static const struct SpriteFrameImage gSpriteImageTable_839B4E0[] = { + { gSpriteImage_839B308, sizeof gSpriteImage_839B308 }, + { gSpriteImage_839B388, sizeof gSpriteImage_839B388 } +}; + +static const struct SpriteFrameImage gSpriteImageTable_839B4F0[] = { + { gSpriteImage_839B408, sizeof gSpriteImage_839B408 } +}; + +static const union AnimCmd gSpriteAnim_839B4F8[] = { + ANIMCMD_FRAME(0, 60), + ANIMCMD_END +}; + +static const union AnimCmd gSpriteAnim_839B500[] = { + ANIMCMD_FRAME(1, 60), + ANIMCMD_END +}; + +static const union AnimCmd *const gSpriteAnimTable_839B508[] = { + gSpriteAnim_839B4F8, + gSpriteAnim_839B500 +}; + +static const struct SpriteTemplate gSpriteTemplate_839B510 = { + 0xffff, 0xffff, &gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4E0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably +}; +static const struct SpriteTemplate gSpriteTemplate_839B528 = { + 0xffff, 4100, &gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4F0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably +}; + u8 FldEff_ExclamationMarkIcon1(void) { u8 spriteId = CreateSpriteAtEnd(&gSpriteTemplate_839B510, 0, 0, 0x53); @@ -480,7 +520,7 @@ u8 FldEff_HeartIcon(void) return 0; } -void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3) +static void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3) { sprite->oam.priority = 1; sprite->coordOffsetEnabled = 1; @@ -494,7 +534,7 @@ void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3) StartSpriteAnim(sprite, a3); } -void objc_exclamation_mark_probably(struct Sprite *sprite) +static void objc_exclamation_mark_probably(struct Sprite *sprite) { u8 mapObjId; diff --git a/src/field/tv.c b/src/field/tv.c index 1d5bf929c..d7a75a709 100644 --- a/src/field/tv.c +++ b/src/field/tv.c @@ -80,7 +80,7 @@ extern u16 gLastUsedItem; static EWRAM_DATA u16 gUnknown_020387E0 = 0; static EWRAM_DATA u16 gUnknown_020387E2 = 0; static EWRAM_DATA u8 gUnknown_020387E4 = 0; -static EWRAM_DATA ALIGNED(4) u8 gUnknown_020387E8 = 0; // why is this aligned to a 4-byte boundary? +static EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; // why is this aligned to a 4-byte boundary? static u8 gUnknown_03000720; static u8 gUnknown_03000721; @@ -436,8 +436,8 @@ void ClearTVShowData(void) u8 showidx; u8 extradataidx; for (showidx=0; showidx<25; showidx++) { - gSaveBlock1.tvShows[showidx].common.var00 = 0; - gSaveBlock1.tvShows[showidx].common.var01 = 0; + gSaveBlock1.tvShows[showidx].common.kind = 0; + gSaveBlock1.tvShows[showidx].common.active = 0; for (extradataidx=0; extradataidx<34; extradataidx++) { gSaveBlock1.tvShows[showidx].common.pad02[extradataidx] = 0; } @@ -452,20 +452,20 @@ extern u8 gSpecialVar_ContestRank; extern u8 gUnknown_03004316[11]; extern u8 gBattleOutcome; -void sub_80BF334(void); -void sub_80BF3A4(void); -void sub_80BF3DC(void); -void sub_80BF46C(void); -void sub_80BF478(void); -void sub_80BF484(void); -void sub_80BF4BC(void); +void InterviewBefore_FanClubLetter(void); +void InterviewBefore_RecentHappenings(void); +void InterviewBefore_PkmnFanClubOpinions(void); +void InterviewBefore_Dummy(void); +void InterviewBefore_NameRater(void); +void InterviewBefore_BravoTrainerPkmnProfile(void); +void InterviewBefore_BravoTrainerBTProfile(void); void sub_80BE028(void); void sub_80BE074(void); void sub_80BE778(void); void sub_80BEB20(void); -u8 sub_80BFB54(u8); +u8 GetTVChannelByShowType(u8); s8 sub_80BF74C(TVShow tvShow[]); @@ -476,53 +476,62 @@ void sub_80BE138(TVShow *show); void sub_80BE160(TVShow *show); extern u16 gLastUsedItem; -void sub_80BE5FC(void); -void sub_80BE65C(void); -void sub_80BE6A0(void); -void nullsub_21(void); -void sub_80BE188(void); -void sub_80BE320(void); +void InterviewAfter_FanClubLetter(void); +void InterviewAfter_RecentHappenings(void); +void InterviewAfter_PkmnFanClubOpinions(void); +void InterviewAfter_DummyShow4(void); +void InterviewAfter_BravoTrainerPokemonProfile(void); +void InterviewAfter_BravoTrainerBattleTowerProfile(void); u8 special_0x44(void) { u8 i; u8 j; + u8 selIdx; + TVShow *show; -#ifndef NONMATCHING - asm("":::"r5"); -#endif - - for (i = 5; i < 24; i++) + for (i = 5; i < ARRAY_COUNT(gSaveBlock1.tvShows) - 1; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == 0) + if (gSaveBlock1.tvShows[i].common.kind == 0) + { break; + } } - i = Random() % i; - j = i; + + j = Random() % i; + selIdx = j; + do { - if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) != 4) + if (GetTVChannelByShowType(gSaveBlock1.tvShows[j].common.kind) != 4) { - if (gSaveBlock1.tvShows[i].common.var01 == 1) - return i; + if (gSaveBlock1.tvShows[j].common.active == TRUE) + { + return j; + } } else { - struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[i].massOutbreak; - - if (massOutbreak->var16 == 0 && massOutbreak->var01 == 1) - return i; + show = &gSaveBlock1.tvShows[j]; + if (show->massOutbreak.daysLeft == 0 && show->massOutbreak.active == TRUE) + { + return j; + } + } + if (j == 0) + { + j = ARRAY_COUNT(gSaveBlock1.tvShows) - 2; } - - if (i == 0) - i = 23; else - i--; - } while (i != j); + { + j--; + } + } while (j != selIdx); + return 0xFF; } -u8 sub_80BDA30(void); +u8 FindNonMassOutbreakActiveTVShow(void); u8 sub_80BD8B8(void) { @@ -530,14 +539,14 @@ u8 sub_80BD8B8(void) if (retval == 0xff) return 0xff; - if (gSaveBlock1.outbreakPokemonSpecies != 0 && gSaveBlock1.tvShows[retval].common.var00 == TVSHOW_MASS_OUTBREAK) - return sub_80BDA30(); + if (gSaveBlock1.outbreakPokemonSpecies != 0 && gSaveBlock1.tvShows[retval].common.kind == TVSHOW_MASS_OUTBREAK) + return FindNonMassOutbreakActiveTVShow(); return retval; } u8 CheckForBigMovieOrEmergencyNewsOnTV(void); void SetTVMetatilesOnMap(int, int, u16); -bool8 sub_80BECA0(void); +bool8 FindAnyTVNewsOnTheAir(void); bool8 IsTVShowInSearchOfTrainersAiring(void); void UpdateTVScreensOnMap(int width, int height) @@ -556,7 +565,7 @@ void UpdateTVScreensOnMap(int width, int height) { SetTVMetatilesOnMap(width, height, 0x3); } - else if (FlagGet(FLAG_SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) + else if (FlagGet(FLAG_SYS_TV_START) && (sub_80BD8B8() != 0xff || FindAnyTVNewsOnTheAir() != 0xff || IsTVShowInSearchOfTrainersAiring())) { FlagClear(FLAG_SYS_TV_WATCH); SetTVMetatilesOnMap(width, height, 0x3); @@ -586,28 +595,28 @@ void TurnOffTVScreen(void) DrawWholeMapView(); } -u8 sub_80BDA0C(void) +u8 GetTVShowType(void) { - return gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00; + return gSaveBlock1.tvShows[gSpecialVar_0x8004].common.kind; } -u8 sub_80BDA30(void) +u8 FindNonMassOutbreakActiveTVShow(void) { u8 showIdx; for (showIdx=0; showIdx<24; showIdx++) { - if (gSaveBlock1.tvShows[showIdx].common.var00 != 0 && gSaveBlock1.tvShows[showIdx].common.var00 != TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showIdx].common.var01 == 1) + if (gSaveBlock1.tvShows[showIdx].common.kind != 0 && gSaveBlock1.tvShows[showIdx].common.kind != TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showIdx].common.active == 1) return showIdx; } return 0xff; } -u8 special_0x4a(void) +u8 GetNonMassOutbreakActiveTVShow(void) { TVShow *tvShow; tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; - if (tvShow->common.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.outbreakPokemonSpecies) - return sub_80BDA30(); + if (tvShow->common.kind == TVSHOW_MASS_OUTBREAK && gSaveBlock1.outbreakPokemonSpecies) + return FindNonMassOutbreakActiveTVShow(); return gSpecialVar_0x8004; } @@ -677,7 +686,7 @@ void GabbyAndTyBeforeInterview(void) FlagSet(FLAG_TEMP_1); } -void sub_80BDC14(void) +void GabbyAndTyAfterInterview(void) { gSaveBlock1.gabbyAndTyData.valB_0 = gSaveBlock1.gabbyAndTyData.valA_0; gSaveBlock1.gabbyAndTyData.valB_1 = gSaveBlock1.gabbyAndTyData.valA_1; @@ -716,7 +725,7 @@ bool8 GabbyAndTyGetLastQuote(void) return TRUE; } -u8 sub_80BDD18(void) +u8 GabbyAndTyGetLastBattleTrivia(void) { if (!gSaveBlock1.gabbyAndTyData.valB_0) return 1; @@ -768,27 +777,27 @@ void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) } } -void sub_80BDE48(void) +void InterviewAfter(void) { switch (gSpecialVar_0x8005) { case TVSHOW_FAN_CLUB_LETTER: - sub_80BE5FC(); + InterviewAfter_FanClubLetter(); break; case TVSHOW_RECENT_HAPPENINGS: - sub_80BE65C(); + InterviewAfter_RecentHappenings(); break; case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - sub_80BE6A0(); + InterviewAfter_PkmnFanClubOpinions(); break; case TVSHOW_UNKN_SHOWTYPE_04: - nullsub_21(); + InterviewAfter_DummyShow4(); break; case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - sub_80BE188(); + InterviewAfter_BravoTrainerPokemonProfile(); break; case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - sub_80BE320(); + InterviewAfter_BravoTrainerBattleTowerProfile(); break; } } @@ -832,8 +841,8 @@ void sub_80BDEC8(void) total = 0; pokemonToday = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].pokemonToday; - pokemonToday->var00 = TVSHOW_POKEMON_TODAY_CAUGHT; - pokemonToday->var01 = total; + pokemonToday->kind = TVSHOW_POKEMON_TODAY_CAUGHT; + pokemonToday->active = total; if (gBattleResults.unk5_1 != 0) { total = 1; @@ -866,11 +875,11 @@ void sub_80BE028(void) { struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[24].worldOfMasters; - if (worldOfMasters->var00 != TVSHOW_WORLD_OF_MASTERS) + if (worldOfMasters->kind != TVSHOW_WORLD_OF_MASTERS) { sub_80BF55C(gSaveBlock1.tvShows, 24); worldOfMasters->var06 = GetGameStat(GAME_STAT_STEPS); - worldOfMasters->var00 = TVSHOW_WORLD_OF_MASTERS; + worldOfMasters->kind = TVSHOW_WORLD_OF_MASTERS; } worldOfMasters->var02++; worldOfMasters->var04 = gBattleResults.caughtPoke; @@ -898,8 +907,8 @@ void sub_80BE074(void) struct TVShowPokemonTodayFailed *pokemonTodayFailed = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].pokemonTodayFailed; zero = 0; - pokemonTodayFailed->var00 = TVSHOW_POKEMON_TODAY_FAILED; - pokemonTodayFailed->var01 = zero; + pokemonTodayFailed->kind = TVSHOW_POKEMON_TODAY_FAILED; + pokemonTodayFailed->active = zero; pokemonTodayFailed->species = gBattleResults.poke1Species; pokemonTodayFailed->species2 = gBattleResults.lastOpponentSpecies; pokemonTodayFailed->var10 = total; @@ -936,16 +945,16 @@ void sub_80BE160(TVShow *show) show->common.trainerIdHi = playerId >> 8; } -void sub_80BE188(void) +void InterviewAfter_BravoTrainerPokemonProfile(void) { struct TVShowBravoTrainerPokemonProfiles *bravoTrainerSrc = &gSaveBlock1.tvShows[24].bravoTrainer; - if (bravoTrainerSrc->var00 == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) + if (bravoTrainerSrc->kind == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) { struct TVShowBravoTrainerPokemonProfiles *bravoTrainerNew = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainer; - bravoTrainerNew->var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; - bravoTrainerNew->var01 = 1; + bravoTrainerNew->kind = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + bravoTrainerNew->active = 1; bravoTrainerNew->species = bravoTrainerSrc->species; StringCopy(bravoTrainerNew->playerName, gSaveBlock2.playerName); StringCopy(bravoTrainerNew->pokemonNickname, bravoTrainerSrc->pokemonNickname); @@ -965,13 +974,13 @@ void sub_80BE23C(u16 a0) { struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[24].bravoTrainer; - sub_80BF484(); + InterviewBefore_BravoTrainerPkmnProfile(); gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1) { sub_80BF55C(gSaveBlock1.tvShows, 24); bravoTrainer->var14 = a0; - bravoTrainer->var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + bravoTrainer->kind = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; } } @@ -990,12 +999,12 @@ void sub_80BE284(u8 a0) } } -void sub_80BE320(void) +void InterviewAfter_BravoTrainerBattleTowerProfile(void) { struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainerTower; - bravoTrainerTower->var00 = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; - bravoTrainerTower->var01 = 1; + bravoTrainerTower->kind = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; + bravoTrainerTower->active = 1; StringCopy(bravoTrainerTower->trainerName, gSaveBlock2.playerName); StringCopy(bravoTrainerTower->pokemonName, gSaveBlock2.battleTower.defeatedByTrainerName); bravoTrainerTower->species = gSaveBlock2.battleTower.firstMonSpecies; @@ -1027,8 +1036,8 @@ void sub_80BE3BC(void) { struct TVShowSmartShopper *smartShopper = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].smartshopperShow; - smartShopper->var00 = TVSHOW_SMART_SHOPPER; - smartShopper->var01 = rval; + smartShopper->kind = TVSHOW_SMART_SHOPPER; + smartShopper->active = rval; smartShopper->shopLocation = gMapHeader.regionMapSectionId; for (i=0; i<3; i++) { @@ -1046,7 +1055,7 @@ void sub_80BE3BC(void) void sub_80BE478(void) { - sub_80BF478(); + InterviewBefore_NameRater(); if (gSpecialVar_Result == 1) return; @@ -1055,8 +1064,8 @@ void sub_80BE478(void) { struct TVShowNameRaterShow *nameRaterShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].nameRaterShow; - nameRaterShow->var00 = TVSHOW_NAME_RATER_SHOW; - nameRaterShow->var01 = 1; + nameRaterShow->kind = TVSHOW_NAME_RATER_SHOW; + nameRaterShow->active = 1; nameRaterShow->species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); nameRaterShow->random = Random() % 3; nameRaterShow->random2 = Random() % 2; @@ -1089,37 +1098,37 @@ void StartMassOutbreak(void) gSaveBlock1.outbreakUnk5 = 2; } -void sub_80BE5FC(void) +void InterviewAfter_FanClubLetter(void) { struct TVShowFanClubLetter *fanclubLetter = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubLetter; - fanclubLetter->var00 = TVSHOW_FAN_CLUB_LETTER; - fanclubLetter->var01 = 1; + fanclubLetter->kind = TVSHOW_FAN_CLUB_LETTER; + fanclubLetter->active = 1; StringCopy(fanclubLetter->playerName, gSaveBlock2.playerName); fanclubLetter->species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); sub_80BE160((TVShow *)fanclubLetter); fanclubLetter->language = GAME_LANGUAGE; } -void sub_80BE65C(void) +void InterviewAfter_RecentHappenings(void) { struct TVShowRecentHappenings *recentHappenings = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].recentHappenings; - recentHappenings->var00 = TVSHOW_RECENT_HAPPENINGS; - recentHappenings->var01 = 1; + recentHappenings->kind = TVSHOW_RECENT_HAPPENINGS; + recentHappenings->active = 1; StringCopy(recentHappenings->playerName, gSaveBlock2.playerName); recentHappenings->var02 = 0; sub_80BE160((TVShow *)recentHappenings); recentHappenings->language = GAME_LANGUAGE; } -void sub_80BE6A0(void) +void InterviewAfter_PkmnFanClubOpinions(void) { u8 monIndex; struct TVShowFanclubOpinions *fanclubOpinions = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubOpinions; - fanclubOpinions->var00 = TVSHOW_PKMN_FAN_CLUB_OPINIONS; - fanclubOpinions->var01 = 1; + fanclubOpinions->kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS; + fanclubOpinions->active = 1; monIndex = GetLeadMonIndex(); fanclubOpinions->var04A = GetMonData(&gPlayerParty[monIndex], MON_DATA_FRIENDSHIP, NULL) / 16; fanclubOpinions->var04B = gSpecialVar_0x8007; @@ -1132,7 +1141,7 @@ void sub_80BE6A0(void) StripExtCtrlCodes(fanclubOpinions->var10); } -void nullsub_21(void) +void InterviewAfter_DummyShow4(void) { } @@ -1144,7 +1153,7 @@ void sub_80BE778(void) for (i = 0; i < 24; i++) { - if (gSaveBlock1.tvShows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) + if (gSaveBlock1.tvShows[i].massOutbreak.kind == TVSHOW_MASS_OUTBREAK) return; } if (sub_80BF77C(0x147)) @@ -1158,8 +1167,8 @@ void sub_80BE778(void) s32 val2 = gUnknown_03005D38.var0; struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[val2].massOutbreak; - massOutbreak->var00 = TVSHOW_MASS_OUTBREAK; - massOutbreak->var01 = 1; + massOutbreak->kind = TVSHOW_MASS_OUTBREAK; + massOutbreak->active = 1; massOutbreak->level = gPokeOutbreakSpeciesList[val].level; massOutbreak->var02 = 0; massOutbreak->var03 = 0; @@ -1174,7 +1183,7 @@ void sub_80BE778(void) massOutbreak->var12 = 0; massOutbreak->probability = 0x32; massOutbreak->var15 = 0; - massOutbreak->var16 = 0x01; + massOutbreak->daysLeft = 0x01; sub_80BE160((TVShow *)massOutbreak); massOutbreak->language = GAME_LANGUAGE; } @@ -1214,15 +1223,15 @@ void sub_80BE8EC(u16 arg0) { for (showidx=0; showidx<24; showidx++) { - if (gSaveBlock1.tvShows[showidx].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK - && gSaveBlock1.tvShows[showidx].massOutbreak.var01 == 0x01) + if (gSaveBlock1.tvShows[showidx].massOutbreak.kind == TVSHOW_MASS_OUTBREAK + && gSaveBlock1.tvShows[showidx].massOutbreak.active == 0x01) { struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[showidx].massOutbreak; - if (massOutbreak->var16 < arg0) - massOutbreak->var16 = 0; + if (massOutbreak->daysLeft < arg0) + massOutbreak->daysLeft = 0; else - massOutbreak->var16 -= arg0; + massOutbreak->daysLeft -= arg0; break; } } @@ -1272,8 +1281,8 @@ void sub_80BE9D4(void) register u8 zero asm("r1") = 0; asm(""::"r"(zero)); - pokemonAngler->var00 = TVSHOW_FISHING_ADVICE; - pokemonAngler->var01 = zero; + pokemonAngler->kind = TVSHOW_FISHING_ADVICE; + pokemonAngler->active = zero; pokemonAngler->var02 = gUnknown_020387E2 & 0xFF; pokemonAngler->var03 = gUnknown_020387E2 >> 8; pokemonAngler->var04 = gUnknown_020387E0; @@ -1294,7 +1303,7 @@ void sub_80BEA5C(u16 arg0) { struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[24].worldOfMasters; - if (worldOfMasters->var00 == TVSHOW_WORLD_OF_MASTERS) + if (worldOfMasters->kind == TVSHOW_WORLD_OF_MASTERS) { if (worldOfMasters->var02 < 20) sub_80BF55C(gSaveBlock1.tvShows, 0x18); @@ -1313,8 +1322,8 @@ void sub_80BEA88(void) { struct TVShowWorldOfMasters *worldOfMastersDst = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].worldOfMasters; - worldOfMastersDst->var00 = TVSHOW_WORLD_OF_MASTERS; - worldOfMastersDst->var01 = 0; + worldOfMastersDst->kind = TVSHOW_WORLD_OF_MASTERS; + worldOfMastersDst->active = 0; worldOfMastersDst->var02 = worldOfMastersSrc->var02; worldOfMastersDst->var06 = GetGameStat(GAME_STAT_STEPS) - worldOfMastersSrc->var06; worldOfMastersDst->var04 = worldOfMastersSrc->var04; @@ -1333,27 +1342,27 @@ void sub_80BEB20(void) if (FlagGet(FLAG_SYS_GAME_CLEAR) != 0) { - gUnknown_03005D38.var0 = sub_80BEBC8(gSaveBlock1.unknown_2ABC); + gUnknown_03005D38.var0 = sub_80BEBC8(gSaveBlock1.pokeNews); if (gUnknown_03005D38.var0 != -1 && sub_80BF77C(0x28f) != 1) { rval = (Random() % 3) + 1; if (sub_80BEE48(rval) != 1) { - gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val0 = rval; - gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val2 = 4; - gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val1 = 1; + gSaveBlock1.pokeNews[gUnknown_03005D38.var0].kind = rval; + gSaveBlock1.pokeNews[gUnknown_03005D38.var0].days = 4; + gSaveBlock1.pokeNews[gUnknown_03005D38.var0].state = 1; } } } } -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0) +int sub_80BEBC8(struct PokeNews *pokeNews) { s8 i; for (i = 0; i < 16; i++) { - if (arg0[i].val0 == 0) + if (pokeNews[i].kind == 0) return i; } return -1; @@ -1369,9 +1378,9 @@ void sub_80BEBF4(void) void sub_80BEC10(u8 arg0) { - gSaveBlock1.unknown_2ABC[arg0].val0 = 0; - gSaveBlock1.unknown_2ABC[arg0].val1 = 0; - gSaveBlock1.unknown_2ABC[arg0].val2 = 0; + gSaveBlock1.pokeNews[arg0].kind = 0; + gSaveBlock1.pokeNews[arg0].state = 0; + gSaveBlock1.pokeNews[arg0].days = 0; } void sub_80BEC40(void) @@ -1380,13 +1389,13 @@ void sub_80BEC40(void) for (i = 0; i < 15; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 == 0) + if (gSaveBlock1.pokeNews[i].kind == 0) { for (j = i + 1; j < 16; j++) { - if (gSaveBlock1.unknown_2ABC[j].val0 != 0) + if (gSaveBlock1.pokeNews[j].kind != 0) { - gSaveBlock1.unknown_2ABC[i] = gSaveBlock1.unknown_2ABC[j]; + gSaveBlock1.pokeNews[i] = gSaveBlock1.pokeNews[j]; sub_80BEC10(j); break; } @@ -1395,43 +1404,43 @@ void sub_80BEC40(void) } } -u8 sub_80BECA0(void) +u8 FindAnyTVNewsOnTheAir(void) { u8 i; for (i = 0; i < 16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 != 0 - && gSaveBlock1.unknown_2ABC[i].val1 == 1 - && gSaveBlock1.unknown_2ABC[i].val2 < 3) + if (gSaveBlock1.pokeNews[i].kind != 0 + && gSaveBlock1.pokeNews[i].state == 1 + && gSaveBlock1.pokeNews[i].days < 3) return i; } return 0xFF; } -void sub_80BECE8(void) +void DoPokeNews(void) { - u8 arg0; - arg0 = sub_80BECA0(); - if (arg0 == 0xff) + u8 i; + i = FindAnyTVNewsOnTheAir(); + if (i == 0xff) { gSpecialVar_Result = 0; return; } - if (gSaveBlock1.unknown_2ABC[arg0].val2 == 0) + if (gSaveBlock1.pokeNews[i].days == 0) { - gSaveBlock1.unknown_2ABC[arg0].val1 = 2; + gSaveBlock1.pokeNews[i].state = 2; if (gLocalTime.hours < 20) - ShowFieldMessage(gTVNewsTextGroup2[gSaveBlock1.unknown_2ABC[arg0].val0]); + ShowFieldMessage(gTVNewsTextGroup2[gSaveBlock1.pokeNews[i].kind]); else - ShowFieldMessage(gTVNewsTextGroup3[gSaveBlock1.unknown_2ABC[arg0].val0]); + ShowFieldMessage(gTVNewsTextGroup3[gSaveBlock1.pokeNews[i].kind]); } else { - u16 value = gSaveBlock1.unknown_2ABC[arg0].val2; + u16 value = gSaveBlock1.pokeNews[i].days; ConvertIntToDecimalStringN(gStringVar1, value, 0, 1); - gSaveBlock1.unknown_2ABC[arg0].val1 = 0; - ShowFieldMessage(gTVNewsTextGroup1[gSaveBlock1.unknown_2ABC[arg0].val0]); + gSaveBlock1.pokeNews[i].state = 0; + ShowFieldMessage(gTVNewsTextGroup1[gSaveBlock1.pokeNews[i].kind]); } gSpecialVar_Result = 1; } @@ -1444,9 +1453,9 @@ bool8 GetPriceReduction(u8 arg0) return FALSE; for (i=0; i<16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 == arg0) + if (gSaveBlock1.pokeNews[i].kind == arg0) { - if (gSaveBlock1.unknown_2ABC[i].val1 == 2 && IsPriceDiscounted(arg0) != 0) + if (gSaveBlock1.pokeNews[i].state == 2 && IsPriceDiscounted(arg0) != 0) return TRUE; else return FALSE; @@ -1487,7 +1496,7 @@ bool8 sub_80BEE48(u8 arg0) return TRUE; for (i=0; i<16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 == arg0) + if (gSaveBlock1.pokeNews[i].kind == arg0) return TRUE; } return FALSE; @@ -1499,17 +1508,17 @@ void sub_80BEE84(u16 var0) for (i=0; i<16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0) + if (gSaveBlock1.pokeNews[i].kind) { - if (gSaveBlock1.unknown_2ABC[i].val2 < var0) + if (gSaveBlock1.pokeNews[i].days < var0) { sub_80BEC10(i); } else { - if (!gSaveBlock1.unknown_2ABC[i].val1 && FlagGet(FLAG_SYS_GAME_CLEAR) == 1) - gSaveBlock1.unknown_2ABC[i].val1 = 1; - gSaveBlock1.unknown_2ABC[i].val2 -= var0; + if (!gSaveBlock1.pokeNews[i].state && FlagGet(FLAG_SYS_GAME_CLEAR) == 1) + gSaveBlock1.pokeNews[i].state = 1; + gSaveBlock1.pokeNews[i].days -= var0; } } } @@ -1619,7 +1628,7 @@ bool8 sub_80BF1B4(u8 showIdx) for (i = 5; i < 24; i++) { - if (tvShows[i].common.var00 == showIdx) + if (tvShows[i].common.kind == showIdx) { if ((trainerId & 0xFF) == tvShows[i].common.trainerIdLo && ((trainerId >> 8) & 0xFF) == tvShows[i].common.trainerIdHi) return TRUE; @@ -1656,9 +1665,9 @@ void sub_80BF25C(u8 showType) for (i = 0; i < 5; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == showType) + if (gSaveBlock1.tvShows[i].common.kind == showType) { - if(gSaveBlock1.tvShows[i].common.var01 == 1) + if(gSaveBlock1.tvShows[i].common.active == 1) { gSpecialVar_Result = 1; } @@ -1674,36 +1683,36 @@ void sub_80BF25C(u8 showType) sub_80BF6D8(); } -void sub_80BF2C4(void) +void InterviewBefore(void) { - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; switch (gSpecialVar_0x8005) { case TVSHOW_FAN_CLUB_LETTER: - sub_80BF334(); + InterviewBefore_FanClubLetter(); break; case TVSHOW_RECENT_HAPPENINGS: - sub_80BF3A4(); + InterviewBefore_RecentHappenings(); break; case TVSHOW_PKMN_FAN_CLUB_OPINIONS: - sub_80BF3DC(); + InterviewBefore_PkmnFanClubOpinions(); break; case TVSHOW_UNKN_SHOWTYPE_04: - sub_80BF46C(); + InterviewBefore_Dummy(); break; case TVSHOW_NAME_RATER_SHOW: - sub_80BF478(); + InterviewBefore_NameRater(); break; case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: - sub_80BF484(); + InterviewBefore_BravoTrainerPkmnProfile(); break; case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: - sub_80BF4BC(); + InterviewBefore_BravoTrainerBTProfile(); break; } } -void sub_80BF334(void) +void InterviewBefore_FanClubLetter(void) { struct TVShowFanClubLetter *fanclubLetter; @@ -1716,7 +1725,7 @@ void sub_80BF334(void) } } -void sub_80BF3A4(void) +void InterviewBefore_RecentHappenings(void) { struct TVShowRecentHappenings *recentHappenings; @@ -1728,7 +1737,7 @@ void sub_80BF3A4(void) } } -void sub_80BF3DC(void) +void InterviewBefore_PkmnFanClubOpinions(void) { struct TVShowFanclubOpinions *fanclubOpinions; @@ -1743,17 +1752,17 @@ void sub_80BF3DC(void) } } -void sub_80BF46C(void) +void InterviewBefore_Dummy(void) { gSpecialVar_Result = 1; } -void sub_80BF478(void) +void InterviewBefore_NameRater(void) { sub_80BF25C(TVSHOW_NAME_RATER_SHOW); } -void sub_80BF484(void) +void InterviewBefore_BravoTrainerPkmnProfile(void) { struct TVShowBravoTrainerPokemonProfiles *bravoTrainer; @@ -1765,7 +1774,7 @@ void sub_80BF484(void) } } -void sub_80BF4BC(void) +void InterviewBefore_BravoTrainerBTProfile(void) { struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower; @@ -1778,32 +1787,32 @@ void sub_80BF4BC(void) } #if ENGLISH -u8 sub_80BF4F4(u8 arg0) +u8 NicknameDiffersFromSpeciesName(u8 monIndex) { u32 species; - GetMonData(&gPlayerParty[arg0], MON_DATA_NICKNAME, &gStringVar1); - species = GetMonData(&gPlayerParty[arg0], MON_DATA_SPECIES, NULL); - if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1) == FALSE) + GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, &gStringVar1); + species = GetMonData(&gPlayerParty[monIndex], MON_DATA_SPECIES, NULL); + if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1) == 0) return FALSE; return TRUE; } #elif GERMAN -u8 sub_80BF4F4(u8 arg0) +u8 NicknameDiffersFromSpeciesName(u8 monIndex) { u8 langData[4]; u32 species; u8 *tmp; - GetMonData(&gPlayerParty[arg0], MON_DATA_NICKNAME, &gStringVar1); + GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, &gStringVar1); tmp = langData; - tmp[0] = GetMonData(&gPlayerParty[arg0], MON_DATA_LANGUAGE, &langData); + tmp[0] = GetMonData(&gPlayerParty[monIndex], MON_DATA_LANGUAGE, &langData); if (tmp[0] != GAME_LANGUAGE) return TRUE; - species = GetMonData(&gPlayerParty[arg0], MON_DATA_SPECIES, NULL); + species = GetMonData(&gPlayerParty[monIndex], MON_DATA_SPECIES, NULL); if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1)) return TRUE; @@ -1811,17 +1820,17 @@ u8 sub_80BF4F4(u8 arg0) } #endif -u8 sub_80BF544(void) +u8 LeadMonNicknamed(void) { - return sub_80BF4F4(GetLeadMonIndex()); + return NicknameDiffersFromSpeciesName(GetLeadMonIndex()); } void sub_80BF55C(TVShow tvShow[], u8 showidx) { u8 idx; - tvShow[showidx].common.var00 = 0; - tvShow[showidx].common.var01 = 0; + tvShow[showidx].common.kind = 0; + tvShow[showidx].common.active = 0; for (idx = 0; idx < 34; idx++) tvShow[showidx].common.pad02[idx] = 0; } @@ -1833,11 +1842,11 @@ void sub_80BF588(TVShow tvShow[]) for (showidx = 0; showidx < 4; showidx++) { - if (tvShow[showidx].common.var00 == 0) + if (tvShow[showidx].common.kind == 0) { for (showidx2 = showidx + 1; showidx2 < 5; showidx2++) { - if (tvShow[showidx2].common.var00 != 0) + if (tvShow[showidx2].common.kind != 0) { tvShow[showidx] = tvShow[showidx2]; sub_80BF55C(tvShow, showidx2); @@ -1848,11 +1857,11 @@ void sub_80BF588(TVShow tvShow[]) } for (showidx = 5; showidx < 24; showidx++) { - if (tvShow[showidx].common.var00 == 0) + if (tvShow[showidx].common.kind == 0) { for (showidx2 = showidx + 1; showidx2 < 24; showidx2++) { - if (tvShow[showidx2].common.var00 != 0) + if (tvShow[showidx2].common.kind != 0) { tvShow[showidx] = tvShow[showidx2]; sub_80BF55C(gSaveBlock1.tvShows, showidx2); @@ -1909,7 +1918,7 @@ s8 sub_80BF720(TVShow tvShow[]) for (idx = 0; idx < 5; idx++) { - if (tvShow[idx].common.var00 == 0) + if (tvShow[idx].common.kind == 0) return idx; } return -1; @@ -1921,7 +1930,7 @@ s8 sub_80BF74C(TVShow tvShow[]) for (idx = 5; idx < 24; idx++) { - if (tvShow[idx].common.var00 == 0) + if (tvShow[idx].common.kind == 0) return idx; } return -1; @@ -2043,19 +2052,19 @@ void sub_80BF820(u8 arg0, u8 arg1, u8 arg2, u16 arg3, u16 arg4, struct TVShowNam StringCopy(gUnknown_083D1464[arg0], flags); } -bool8 sub_80BF974(void) +bool8 TV_IsScriptShowKindAlreadyInQueue(void) { u8 i; for (i = 0; i < 5; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == gSpecialVar_0x8004) + if (gSaveBlock1.tvShows[i].common.kind == gSpecialVar_0x8004) return TRUE; } return FALSE; } -bool8 sub_80BF9B4(void) +bool8 TV_PutNameRaterShowOnTheAirIfNicnkameChanged(void) { GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, &gStringVar1); if (!StringCompareWithoutExtCtrlCodes(gStringVar3, gStringVar1)) @@ -2064,9 +2073,9 @@ bool8 sub_80BF9B4(void) return TRUE; } -void c2_080CC144(void); +void ChangePokemonNickname_CB(void); -void sub_80BF9F8(void) +void ChangePokemonNickname(void) { u16 spec; u16 gender; @@ -2077,22 +2086,22 @@ void sub_80BF9F8(void) spec = GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_SPECIES, 0); gender = GetMonGender(&(gPlayerParty[gSpecialVar_0x8004])); pval = GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_PERSONALITY, 0); - DoNamingScreen(3, gStringVar2, spec, gender, pval, c2_080CC144); + DoNamingScreen(3, gStringVar2, spec, gender, pval, ChangePokemonNickname_CB); } -void c2_080CC144(void) +void ChangePokemonNickname_CB(void) { SetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, gStringVar2); c2_exit_to_overworld_1_continue_scripts_restart_music(); } -void sub_80BFAE0(void) +void TV_CopyNicknameToStringVar1AndEnsureTerminated(void) { GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, &gStringVar1); StringGetEnd10(gStringVar1); } -void sub_80BFB10(void) +void TV_CheckMonOTIDEqualsPlayerID(void) { if (GetPlayerTrainerId() == GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_OT_ID, 0)) gSpecialVar_Result = 0; @@ -2100,7 +2109,7 @@ void sub_80BFB10(void) gSpecialVar_Result = 1; } -u8 sub_80BFB54(u8 arg0) +u8 GetTVChannelByShowType(u8 arg0) { if (arg0 == 0) return 0; @@ -2149,7 +2158,7 @@ void GetMomOrDadStringForTVMessage(void) if (gSaveBlock1.location.mapNum == MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) { StringCopy(gStringVar1, gOtherText_Mom); - VarSet(VAR_0x4003, 1); + VarSet(VAR_TEMP_3, 1); } } else @@ -2157,21 +2166,21 @@ void GetMomOrDadStringForTVMessage(void) if (gSaveBlock1.location.mapNum == MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F)) { StringCopy(gStringVar1, gOtherText_Mom); - VarSet(VAR_0x4003, 1); + VarSet(VAR_TEMP_3, 1); } } } - if (VarGet(VAR_0x4003) == 1) + if (VarGet(VAR_TEMP_3) == 1) { StringCopy(gStringVar1, gOtherText_Mom); } - else if (VarGet(VAR_0x4003) == 2) + else if (VarGet(VAR_TEMP_3) == 2) { StringCopy(gStringVar1, gOtherText_Dad); } - else if (VarGet(VAR_0x4003) > 2) + else if (VarGet(VAR_TEMP_3) > 2) { - if (VarGet(VAR_0x4003) % 2 == 0) + if (VarGet(VAR_TEMP_3) % 2 == 0) StringCopy(gStringVar1, gOtherText_Mom); else StringCopy(gStringVar1, gOtherText_Dad); @@ -2181,26 +2190,26 @@ void GetMomOrDadStringForTVMessage(void) if (Random() % 2 != 0) { StringCopy(gStringVar1, gOtherText_Mom); - VarSet(VAR_0x4003, 1); + VarSet(VAR_TEMP_3, 1); } else { StringCopy(gStringVar1, gOtherText_Dad); - VarSet(VAR_0x4003, 2); + VarSet(VAR_TEMP_3, 2); } } } void sub_80BFD20(void) { - VarSet(VAR_0x40BC, 0); + VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0); RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); } typedef union ewramStruct_02007000 { TVShow tvshows[4][25]; - struct UnknownSaveStruct2ABC unknown_2abc[4][16]; + struct PokeNews pokeNews[4][16]; } ewramStruct_02007000; void sub_80BFE24(TVShow arg0[25], TVShow arg1[25], TVShow arg2[25], TVShow arg3[25]); @@ -2294,7 +2303,7 @@ bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) tv1 = *arg1; tv2 = *arg2; value = FALSE; - switchval = sub_80BFB54(tv2[gUnknown_03000722].common.var00); + switchval = GetTVChannelByShowType(tv2[gUnknown_03000722].common.kind); switch (switchval) { case 2: @@ -2329,7 +2338,7 @@ u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx) tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; tv2->common.srcTrainerIdHi = linkTrainerId >> 8; *tv1 = *tv2; - tv1->common.var01 = 1; + tv1->common.active = 1; return TRUE; } @@ -2345,7 +2354,7 @@ u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx) tv2->common.srcTrainerId2Lo = linkTrainerId & 0xFF; tv2->common.srcTrainerId2Hi = linkTrainerId >> 8; *tv1 = *tv2; - tv1->common.var01 = 1; + tv1->common.active = 1; return TRUE; } @@ -2359,7 +2368,7 @@ u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx) tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; tv2->common.srcTrainerIdHi = linkTrainerId >> 8; *tv1 = *tv2; - tv1->common.var01 = 1; + tv1->common.active = 1; tv1->common.var16[0] = 1; return TRUE; } @@ -2369,7 +2378,7 @@ s8 sub_80C019C(TVShow tvShows[]) u8 i; for (i = 0; i < 24; i++) { - if (tvShows[i].common.var01 == 0 && (u8)(tvShows[i].common.var00 - 1) < 60) + if (tvShows[i].common.active == 0 && (u8)(tvShows[i].common.kind - 1) < 60) return i; } return -1; @@ -2381,7 +2390,7 @@ void sub_80C01D4(void) u16 i; for (i=0; i<24; i++) { - switch (gSaveBlock1.tvShows[i].common.var00) + switch (gSaveBlock1.tvShows[i].common.kind) { case 0: case TVSHOW_RECENT_HAPPENINGS: @@ -2637,13 +2646,13 @@ _080C03A0:\n\ void sub_80C03A8(u8 showidx) { - gSaveBlock1.tvShows[showidx].common.var01 = 0; + gSaveBlock1.tvShows[showidx].common.active = 0; } void sub_80C03C8(u16 species, u8 showidx) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) - gSaveBlock1.tvShows[showidx].common.var01 = 0; + gSaveBlock1.tvShows[showidx].common.active = 0; } void sub_80C0408(void) @@ -2654,10 +2663,10 @@ void sub_80C0408(void) return; for (i = 0; i < 24; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) - gSaveBlock1.tvShows[i].common.var01 = 0; - else if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_MASS_OUTBREAK) - gSaveBlock1.tvShows[i].common.var01 = 0; + if (gSaveBlock1.tvShows[i].common.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) + gSaveBlock1.tvShows[i].common.active = 0; + else if (gSaveBlock1.tvShows[i].common.kind == TVSHOW_MASS_OUTBREAK) + gSaveBlock1.tvShows[i].common.active = 0; } } @@ -2667,8 +2676,8 @@ void sub_80C045C(void) for (i = 0; i < 5; i++) { - if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) == 2) - gSaveBlock1.tvShows[i].common.var01 = 0; + if (GetTVChannelByShowType(gSaveBlock1.tvShows[i].common.kind) == 2) + gSaveBlock1.tvShows[i].common.active = 0; } } @@ -2680,18 +2689,18 @@ void sub_80C04A0(void) for (showIdx = 5; showIdx < 24; showIdx++) { - if (gSaveBlock1.tvShows[showIdx].common.var00 == 0) + if (gSaveBlock1.tvShows[showIdx].common.kind == 0) count++; } for (showIdx = 0; showIdx < 5 - count; showIdx++) sub_80BF55C(gSaveBlock1.tvShows, showIdx+5); } -void sub_80C05C4(struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16]); +void sub_80C05C4(struct PokeNews[16], struct PokeNews[16], struct PokeNews[16], struct PokeNews[16]); void sub_80C0750(void); void sub_80C0788(void); -s8 sub_80C0730(struct UnknownSaveStruct2ABC[16], u8); -void sub_80C06BC(struct UnknownSaveStruct2ABC *[16], struct UnknownSaveStruct2ABC *[16]); +s8 sub_80C0730(struct PokeNews[16], u8); +void sub_80C06BC(struct PokeNews *[16], struct PokeNews *[16]); void sub_80C0514(void *a0, u32 a1, u8 a2) { @@ -2699,33 +2708,33 @@ void sub_80C0514(void *a0, u32 a1, u8 a2) u8 i; for (i = 0; i < 4; i++) - memcpy(gUnknown_02007000.unknown_2abc[i], a0 + i * a1, 64); + memcpy(gUnknown_02007000.pokeNews[i], a0 + i * a1, 64); struct02007000 = &gUnknown_02007000; switch (a2) { case 0: - sub_80C05C4(gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + sub_80C05C4(gSaveBlock1.pokeNews, struct02007000->pokeNews[1], struct02007000->pokeNews[2], struct02007000->pokeNews[3]); break; case 1: - sub_80C05C4(struct02007000->unknown_2abc[0], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + sub_80C05C4(struct02007000->pokeNews[0], gSaveBlock1.pokeNews, struct02007000->pokeNews[2], struct02007000->pokeNews[3]); break; case 2: - sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[3]); + sub_80C05C4(struct02007000->pokeNews[0], struct02007000->pokeNews[1], gSaveBlock1.pokeNews, struct02007000->pokeNews[3]); break; case 3: - sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], gSaveBlock1.unknown_2ABC); + sub_80C05C4(struct02007000->pokeNews[0], struct02007000->pokeNews[1], struct02007000->pokeNews[2], gSaveBlock1.pokeNews); break; } sub_80C0750(); sub_80C0788(); } -void sub_80C05C4(struct UnknownSaveStruct2ABC a0[16], struct UnknownSaveStruct2ABC a1[16], struct UnknownSaveStruct2ABC a2[16], struct UnknownSaveStruct2ABC a3[16]) +void sub_80C05C4(struct PokeNews a0[16], struct PokeNews a1[16], struct PokeNews a2[16], struct PokeNews a3[16]) { u8 i; u8 j; u8 k; - struct UnknownSaveStruct2ABC ** arglist[4]; + struct PokeNews ** arglist[4]; arglist[0] = &a0; arglist[1] = &a1; @@ -2750,10 +2759,10 @@ void sub_80C05C4(struct UnknownSaveStruct2ABC a0[16], struct UnknownSaveStruct2A } } -void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruct2ABC *arg1[16]) +void sub_80C06BC(struct PokeNews *arg0[16], struct PokeNews *arg1[16]) { - struct UnknownSaveStruct2ABC *str0; - struct UnknownSaveStruct2ABC *str1; + struct PokeNews *str0; + struct PokeNews *str1; str0 = arg0[0]; str1 = arg1[0]; @@ -2761,26 +2770,26 @@ void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruc sub_80C06E8(str0, str1, gUnknown_03005D38.var0); } -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2) +bool8 sub_80C06E8(struct PokeNews *arg0, struct PokeNews *arg1, s8 arg2) { u8 i; - if (arg1->val0 == 0) + if (arg1->kind == 0) return FALSE; for (i = 0; i < 16; i++) { - if (arg0[i].val0 == arg1->val0) + if (arg0[i].kind == arg1->kind) return FALSE; } - arg0[arg2].val0 = arg1->val0; - arg0[arg2].val1 = 1; - arg0[arg2].val2 = arg1->val2; + arg0[arg2].kind = arg1->kind; + arg0[arg2].state = 1; + arg0[arg2].days = arg1->days; return TRUE; } -s8 sub_80C0730(struct UnknownSaveStruct2ABC *arg0, u8 arg1) +s8 sub_80C0730(struct PokeNews *arg0, u8 arg1) { - if (arg0[arg1].val0 == 0) + if (arg0[arg1].kind == 0) return -1; return arg1; } @@ -2791,7 +2800,7 @@ void sub_80C0750(void) for (i = 0; i < 16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 > 3) + if (gSaveBlock1.pokeNews[i].kind > 3) sub_80BEC10(i); } sub_80BEC40(); @@ -2804,15 +2813,15 @@ void sub_80C0788(void) if (FlagGet(FLAG_SYS_GAME_CLEAR) != 1) { for (i = 0; i < 16; i++) - gSaveBlock1.unknown_2ABC[i].val1 = 0; + gSaveBlock1.pokeNews[i].state = 0; } } void DoTVShow(void) { - if (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 != 0) + if (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.active != 0) { - switch (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00) + switch (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.kind) { case TVSHOW_FAN_CLUB_LETTER: DoTVShowPokemonFanClubLetter(); @@ -2870,7 +2879,7 @@ void DoTVShowBravoTrainerPokemonProfile(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch(state) { case 0: @@ -2878,49 +2887,49 @@ void DoTVShowBravoTrainerPokemonProfile(void) CopyContestCategoryToStringVar(1, bravoTrainer->contestCategory); sub_80BEF10(2, bravoTrainer->contestRank); if (!StringCompareWithoutExtCtrlCodes(gSpeciesNames[bravoTrainer->species], bravoTrainer->pokemonNickname)) - gUnknown_020387E8 = 8; + sTVShowState = 8; else - gUnknown_020387E8 = 1; + sTVShowState = 1; break; case 1: StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); TVShowConvertInternationalString(gStringVar2, bravoTrainer->pokemonNickname, bravoTrainer->var1f); CopyContestCategoryToStringVar(2, bravoTrainer->contestCategory); - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 2: TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); if (bravoTrainer->contestResult == 0) // placed first - gUnknown_020387E8 = 3; + sTVShowState = 3; else - gUnknown_020387E8 = 4; + sTVShowState = 4; break; case 3: TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); EasyChat_GetWordText(gStringVar2, bravoTrainer->var04[0]); sub_80BF088(2, bravoTrainer->contestResult + 1); - gUnknown_020387E8 = 5; + sTVShowState = 5; break; case 4: TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); EasyChat_GetWordText(gStringVar2, bravoTrainer->var04[0]); sub_80BF088(2, bravoTrainer->contestResult + 1); - gUnknown_020387E8 = 5; + sTVShowState = 5; break; case 5: TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); CopyContestCategoryToStringVar(1, bravoTrainer->contestCategory); EasyChat_GetWordText(gStringVar3, bravoTrainer->var04[1]); if (bravoTrainer->var14) - gUnknown_020387E8 = 6; + sTVShowState = 6; else - gUnknown_020387E8 = 7; + sTVShowState = 7; break; case 6: StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); StringCopy(gStringVar2, gMoveNames[bravoTrainer->var14]); EasyChat_GetWordText(gStringVar3, bravoTrainer->var04[1]); - gUnknown_020387E8 = 7; + sTVShowState = 7; break; case 7: TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); @@ -2929,7 +2938,7 @@ void DoTVShowBravoTrainerPokemonProfile(void) break; case 8: StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); - gUnknown_020387E8 = 2; + sTVShowState = 2; break; } ShowFieldMessage(gTVBravoTrainerTextGroup[state]); @@ -2941,79 +2950,79 @@ void DoTVShowBravoTrainerBattleTowerProfile(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch(state) { case 0: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->species]); if (bravoTrainerTower->var16 >= 7) - gUnknown_020387E8 = 1; + sTVShowState = 1; else - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 1: sub_80BF088(0, bravoTrainerTower->btLevel); sub_80BF088(1, bravoTrainerTower->var16); if (bravoTrainerTower->var1c == 1) - gUnknown_020387E8 = 3; + sTVShowState = 3; else - gUnknown_020387E8 = 4; + sTVShowState = 4; break; case 2: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); sub_80BF088(1, bravoTrainerTower->var16 + 1); if (bravoTrainerTower->var1b == 0) - gUnknown_020387E8 = 5; + sTVShowState = 5; else - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 3: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->defeatedSpecies]); if (bravoTrainerTower->var1b == 0) - gUnknown_020387E8 = 5; + sTVShowState = 5; else - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 4: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->defeatedSpecies]); if (bravoTrainerTower->var1b == 0) - gUnknown_020387E8 = 5; + sTVShowState = 5; else - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 5: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 6: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 7: - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 8: case 9: case 10: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 11: EasyChat_GetWordText(gStringVar1, bravoTrainerTower->var18[0]); if (bravoTrainerTower->var1b == 0) - gUnknown_020387E8 = 12; + sTVShowState = 12; else - gUnknown_020387E8 = 13; + sTVShowState = 13; break; case 12: case 13: EasyChat_GetWordText(gStringVar1, bravoTrainerTower->var18[0]); TVShowConvertInternationalString(gStringVar2, bravoTrainerTower->trainerName, bravoTrainerTower->language); TVShowConvertInternationalString(gStringVar3, bravoTrainerTower->pokemonName, bravoTrainerTower->language); - gUnknown_020387E8 = 14; + sTVShowState = 14; break; case 14: TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); @@ -3030,61 +3039,61 @@ void DoTVShowTodaysSmartShopper(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch(state) { case 0: TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); GetMapSectionName(gStringVar2, smartShopper->shopLocation, 0); if (smartShopper->itemAmounts[0] >= 0xff) - gUnknown_020387E8 = 11; + sTVShowState = 11; else - gUnknown_020387E8 = 1; + sTVShowState = 1; break; case 1: TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[0])->name); sub_80BF088(2, smartShopper->itemAmounts[0]); - gUnknown_020387E8 += (Random() % 4) + 1; + sTVShowState += (Random() % 4) + 1; break; case 2: case 4: case 5: if (smartShopper->itemIds[1] != 0) - gUnknown_020387E8 = 6; + sTVShowState = 6; else - gUnknown_020387E8 = 10; + sTVShowState = 10; break; case 3: sub_80BF088(2, smartShopper->itemAmounts[0] + 1); if (smartShopper->itemIds[1] != 0) - gUnknown_020387E8 = 6; + sTVShowState = 6; else - gUnknown_020387E8 = 10; + sTVShowState = 10; break; case 6: StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[1])->name); sub_80BF088(2, smartShopper->itemAmounts[1]); if (smartShopper->itemIds[2] != 0) - gUnknown_020387E8 = 7; + sTVShowState = 7; else if (smartShopper->priceReduced == 1) - gUnknown_020387E8 = 8; + sTVShowState = 8; else - gUnknown_020387E8 = 9; + sTVShowState = 9; break; case 7: StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[2])->name); sub_80BF088(2, smartShopper->itemAmounts[2]); if (smartShopper->priceReduced == 1) - gUnknown_020387E8 = 8; + sTVShowState = 8; else - gUnknown_020387E8 = 9; + sTVShowState = 9; break; case 8: if (smartShopper->itemAmounts[0] < 0xff) - gUnknown_020387E8 = 9; + sTVShowState = 9; else - gUnknown_020387E8 = 12; + sTVShowState = 12; break; case 9: sub_80BF154(1, smartShopper); @@ -3092,17 +3101,17 @@ void DoTVShowTodaysSmartShopper(void) break; case 10: if (smartShopper->priceReduced == 1) - gUnknown_020387E8 = 8; + sTVShowState = 8; else - gUnknown_020387E8 = 9; + sTVShowState = 9; break; case 11: TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[0])->name); if (smartShopper->priceReduced == 1) - gUnknown_020387E8 = 8; + sTVShowState = 8; else - gUnknown_020387E8 = 12; + sTVShowState = 12; break; case 12: TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); @@ -3118,14 +3127,14 @@ void DoTVShowTheNameRaterShow(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->species]); TVShowConvertInternationalString(gStringVar3, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); - gUnknown_020387E8 = sub_80BF7E8(nameRaterShow) + 1; + sTVShowState = sub_80BF7E8(nameRaterShow) + 1; break; case 1: case 3: @@ -3135,20 +3144,20 @@ void DoTVShowTheNameRaterShow(void) case 7: case 8: if (nameRaterShow->random == 0) - gUnknown_020387E8 = 9; + sTVShowState = 9; else if (nameRaterShow->random == 1) - gUnknown_020387E8 = 10; + sTVShowState = 10; else if (nameRaterShow->random == 2) - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 2: TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); if (nameRaterShow->random == 0) - gUnknown_020387E8 = 9; + sTVShowState = 9; else if (nameRaterShow->random == 1) - gUnknown_020387E8 = 10; + sTVShowState = 10; else if (nameRaterShow->random == 2) - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 9: case 10: @@ -3158,7 +3167,7 @@ void DoTVShowTheNameRaterShow(void) sub_80BF820(0, 0, 0, 1, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->pokemonNameLanguage); TVShowConvertInternationalString(gStringVar1, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); - gUnknown_020387E8 = 12; + sTVShowState = 12; break; case 13: sub_80BF820(0, 0, 3, 1, 0, nameRaterShow); @@ -3166,7 +3175,7 @@ void DoTVShowTheNameRaterShow(void) sub_80BF820(0, 0, 2, 0, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->language); TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); - gUnknown_020387E8 = 14; + sTVShowState = 14; break; case 14: sub_80BF820(0, 0, 3, 0, 0, nameRaterShow); @@ -3174,31 +3183,31 @@ void DoTVShowTheNameRaterShow(void) sub_80BF820(0, 0, 2, 1, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->pokemonNameLanguage); TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); - gUnknown_020387E8 = 18; + sTVShowState = 18; break; case 15: sub_80BF820(1, 0, 2, 1, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar1, gStringVar2, nameRaterShow->pokemonNameLanguage); StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->species]); sub_80BF820(2, 0, 3, 2, nameRaterShow->species, nameRaterShow); - gUnknown_020387E8 = 16; + sTVShowState = 16; break; case 16: sub_80BF820(0, 0, 3, 1, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar3, gStringVar1, nameRaterShow->pokemonNameLanguage); sub_80BF820(0, 0, 2, 2, nameRaterShow->species, nameRaterShow); - gUnknown_020387E8 = 17; + sTVShowState = 17; break; case 17: sub_80BF820(1, 0, 2, 1, 0, nameRaterShow); TVShowConvertInternationalString(gStringVar1, gStringVar2, nameRaterShow->pokemonNameLanguage); sub_80BF820(2, 0, 3, 2, nameRaterShow->var1C, nameRaterShow); StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->var1C]); - gUnknown_020387E8 = 18; + sTVShowState = 18; break; case 12: state = 18; - gUnknown_020387E8 = 18; + sTVShowState = 18; case 18: TVShowConvertInternationalString(gStringVar1, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); TVShowConvertInternationalString(gStringVar2, nameRaterShow->trainerName, nameRaterShow->language); @@ -3214,7 +3223,7 @@ void DoTVShowPokemonTodaySuccessfulCapture(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: @@ -3222,53 +3231,53 @@ void DoTVShowPokemonTodaySuccessfulCapture(void) StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); if (pokemonToday->ball == ITEM_MASTER_BALL) - gUnknown_020387E8 = 5; + sTVShowState = 5; else - gUnknown_020387E8 = 1; + sTVShowState = 1; break; case 1: - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 2: StringCopy(gStringVar2, ItemId_GetItem(pokemonToday->ball)->name); sub_80BF088(2, pokemonToday->var12); if (pokemonToday->var12 < 4) - gUnknown_020387E8 = 3; + sTVShowState = 3; else - gUnknown_020387E8 = 4; + sTVShowState = 4; break; case 3: TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 4: - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 5: TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 6: TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); - gUnknown_020387E8 += (Random() % 4) + 1; + sTVShowState += (Random() % 4) + 1; break; case 7: case 8: StringCopy(gStringVar1, gSpeciesNames[pokemonToday->species]); TVShowConvertInternationalString(gStringVar2, pokemonToday->nickname, pokemonToday->language2); sub_80BF638(2, pokemonToday->species); - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 9: case 10: StringCopy(gStringVar1, gSpeciesNames[pokemonToday->species]); TVShowConvertInternationalString(gStringVar2, pokemonToday->nickname, pokemonToday->language2); - gUnknown_020387E8 = 11; + sTVShowState = 11; break; case 11: TVShowDone(); @@ -3283,36 +3292,36 @@ void DoTVShowPokemonTodayFailedCapture(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); StringCopy(gStringVar2, gSpeciesNames[pokemonTodayFailed->species]); - gUnknown_020387E8 = 1; + sTVShowState = 1; break; case 1: TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); GetMapSectionName(gStringVar2, pokemonTodayFailed->var12, 0); StringCopy(gStringVar3, gSpeciesNames[pokemonTodayFailed->species2]); if (pokemonTodayFailed->var11 == 1) - gUnknown_020387E8 = 3; + sTVShowState = 3; else - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 2: case 3: TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); sub_80BF088(1, pokemonTodayFailed->var10); if ((Random() % 3) == 0) - gUnknown_020387E8 = 5; + sTVShowState = 5; else - gUnknown_020387E8 = 4; + sTVShowState = 4; break; case 4: case 5: TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); - gUnknown_020387E8 = 6; + sTVShowState = 6; break; case 6: TVShowDone(); @@ -3328,32 +3337,32 @@ void DoTVShowPokemonFanClubLetter(void) u16 rval; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: TVShowConvertInternationalString(gStringVar1, fanclubLetter->playerName, fanclubLetter->language); StringCopy(gStringVar2, gSpeciesNames[fanclubLetter->species]); - gUnknown_020387E8 = 50; + sTVShowState = 50; break; case 1: rval = (Random() % 4) + 1; if (rval == 1) - gUnknown_020387E8 = 2; + sTVShowState = 2; else - gUnknown_020387E8 = rval + 2; + sTVShowState = rval + 2; break; case 2: - gUnknown_020387E8 = 51; + sTVShowState = 51; break; case 3: - gUnknown_020387E8 += (Random() % 3) + 1; + sTVShowState += (Random() % 3) + 1; break; case 4: case 5: case 6: sub_80BF79C((TVShow *)fanclubLetter); - gUnknown_020387E8 = 7; + sTVShowState = 7; break; case 7: rval = (Random() % 0x1f) + 0x46; @@ -3363,12 +3372,12 @@ void DoTVShowPokemonFanClubLetter(void) case 50: ConvertEasyChatWordsToString(gStringVar4, fanclubLetter->pad04, 2, 2); ShowFieldMessage(gStringVar4); - gUnknown_020387E8 = 1; + sTVShowState = 1; return; case 51: ConvertEasyChatWordsToString(gStringVar4, fanclubLetter->pad04, 2, 2); ShowFieldMessage(gStringVar4); - gUnknown_020387E8 = 3; + sTVShowState = 3; return; } ShowFieldMessage(gTVFanClubTextGroup[state]); @@ -3380,21 +3389,21 @@ void DoTVShowRecentHappenings(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: TVShowConvertInternationalString(gStringVar1, recentHappenings->playerName, recentHappenings->language); sub_80BF79C((TVShow *)recentHappenings); - gUnknown_020387E8 = 50; + sTVShowState = 50; break; case 1: - gUnknown_020387E8 += 1 + (Random() % 3); + sTVShowState += 1 + (Random() % 3); break; case 2: case 3: case 4: - gUnknown_020387E8 = 5; + sTVShowState = 5; break; case 5: TVShowDone(); @@ -3402,7 +3411,7 @@ void DoTVShowRecentHappenings(void) case 50: ConvertEasyChatWordsToString(gStringVar4, recentHappenings->var04, 2, 2); ShowFieldMessage(gStringVar4); - gUnknown_020387E8 = 1; + sTVShowState = 1; return; } ShowFieldMessage(gTVRecentHappeningsTextGroup[state]); @@ -3414,14 +3423,14 @@ void DoTVShowPokemonFanClubOpinions(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); StringCopy(gStringVar2, gSpeciesNames[fanclubOpinions->var02]); TVShowConvertInternationalString(gStringVar3, fanclubOpinions->var10, fanclubOpinions->var0E); - gUnknown_020387E8 = fanclubOpinions->var04B + 1; + sTVShowState = fanclubOpinions->var04B + 1; break; case 1: case 2: @@ -3429,7 +3438,7 @@ void DoTVShowPokemonFanClubOpinions(void) TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); StringCopy(gStringVar2, gSpeciesNames[fanclubOpinions->var02]); EasyChat_GetWordText(gStringVar3, fanclubOpinions->var1C[0]); - gUnknown_020387E8 = 4; + sTVShowState = 4; break; case 4: TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); @@ -3452,7 +3461,7 @@ void DoTVShowPokemonNewsMassOutbreak(void) StringCopy(gStringVar2, gSpeciesNames[massOutbreak->species]); TVShowDone(); StartMassOutbreak(); - ShowFieldMessage(gTVPokemonOutbreakTextGroup[gUnknown_020387E8]); + ShowFieldMessage(gTVPokemonOutbreakTextGroup[sTVShowState]); } void DoTVShowInSearchOfTrainers(void) @@ -3460,49 +3469,49 @@ void DoTVShowInSearchOfTrainers(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: GetMapSectionName(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0); if (gSaveBlock1.gabbyAndTyData.battleNum > 1) - gUnknown_020387E8 = 1; + sTVShowState = 1; else - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 1: - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 2: if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) - gUnknown_020387E8 = 4; + sTVShowState = 4; else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) - gUnknown_020387E8 = 5; + sTVShowState = 5; else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) - gUnknown_020387E8 = 6; + sTVShowState = 6; else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) - gUnknown_020387E8 = 7; + sTVShowState = 7; else - gUnknown_020387E8 = 3; + sTVShowState = 3; break; case 3: StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]); StringCopy(gStringVar2, gMoveNames[gSaveBlock1.gabbyAndTyData.lastMove]); StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]); - gUnknown_020387E8 = 8; + sTVShowState = 8; break; case 4: case 5: case 6: case 7: - gUnknown_020387E8 = 8; + sTVShowState = 8; break; case 8: EasyChat_GetWordText(gStringVar1, gSaveBlock1.gabbyAndTyData.quote); StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]); StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon2]); gSpecialVar_Result = 1; - gUnknown_020387E8 = 0;; + sTVShowState = 0;; TakeTVShowInSearchOfTrainersOffTheAir(); break; } @@ -3516,10 +3525,10 @@ void DoTVShowPokemonAngler(void) gSpecialVar_Result = 0; if (pokemonAngler->var02 < pokemonAngler->var03) - gUnknown_020387E8 = 0; + sTVShowState = 0; else - gUnknown_020387E8 = 1; - state = gUnknown_020387E8; + sTVShowState = 1; + state = sTVShowState; switch (state) { case 0: @@ -3544,7 +3553,7 @@ void DoTVShowTheWorldOfMasters(void) u8 state; gSpecialVar_Result = 0; - state = gUnknown_020387E8; + state = sTVShowState; switch (state) { case 0: @@ -3552,11 +3561,11 @@ void DoTVShowTheWorldOfMasters(void) worldOfMasters->language); sub_80BF088(1, worldOfMasters->var06); sub_80BF088(2, worldOfMasters->var02); - gUnknown_020387E8 = 1; + sTVShowState = 1; break; case 1: StringCopy(gStringVar1, gSpeciesNames[worldOfMasters->var08]); - gUnknown_020387E8 = 2; + sTVShowState = 2; break; case 2: TVShowConvertInternationalString(gStringVar1, worldOfMasters->playerName, @@ -3572,11 +3581,11 @@ void DoTVShowTheWorldOfMasters(void) void TVShowDone(void) { gSpecialVar_Result = 1; - gUnknown_020387E8 = 0; - gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 = 0; + sTVShowState = 0; + gSaveBlock1.tvShows[gSpecialVar_0x8004].common.active = 0; } -void sub_80C2014(void) +void ResetTVShowState(void) { - gUnknown_020387E8 = 0; + sTVShowState = 0; } |