summaryrefslogtreecommitdiff
path: root/src/field
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-04 18:50:53 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-04 18:50:53 -0500
commiteff6795887cc27f2c5139df9a6da70f4f02338b4 (patch)
treef91be2b0b7194b4ddff13f4935a0edafc4284a43 /src/field
parent3ea9cff2c67b3db195c3326afc56fa0662c2327a (diff)
parentb1a7733c1cead8ed3d4a58c42d638afd0ead8ab0 (diff)
Merge branch 'master' into unk_text_8095904
Diffstat (limited to 'src/field')
-rw-r--r--src/field/bard_music.c174
-rw-r--r--src/field/battle_tower.c38
-rw-r--r--src/field/berry_tag_screen.c20
-rw-r--r--src/field/coord_event_weather.c87
-rw-r--r--src/field/decoration.c270
-rw-r--r--src/field/dewford_trend.c6
-rw-r--r--src/field/easy_chat.c2
-rw-r--r--src/field/event_data.c6
-rw-r--r--src/field/field_control_avatar.c6
-rw-r--r--src/field/field_effect.c257
-rw-r--r--src/field/field_effect_helpers.c84
-rw-r--r--src/field/field_fadetransition.c2
-rw-r--r--src/field/field_map_obj.c38
-rw-r--r--src/field/field_map_obj_helpers.c115
-rw-r--r--src/field/field_special_scene.c12
-rw-r--r--src/field/field_specials.c254
-rw-r--r--src/field/field_tasks.c26
-rw-r--r--src/field/field_weather.c25
-rw-r--r--src/field/field_weather_effects.c1
-rw-r--r--src/field/fldeff_secret_base_pc.c2
-rw-r--r--src/field/item_menu.c4
-rw-r--r--src/field/item_use.c7
-rw-r--r--src/field/lottery_corner.c16
-rw-r--r--src/field/map_name_popup.c2
-rw-r--r--src/field/mauville_man.c3
-rw-r--r--src/field/money.c4
-rw-r--r--src/field/overworld.c34
-rw-r--r--src/field/party_menu.c67
-rw-r--r--src/field/player_pc.c22
-rw-r--r--src/field/pokeblock.c6
-rw-r--r--src/field/scrcmd.c4
-rw-r--r--src/field/secret_base.c36
-rw-r--r--src/field/trainer_see.c96
-rw-r--r--src/field/tv.c723
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;
}