From 3f1a7330dd344b97f4c11cc84573b099af42a611 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 30 Jan 2019 19:48:28 -0600 Subject: Document siirtc a bit more --- src/siirtc.c | 131 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 72 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/siirtc.c b/src/siirtc.c index 965a068f1..f7e85ef4f 100644 --- a/src/siirtc.c +++ b/src/siirtc.c @@ -46,6 +46,19 @@ #define CMD_TIME CMD(3) #define CMD_ALARM CMD(4) +#define SCK_HI 1 +#define SIO_HI 2 +#define CS_HI 4 + +#define DIR_0_IN 0 +#define DIR_0_OUT 1 +#define DIR_1_IN 0 +#define DIR_1_OUT 2 +#define DIR_2_IN 0 +#define DIR_2_OUT 4 +#define DIR_ALL_IN (DIR_0_IN | DIR_1_IN | DIR_2_IN) +#define DIR_ALL_OUT (DIR_0_OUT | DIR_1_OUT | DIR_2_OUT) + #define GPIO_PORT_DATA (*(vu16 *)0x80000C4) #define GPIO_PORT_DIRECTION (*(vu16 *)0x80000C6) #define GPIO_PORT_READ_ENABLE (*(vu16 *)0x80000C8) @@ -126,15 +139,15 @@ bool8 SiiRtcReset() sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_RESET | WR); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -154,14 +167,14 @@ bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_STATUS | RD); - GPIO_PORT_DIRECTION = 5; + GPIO_PORT_DIRECTION = DIR_0_OUT | DIR_1_IN | DIR_2_OUT; statusData = ReadData(); @@ -170,8 +183,8 @@ bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc) | ((statusData & STATUS_INTME) >> 2) | ((statusData & STATUS_INTFE) >> 1); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -187,22 +200,22 @@ bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; statusData = STATUS_24HOUR | ((rtc->status & SIIRTCINFO_INTAE) << 3) | ((rtc->status & SIIRTCINFO_INTME) << 2) | ((rtc->status & SIIRTCINFO_INTFE) << 1); - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_STATUS | WR); WriteData(statusData); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -218,22 +231,22 @@ bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_DATETIME | RD); - GPIO_PORT_DIRECTION = 5; + GPIO_PORT_DIRECTION = DIR_0_OUT | DIR_1_IN | DIR_2_OUT; for (i = 0; i < DATETIME_BUF_LEN; i++) DATETIME_BUF(rtc, i) = ReadData(); INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -249,18 +262,18 @@ bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_DATETIME | WR); for (i = 0; i < DATETIME_BUF_LEN; i++) WriteData(DATETIME_BUF(rtc, i)); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -276,22 +289,22 @@ bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_TIME | RD); - GPIO_PORT_DIRECTION = 5; + GPIO_PORT_DIRECTION = DIR_0_OUT | DIR_1_IN | DIR_2_OUT; for (i = 0; i < TIME_BUF_LEN; i++) TIME_BUF(rtc, i) = ReadData(); INFO_BUF(rtc, OFFSET_HOUR) &= 0x7F; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -307,18 +320,18 @@ bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc) sLocked = TRUE; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIO_PORT_DIRECTION = 7; + GPIO_PORT_DIRECTION = DIR_ALL_OUT; WriteCommand(CMD_TIME | WR); for (i = 0; i < TIME_BUF_LEN; i++) WriteData(TIME_BUF(rtc, i)); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -347,18 +360,18 @@ bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc) alarmData[1] = rtc->alarmMinute; - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 5; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; - GPIOPortDirection = 7; // Why is this the only instance that uses a symbol? + GPIOPortDirection = DIR_ALL_OUT; // Why is this the only instance that uses a symbol? WriteCommand(CMD_ALARM | WR); for (i = 0; i < 2; i++) WriteData(alarmData[i]); - GPIO_PORT_DATA = 1; - GPIO_PORT_DATA = 1; + GPIO_PORT_DATA = SCK_HI; + GPIO_PORT_DATA = SCK_HI; sLocked = FALSE; @@ -373,10 +386,10 @@ static int WriteCommand(u8 value) for (i = 0; i < 8; i++) { temp = ((value >> (7 - i)) & 1); - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 5; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI; } // control reaches end of non-void function @@ -390,10 +403,10 @@ static int WriteData(u8 value) for (i = 0; i < 8; i++) { temp = ((value >> i) & 1); - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 4; - GPIO_PORT_DATA = (temp << 1) | 5; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | CS_HI; + GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI; } // control reaches end of non-void function @@ -407,14 +420,14 @@ static u8 ReadData() for (i = 0; i < 8; i++) { - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 4; - GPIO_PORT_DATA = 5; - - temp = ((GPIO_PORT_DATA & 2) >> 1); + GPIO_PORT_DATA = CS_HI; + GPIO_PORT_DATA = CS_HI; + GPIO_PORT_DATA = CS_HI; + GPIO_PORT_DATA = CS_HI; + GPIO_PORT_DATA = CS_HI; + GPIO_PORT_DATA = SCK_HI | CS_HI; + + temp = ((GPIO_PORT_DATA & SIO_HI) >> 1); value = (value >> 1) | (temp << 7); // UB: accessing uninitialized var } -- cgit v1.2.3 From 29d6221935d3e8e01dc11b4023ba977ff433f3c9 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 31 Jan 2019 15:51:20 -0600 Subject: Convert map data to JSON --- src/battle_factory.c | 4 +++- src/battle_pike.c | 7 +++++-- src/battle_pyramid.c | 8 +++++--- src/battle_tent.c | 5 +++-- src/map_name_popup.c | 7 ++++--- src/overworld.c | 9 +++++---- src/pokemon.c | 3 ++- src/trainer_hill.c | 27 ++++++++++++++------------- src/tv.c | 9 +++++++-- src/wild_encounter.c | 20 ++++++++++---------- 10 files changed, 58 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 5793c78e9..c025dc139 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -11,6 +11,7 @@ #include "constants/species.h" #include "constants/battle_ai.h" #include "constants/battle_frontier.h" +#include "constants/layouts.h" #include "constants/trainers.h" #include "constants/moves.h" @@ -662,7 +663,8 @@ static u8 GetStyleForMove(u16 move) bool8 sub_81A6BF4(void) { - return (gMapHeader.mapLayoutId == 347 || gMapHeader.mapLayoutId == 348); + return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM; } static void sub_81A6C1C(void) diff --git a/src/battle_pike.c b/src/battle_pike.c index c12038efb..bdf6e8027 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -16,6 +16,7 @@ #include "constants/event_objects.h" #include "constants/battle_frontier.h" #include "constants/abilities.h" +#include "constants/layouts.h" #include "constants/rgb.h" #include "constants/trainers.h" #include "constants/species.h" @@ -1314,8 +1315,10 @@ static void sub_81A8090(void) bool8 InBattlePike(void) { - return (gMapHeader.mapLayoutId == 351 || gMapHeader.mapLayoutId == 352 - || gMapHeader.mapLayoutId == 358 || gMapHeader.mapLayoutId == 359); + return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 + || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_MAP_084693AC; } static void sub_81A80DC(void) diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index c0ff1ecf5..ed911d8d9 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -30,6 +30,7 @@ #include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/species.h" @@ -1380,9 +1381,9 @@ u8 GetPyramidRunMultiplier(void) u8 InBattlePyramid(void) { - if (gMapHeader.mapLayoutId == 361) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) return 1; - else if (gMapHeader.mapLayoutId == 378) + else if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP) return 2; else return FALSE; @@ -1390,7 +1391,8 @@ u8 InBattlePyramid(void) bool8 InBattlePyramid_(void) { - return (gMapHeader.mapLayoutId == 361 || gMapHeader.mapLayoutId == 378); + return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE + || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP; } void sub_81A9E90(void) diff --git a/src/battle_tent.c b/src/battle_tent.c index de4d9d374..cb8149253 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -12,6 +12,7 @@ #include "frontier_util.h" #include "string_util.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/region_map_sections.h" #include "constants/species.h" @@ -270,8 +271,8 @@ static void sub_81B9E88(void) bool8 sub_81B9E94(void) { - return (gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY - && ((gMapHeader.mapLayoutId == 385) | (gMapHeader.mapLayoutId == 386))); + return gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY + && (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM); } static void sub_81B9EC0(void) diff --git a/src/map_name_popup.c b/src/map_name_popup.c index c13747006..0d88815c0 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -1,6 +1,4 @@ #include "global.h" -#include "constants/region_map_sections.h" -#include "constants/weather.h" #include "bg.h" #include "event_data.h" #include "gpu_regs.h" @@ -14,6 +12,9 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "constants/layouts.h" +#include "constants/region_map_sections.h" +#include "constants/weather.h" // enums enum MapPopUp_Themes @@ -305,7 +306,7 @@ static void ShowMapNamePopUpWindow(void) if (InBattlePyramid()) { - if (gMapHeader.mapLayoutId == 0x17A) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP) { withoutPrefixPtr = &(mapDisplayHeader[3]); mapDisplayHeaderSource = gBattlePyramid_MapHeaderStrings[7]; diff --git a/src/overworld.c b/src/overworld.c index a67b4b68f..8d4c24ff6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -55,6 +55,7 @@ #include "wild_encounter.h" #include "frontier_util.h" #include "constants/abilities.h" +#include "constants/layouts.h" #include "constants/map_types.h" #include "constants/maps.h" #include "constants/region_map_sections.h" @@ -886,7 +887,7 @@ static void mli0_load_map(u32 a1) LoadCurrentMapData(); if (!(sUnknown_020322D8 & 1)) { - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) sub_81AA1D8(); else if (InTrainerHill()) sub_81D5DF8(); @@ -914,7 +915,7 @@ static void mli0_load_map(u32 a1) mapheader_run_script_with_tag_x3(); UpdateLocationHistoryForRoamer(); RoamerMoveToOtherLocationSet(); - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) InitBattlePyramidMap(0); else if (InTrainerHill()) InitTrainerHillMap(); @@ -1753,7 +1754,7 @@ void CB2_ContinueSavedGame(void) LoadSaveblockMapHeader(); ClearDiveAndHoleWarps(); trainerHillMapId = GetCurrentTrainerHillMapId(); - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) sub_81AA2F8(); else if (trainerHillMapId != 0 && trainerHillMapId != 6) sub_81D5F48(); @@ -1763,7 +1764,7 @@ void CB2_ContinueSavedGame(void) UnfreezeEventObjects(); DoTimeBasedEvents(); sub_8084788(); - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) InitBattlePyramidMap(1); else if (trainerHillMapId != 0) InitTrainerHillMap(); diff --git a/src/pokemon.c b/src/pokemon.c index cdb87f464..7f80e8d4e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -37,6 +37,7 @@ #include "constants/battle_move_effects.h" #include "constants/hold_effects.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/moves.h" #include "constants/songs.h" #include "constants/species.h" @@ -6848,7 +6849,7 @@ void SetWildMonHeldItem(void) var1 = 20; var2 = 80; } - if (gMapHeader.mapLayoutId == 0x1A4) + if (gMapHeader.mapLayoutId == LAYOUT_ALTERING_CAVE) { s32 alteringCaveId = GetWildMonTableIdInAlteringCave(species); if (alteringCaveId != 0) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index e0a236286..309ffdb1d 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -24,6 +24,7 @@ #include "constants/event_object_movement_constants.h" #include "constants/event_objects.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/moves.h" #include "constants/maps.h" #include "constants/species.h" @@ -324,7 +325,7 @@ void ResetTrainerHillResults(void) static u8 GetFloorId(void) { - return gMapHeader.mapLayoutId - 159; + return gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; } u8 GetTrainerHillOpponentClass(u16 trainerId) @@ -385,7 +386,7 @@ static void SetUpDataStruct(void) if (sHillData == NULL) { sHillData = AllocZeroed(sizeof(*sHillData)); - sHillData->floorId = gMapHeader.mapLayoutId - 159; + sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F; CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag)); nullsub_2(); } @@ -803,10 +804,10 @@ bool32 InTrainerHill(void) { bool32 ret; - if (gMapHeader.mapLayoutId == 0x19F - || gMapHeader.mapLayoutId == 0x1A0 - || gMapHeader.mapLayoutId == 0x1A1 - || gMapHeader.mapLayoutId == 0x1A2) + if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_1F + || gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_2F + || gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_3F + || gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_4F) ret = TRUE; else ret = FALSE; @@ -818,17 +819,17 @@ u8 GetCurrentTrainerHillMapId(void) { u8 ret; - if (gMapHeader.mapLayoutId == 0x19F) + if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_1F) ret = 1; - else if (gMapHeader.mapLayoutId == 0x1A0) + else if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_2F) ret = 2; - else if (gMapHeader.mapLayoutId == 0x1A1) + else if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_3F) ret = 3; - else if (gMapHeader.mapLayoutId == 0x1A2) + else if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_4F) ret = 4; - else if (gMapHeader.mapLayoutId == 0x1A3) + else if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_ROOF) ret = 5; - else if (gMapHeader.mapLayoutId == 0x19E) + else if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_ENTRANCE) ret = 6; else ret = 0; @@ -840,7 +841,7 @@ static bool32 sub_81D6100(void) { bool32 ret; - if (gMapHeader.mapLayoutId == 0x1A3) + if (gMapHeader.mapLayoutId == LAYOUT_TRAINER_HILL_ROOF) ret = TRUE; else ret = FALSE; diff --git a/src/tv.c b/src/tv.c index 5b640836f..ec3a3d0cb 100644 --- a/src/tv.c +++ b/src/tv.c @@ -38,6 +38,7 @@ #include "secret_base.h" #include "tv.h" #include "data2.h" +#include "constants/layouts.h" // Static type declarations @@ -6264,7 +6265,9 @@ static void DoTVShowTodaysRivalTrainer(void) case MAPSEC_DYNAMIC: switch (show->rivalTrainer.mapLayoutId) { - case 0x115 ... 0x117: + case LAYOUT_SS_TIDAL_CORRIDOR: + case LAYOUT_SS_TIDAL_LOWER_DECK: + case LAYOUT_SS_TIDAL_ROOMS: sTVShowState = 10; break; default: @@ -6463,7 +6466,9 @@ static void DoTVShowHoennTreasureInvestigators(void) { switch (show->treasureInvestigators.mapLayoutId) { - case 0x115 ... 0x117: + case LAYOUT_SS_TIDAL_CORRIDOR: + case LAYOUT_SS_TIDAL_LOWER_DECK: + case LAYOUT_SS_TIDAL_ROOMS: sTVShowState = 2; break; default: diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 2e6f1642a..e42bf8a23 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1,27 +1,27 @@ #include "global.h" #include "wild_encounter.h" #include "pokemon.h" -#include "constants/species.h" #include "metatile_behavior.h" #include "fieldmap.h" #include "random.h" -#include "constants/maps.h" #include "field_player_avatar.h" -#include "constants/abilities.h" #include "event_data.h" #include "safari_zone.h" #include "overworld.h" #include "pokeblock.h" #include "battle_setup.h" #include "roamer.h" -#include "constants/game_stat.h" #include "tv.h" #include "link.h" #include "script.h" #include "battle_pike.h" #include "battle_pyramid.h" +#include "constants/abilities.h" +#include "constants/game_stat.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/maps.h" +#include "constants/species.h" extern const u8 EventScript_RepelWoreOff[]; @@ -413,7 +413,7 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]); if (flags & WILD_CHECK_REPEL && !IsWildLevelAllowedByRepel(level)) return FALSE; - if (gMapHeader.mapLayoutId != 0x166 && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) + if (gMapHeader.mapLayoutId != LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 && flags & WILD_CHECK_KEEN_EYE && !IsAbilityAllowingEncounter(level)) return FALSE; CreateWildMon(wildMonInfo->wildPokemon[wildMonIndex].species, level); @@ -474,7 +474,7 @@ static bool8 DoWildEncounterRateTest(u32 encounterRate, bool8 ignoreAbility) { u32 ability = GetMonAbility(&gPlayerParty[0]); - if (ability == ABILITY_STENCH && gMapHeader.mapLayoutId == 0x169) + if (ability == ABILITY_STENCH && gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) encounterRate = encounterRate * 3 / 4; else if (ability == ABILITY_STENCH) encounterRate /= 2; @@ -522,7 +522,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == 0x166) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) { headerId = GetBattlePikeWildMonHeaderId(); if (previousMetaTileBehavior != currMetaTileBehavior && !DoGlobalWildEncounterDiceRoll()) @@ -537,7 +537,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi BattleSetup_StartBattlePikeWildBattle(); return TRUE; } - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) { headerId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; if (previousMetaTileBehavior != currMetaTileBehavior && !DoGlobalWildEncounterDiceRoll()) @@ -665,7 +665,7 @@ bool8 SweetScentWildEncounter(void) headerId = GetCurrentMapWildMonHeaderId(); if (headerId == 0xFFFF) { - if (gMapHeader.mapLayoutId == 0x166) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3) { headerId = GetBattlePikeWildMonHeaderId(); if (TryGenerateWildMon(gBattlePikeWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, 0) != TRUE) @@ -675,7 +675,7 @@ bool8 SweetScentWildEncounter(void) BattleSetup_StartBattlePikeWildBattle(); return TRUE; } - if (gMapHeader.mapLayoutId == 0x169) + if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) { headerId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; if (TryGenerateWildMon(gBattlePyramidWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, 0) != TRUE) -- cgit v1.2.3 From 46a3969f69994e092b3ecc48fd46036b9625763d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 2 Feb 2019 00:25:43 -0600 Subject: Add constants for flags and vars --- src/berry_blender.c | 2 +- src/braille_puzzles.c | 16 ++++++++-------- src/decoration.c | 8 ++++---- src/field_special_scene.c | 10 +++++----- src/tv.c | 10 +++++----- 5 files changed, 23 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/berry_blender.c b/src/berry_blender.c index ea9c6c4ff..f2e3c7d14 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1438,7 +1438,7 @@ static void Blender_SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, { opponentBerryId = sOpponentBerrySets[opponentSetId][i]; var = playerBerryItemId - 163; - if (!FlagGet(0x340) && gSpecialVar_0x8004 == 1) + if (!FlagGet(FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_ONLOOKERS) && gSpecialVar_0x8004 == 1) { opponentSetId %= 5; opponentBerryId = sSpecialOpponentBerrySets[opponentSetId]; diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index b17ffad33..6be8ba4a4 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -447,25 +447,25 @@ bool8 ShouldDoBrailleRegicePuzzle(void) if (i < 16) { - u16 val = VarGet(0x403B); + u16 val = VarGet(VAR_0x403B); val |= 1 << i; - VarSet(0x403B, val); + VarSet(VAR_0x403B, val); } else if (i < 32) { - u16 val = VarGet(0x403C); + u16 val = VarGet(VAR_0x403C); val |= 1 << (i - 16); - VarSet(0x403C, val); + VarSet(VAR_0x403C, val); } else { - u16 val = VarGet(0x403D); + u16 val = VarGet(VAR_0x403D); val |= 1 << (i - 32); - VarSet(0x403D, val); + VarSet(VAR_0x403D, val); } - varValue = VarGet(0x403B); - if (varValue != 0xFFFF || VarGet(0x403C) != varValue || VarGet(0x403D) != 0xF) + varValue = VarGet(VAR_0x403B); + if (varValue != 0xFFFF || VarGet(VAR_0x403C) != varValue || VarGet(VAR_0x403D) != 0xF) return FALSE; if (gSaveBlock1Ptr->pos.x == 8 && gSaveBlock1Ptr->pos.y == 21) diff --git a/src/decoration.c b/src/decoration.c index c4c3d6171..36d9ba5f9 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1244,17 +1244,17 @@ void sub_8127E18(void) for (i = 0; i < 14; i ++) { - if (FlagGet(0xAE + i) == TRUE) + if (FlagGet(FLAG_DECORATION_1 + i) == TRUE) { - FlagClear(0xAE + i); + FlagClear(FLAG_DECORATION_1 + i); for (j = 0; j < gMapHeader.events->eventObjectCount; j ++) { - if (gMapHeader.events->eventObjects[j].flagId == 0xAE + i) + if (gMapHeader.events->eventObjects[j].flagId == FLAG_DECORATION_1 + i) { break; } } - VarSet(0x3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + VarSet(VAR_0x3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); gSpecialVar_0x8005 = gMapHeader.events->eventObjects[j].localId; gSpecialVar_0x8006 = sCurDecorMapX; gSpecialVar_0x8007 = sCurDecorMapY; diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 579188f36..2b518808b 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -300,8 +300,8 @@ void Task_HandlePorthole(u8 taskId) } break; case EXIT_PORTHOLE: // exit porthole. - FlagClear(0x4001); - FlagClear(0x4000); + FlagClear(FLAG_SPECIAL_FLAG_0x4001); + FlagClear(FLAG_SPECIAL_FLAG_0x4000); SetWarpDestinationToDynamicWarp(0); DoDiveWarp(); DestroyTask(taskId); @@ -315,7 +315,7 @@ void sub_80FB6EC(void) gSprites[spriteId].coordOffsetEnabled = FALSE; - if (VarGet(0x40B4) == 2) + if (VarGet(VAR_PORTHOLE_STATE) == 2) { StartSpriteAnim(&gSprites[spriteId], GetFaceDirectionAnimNum(4)); } @@ -337,8 +337,8 @@ void sub_80FB768(void) void sub_80FB7A4(void) { FlagSet(FLAG_SYS_CRUISE_MODE); - FlagSet(0x4001); - FlagSet(0x4000); + FlagSet(FLAG_SPECIAL_FLAG_0x4001); + FlagSet(FLAG_SPECIAL_FLAG_0x4000); SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); sub_80FB59C(); sub_80AF8B8(); diff --git a/src/tv.c b/src/tv.c index dfb4a3a64..f46bfa0c4 100644 --- a/src/tv.c +++ b/src/tv.c @@ -972,7 +972,7 @@ void GabbyAndTyBeforeInterview(void) TakeTVShowInSearchOfTrainersOffTheAir(); if (gSaveBlock1Ptr->gabbyAndTyData.lastMove == MOVE_NONE) { - FlagSet(0x0001); + FlagSet(FLAG_TEMP_1); } } @@ -2564,13 +2564,13 @@ void sub_80EEA70(void) show->secretBaseSecrets.kind = TVSHOW_SECRET_BASE_SECRETS; show->secretBaseSecrets.active = FALSE; StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); - show->secretBaseSecrets.stepsInBase = VarGet(0x40ec); + show->secretBaseSecrets.stepsInBase = VarGet(VAR_0x40EC); sub_80E980C(); StringCopy(strbuf, gStringVar1); StripExtCtrlCodes(strbuf); StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); - show->secretBaseSecrets.item = VarGet(0x40ed); - show->secretBaseSecrets.flags = VarGet(0x40ee) + (VarGet(0x40ef) << 16); + show->secretBaseSecrets.item = VarGet(VAR_0x40ED); + show->secretBaseSecrets.flags = VarGet(VAR_0x40EE) + (VarGet(VAR_0x40EF) << 16); tv_store_id_3x(show); show->secretBaseSecrets.language = gGameLanguage; if (show->secretBaseSecrets.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].language == LANGUAGE_JAPANESE) @@ -3604,7 +3604,7 @@ void sub_80F01B8(void) { VarSet(VAR_0x40BC, 0); RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); - FlagSet(0x396); + FlagSet(FLAG_HIDE_BATTLE_TOWER_REPORTER); } void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx) -- cgit v1.2.3 From 23b240ab658e0be6b114c36864fea19ff23eb61b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 11:04:38 +0100 Subject: Fix Menu and List Menu input defines --- src/battle_pyramid_bag.c | 8 ++++---- src/daycare.c | 6 +++--- src/decoration.c | 14 +++++++------- src/field_specials.c | 8 ++++---- src/item_menu.c | 16 ++++++++-------- src/learn_move.c | 2 +- src/list_menu.c | 4 ++-- src/mauville_old_man.c | 4 ++-- src/player_pc.c | 36 +++++++++++++++++++----------------- src/pokeblock.c | 4 ++-- src/pokemon_storage_system.c | 4 ++-- src/rom_8011DC0.c | 6 +++--- src/script_menu.c | 4 ++-- src/secret_base.c | 10 +++++----- src/shop.c | 6 +++--- src/trader.c | 4 ++-- 16 files changed, 69 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 50baf48fd..9bed2ab43 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -853,7 +853,7 @@ static void Task_HandlePyramidBagInput(u8 taskId) } else { - s32 listId = ListMenuHandleInputGetItemId(data[0]); + s32 listId = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); switch (listId) { @@ -945,9 +945,9 @@ static void HandleFewMenuActionsInput(u8 taskId) s32 id = Menu_ProcessInputNoWrap(); switch (id) { - case -2: + case MENU_NOTHING_CHOSEN: break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); sMenuActions[ACTION_CANCEL].func.void_u8(taskId); break; @@ -1285,7 +1285,7 @@ static void Task_ItemSwapHandleInput(u8 taskId) } else { - s32 id = ListMenuHandleInputGetItemId(data[0]); + s32 id = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gPyramidBagCursorData.scrollPosition, &gPyramidBagCursorData.cursorPosition); sub_81C7028(FALSE); sub_81C704C(gPyramidBagCursorData.cursorPosition); diff --git a/src/daycare.c b/src/daycare.c index 6bdbd987e..b75fab292 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1244,15 +1244,15 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y) static void Task_HandleDaycareLevelMenuInput(u8 taskId) { - u32 var = ListMenuHandleInputGetItemId(gTasks[taskId].tMenuListTaskId); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuListTaskId); if (gMain.newKeys & A_BUTTON) { - switch (var) + switch (input) { case 0: case 1: - gSpecialVar_Result = var; + gSpecialVar_Result = input; break; case 5: gSpecialVar_Result = 2; diff --git a/src/decoration.c b/src/decoration.c index c4c3d6171..5a688704f 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -526,14 +526,14 @@ void sub_8126B80(u8 taskId) PlaySE(SE_SELECT); sSecretBasePCMenuActions[sSecretBasePCMenuCursorPos].func.void_u8(taskId); break; - case -2: + case MENU_NOTHING_CHOSEN: sSecretBasePCMenuCursorPos = Menu_GetCursorPos(); if ((s8)menuPos != sSecretBasePCMenuCursorPos) { sub_8126C08(); } break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); SecretBasePC_Cancel(taskId); break; @@ -713,12 +713,12 @@ void sub_8127088(u8 taskId) input = Menu_ProcessInput(); switch (input) { - case -1: + case MENU_B_PRESSED: case 8: PlaySE(SE_SELECT); sub_812719C(taskId); break; - case -2: + case MENU_NOTHING_CHOSEN: break; default: PlaySE(SE_SELECT); @@ -933,13 +933,13 @@ void sub_812764C(u8 taskId) data = gTasks[taskId].data; if (!gPaletteFade.active) { - input = ListMenuHandleInputGetItemId(data[13]); + input = ListMenu_ProcessInput(data[13]); ListMenuGetScrollAndRow(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo); switch (input) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: PlaySE(SE_SELECT); SecretBasePC_SelectedDecorActions[data[11]][1](taskId); break; diff --git a/src/field_specials.c b/src/field_specials.c index 0dc1bf18b..f2ebf2b8e 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2603,9 +2603,9 @@ static void sub_813A46C(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void sub_813A4EC(u8 taskId) { struct Task *task = &gTasks[taskId]; - s32 itemId = ListMenuHandleInputGetItemId(task->data[14]); + s32 input = ListMenu_ProcessInput(task->data[14]); - switch (itemId) + switch (input) { case LIST_NOTHING_CHOSEN: break; @@ -2615,13 +2615,13 @@ static void sub_813A4EC(u8 taskId) sub_813A570(taskId); break; default: - gSpecialVar_Result = itemId; + gSpecialVar_Result = input; PlaySE(SE_SELECT); if (!task->data[6]) { sub_813A570(taskId); } - else if (itemId == task->data[1] - 1) + else if (input == task->data[1] - 1) { sub_813A570(taskId); } diff --git a/src/item_menu.c b/src/item_menu.c index a220f02ef..24a50aa9a 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1102,7 +1102,7 @@ void Task_BagMenu(u8 taskId) } else { - int listPosition = ListMenuHandleInputGetItemId(data[0]); + int listPosition = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], scrollPos, cursorPos); switch (listPosition) { @@ -1304,7 +1304,7 @@ void bag_menu_swap_items(u8 taskId) void sub_81AC3C0(u8 taskId) { s16* data = gTasks[taskId].data; - int r7; + int input; if (sub_81221EC() != TRUE) { @@ -1316,15 +1316,15 @@ void sub_81AC3C0(u8 taskId) } else { - r7 = ListMenuHandleInputGetItemId(data[0]); + input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); sub_80D4FC8(0); sub_80D4FEC(gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); - switch (r7) + switch (input) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) sub_81AC498(taskId); @@ -1546,9 +1546,9 @@ void Task_HandleInBattleItemMenuInput(u8 taskId) s8 r4 = Menu_ProcessInputNoWrap(); switch (r4) { - case -2: + case MENU_NOTHING_CHOSEN: break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); gUnknown_08613FB4[4].func.void_u8(taskId); break; diff --git a/src/learn_move.c b/src/learn_move.c index 4db83861e..7a6916013 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -638,7 +638,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) static void HandleInput(bool8 showContest) { - s32 itemId = ListMenuHandleInputGetItemId(sLearnMoveStruct->listMenuTask); + s32 itemId = ListMenu_ProcessInput(sLearnMoveStruct->listMenuTask); ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); switch (itemId) diff --git a/src/list_menu.c b/src/list_menu.c index 2476fae26..7a9547661 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -334,7 +334,7 @@ s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenu sMysteryGiftLinkMenu.state = 1; break; case 1: - sMysteryGiftLinkMenu.currItemId = ListMenuHandleInputGetItemId(sMysteryGiftLinkMenu.listTaskId); + sMysteryGiftLinkMenu.currItemId = ListMenu_ProcessInput(sMysteryGiftLinkMenu.listTaskId); if (gMain.newKeys & A_BUTTON) { sMysteryGiftLinkMenu.state = 2; @@ -406,7 +406,7 @@ u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenu return taskId; } -s32 ListMenuHandleInputGetItemId(u8 listTaskId) +s32 ListMenu_ProcessInput(u8 listTaskId) { struct ListMenu *list = (void*) gTasks[listTaskId].data; diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 1b4a25217..fd8e74c0a 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -1182,9 +1182,9 @@ static void Task_StoryListMenu(u8 taskId) // Task_StoryListMenu break; case 1: selection = Menu_ProcessInput(); - if (selection == -2) + if (selection == MENU_NOTHING_CHOSEN) break; - if (selection == -1 || selection == GetFreeStorySlot()) + if (selection == MENU_B_PRESSED || selection == GetFreeStorySlot()) { gSpecialVar_Result = 0; } diff --git a/src/player_pc.c b/src/player_pc.c index 474cecaf5..cff47ebc6 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -355,11 +355,11 @@ static void PlayerPCProcessMenuInput(u8 taskId) else inputOptionId = Menu_ProcessInputNoWrap(); - switch(inputOptionId) + switch (inputOptionId) { - case -2: + case MENU_NOTHING_CHOSEN: break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); sub_8198070(data[4], FALSE); ClearWindowTilemap(data[4]); @@ -464,13 +464,13 @@ static void ItemStorageMenuProcessInput(u8 taskId) r5 = Menu_GetCursorPos(); inputOptionId = Menu_ProcessInput(); r2 = Menu_GetCursorPos(); - switch(inputOptionId) + switch (inputOptionId) { - case -2: + case MENU_NOTHING_CHOSEN: if (r5 != r2) ItemStorageMenuPrint(gPCText_OptionDescList[r2]); break; - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); ItemStorage_Exit(taskId); break; @@ -638,14 +638,14 @@ static void Mailbox_ProcessInput(u8 taskId) if (!gPaletteFade.active) { - inputOptionId = ListMenuHandleInputGetItemId(data[5]); + inputOptionId = ListMenu_ProcessInput(data[5]); ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); - switch(inputOptionId) + switch (inputOptionId) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: PlaySE(SE_SELECT); RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); Mailbox_ReturnToPlayerPC(taskId); @@ -1145,13 +1145,13 @@ static void ItemStorage_ProcessInput(u8 taskId) } else { - id = ListMenuHandleInputGetItemId(data[5]); + id = ListMenu_ProcessInput(data[5]); ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); switch(id) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: PlaySE(SE_SELECT); ItemStorage_GoBackToPlayerPCMenu(taskId); break; @@ -1218,21 +1218,23 @@ static void sub_816C4FC(u8 taskId) ItemStorage_DoItemSwap(taskId, FALSE); return; } - id = ListMenuHandleInputGetItemId(data[5]); + id = ListMenu_ProcessInput(data[5]); ListMenuGetScrollAndRow(data[5], &(playerPCItemPageInfo.itemsAbove), &(playerPCItemPageInfo.cursorPos)); sub_81223FC(gUnknown_0203BCC4->spriteIds, 7, 0); sub_816C690(playerPCItemPageInfo.cursorPos); switch(id) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: if (gMain.newKeys & A_BUTTON) { ItemStorage_DoItemSwap(taskId, FALSE); } else - ItemStorage_DoItemSwap(taskId, TRUE); + { + ItemStorage_DoItemSwap(taskId, TRUE); + } break; default: ItemStorage_DoItemSwap(taskId, FALSE); diff --git a/src/pokeblock.c b/src/pokeblock.c index 7c07f9655..3fd4f34df 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -998,7 +998,7 @@ static void Task_HandlePokeblockMenuInput(u8 taskId) else { u16 oldPosition = sSavedPokeblockData.lastItemPos; - s32 itemId = ListMenuHandleInputGetItemId(data[0]); + s32 itemId = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); if (oldPosition != sSavedPokeblockData.lastItemPos) @@ -1044,7 +1044,7 @@ static void Task_HandlePokeblocksSwapInput(u8 taskId) { u16 i = sSavedPokeblockData.lastItemPage; u16 var = sSavedPokeblockData.lastItemPos; - s32 itemId = ListMenuHandleInputGetItemId(data[0]); + s32 itemId = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); if (i != sSavedPokeblockData.lastItemPage || var != sSavedPokeblockData.lastItemPos) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 78fec2fc5..c0aec4ddd 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1753,7 +1753,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[2] = Menu_ProcessInput(); switch(task->data[2]) { - case -2: + case MENU_NOTHING_CHOSEN: task->data[3] = task->data[1]; if (gMain.newKeys & DPAD_UP && --task->data[3] < 0) task->data[3] = 4; @@ -1767,7 +1767,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; - case -1: + case MENU_B_PRESSED: case 4: sub_819746C(task->data[15], TRUE); ScriptContext2_Disable(); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 41f7eeee7..c5ad67fbc 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1105,7 +1105,7 @@ void sub_80134E8(u8 taskId) RedrawListMenu(data->listTaskId); break; case 0: - id = ListMenuHandleInputGetItemId(data->listTaskId); + id = ListMenu_ProcessInput(data->listTaskId); if (gMain.newKeys & A_BUTTON && id != -1) { // this unused variable along with the assignment is needed to match @@ -2176,7 +2176,7 @@ void sub_8014F48(u8 taskId) RedrawListMenu(data->listTaskId); break; case 0: - id = ListMenuHandleInputGetItemId(data->listTaskId); + id = ListMenu_ProcessInput(data->listTaskId); if (gMain.newKeys & A_BUTTON && id != -1) { // this unused variable along with the assignment is needed to match @@ -2340,7 +2340,7 @@ void sub_80152F4(u8 taskId) break; case 0: if (data->field_13 != 0) - id = ListMenuHandleInputGetItemId(data->listTaskId); + id = ListMenu_ProcessInput(data->listTaskId); if (data->field_14 > 120) { if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7) diff --git a/src/script_menu.c b/src/script_menu.c index a4f4c6086..7180bfc60 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1170,9 +1170,9 @@ static void Task_HandleMultichoiceInput(u8 taskId) sub_80E2A94(tMultichoiceId); } - if (selection != -2) + if (selection != MENU_NOTHING_CHOSEN) { - if (selection == -1) + if (selection == MENU_B_PRESSED) { if (tIgnoreBPress) return; diff --git a/src/secret_base.c b/src/secret_base.c index de5fae077..adcab9cbc 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -953,13 +953,13 @@ void sub_80E9E90(u8 taskId) s32 input; data = gTasks[taskId].data; - input = ListMenuHandleInputGetItemId(data[5]); + input = ListMenu_ProcessInput(data[5]); ListMenuGetScrollAndRow(data[5], &data[2], &data[1]); switch (input) { - case -1: + case LIST_NOTHING_CHOSEN: break; - case -2: + case LIST_B_PRESSED: PlaySE(SE_SELECT); DestroyListMenuTask(data[5], NULL, NULL); RemoveScrollIndicatorArrowPair(data[8]); @@ -1002,11 +1002,11 @@ void sub_80E9FB0(u8 taskId) input = Menu_ProcessInputNoWrap(); switch (input) { - case -1: + case MENU_B_PRESSED: PlaySE(SE_SELECT); sub_80EA18C(taskId); break; - case -2: + case MENU_NOTHING_CHOSEN: break; default: PlaySE(SE_SELECT); diff --git a/src/shop.c b/src/shop.c index c44cbca12..8eefd5e97 100755 --- a/src/shop.c +++ b/src/shop.c @@ -328,9 +328,9 @@ static void Task_ShopMenu(u8 taskId) s8 inputCode = Menu_ProcessInputNoWrap(); switch (inputCode) { - case LIST_B_PRESSED: + case MENU_NOTHING_CHOSEN: break; - case LIST_NOTHING_CHOSEN: + case MENU_B_PRESSED: PlaySE(SE_SELECT); Task_HandleShopMenuQuit(taskId); break; @@ -911,7 +911,7 @@ static void Task_BuyMenu(u8 taskId) if (!gPaletteFade.active) { - s32 itemId = ListMenuHandleInputGetItemId(tListTaskId); + s32 itemId = ListMenu_ProcessInput(tListTaskId); ListMenuGetScrollAndRow(tListTaskId, &gShopDataPtr->scrollOffset, &gShopDataPtr->selectedRow); switch (itemId) diff --git a/src/trader.c b/src/trader.c index e23efb4ce..b5c159fb9 100644 --- a/src/trader.c +++ b/src/trader.c @@ -113,9 +113,9 @@ void Task_HandleGetDecorationMenuInput(u8 taskId) switch (input) { - case -2: + case MENU_NOTHING_CHOSEN: break; - case -1: + case MENU_B_PRESSED: case 4: PlaySE(SE_SELECT); sub_8133BE4(taskId, 0); -- cgit v1.2.3 From a740bc719037612da65941482e4a0dab4837c629 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 11:32:00 +0100 Subject: Name action 11 --- src/battle_main.c | 6 +++--- src/battle_script_commands.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/battle_main.c b/src/battle_main.c index 09ea3dfc9..043e75808 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -139,7 +139,7 @@ static void HandleAction_ThrowPokeblock(void); static void HandleAction_GoNear(void); static void HandleAction_SafariZoneRun(void); static void HandleAction_WallyBallThrow(void); -static void HandleAction_Action11(void); +static void HandleAction_TryFinish(void); static void HandleAction_NothingIsFainted(void); static void HandleAction_ActionFinished(void); @@ -553,7 +553,7 @@ static void (* const sTurnActionsFuncsTable[])(void) = [B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun, [B_ACTION_WALLY_THROW] = HandleAction_WallyBallThrow, [B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript, - [11] = HandleAction_Action11, // not sure about this one + [B_ACTION_TRY_FINISH] = HandleAction_TryFinish, [B_ACTION_FINISHED] = HandleAction_ActionFinished, [B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted, }; @@ -5845,7 +5845,7 @@ static void HandleAction_WallyBallThrow(void) gActionsByTurnOrder[1] = B_ACTION_FINISHED; } -static void HandleAction_Action11(void) +static void HandleAction_TryFinish(void) { if (!HandleFaintedMonActions()) { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6bbee842e..6023b2c1b 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4233,13 +4233,13 @@ static void atk3D_end(void) gMoveResultFlags = 0; gActiveBattler = 0; - gCurrentActionFuncId = 0xB; + gCurrentActionFuncId = B_ACTION_TRY_FINISH; } static void atk3E_end2(void) { gActiveBattler = 0; - gCurrentActionFuncId = 0xB; + gCurrentActionFuncId = B_ACTION_TRY_FINISH; } static void atk3F_end3(void) // pops the main function stack -- cgit v1.2.3 From a7f94bbeeaaee3ef6c1f192c9010ca39d3262884 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 11:55:11 +0100 Subject: Dump last battle anim file --- src/battle_anim_80A9C70.c | 176 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) (limited to 'src') diff --git a/src/battle_anim_80A9C70.c b/src/battle_anim_80A9C70.c index 001f99d7f..1271680e0 100644 --- a/src/battle_anim_80A9C70.c +++ b/src/battle_anim_80A9C70.c @@ -28,6 +28,182 @@ static void sub_80A9E44(struct Sprite *sprite); static void sub_80A9E78(struct Sprite *sprite); // const rom data +static const union AnimCmd sSpriteAnim_853EDE4[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(4, 3), + ANIMCMD_FRAME(8, 3), + ANIMCMD_FRAME(12, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EDF8[] = +{ + sSpriteAnim_853EDE4 +}; + +const struct SpriteTemplate gUnknown_0853EDFC = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +const struct SpriteTemplate gUnknown_0853EE14 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_0852490C, + .anims = sSpriteAnimTable_853EDF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8A6C, +}; + +static const union AnimCmd sSpriteAnim_853EE2C[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE34[] = +{ + sSpriteAnim_853EE2C +}; + +const struct SpriteTemplate gUnknown_0853EE38 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8E30, +}; + +const struct SpriteTemplate gUnknown_0853EE50 = +{ + .tileTag = ANIM_TAG_WEATHER_BALL, + .paletteTag = ANIM_TAG_WEATHER_BALL, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE34, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8EE4, +}; + +static const union AnimCmd sSpriteAnim_853EE68[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_853EE80[] = +{ + sSpriteAnim_853EE68 +}; + +const struct SpriteTemplate gUnknown_0853EE84 = +{ + .tileTag = ANIM_TAG_SPARKLE_4, + .paletteTag = ANIM_TAG_SPARKLE_4, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EE80, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8B64, +}; + +const struct SpriteTemplate gUnknown_0853EE9C = +{ + .tileTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .paletteTag = ANIM_TAG_UNUSED_MONSTER_FOOT, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEB4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEBC[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_853EEC4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EECC[] = +{ + sSpriteAnim_853EEB4, + sSpriteAnim_853EEBC, + sSpriteAnim_853EEC4 +}; + +const struct SpriteTemplate gUnknown_0853EED8 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524914, + .anims = sSpriteAnimTable_853EECC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A8AEC, +}; + +static const union AnimCmd sSpriteAnim_853EEF0[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_853EEF8[] = +{ + sSpriteAnim_853EEF0 +}; + +static const union AffineAnimCmd sSpriteAffineAnim_853EEFC[] = +{ + AFFINEANIMCMD_FRAME(96, 96, 0, 0), + AFFINEANIMCMD_FRAME(2, 2, 0, 1), + AFFINEANIMCMD_JUMP(1) +}; + +static const union AffineAnimCmd *const sSpriteAffineAnimTable_853EEF8[] = +{ + sSpriteAffineAnim_853EEFC +}; + +const struct SpriteTemplate gUnknown_0853EF18 = +{ + .tileTag = ANIM_TAG_UNUSED_ORB, + .paletteTag = ANIM_TAG_UNUSED_ORB, + .oam = &gUnknown_085249CC, + .anims = sSpriteAnimTable_853EEF8, + .images = NULL, + .affineAnims = sSpriteAffineAnimTable_853EEF8, + .callback = sub_80A8A6C, +}; + static const struct Subsprite gUnknown_0853EF30[] = { {.x = -16, .y = -16, .shape = ST_OAM_SQUARE, .size = 3, .tileOffset = 0, .priority = 2}, -- cgit v1.2.3 From 363fa9bed25ad58e0b43bf3941903f5e83359f29 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 12:44:00 +0100 Subject: Clean up ram vars --- src/cable_club.c | 4 +--- src/contest.c | 2 ++ src/contest_link_80F57C4.c | 16 +++++++--------- src/contest_painting.c | 13 +++++++------ src/contest_painting_effects.c | 19 +++++++++++-------- src/dragon.c | 4 ++-- src/evolution_scene.c | 15 +++++++-------- src/item_use.c | 5 +++-- src/party_menu.c | 4 +++- src/pokedex.c | 2 -- src/pokedex_cry_screen.c | 5 ++++- src/rom_8011DC0.c | 2 -- src/trainer_card.c | 1 + 13 files changed, 48 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index ce9b9db05..303b0d016 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -27,12 +27,10 @@ #include "task.h" #include "trade.h" #include "trainer_card.h" +#include "party_menu.h" #include "window.h" #include "constants/songs.h" -extern u8 gUnknown_02032298[2]; -extern u8 gSelectedOrderFromParty[]; - static const struct WindowTemplate gUnknown_08550594 = { .bg = 0, .tilemapLeft = 16, diff --git a/src/contest.c b/src/contest.c index b24036f39..cf084e35e 100644 --- a/src/contest.c +++ b/src/contest.c @@ -214,6 +214,8 @@ EWRAM_DATA u8 gHighestRibbonRank = 0; EWRAM_DATA struct ContestResources *gContestResources = NULL; EWRAM_DATA u8 sContestBgCopyFlags = 0; EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0}; +EWRAM_DATA u8 gUnknown_02039F5C = 0; +EWRAM_DATA u8 gUnknown_02039F5D = 0; // IWRAM common vars. u32 gContestRngValue; diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 721a4f870..381fb34fa 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -3,7 +3,6 @@ #include "bg.h" #include "contest.h" #include "contest_link_80F57C4.h" -#include "contest_painting.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" @@ -67,10 +66,9 @@ struct ContestLink80F57C4 u8 *unkC[4]; }; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; - -extern struct ContestLink80F57C4 *gUnknown_0203A034; +EWRAM_DATA struct ContestLink80F57C4 *gUnknown_0203A034 = NULL; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct BgTemplate gUnknown_0858D888[4]; extern const struct WindowTemplate gUnknown_0858D898[]; extern const struct CompressedSpriteSheet gUnknown_0858D878[]; @@ -138,7 +136,7 @@ void sub_80F57C4(void) InitBgsFromTemplates(0, gUnknown_0858D888, ARRAY_COUNT(gUnknown_0858D888)); for (i = 0; i < 4; i++) SetBgTilemapBuffer(i, gUnknown_0203A034->unkC[i]); - + InitWindows(gUnknown_0858D898); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_MOSAIC, 0); @@ -720,7 +718,7 @@ static void sub_80F66B4(u8 taskId) { nationalDexNum = SpeciesToNationalPokedexNum(gContestMons[i].species); GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); - } + } } gTasks[taskId].data[10] = 0; @@ -761,7 +759,7 @@ static void sub_80F67C4(u8 taskId) { if (!(gIsLinkContest & 0x1)) BravoTrainerPokemonProfile_BeforeInterview2(gContestFinalStandings[gContestPlayerMonIndex]); - + BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_80F6820; } @@ -1282,7 +1280,7 @@ static void sub_80F6F68(struct Sprite *sprite) struct Sprite *sprite2 = &gSprites[sprite->data[i]]; sprite2->pos1.x = sprite->pos1.x + sprite->pos2.x + (i + 1) * 64; } - + if (sprite->pos1.x == sprite->data[4]) sprite->callback = sub_80F6FDC; } @@ -1348,7 +1346,7 @@ static void sub_80F7144(void) sprite->invisible = 1; for (i = 0; i < 3; i++) gSprites[sprite->data[i]].invisible = 1; - + gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); diff --git a/src/contest_painting.c b/src/contest_painting.c index 0ed169a77..71a110aa8 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -20,10 +20,11 @@ #include "window.h" #include "constants/rgb.h" -extern u16 (*gUnknown_03006190)[][32]; -extern struct ContestWinner *gUnknown_030061C0; -extern u16 *gContestPaintingMonPalette; -extern struct Unk030061A0 gUnknown_030061A0; +// IWRAM common +u16 (*gUnknown_03006190)[][32]; +struct Unk030061A0 gUnknown_030061A0; +struct ContestWinner *gUnknown_030061C0; +u16 *gContestPaintingMonPalette; // IWRAM bss IWRAM_DATA u8 gContestPaintingState; @@ -103,7 +104,7 @@ const u8 *const gContestRankTextPointers[] = gContestLink, }; -const struct BgTemplate gUnknown_085B07E8[] = +const struct BgTemplate gUnknown_085B07E8[] = { { .bg = 1, @@ -116,7 +117,7 @@ const struct BgTemplate gUnknown_085B07E8[] = }, }; -const struct WindowTemplate gUnknown_085B07EC = +const struct WindowTemplate gUnknown_085B07EC = { .bg = 1, .tilemapLeft = 2, diff --git a/src/contest_painting_effects.c b/src/contest_painting_effects.c index 187a0f196..142ad7bc9 100644 --- a/src/contest_painting_effects.c +++ b/src/contest_painting_effects.c @@ -3,14 +3,17 @@ #include "contest_painting.h" #include "constants/rgb.h" -extern u8 gUnknown_03006164; -extern u16 (*gUnknown_03006168)[][32]; -extern u8 gUnknown_0300616C; -extern u8 gUnknown_03006170; -extern u8 gUnknown_03006174; -extern u8 gUnknown_03006178; -extern u8 gUnknown_0300617C; -extern u8 gUnknown_03006180; +// IWRAM common +u8 gUnknown_03006164; +u16 (*gUnknown_03006168)[][32]; +u8 gUnknown_0300616C; +u8 gUnknown_03006170; +u8 gUnknown_03006174; +u8 gUnknown_03006178; +u8 gUnknown_0300617C; +u8 gUnknown_03006180; +u16 gUnknown_03006184; +u16 gUnknown_03006188; // this file's functions void sub_8125230(void); diff --git a/src/dragon.c b/src/dragon.c index 4a2ac1c51..9b39a8a30 100644 --- a/src/dragon.c +++ b/src/dragon.c @@ -5,8 +5,6 @@ #include "trig.h" #include "constants/rgb.h" -extern u16 gUnknown_0203A100[]; - void sub_8113064(struct Sprite *); void sub_81131B4(struct Sprite *); void sub_8113224(struct Sprite *); @@ -17,6 +15,8 @@ static void sub_81134B8(u8); static void sub_8113574(struct Task *); static void sub_811369C(struct Sprite *); +EWRAM_DATA static u16 gUnknown_0203A100[7] = {0}; + const union AnimCmd gUnknown_08596E60[] = { ANIMCMD_FRAME(0, 4), diff --git a/src/evolution_scene.c b/src/evolution_scene.c index c97e2d10f..4bf7701be 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -9,6 +9,7 @@ #include "evolution_graphics.h" #include "gpu_regs.h" #include "link.h" +#include "link_rfu.h" #include "m4a.h" #include "main.h" #include "menu.h" @@ -16,10 +17,12 @@ #include "palette.h" #include "pokedex.h" #include "pokemon.h" +#include "pokemon_summary_screen.h" #include "scanline_effect.h" #include "sound.h" #include "sprite.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "text.h" #include "text_window.h" @@ -39,22 +42,18 @@ struct EvoInfo u16 savedPalette[48]; }; +// EWRAM vars static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL; static EWRAM_DATA u16 *sEvoMovingBgPtr = NULL; +// IWRAM common +void (*gCB2_AfterEvolution)(void); + #define sEvoCursorPos gBattleCommunication[1] // when learning a new move #define sEvoGraphicsTaskID gBattleCommunication[2] -extern const struct WindowTemplate gUnknown_0833900C; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -// strings -extern const u8 gText_CommunicationStandby5[]; - -extern void ShowSelectMovePokemonSummaryScreen(struct Pokemon *party, u8 monId, u8 partyCount, void *CB2_ptr, u16 move); -extern u8 sub_81C1B94(void); -extern void sub_800E084(void); - // this file's functions static void Task_EvolutionScene(u8 taskID); static void Task_TradeEvolutionScene(u8 taskID); diff --git a/src/item_use.c b/src/item_use.c index 6a7f6cec0..0ea5f6acf 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -38,8 +38,6 @@ #include "constants/songs.h" #include "constants/vars.h" -extern void(*gUnknown_0203A0F4)(u8 taskId); -extern void (*gUnknown_03006328)(u8, TaskFunc); extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); extern void ScriptUnfreezeEventObjects(void); @@ -100,6 +98,9 @@ void sub_80FDBEC(void); bool8 sub_80FDE2C(void); void ItemUseOutOfBattle_CannotUse(u8 taskId); +// EWRAM variables +EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL; + // .rodata static const MainCallback gUnknown_085920D8[] = diff --git a/src/party_menu.c b/src/party_menu.c index 8193fcf31..15b5d24d8 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -119,6 +119,7 @@ struct Struct203CEDC u8 unkC; }; +// EWRAM vars static EWRAM_DATA struct Struct203CEC4 *gUnknown_0203CEC4 = NULL; EWRAM_DATA struct Struct203CEC8 gUnknown_0203CEC8 = {0}; static EWRAM_DATA struct Struct203CEDC *gUnknown_0203CEDC = NULL; @@ -134,7 +135,8 @@ static EWRAM_DATA u16 gUnknown_0203CEFC = 0; static EWRAM_DATA u16 gUnknown_0203CEFE = 0; // unused EWRAM_DATA u8 gUnknown_0203CF00[3] = {0}; -extern void (*gUnknown_03006328)(u8, TaskFunc); +// IWRAM common +void (*gUnknown_03006328)(u8, TaskFunc); static void reset_brm(void); static void PartyMenuInitCallback(void); diff --git a/src/pokedex.c b/src/pokedex.c index f99a8226a..c47ada5b8 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -30,8 +30,6 @@ #include "constants/songs.h" #include "constants/species.h" -extern u8 gDexCryScreenState; - // EWRAM static EWRAM_DATA struct PokedexView *sPokedexView = NULL; static EWRAM_DATA u16 gUnknown_02039B50 = 0; diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 4a9227b99..c385141d5 100755 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -39,7 +39,10 @@ static void sub_8145824(u8, s16, u8); static void sub_814596C(struct Sprite *); static void sub_8145B24(s8); -extern u8 gDexCryScreenState; +// IWRAM common +u8 gDexCryScreenState; + +// EWRAM vars static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL; static EWRAM_DATA u8 *sCryWaveformWindowTiledata = NULL; static EWRAM_DATA struct PokedexCryVolumeMeter *sCryVolumeMeter = NULL; diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 41f7eeee7..3b679e1d9 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -189,8 +189,6 @@ extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; extern u8 gUnknown_03005DB4; -extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; -extern u8 gUnknown_02032298[2]; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; diff --git a/src/trainer_card.c b/src/trainer_card.c index b7bd5cc1d..49a62284f 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -93,6 +93,7 @@ struct TrainerCardData extern u8 sub_80D30A0(u16); // EWRAM +EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0}; EWRAM_DATA static struct TrainerCardData *sData = NULL; //this file's functions -- cgit v1.2.3 From ea79f1c8f6803d69fad9b5cb64b4e9767b7c1903 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Feb 2019 19:41:34 +0100 Subject: tabs --- src/player_pc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/player_pc.c b/src/player_pc.c index cff47ebc6..0d08a5e7b 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1232,9 +1232,9 @@ static void sub_816C4FC(u8 taskId) ItemStorage_DoItemSwap(taskId, FALSE); } else - { - ItemStorage_DoItemSwap(taskId, TRUE); - } + { + ItemStorage_DoItemSwap(taskId, TRUE); + } break; default: ItemStorage_DoItemSwap(taskId, FALSE); -- cgit v1.2.3 From d64a905d65d638b7c76e86a2326f5077c3352b11 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 2 Feb 2019 15:53:47 -0600 Subject: Document trainer backsprites --- src/battle_controller_link_opponent.c | 4 ++-- src/data/pokemon/trainer_class_lookups.h | 4 ++-- src/data/trainer_graphics/back_pic_anims.h | 12 +++++----- src/data/trainer_graphics/back_pic_tables.h | 32 ++++++++++++------------- src/data2b.c | 18 +++++++-------- src/pokemon.c | 36 ++++++++++++++--------------- 6 files changed, 53 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index a7b08a974..d69e05b9e 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1278,7 +1278,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_FIRE_RED || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN) { - if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) + if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != MALE) trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_LEAF]; else trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RED]; @@ -1286,7 +1286,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE) { - if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0) + if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != MALE) trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_MAY]; else trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_RS_BRENDAN]; diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index 6e8474c12..04c7ab3c4 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -146,10 +146,10 @@ const u8 gFacilityClassToTrainerClass[] = [FACILITY_CLASS_TWINS] = TRAINER_CLASS_TWINS, [FACILITY_CLASS_SAILOR] = TRAINER_CLASS_SAILOR, [FACILITY_CLASS_WALLY] = TRAINER_CLASS_PKMN_TRAINER_3, - [FACILITY_CLASS_MAY] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_BRENDAN] = TRAINER_CLASS_PKMN_TRAINER_3, [FACILITY_CLASS_BRENDAN_2] = TRAINER_CLASS_PKMN_TRAINER_3, [FACILITY_CLASS_BRENDAN_3] = TRAINER_CLASS_PKMN_TRAINER_3, - [FACILITY_CLASS_BRENDAN] = TRAINER_CLASS_PKMN_TRAINER_3, + [FACILITY_CLASS_MAY] = TRAINER_CLASS_PKMN_TRAINER_3, [FACILITY_CLASS_MAY_2] = TRAINER_CLASS_PKMN_TRAINER_3, [FACILITY_CLASS_MAY_3] = TRAINER_CLASS_PKMN_TRAINER_3, [FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_CLASS_PKMN_BREEDER, diff --git a/src/data/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h index 21dbda597..0cc4bb203 100644 --- a/src/data/trainer_graphics/back_pic_anims.h +++ b/src/data/trainer_graphics/back_pic_anims.h @@ -70,13 +70,13 @@ const union AnimCmd gAnimCmd_RubySapphireMay_1[] = const union AnimCmd *const gTrainerBackAnims_Brendan[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_Brendan_1, }; const union AnimCmd *const gTrainerBackAnims_May[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_May_Steven_1, }; @@ -94,25 +94,25 @@ const union AnimCmd *const gTrainerBackAnims_Leaf[] = const union AnimCmd *const gTrainerBackAnims_RubySapphireBrendan[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_RubySapphireBrendan_1, }; const union AnimCmd *const gTrainerBackAnims_RubySapphireMay[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_RubySapphireMay_1, }; const union AnimCmd *const gTrainerBackAnims_Wally[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_Wally_1, }; const union AnimCmd *const gTrainerBackAnims_Steven[] = { - AnimCmd_82FF540, + gAnimCmd_General_Frame3, gAnimCmd_May_Steven_1, }; diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index 920ecbb39..0f6b0cb91 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -15,24 +15,24 @@ const struct MonCoords gTrainerBackPicCoords[] = // the casts are so they'll play nice with the strict struct definition const struct CompressedSpriteSheet gTrainerBackPicTable[] = { - (const u32 *)gTrainerBackPic_Brendan, 0x2000, 0, - (const u32 *)gTrainerBackPic_May, 0x2000, 1, - (const u32 *)gTrainerBackPic_Red, 0x2800, 2, - (const u32 *)gTrainerBackPic_Leaf, 0x2800, 3, - (const u32 *)gTrainerBackPic_RubySapphireBrendan, 0x2000, 4, - (const u32 *)gTrainerBackPic_RubySapphireMay, 0x2000, 5, - (const u32 *)gTrainerBackPic_Wally, 0x2000, 6, - (const u32 *)gTrainerBackPic_Steven, 0x2000, 7, + (const u32 *)gTrainerBackPic_Brendan, 0x2000, TRAINER_BACK_PIC_BRENDAN, + (const u32 *)gTrainerBackPic_May, 0x2000, TRAINER_BACK_PIC_MAY, + (const u32 *)gTrainerBackPic_Red, 0x2800, TRAINER_BACK_PIC_RED, + (const u32 *)gTrainerBackPic_Leaf, 0x2800, TRAINER_BACK_PIC_LEAF, + (const u32 *)gTrainerBackPic_RubySapphireBrendan, 0x2000, TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN, + (const u32 *)gTrainerBackPic_RubySapphireMay, 0x2000, TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY, + (const u32 *)gTrainerBackPic_Wally, 0x2000, TRAINER_BACK_PIC_WALLY, + (const u32 *)gTrainerBackPic_Steven, 0x2000, TRAINER_BACK_PIC_STEVEN, }; const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = { - gTrainerPalette_Brendan, 0, - gTrainerPalette_May, 1, - gTrainerBackPicPalette_Red, 2, - gTrainerBackPicPalette_Leaf, 3, - gTrainerPalette_RubySapphireBrendan, 4, - gTrainerPalette_RubySapphireMay, 5, - gTrainerPalette_Wally, 6, - gTrainerPalette_Steven, 7, + gTrainerPalette_Brendan, TRAINER_BACK_PIC_BRENDAN, + gTrainerPalette_May, TRAINER_BACK_PIC_MAY, + gTrainerBackPicPalette_Red, TRAINER_BACK_PIC_RED, + gTrainerBackPicPalette_Leaf, TRAINER_BACK_PIC_LEAF, + gTrainerPalette_RubySapphireBrendan, TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN, + gTrainerPalette_RubySapphireMay, TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY, + gTrainerPalette_Wally, TRAINER_BACK_PIC_WALLY, + gTrainerPalette_Steven, TRAINER_BACK_PIC_STEVEN, }; diff --git a/src/data2b.c b/src/data2b.c index bb1baa266..af76390a4 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -40,7 +40,7 @@ const struct SpriteFrameImage gUnknown_082FF408[] = gHeap + 0xF800, 0x800, }; -const struct SpriteFrameImage gUnknown_082FF428[] = +const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = { gTrainerBackPic_Brendan, 0x0800, gTrainerBackPic_Brendan + 0x0800, 0x0800, @@ -48,7 +48,7 @@ const struct SpriteFrameImage gUnknown_082FF428[] = gTrainerBackPic_Brendan + 0x1800, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF448[] = +const struct SpriteFrameImage gTrainerBackPicTable_May[] = { gTrainerBackPic_May, 0x0800, gTrainerBackPic_May + 0x0800, 0x0800, @@ -56,7 +56,7 @@ const struct SpriteFrameImage gUnknown_082FF448[] = gTrainerBackPic_May + 0x1800, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF468[] = +const struct SpriteFrameImage gTrainerBackPicTable_Red[] = { gTrainerBackPic_Red, 0x0800, gTrainerBackPic_Red + 0x0800, 0x0800, @@ -65,7 +65,7 @@ const struct SpriteFrameImage gUnknown_082FF468[] = gTrainerBackPic_Red + 0x2000, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF490[] = +const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = { gTrainerBackPic_Leaf, 0x0800, gTrainerBackPic_Leaf + 0x0800, 0x0800, @@ -74,7 +74,7 @@ const struct SpriteFrameImage gUnknown_082FF490[] = gTrainerBackPic_Leaf + 0x2000, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF4B8[] = +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[] = { gTrainerBackPic_RubySapphireBrendan, 0x0800, gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800, @@ -82,7 +82,7 @@ const struct SpriteFrameImage gUnknown_082FF4B8[] = gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF4D8[] = +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[] = { gTrainerBackPic_RubySapphireMay, 0x0800, gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800, @@ -90,7 +90,7 @@ const struct SpriteFrameImage gUnknown_082FF4D8[] = gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF4F8[] = +const struct SpriteFrameImage gTrainerBackPicTable_Wally[] = { gTrainerBackPic_Wally, 0x0800, gTrainerBackPic_Wally + 0x0800, 0x0800, @@ -98,7 +98,7 @@ const struct SpriteFrameImage gUnknown_082FF4F8[] = gTrainerBackPic_Wally + 0x1800, 0x0800, }; -const struct SpriteFrameImage gUnknown_082FF518[] = +const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = { gTrainerBackPic_Steven, 0x0800, gTrainerBackPic_Steven + 0x0800, 0x0800, @@ -112,7 +112,7 @@ const union AnimCmd gAnimCmd_General_Frame0[] = ANIMCMD_END, }; -const union AnimCmd AnimCmd_82FF540[] = +const union AnimCmd gAnimCmd_General_Frame3[] = { ANIMCMD_FRAME(3, 0), ANIMCMD_END, diff --git a/src/pokemon.c b/src/pokemon.c index 174f7ae66..1e07ee168 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -52,14 +52,14 @@ extern const struct SpriteFrameImage gUnknown_082FF3A8[]; extern const struct SpriteFrameImage gUnknown_082FF3C8[]; extern const struct SpriteFrameImage gUnknown_082FF3E8[]; extern const struct SpriteFrameImage gUnknown_082FF408[]; -extern const struct SpriteFrameImage gUnknown_082FF428[]; -extern const struct SpriteFrameImage gUnknown_082FF448[]; -extern const struct SpriteFrameImage gUnknown_082FF468[]; -extern const struct SpriteFrameImage gUnknown_082FF490[]; -extern const struct SpriteFrameImage gUnknown_082FF4B8[]; -extern const struct SpriteFrameImage gUnknown_082FF4D8[]; -extern const struct SpriteFrameImage gUnknown_082FF4F8[]; -extern const struct SpriteFrameImage gUnknown_082FF518[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *gPlayerMonSpriteAnimsTable[]; @@ -2328,14 +2328,14 @@ const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] = }, }; -static const struct SpriteTemplate gUnknown_08329DF8[] = +static const struct SpriteTemplate gSpriteTemplateTable_TrainerBackSprites[] = { { .tileTag = 0xFFFF, .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF428, + .images = gTrainerBackPicTable_Brendan, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2344,7 +2344,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF448, + .images = gTrainerBackPicTable_May, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2353,7 +2353,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF468, + .images = gTrainerBackPicTable_Red, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2362,7 +2362,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF490, + .images = gTrainerBackPicTable_Leaf, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2371,7 +2371,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4B8, + .images = gTrainerBackPicTable_RubySapphireBrendan, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2380,7 +2380,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4D8, + .images = gTrainerBackPicTable_RubySapphireMay, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2389,7 +2389,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4F8, + .images = gTrainerBackPicTable_Wally, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2398,7 +2398,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF518, + .images = gTrainerBackPicTable_Steven, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -3817,7 +3817,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gUnknown_08329DF8[trainerSpriteId]; + gMultiuseSpriteTemplate = gSpriteTemplateTable_TrainerBackSprites[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else -- cgit v1.2.3 From 031fd663939b6d6bf2d29a21ac3f155f1d593457 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sat, 2 Feb 2019 22:14:04 +0000 Subject: Label some summary screen functions --- src/pokemon_summary_screen.c | 123 ++++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 61 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 14bfba4ad..b05f3129b 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -173,7 +173,7 @@ static void sub_81C20F0(u8 taskId); static void sub_81C2194(u16 *a, u16 b, u8 c); static void sub_81C2228(struct Pokemon* mon); static void DrawExperienceProgressBar(struct Pokemon* mon); -static void sub_81C240C(u16 a); +static void DrawContestMoveHearts(u16 move); static void sub_81C2524(void); static void sub_81C2554(void); static void sub_81C25E8(void); @@ -223,17 +223,17 @@ static void PrintNewMoveDetailsOrCancelText(void); static void sub_81C4064(void); static void sub_81C40A0(u8 a, u8 b); static void PrintHMMovesCantBeForgotten(void); -static void sub_81C4190(void); -static void sub_81C4204(u8 a, u8 b); -static void sub_81C424C(void); -static void sub_81C4280(void); -static void sub_81C42C8(void); -static void sub_81C43A0(void); -static void sub_81C4420(void); -static void sub_81C4484(void); -static void sub_81C44F0(void); +static void ResetPssSpriteIds(void); +static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible); +static void HidePageSpecificSprites(void); +static void SetTypeIcons(void); +static void CreateMoveTypeIcons(void); +static void SetMonTypeIcons(void); +static void SetMoveTypeIcons(void); +static void SetContestMoveTypeIcons(void); +static void SetNewMoveTypeIcon(void); static void sub_81C4568(u8 a, u8 b); -static u8 sub_81C45F4(struct Pokemon *a, s16 *b); +static u8 CreatePokemonSprite(struct Pokemon *a, s16 *b); static u8 sub_81C47B4(struct Pokemon *unused); static void sub_81C4844(struct Sprite *); static void sub_81C48F0(void); @@ -968,13 +968,13 @@ static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = { sSpriteAnim_StatusPokerus, sSpriteAnim_StatusFaint, }; -static const struct CompressedSpriteSheet gUnknown_0861D0F8 = +static const struct CompressedSpriteSheet sStatusIconsSpriteSheet = { .data = gStatusGfx_Icons, .size = 0x380, .tag = 30001 }; -static const struct CompressedSpritePalette gUnknown_0861D100 = +static const struct CompressedSpritePalette sStatusIconsSpritePalette = { .data = gStatusPal_Icons, .tag = 30001 @@ -1141,13 +1141,13 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 16: - sub_81C4190(); - sub_81C42C8(); + ResetPssSpriteIds(); + CreateMoveTypeIcons(); pssData->unk40F0 = 0; gMain.state++; break; case 17: - pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &pssData->unk40F0); + pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->unk40F0); if (pssData->spriteIds[0] != 0xFF) { pssData->unk40F0 = 0; @@ -1167,7 +1167,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 21: - sub_81C4280(); + SetTypeIcons(); gMain.state++; break; case 22: @@ -1259,11 +1259,11 @@ static bool8 SummaryScreen_DecompressGraphics(void) pssData->unk40F0++; break; case 9: - LoadCompressedSpriteSheet(&gUnknown_0861D0F8); + LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet); pssData->unk40F0++; break; case 10: - LoadCompressedSpritePalette(&gUnknown_0861D100); + LoadCompressedSpritePalette(&sStatusIconsSpritePalette); pssData->unk40F0++; break; case 11: @@ -1374,7 +1374,7 @@ static void sub_81C0348(void) } else { - sub_81C240C(pssData->summary.moves[pssData->firstMoveIndex]); + DrawContestMoveHearts(pssData->summary.moves[pssData->firstMoveIndex]); sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); @@ -1510,7 +1510,7 @@ static void sub_81C0604(u8 taskId, s8 a) PlaySE(SE_SELECT); if (pssData->summary.unk7 != 0) { - sub_81C4204(2, 1); + SetSpriteInvisibility(2, 1); ClearWindowTilemap(13); schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); @@ -1559,7 +1559,7 @@ static void sub_81C0704(u8 taskId) data[1] = 0; break; case 8: - pssData->spriteIds[0] = sub_81C45F4(&pssData->currentMon, &data[1]); + pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &data[1]); if (pssData->spriteIds[0] == 0xFF) return; gSprites[pssData->spriteIds[0]].data[2] = 1; @@ -1567,7 +1567,7 @@ static void sub_81C0704(u8 taskId) data[1] = 0; break; case 9: - sub_81C4280(); + SetTypeIcons(); break; case 10: sub_81C25E8(); @@ -1677,7 +1677,7 @@ static void sub_81C0A8C(u8 taskId, s8 b) else SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); sub_81C2DE4(pssData->currPageIndex); - sub_81C424C(); + HidePageSpecificSprites(); } static void sub_81C0B8C(u8 taskId) @@ -1718,7 +1718,7 @@ static void sub_81C0C68(u8 taskId) data[0] = 0; sub_81C1BA0(); sub_81C2AFC(pssData->currPageIndex); - sub_81C4280(); + SetTypeIcons(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); } @@ -1767,7 +1767,7 @@ static void sub_81C0D44(u8 taskId) data[0] = 0; sub_81C1BA0(); sub_81C2AFC(pssData->currPageIndex); - sub_81C4280(); + SetTypeIcons(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); } @@ -1797,7 +1797,7 @@ static void sub_81C0E48(u8 taskId) sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); PrintMoveDetails(move); PrintNewMoveDetailsOrCancelText(); - sub_81C44F0(); + SetNewMoveTypeIcon(); schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -1883,7 +1883,7 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) if (move != 0) break; } - sub_81C240C(move); + DrawContestMoveHearts(move); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); PrintMoveDetails(move); @@ -2003,7 +2003,7 @@ static void sub_81C13B0(u8 taskId, bool8 b) move = pssData->summary.moves[pssData->firstMoveIndex]; PrintMoveDetails(move); - sub_81C240C(move); + DrawContestMoveHearts(move); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); gTasks[taskId].func = sub_81C0F44; @@ -2081,7 +2081,7 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2 static void sub_81C171C(u8 taskId) { - sub_81C44F0(); + SetNewMoveTypeIcon(); sub_81C4AF8(8); gTasks[taskId].func = sub_81C174C; } @@ -2415,7 +2415,7 @@ static void sub_81C1F80(u8 taskId) { if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) PutWindowTilemap(15); - sub_81C240C(data[2]); + DrawContestMoveHearts(data[2]); } else { @@ -2566,7 +2566,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) schedule_bg_copy_tilemap_to_vram(2); } -static void sub_81C240C(u16 move) +static void DrawContestMoveHearts(u16 move) { u16 *tilemap = pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; u8 i; @@ -3641,7 +3641,7 @@ static void PrintHMMovesCantBeForgotten(void) SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } -static void sub_81C4190(void) +static void ResetPssSpriteIds(void) { u8 i; @@ -3660,41 +3660,42 @@ static void DestroySpriteInArray(u8 spriteArrayId) } } -static void sub_81C4204(u8 spriteArrayId, bool8 invisible) +static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible) { gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible; } -static void sub_81C424C(void) +static void HidePageSpecificSprites(void) { +// Keeps Pokémon, caught ball and status sprites visible. u8 i; for (i = 3; i < 28; i++) { if (pssData->spriteIds[i] != 0xFF) - sub_81C4204(i, TRUE); + SetSpriteInvisibility(i, TRUE); } } -static void sub_81C4280(void) +static void SetTypeIcons(void) { switch (pssData->currPageIndex) { - case 0: - sub_81C43A0(); + case PSS_PAGE_INFO: + SetMonTypeIcons(); break; - case 2: - sub_81C4420(); - sub_81C44F0(); + case PSS_PAGE_BATTLE_MOVES: + SetMoveTypeIcons(); + SetNewMoveTypeIcon(); break; - case 3: - sub_81C4484(); - sub_81C44F0(); + case PSS_PAGE_CONTEST_MOVES: + SetContestMoveTypeIcons(); + SetNewMoveTypeIcon(); break; } } -static void sub_81C42C8(void) +static void CreateMoveTypeIcons(void) { u8 i; @@ -3703,7 +3704,7 @@ static void sub_81C42C8(void) if (pssData->spriteIds[i] == 0xFF) pssData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); - sub_81C4204(i, TRUE); + SetSpriteInvisibility(i, TRUE); } } @@ -3714,16 +3715,16 @@ static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId]; sprite->pos1.x = x + 16; sprite->pos1.y = y + 8; - sub_81C4204(spriteArrayId, FALSE); + SetSpriteInvisibility(spriteArrayId, FALSE); } -static void sub_81C43A0(void) +static void SetMonTypeIcons(void) { struct PokeSummary *summary = &pssData->summary; if (summary->isEgg) { SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3); - sub_81C4204(4, TRUE); + SetSpriteInvisibility(4, TRUE); } else { @@ -3731,16 +3732,16 @@ static void sub_81C43A0(void) if (gBaseStats[summary->species].type1 != gBaseStats[summary->species].type2) { SetMoveTypeSpritePosAndType(gBaseStats[summary->species].type2, 0xA0, 0x30, 4); - sub_81C4204(4, FALSE); + SetSpriteInvisibility(4, FALSE); } else { - sub_81C4204(4, TRUE); + SetSpriteInvisibility(4, TRUE); } } } -static void sub_81C4420(void) +static void SetMoveTypeIcons(void) { u8 i; struct PokeSummary *summary = &pssData->summary; @@ -3749,11 +3750,11 @@ static void sub_81C4420(void) if (summary->moves[i] != MOVE_NONE) SetMoveTypeSpritePosAndType(gBattleMoves[summary->moves[i]].type, 0x55, 0x20 + (i * 0x10), i + 3); else - sub_81C4204(i + 3, TRUE); + SetSpriteInvisibility(i + 3, TRUE); } } -static void sub_81C4484(void) +static void SetContestMoveTypeIcons(void) { u8 i; struct PokeSummary *summary = &pssData->summary; @@ -3762,15 +3763,15 @@ static void sub_81C4484(void) if (summary->moves[i] != MOVE_NONE) SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[summary->moves[i]].contestCategory, 0x55, 0x20 + (i * 0x10), i + 3); else - sub_81C4204(i + 3, TRUE); + SetSpriteInvisibility(i + 3, TRUE); } } -static void sub_81C44F0(void) +static void SetNewMoveTypeIcon(void) { if (pssData->newMove == MOVE_NONE) { - sub_81C4204(7, TRUE); + SetSpriteInvisibility(7, TRUE); } else { @@ -3800,7 +3801,7 @@ static void sub_81C4568(u8 a0, u8 a1) sprite2->animEnded = FALSE; } -static u8 sub_81C45F4(struct Pokemon *mon, s16 *a1) +static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) { const struct CompressedSpritePalette *pal; struct PokeSummary *summary = &pssData->summary; @@ -4000,11 +4001,11 @@ static void CreateSetStatusSprite(void) if (anim != 0) { StartSpriteAnim(&gSprites[*spriteId], anim - 1); - sub_81C4204(2, FALSE); + SetSpriteInvisibility(2, FALSE); } else { - sub_81C4204(2, TRUE); + SetSpriteInvisibility(2, TRUE); } } -- cgit v1.2.3 From 804e955c8d3c57b7ee8ed90ca59ab732f8eeeae1 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Mon, 4 Feb 2019 11:38:44 +0000 Subject: Label some more functions --- src/pokemon_summary_screen.c | 84 +++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 40 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index b05f3129b..f88a2470a 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -184,10 +184,10 @@ static void PrintPageNamesAndStatsPageToWindows(void); static void sub_81C2AFC(u8 a); static void sub_81C2C38(u8 a); static void SummaryScreen_RemoveWindowByIndex(u8 a); -static void sub_81C2D9C(u8 a); -static void sub_81C2DE4(u8 a); -static void sub_81C2E00(void); -static void sub_81C2E40(u8 taskId); +static void PrintPageSpecificText(u8 a); +static void CreateTextPrinterTask(u8 a); +static void PrintInfoPageText(void); +static void sTask_PrintInfoPage(u8 taskId); static void PrintMonOTName(void); static void PrintMonOTID(void); static void PrintMonAbilityName(void); @@ -203,27 +203,27 @@ static void PrintEggOTName(void); static void PrintEggOTID(void); static void PrintEggState(void); static void PrintEggMemo(void); -static void sub_81C3554(u8 taskId); +static void sTask_PrintSkillsPage(u8 taskId); static void PrintHeldItemName(void); -static void sub_81C3530(void); +static void PrintSkillsPageText(void); static void PrintRibbonCount(void); static void BufferLeftColumnStats(void); static void PrintLeftColumnStats(void); static void BufferRightColumnStats(void); static void PrintRightColumnStats(void); static void PrintExpPointsNextLevel(void); -static void sub_81C3984(void); -static void sub_81C39F0(u8 taskId); +static void PrintBattleMoves(void); +static void sTask_PrintBattleMoves(u8 taskId); static void PrintMoveNameAndPP(u8 a); -static void sub_81C3D08(void); -static void sub_81C3D54(u8 taskId); +static void PrintContestMoves(void); +static void sTask_PrintContestMoves(u8 taskId); static void PrintContestMoveDescription(u8 a); static void PrintMoveDetails(u16 a); static void PrintNewMoveDetailsOrCancelText(void); static void sub_81C4064(void); static void sub_81C40A0(u8 a, u8 b); static void PrintHMMovesCantBeForgotten(void); -static void ResetPssSpriteIds(void); +static void ResetSpriteIds(void); static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible); static void HidePageSpecificSprites(void); static void SetTypeIcons(void); @@ -626,22 +626,26 @@ static const u8 sTextColors_861CD2C[][3] = {0, 5, 6}, {0, 7, 8} }; + static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); -static void (*const gUnknown_0861CE54[])(void) = + +static void (*const sTextPrinterFunctions[])(void) = { - sub_81C2E00, - sub_81C3530, - sub_81C3984, - sub_81C3D08 + PrintInfoPageText, + PrintSkillsPageText, + PrintBattleMoves, + PrintContestMoves }; -static void (*const gUnknown_0861CE64[])(u8 taskId) = + +static void (*const sTextPrinterTasks[])(u8 taskId) = { - sub_81C2E40, - sub_81C3554, - sub_81C39F0, - sub_81C3D54 + sTask_PrintInfoPage, + sTask_PrintSkillsPage, + sTask_PrintBattleMoves, + sTask_PrintContestMoves }; + static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); @@ -1129,7 +1133,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 13: - sub_81C2D9C(pssData->currPageIndex); + PrintPageSpecificText(pssData->currPageIndex); gMain.state++; break; case 14: @@ -1141,7 +1145,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 16: - ResetPssSpriteIds(); + ResetSpriteIds(); CreateMoveTypeIcons(); pssData->unk40F0 = 0; gMain.state++; @@ -1573,7 +1577,7 @@ static void sub_81C0704(u8 taskId) sub_81C25E8(); break; case 11: - sub_81C2D9C(pssData->currPageIndex); + PrintPageSpecificText(pssData->currPageIndex); sub_81C2524(); break; case 12: @@ -1676,7 +1680,7 @@ static void sub_81C0A8C(u8 taskId, s8 b) SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); - sub_81C2DE4(pssData->currPageIndex); + CreateTextPrinterTask(pssData->currPageIndex); HidePageSpecificSprites(); } @@ -2910,7 +2914,7 @@ static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) } } -static void sub_81C2D9C(u8 pageIndex) +static void PrintPageSpecificText(u8 pageIndex) { u16 i; for (i = 0; i < 8; i++) @@ -2918,15 +2922,15 @@ static void sub_81C2D9C(u8 pageIndex) if (pssData->windowIds[i] != 0xFF) FillWindowPixelBuffer(pssData->windowIds[i], 0); } - gUnknown_0861CE54[pageIndex](); + sTextPrinterFunctions[pageIndex](); } -static void sub_81C2DE4(u8 pageIndex) +static void CreateTextPrinterTask(u8 pageIndex) { - CreateTask(gUnknown_0861CE64[pageIndex], 16); + CreateTask(sTextPrinterTasks[pageIndex], 16); } -static void sub_81C2E00(void) +static void PrintInfoPageText(void) { if (pssData->summary.isEgg) { @@ -2946,7 +2950,7 @@ static void sub_81C2E00(void) } } -static void sub_81C2E40(u8 taskId) +static void sTask_PrintInfoPage(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -3200,7 +3204,7 @@ static void PrintEggMemo(void) SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); } -static void sub_81C3530(void) +static void PrintSkillsPageText(void) { PrintHeldItemName(); PrintRibbonCount(); @@ -3211,7 +3215,7 @@ static void sub_81C3530(void) PrintExpPointsNextLevel(); } -static void sub_81C3554(u8 taskId) +static void sTask_PrintSkillsPage(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3357,7 +3361,7 @@ static void PrintExpPointsNextLevel(void) SummaryScreen_PrintTextOnWindow(windowId, gStringVar1, offset, 17, 0, 0); } -static void sub_81C3984(void) +static void PrintBattleMoves(void) { PrintMoveNameAndPP(0); PrintMoveNameAndPP(1); @@ -3379,7 +3383,7 @@ static void sub_81C3984(void) } } -static void sub_81C39F0(u8 taskId) +static void sTask_PrintBattleMoves(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3493,7 +3497,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) } } -static void sub_81C3D08(void) +static void PrintContestMoves(void) { PrintMoveNameAndPP(0); PrintMoveNameAndPP(1); @@ -3507,7 +3511,7 @@ static void sub_81C3D08(void) } } -static void sub_81C3D54(u8 taskId) +static void sTask_PrintContestMoves(u8 taskId) { s16 *data = gTasks[taskId].data; s16 dataa = data[0] - 1; @@ -3641,11 +3645,11 @@ static void PrintHMMovesCantBeForgotten(void) SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } -static void ResetPssSpriteIds(void) +static void ResetSpriteIds(void) { u8 i; - for (i = 0; i < 28; i++) + for (i = 0; i < ARRAY_COUNT(pssData->spriteIds); i++) { pssData->spriteIds[i] = 0xFF; } @@ -3670,7 +3674,7 @@ static void HidePageSpecificSprites(void) // Keeps Pokémon, caught ball and status sprites visible. u8 i; - for (i = 3; i < 28; i++) + for (i = 3; i < ARRAY_COUNT(pssData->spriteIds); i++) { if (pssData->spriteIds[i] != 0xFF) SetSpriteInvisibility(i, TRUE); -- cgit v1.2.3 From 3d79aeb9da19a0488c87400100056ad04d9c165a Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Mon, 4 Feb 2019 12:44:09 +0000 Subject: More documentation --- src/pokemon_summary_screen.c | 143 ++++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index f88a2470a..2a241620f 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -43,10 +43,11 @@ #include "constants/items.h" #include "constants/moves.h" #include "constants/region_map_sections.h" +#include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" -static EWRAM_DATA struct UnkSummaryStruct +static EWRAM_DATA struct PssData { /*0x00*/ union { struct Pokemon *mons; @@ -135,21 +136,21 @@ static bool8 SummaryScreen_DecompressGraphics(void); static void CopyMonToSummaryStruct(struct Pokemon* a); static bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a); static void sub_81C0348(void); -static void sub_81C0484(u8 taskId); -static void sub_81C0510(u8 taskId); -static void sub_81C0604(u8 taskId, s8 a); +static void CloseSummaryScreen(u8 taskId); +static void HandleInput(u8 taskId); +static void ChangePokemon(u8 taskId, s8 a); static void sub_81C0704(u8 taskId); static s8 sub_81C08F8(s8 a); static s8 sub_81C09B4(s8 a); static bool8 sub_81C0A50(struct Pokemon* mon); -static void sub_81C0A8C(u8 taskId, s8 a); +static void ChangePage(u8 taskId, s8 a); static void sub_81C0B8C(u8 taskId); static void sub_81C0C68(u8 taskId); static void sub_81C0CC4(u8 taskId); static void sub_81C0D44(u8 taskId); static void sub_81C0E24(void); static void sub_81C0E48(u8 taskId); -static void sub_81C0F44(u8 taskId); +static void HandleInput_MoveSelect(u8 taskId); static bool8 sub_81C1040(void); static void sub_81C1070(s16* a, s8 b, u8* c); static void sub_81C11F4(u8 a); @@ -175,19 +176,19 @@ static void sub_81C2228(struct Pokemon* mon); static void DrawExperienceProgressBar(struct Pokemon* mon); static void DrawContestMoveHearts(u16 move); static void sub_81C2524(void); -static void sub_81C2554(void); +static void ResetWindows(void); static void sub_81C25E8(void); static void sub_81C2628(void); static void sub_81C2794(void); static void sub_81C27DC(struct Pokemon *mon, u16 a); static void PrintPageNamesAndStatsPageToWindows(void); -static void sub_81C2AFC(u8 a); -static void sub_81C2C38(u8 a); +static void CreatePageWindowTilemaps(u8 a); +static void ClearPageWindowTilemaps(u8 a); static void SummaryScreen_RemoveWindowByIndex(u8 a); static void PrintPageSpecificText(u8 a); static void CreateTextPrinterTask(u8 a); static void PrintInfoPageText(void); -static void sTask_PrintInfoPage(u8 taskId); +static void Task_PrintInfoPage(u8 taskId); static void PrintMonOTName(void); static void PrintMonOTID(void); static void PrintMonAbilityName(void); @@ -203,7 +204,7 @@ static void PrintEggOTName(void); static void PrintEggOTID(void); static void PrintEggState(void); static void PrintEggMemo(void); -static void sTask_PrintSkillsPage(u8 taskId); +static void Task_PrintSkillsPage(u8 taskId); static void PrintHeldItemName(void); static void PrintSkillsPageText(void); static void PrintRibbonCount(void); @@ -213,10 +214,10 @@ static void BufferRightColumnStats(void); static void PrintRightColumnStats(void); static void PrintExpPointsNextLevel(void); static void PrintBattleMoves(void); -static void sTask_PrintBattleMoves(u8 taskId); +static void Task_PrintBattleMoves(u8 taskId); static void PrintMoveNameAndPP(u8 a); static void PrintContestMoves(void); -static void sTask_PrintContestMoves(u8 taskId); +static void Task_PrintContestMoves(u8 taskId); static void PrintContestMoveDescription(u8 a); static void PrintMoveDetails(u16 a); static void PrintNewMoveDetailsOrCancelText(void); @@ -640,10 +641,10 @@ static void (*const sTextPrinterFunctions[])(void) = static void (*const sTextPrinterTasks[])(u8 taskId) = { - sTask_PrintInfoPage, - sTask_PrintSkillsPage, - sTask_PrintBattleMoves, - sTask_PrintContestMoves + Task_PrintInfoPage, + Task_PrintSkillsPage, + Task_PrintBattleMoves, + Task_PrintContestMoves }; static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); @@ -1108,7 +1109,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 7: - sub_81C2554(); + ResetWindows(); gMain.state++; break; case 8: @@ -1141,7 +1142,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 15: - sub_81C2AFC(pssData->currPageIndex); + CreatePageWindowTilemaps(pssData->currPageIndex); gMain.state++; break; case 16: @@ -1176,7 +1177,7 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 22: if (pssData->mode != PSS_MODE_SELECT_MOVE) - CreateTask(sub_81C0510, 0); + CreateTask(HandleInput, 0); else CreateTask(sub_81C171C, 0); gMain.state++; @@ -1186,7 +1187,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 24: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); gPaletteFade.bufferTransferDisabled = 0; gMain.state++; break; @@ -1406,13 +1407,13 @@ static void sub_81C0434(void) Free(pssData); } -static void sub_81C044C(u8 taskId) +static void BeginCloseSummaryScreen(u8 taskId) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_81C0484; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gTasks[taskId].func = CloseSummaryScreen; } -static void sub_81C0484(u8 taskId) +static void CloseSummaryScreen(u8 taskId) { if (sub_81221EC() != TRUE && !gPaletteFade.active) { @@ -1430,25 +1431,25 @@ static void sub_81C0484(u8 taskId) } } -static void sub_81C0510(u8 taskId) +static void HandleInput(u8 taskId) { if (sub_81221EC() != TRUE && !gPaletteFade.active) { if (gMain.newKeys & DPAD_UP) { - sub_81C0604(taskId, -1); + ChangePokemon(taskId, -1); } else if (gMain.newKeys & DPAD_DOWN) { - sub_81C0604(taskId, 1); + ChangePokemon(taskId, 1); } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1) { - sub_81C0A8C(taskId, -1); + ChangePage(taskId, -1); } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2) { - sub_81C0A8C(taskId, 1); + ChangePage(taskId, 1); } else if (gMain.newKeys & A_BUTTON) { @@ -1458,7 +1459,7 @@ static void sub_81C0510(u8 taskId) { sub_81C48F0(); PlaySE(SE_SELECT); - sub_81C044C(taskId); + BeginCloseSummaryScreen(taskId); } else { @@ -1471,12 +1472,12 @@ static void sub_81C0510(u8 taskId) { sub_81C48F0(); PlaySE(SE_SELECT); - sub_81C044C(taskId); + BeginCloseSummaryScreen(taskId); } } } -static void sub_81C0604(u8 taskId, s8 a) +static void ChangePokemon(u8 taskId, s8 a) { s8 r4_2; @@ -1587,7 +1588,7 @@ static void sub_81C0704(u8 taskId) if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) { data[0] = 0; - gTasks[taskId].func = sub_81C0510; + gTasks[taskId].func = HandleInput; } return; } @@ -1660,7 +1661,7 @@ static bool8 sub_81C0A50(struct Pokemon* mon) return FALSE; } -static void sub_81C0A8C(u8 taskId, s8 b) +static void ChangePage(u8 taskId, s8 b) { struct PokeSummary *summary = &pssData->summary; s16 *data = gTasks[taskId].data; @@ -1673,7 +1674,7 @@ static void sub_81C0A8C(u8 taskId, s8 b) return; PlaySE(SE_SELECT); - sub_81C2C38(pssData->currPageIndex); + ClearPageWindowTilemaps(pssData->currPageIndex); pssData->currPageIndex += b; data[0] = 0; if (b == 1) @@ -1721,7 +1722,7 @@ static void sub_81C0C68(u8 taskId) data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(pssData->currPageIndex); + CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); @@ -1770,7 +1771,7 @@ static void sub_81C0D44(u8 taskId) data[1] = 0; data[0] = 0; sub_81C1BA0(); - sub_81C2AFC(pssData->currPageIndex); + CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); sub_81C0E24(); SwitchTaskToFollowupFunc(taskId); @@ -1806,10 +1807,10 @@ static void sub_81C0E48(u8 taskId) schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); sub_81C4AF8(8); - gTasks[taskId].func = sub_81C0F44; + gTasks[taskId].func = HandleInput_MoveSelect; } -static void sub_81C0F44(u8 taskId) +static void HandleInput_MoveSelect(u8 taskId) { u8 id = taskId; s16 *data = gTasks[taskId].data; @@ -1934,7 +1935,7 @@ static void sub_81C11F4(u8 taskId) schedule_bg_copy_tilemap_to_vram(0); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); - gTasks[taskId].func = sub_81C0510; + gTasks[taskId].func = HandleInput; } static void sub_81C129C(u8 taskId) @@ -2010,7 +2011,7 @@ static void sub_81C13B0(u8 taskId, bool8 b) DrawContestMoveHearts(move); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); - gTasks[taskId].func = sub_81C0F44; + gTasks[taskId].func = HandleInput_MoveSelect; } static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) @@ -2110,11 +2111,11 @@ static void sub_81C174C(u8 taskId) } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - sub_81C0A8C(taskId, -1); + ChangePage(taskId, -1); } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - sub_81C0A8C(taskId, 1); + ChangePage(taskId, 1); } else if (gMain.newKeys & A_BUTTON) { @@ -2124,7 +2125,7 @@ static void sub_81C174C(u8 taskId) PlaySE(SE_SELECT); gUnknown_0203CF21 = pssData->firstMoveIndex; gSpecialVar_0x8005 = gUnknown_0203CF21; - sub_81C044C(taskId); + BeginCloseSummaryScreen(taskId); } else { @@ -2139,7 +2140,7 @@ static void sub_81C174C(u8 taskId) PlaySE(SE_SELECT); gUnknown_0203CF21 = 4; gSpecialVar_0x8005 = 4; - sub_81C044C(taskId); + BeginCloseSummaryScreen(taskId); } } } @@ -2195,7 +2196,7 @@ static void sub_81C1940(u8 taskId) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; - sub_81C0A8C(taskId, -1); + ChangePage(taskId, -1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } @@ -2209,7 +2210,7 @@ static void sub_81C1940(u8 taskId) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; gTasks[taskId].func = sub_81C174C; - sub_81C0A8C(taskId, 1); + ChangePage(taskId, 1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } @@ -2622,7 +2623,7 @@ static void sub_81C2524(void) ChangeBgX(3, 0, 0); } -static void sub_81C2554(void) +static void ResetWindows(void) { u8 i; InitWindows(gUnknown_0861CC24); @@ -2632,7 +2633,7 @@ static void sub_81C2554(void) { FillWindowPixelBuffer(i, 0); } - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { pssData->windowIds[i] = 0xFF; } @@ -2786,7 +2787,7 @@ static void PrintPageNamesAndStatsPageToWindows(void) SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1); } -static void sub_81C2AFC(u8 a) +static void CreatePageWindowTilemaps(u8 page) { u8 i; @@ -2795,22 +2796,22 @@ static void sub_81C2AFC(u8 a) ClearWindowTilemap(2); ClearWindowTilemap(3); - switch (a) + switch (page) { - case 0: + case PSS_PAGE_INFO: PutWindowTilemap(0); PutWindowTilemap(4); if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) PutWindowTilemap(8); PutWindowTilemap(9); break; - case 1: + case PSS_PAGE_SKILLS: PutWindowTilemap(1); PutWindowTilemap(10); PutWindowTilemap(11); PutWindowTilemap(12); break; - case 2: + case PSS_PAGE_BATTLE_MOVES: PutWindowTilemap(2); if (pssData->mode == PSS_MODE_SELECT_MOVE) { @@ -2822,7 +2823,7 @@ static void sub_81C2AFC(u8 a) PutWindowTilemap(5); } break; - case 3: + case PSS_PAGE_CONTEST_MOVES: PutWindowTilemap(3); if (pssData->mode == PSS_MODE_SELECT_MOVE) { @@ -2836,7 +2837,7 @@ static void sub_81C2AFC(u8 a) break; } - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { PutWindowTilemap(pssData->windowIds[i]); } @@ -2844,23 +2845,23 @@ static void sub_81C2AFC(u8 a) schedule_bg_copy_tilemap_to_vram(0); } -static void sub_81C2C38(u8 a) +static void ClearPageWindowTilemaps(u8 page) { u8 i; - switch (a) + switch (page) { - case 0: + case PSS_PAGE_INFO: ClearWindowTilemap(4); if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) ClearWindowTilemap(8); ClearWindowTilemap(9); break; - case 1: + case PSS_PAGE_SKILLS: ClearWindowTilemap(10); ClearWindowTilemap(11); ClearWindowTilemap(12); break; - case 2: + case PSS_PAGE_BATTLE_MOVES: if (pssData->mode == PSS_MODE_SELECT_MOVE) { if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) @@ -2871,7 +2872,7 @@ static void sub_81C2C38(u8 a) ClearWindowTilemap(5); } break; - case 3: + case PSS_PAGE_CONTEST_MOVES: if (pssData->mode == PSS_MODE_SELECT_MOVE) { if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) @@ -2884,7 +2885,7 @@ static void sub_81C2C38(u8 a) break; } - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { SummaryScreen_RemoveWindowByIndex(i); } @@ -2917,7 +2918,7 @@ static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) static void PrintPageSpecificText(u8 pageIndex) { u16 i; - for (i = 0; i < 8; i++) + for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { if (pssData->windowIds[i] != 0xFF) FillWindowPixelBuffer(pssData->windowIds[i], 0); @@ -2950,7 +2951,7 @@ static void PrintInfoPageText(void) } } -static void sTask_PrintInfoPage(u8 taskId) +static void Task_PrintInfoPage(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) @@ -3078,7 +3079,7 @@ static void PrintMonTrainerMemo(void) static void BufferNatureString(void) { - struct UnkSummaryStruct *sumStruct = pssData; + struct PssData *sumStruct = pssData; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5); } @@ -3215,7 +3216,7 @@ static void PrintSkillsPageText(void) PrintExpPointsNextLevel(); } -static void sTask_PrintSkillsPage(u8 taskId) +static void Task_PrintSkillsPage(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3383,7 +3384,7 @@ static void PrintBattleMoves(void) } } -static void sTask_PrintBattleMoves(u8 taskId) +static void Task_PrintBattleMoves(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -3434,7 +3435,7 @@ static void PrintMoveNameAndPP(u8 moveIndex) u32 ppState; const u8 *text; u32 offset; - struct UnkSummaryStruct *summaryStruct = pssData; + struct PssData *summaryStruct = pssData; u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1); u16 move = summaryStruct->summary.moves[moveIndex]; @@ -3511,7 +3512,7 @@ static void PrintContestMoves(void) } } -static void sTask_PrintContestMoves(u8 taskId) +static void Task_PrintContestMoves(u8 taskId) { s16 *data = gTasks[taskId].data; s16 dataa = data[0] - 1; -- cgit v1.2.3 From fa352cfda350dddf42e2cf5673b72069d63bbc32 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Mon, 4 Feb 2019 14:35:49 +0000 Subject: Some more labelling --- src/pokemon_summary_screen.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 2a241620f..d878d2c9e 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -236,7 +236,7 @@ static void SetNewMoveTypeIcon(void); static void sub_81C4568(u8 a, u8 b); static u8 CreatePokemonSprite(struct Pokemon *a, s16 *b); static u8 sub_81C47B4(struct Pokemon *unused); -static void sub_81C4844(struct Sprite *); +static void SpriteCB_Pokemon(struct Sprite *); static void sub_81C48F0(void); static void CreateMonMarkingsSprite(struct Pokemon *mon); static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); @@ -3853,17 +3853,17 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) } } (*a1)++; - return -1; + return 0xFF; case 1: pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid); LoadCompressedSpritePalette(pal); SetMultiuseSpriteTemplateToPokemon(pal->tag, 1); (*a1)++; - return -1; + return 0xFF; } } -static void sub_81C4778(void) +static void PlayMonCry(void) { struct PokeSummary *summary = &pssData->summary; if (!summary->isEgg) @@ -3889,7 +3889,7 @@ static u8 sub_81C47B4(struct Pokemon *unused) sprite->data[0] = summary->species2; sprite->data[2] = 0; - gSprites[spriteId].callback = sub_81C4844; + gSprites[spriteId].callback = SpriteCB_Pokemon; sprite->oam.priority = 0; if (!IsMonSpriteNotFlipped(summary->species2)) @@ -3904,14 +3904,14 @@ static u8 sub_81C47B4(struct Pokemon *unused) return spriteId; } -static void sub_81C4844(struct Sprite *sprite) +static void SpriteCB_Pokemon(struct Sprite *sprite) { struct PokeSummary *summary = &pssData->summary; if (!gPaletteFade.active && sprite->data[2] != 1) { sprite->data[1] = IsMonSpriteNotFlipped(sprite->data[0]); - sub_81C4778(); + PlayMonCry(); PokemonSummaryDoMonAnimation(sprite, sprite->data[0], summary->isEgg); } } -- cgit v1.2.3 From 1253cbf5f6780386acda0cfab8f201bf5a70570e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 6 Feb 2019 13:17:09 -0600 Subject: Document some battle anim things --- src/battle_anim.c | 38 ++--- src/battle_anim_80A5C6C.c | 223 +++++++++++++++--------------- src/battle_anim_80D51AC.c | 12 +- src/battle_anim_8170478.c | 14 +- src/battle_anim_effects_1.c | 34 ++--- src/battle_anim_effects_2.c | 40 +++--- src/battle_anim_effects_3.c | 54 ++++---- src/battle_anim_utility_funcs.c | 34 ++--- src/battle_controller_link_opponent.c | 4 +- src/battle_controller_link_partner.c | 4 +- src/battle_controller_opponent.c | 4 +- src/battle_controller_player.c | 4 +- src/battle_controller_player_partner.c | 4 +- src/battle_controller_recorded_opponent.c | 4 +- src/battle_controller_recorded_player.c | 4 +- src/battle_controller_wally.c | 2 +- src/bug.c | 4 +- src/dark.c | 32 ++--- src/dragon.c | 2 +- src/fire.c | 10 +- src/ghost.c | 4 +- src/graphics.c | 6 +- src/ground.c | 6 +- src/ice.c | 30 ++-- src/normal.c | 12 +- src/poison.c | 6 +- src/pokeball.c | 4 +- src/psychic.c | 2 +- src/rock.c | 24 ++-- src/water.c | 36 ++--- 30 files changed, 327 insertions(+), 330 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 1f4831c54..f086b1c33 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1924,7 +1924,7 @@ bool8 IsBattlerSpriteVisible(u8 battlerId) void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; u8 battlerSpriteId; if (!toBG_2) @@ -1942,9 +1942,9 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0); } - sub_80A6B30(&unknownStruct); - CpuFill16(0, unknownStruct.bgTiles, 0x1000); - CpuFill16(0xFF, unknownStruct.unk4, 0x800); + sub_80A6B30(&animBg); + CpuFill16(0, animBg.bgTiles, 0x1000); + CpuFill16(0xFF, animBg.bgTilemap, 0x800); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 2); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); @@ -1963,15 +1963,15 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], unknownStruct.unk8 * 16, 0x20); - CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + unknownStruct.unk8 * 32), 0x20); + LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20); + CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20); if (IsContest()) battlerPosition = 0; else battlerPosition = GetBattlerPosition(battlerId); - sub_8118FBC(1, 0, 0, battlerPosition, unknownStruct.unk8, unknownStruct.bgTiles, unknownStruct.unk4, unknownStruct.tilesOffset); + sub_8118FBC(1, 0, 0, battlerPosition, animBg.paletteId, animBg.bgTiles, animBg.bgTilemap, animBg.tilesOffset); if (IsContest()) sub_80A46A0(); @@ -1980,9 +1980,9 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) { RequestDma3Fill(0, (void*)(VRAM + 0x6000), 0x2000, 1); RequestDma3Fill(0, (void*)(VRAM + 0xF000), 0x1000, 1); - sub_80A6B90(&unknownStruct, 2); - CpuFill16(0, unknownStruct.bgTiles + 0x1000, 0x1000); - CpuFill16(0, unknownStruct.unk4 + 0x400, 0x800); + sub_80A6B90(&animBg, 2); + CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); + CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1); SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0); @@ -2001,20 +2001,20 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20); CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20); - sub_8118FBC(2, 0, 0, GetBattlerPosition(battlerId), unknownStruct.unk8, unknownStruct.bgTiles + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.tilesOffset); + sub_8118FBC(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset); } } static void sub_80A46A0(void) { s32 i, j; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; u16 *ptr; if (IsSpeciesNotUnown(gContestResources->field_18->species)) { - sub_80A6B30(&unknownStruct); - ptr = unknownStruct.unk4; + sub_80A6B30(&animBg); + ptr = animBg.bgTilemap; for (i = 0; i < 8; i++) { for (j = 0; j < 4; j++) @@ -2052,8 +2052,8 @@ void sub_80A4720(u16 a, u16 *b, u32 c, u8 d) void sub_80A477C(bool8 to_BG2) { - struct UnknownAnimStruct2 unknownStruct; - sub_80A6B30(&unknownStruct); + struct BattleAnimBgData animBg; + sub_80A6B30(&animBg); if (!to_BG2 || IsContest()) { @@ -2073,11 +2073,11 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) { u8 spriteId, palIndex; s16 x, y; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; spriteId = gTasks[taskId].data[0]; palIndex = gTasks[taskId].data[6]; - sub_80A6B30(&unknownStruct); + sub_80A6B30(&animBg); x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x); y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y); @@ -2089,7 +2089,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) gBattle_BG1_X = x + gTasks[taskId].data[3]; gBattle_BG1_Y = y + gTasks[taskId].data[4]; src = gPlttBufferFaded + 0x100 + palIndex * 16; - dst = gPlttBufferFaded + 0x100 + unknownStruct.unk8 * 16 - 256; + dst = gPlttBufferFaded + 0x100 + animBg.paletteId * 16 - 256; CpuCopy32(src, dst, 0x20); } else diff --git a/src/battle_anim_80A5C6C.c b/src/battle_anim_80A5C6C.c index 3efc86bf8..372377a0c 100644 --- a/src/battle_anim_80A5C6C.c +++ b/src/battle_anim_80A5C6C.c @@ -33,21 +33,18 @@ extern const u8 gEnemyMonElevation[]; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const union AffineAnimCmd *gUnknown_082FF6C0[]; -// This file's functions. -void sub_80A64EC(struct Sprite *sprite); -void sub_80A6FB4(struct Sprite *sprite); -void sub_80A7144(struct Sprite *sprite); -void sub_80A791C(struct Sprite *sprite); -void sub_80A8DFC(struct Sprite *sprite); -void sub_80A8E88(struct Sprite *sprite); -void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); -u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); -void AnimTask_BlendMonInAndOutSetup(struct Task *task); -void sub_80A7AFC(u8 taskId); -void sub_80A8CAC(u8 taskId); -void AnimTask_BlendMonInAndOutStep(u8 taskId); -bool8 sub_80A7238(void); -void sub_80A8D78(struct Task *task, u8 taskId); +static void sub_80A6FB4(struct Sprite *sprite); +static void sub_80A7144(struct Sprite *sprite); +static void sub_80A791C(struct Sprite *sprite); +static void sub_80A8DFC(struct Sprite *sprite); +static void sub_80A8E88(struct Sprite *sprite); +static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); +static void AnimTask_BlendMonInAndOutSetup(struct Task *task); +static void sub_80A7AFC(u8 taskId); +static void sub_80A8CAC(u8 taskId); +static void AnimTask_BlendMonInAndOutStep(u8 taskId); +static bool8 sub_80A7238(void); +static void sub_80A8D78(struct Task *task, u8 taskId); // EWRAM vars EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL; @@ -503,7 +500,7 @@ void sub_80A63C8(struct Sprite *sprite) } } -void sub_80A6450(struct Sprite *sprite) +void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) { if (sprite->data[3]) { @@ -533,28 +530,28 @@ void WaitAnimForDuration(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -void sub_80A64D0(struct Sprite *sprite) +static void sub_80A64D0(struct Sprite *sprite) { sub_80A64EC(sprite); - sprite->callback = TranslateSpriteOverDuration; + sprite->callback = TranslateSpriteLinear; sprite->callback(sprite); } void sub_80A64EC(struct Sprite *sprite) { s16 old; - int v1; + int xDiff; if (sprite->data[1] > sprite->data[2]) sprite->data[0] = -sprite->data[0]; - v1 = sprite->data[2] - sprite->data[1]; + xDiff = sprite->data[2] - sprite->data[1]; old = sprite->data[0]; - sprite->data[0] = abs(v1 / sprite->data[0]); + sprite->data[0] = abs(xDiff / sprite->data[0]); sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; sprite->data[1] = old; } -void TranslateSpriteOverDuration(struct Sprite *sprite) +void TranslateSpriteLinear(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -568,7 +565,7 @@ void TranslateSpriteOverDuration(struct Sprite *sprite) } } -void AnimTranslateLinearSimple(struct Sprite *sprite) +void TranslateSpriteLinearFixedPoint(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -584,7 +581,7 @@ void AnimTranslateLinearSimple(struct Sprite *sprite) } } -void sub_80A65A8(struct Sprite *sprite) +static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -598,6 +595,7 @@ void sub_80A65A8(struct Sprite *sprite) { SetCallbackToStoredInData6(sprite); } + UpdateMonIconFrame(sprite); } @@ -605,12 +603,12 @@ void sub_80A65EC(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = sub_80A64D0; } -void TranslateMonBGUntil(struct Sprite *sprite) +void TranslateMonSpriteLinear(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -624,9 +622,7 @@ void TranslateMonBGUntil(struct Sprite *sprite) } } -// Same as TranslateMonBGUntil, but it operates on sub-pixel values -// to handle slower translations. -void sub_80A6680(struct Sprite *sprite) +void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -642,7 +638,7 @@ void sub_80A6680(struct Sprite *sprite) } } -void sub_80A66DC(struct Sprite *sprite) +void TranslateSpriteLinearAndFlicker(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -673,8 +669,8 @@ void sub_80A6760(struct Sprite *sprite) { sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[3] = sprite->pos1.y + sprite->pos2.y; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = sub_80A64D0; } @@ -696,7 +692,7 @@ void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -void sub_80A67F4(struct Sprite *sprite) +void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -749,7 +745,7 @@ void InitAnimArcTranslation(struct Sprite *sprite) sprite->data[7] = 0; } -bool8 TranslateAnimArc(struct Sprite *sprite) +bool8 TranslateAnimHorizontalArc(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) return TRUE; @@ -758,7 +754,7 @@ bool8 TranslateAnimArc(struct Sprite *sprite) return FALSE; } -bool8 sub_80A6934(struct Sprite *sprite) +bool8 TranslateAnimVerticalArc(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) return TRUE; @@ -767,7 +763,7 @@ bool8 sub_80A6934(struct Sprite *sprite) return FALSE; } -void oamt_add_pos2_onto_pos1(struct Sprite *sprite) +void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite) { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; @@ -862,38 +858,38 @@ bool8 IsDoubleBattle(void) return IS_DOUBLE_BATTLE(); } -void sub_80A6B30(struct UnknownAnimStruct2 *unk) +void sub_80A6B30(struct BattleAnimBgData *unk) { if (IsContest()) { unk->bgTiles = gUnknown_0202305C; - unk->unk4 = (u16 *)gUnknown_02023060; - unk->unk8 = 0xe; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 14; unk->bgId = 1; unk->tilesOffset = 0; - unk->unkC = 0; + unk->unused = 0; } else { unk->bgTiles = gUnknown_0202305C; - unk->unk4 = (u16 *)gUnknown_02023060; - unk->unk8 = 0x8; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 8; unk->bgId = 1; unk->tilesOffset = 0x200; - unk->unkC = 0; + unk->unused = 0; } } -void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1) +void sub_80A6B90(struct BattleAnimBgData *unk, u32 arg1) { if (IsContest()) { unk->bgTiles = gUnknown_0202305C; - unk->unk4 = (u16 *)gUnknown_02023060; - unk->unk8 = 0xe; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 14; unk->bgId = 1; unk->tilesOffset = 0; - unk->unkC = 0; + unk->unused = 0; } else if (arg1 == 1) { @@ -902,76 +898,76 @@ void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1) else { unk->bgTiles = gUnknown_0202305C; - unk->unk4 = (u16 *)gUnknown_02023060; - unk->unk8 = 0x9; + unk->bgTilemap = (u16 *)gUnknown_02023060; + unk->paletteId = 9; unk->bgId = 2; unk->tilesOffset = 0x300; - unk->unkC = 0; + unk->unused = 0; } } -void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused) +void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused) { unk->bgTiles = gUnknown_0202305C; - unk->unk4 = (u16 *)gUnknown_02023060; + unk->bgTilemap = (u16 *)gUnknown_02023060; if (IsContest()) { - unk->unk8 = 0xe; + unk->paletteId = 14; unk->bgId = 1; unk->tilesOffset = 0; - unk->unkC = 0; + unk->unused = 0; } else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - unk->unk8 = 8; + unk->paletteId = 8; unk->bgId = 1; unk->tilesOffset = 0x200; - unk->unkC = 0; + unk->unused = 0; } else { - unk->unk8 = 0x9; + unk->paletteId = 9; unk->bgId = 2; unk->tilesOffset = 0x300; - unk->unkC = 0; + unk->unused = 0; } } void sub_80A6C68(u32 bgId) { - struct UnknownAnimStruct2 unkStruct; + struct BattleAnimBgData unkStruct; sub_80A6B90(&unkStruct, bgId); CpuFill32(0, unkStruct.bgTiles, 0x2000); LoadBgTiles(unkStruct.bgId, unkStruct.bgTiles, 0x2000, unkStruct.tilesOffset); - FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 0x20, 0x40, 0x11); + FillBgTilemapBufferRect(unkStruct.bgId, 0, 0, 0, 32, 64, 17); CopyBgTilemapBufferToVram(unkStruct.bgId); } -void sub_80A6CC0(u32 bgId, const u32 *src, u32 tilesOffset) +void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) { CpuFill32(0, gUnknown_0202305C, 0x2000); LZDecompressWram(src, gUnknown_0202305C); LoadBgTiles(bgId, gUnknown_0202305C, 0x2000, tilesOffset); } -void sub_80A6D10(u32 bgId, const void *src) +static void InitAnimBgTilemapBuffer(u32 bgId, const void *src) { - FillBgTilemapBufferRect(bgId, 0, 0, 0, 0x20, 0x40, 0x11); + FillBgTilemapBufferRect(bgId, 0, 0, 0, 32, 64, 17); CopyToBgTilemapBuffer(bgId, src, 0, 0); } -void sub_80A6D48(u32 bgId, const void *src) +void AnimLoadCompressedBgTilemap(u32 bgId, const void *src) { - sub_80A6D10(bgId, src); + InitAnimBgTilemapBuffer(bgId, src); CopyBgTilemapBufferToVram(bgId); } -void sub_80A6D60(struct UnknownAnimStruct2 *unk, const void *src, u32 arg2) +void sub_80A6D60(struct BattleAnimBgData *unk, const void *src, u32 arg2) { - sub_80A6D10(unk->bgId, src); + InitAnimBgTilemapBuffer(unk->bgId, src); if (IsContest() == TRUE) - sub_80A4720(unk->unk8, unk->unk4, 0, arg2); + sub_80A4720(unk->paletteId, unk->bgTilemap, 0, arg2); CopyBgTilemapBufferToVram(unk->bgId); } @@ -1002,7 +998,7 @@ void sub_80A6DEC(struct Sprite *sprite) sprite->data[1] = sprite->pos1.x; sprite->data[3] = sprite->pos1.y; InitSpriteDataForLinearTranslation(sprite); - sprite->callback = sub_80A65A8; + sprite->callback = TranslateSpriteLinearFixedPointIconFrame; sprite->callback(sprite); } @@ -1098,7 +1094,7 @@ void sub_80A6F98(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -void sub_80A6FB4(struct Sprite *sprite) +static void sub_80A6FB4(struct Sprite *sprite) { sub_8039E9C(sprite); if (AnimTranslateLinear(sprite)) @@ -1188,7 +1184,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite) return FALSE; } -void sub_80A7144(struct Sprite *sprite) +static void sub_80A7144(struct Sprite *sprite) { if (AnimFastTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); @@ -1229,7 +1225,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[i].d = matrix.d; } -bool8 sub_80A7238(void) +static bool8 sub_80A7238(void) { if (IsContest()) { @@ -1352,56 +1348,57 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) } } -u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) +u32 sub_80A75AC(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7) { - u32 var = 0; + u32 selectedPalettes = 0; u32 shift; - if (a1) + if (battleBackground) { if (!IsContest()) - var = 0xe; + selectedPalettes = 0xe; else - var = 1 << sub_80A6D94(); + selectedPalettes = 1 << sub_80A6D94(); } - if (a2) + if (attacker) { shift = gBattleAnimAttacker + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } - if (a3) { + if (target) + { shift = gBattleAnimTarget + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } - if (a4) + if (attackerPartner) { - if (IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2)) + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { - shift = (gBattleAnimAttacker ^ 2) + 16; - var |= 1 << shift; + shift = BATTLE_PARTNER(gBattleAnimAttacker) + 16; + selectedPalettes |= 1 << shift; } } - if (a5) + if (targetPartner) { - if (IsBattlerSpriteVisible(gBattleAnimTarget ^ 2)) + if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) { - shift = (gBattleAnimTarget ^ 2) + 16; - var |= 1 << shift; + shift = BATTLE_PARTNER(gBattleAnimTarget) + 16; + selectedPalettes |= 1 << shift; } } if (a6) { if (!IsContest()) - var |= 0x100; + selectedPalettes |= 0x100; else - var |= 0x4000; + selectedPalettes |= 0x4000; } if (a7) { if (!IsContest()) - var |= 0x200; + selectedPalettes |= 0x200; } - return var; + return selectedPalettes; } u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4) @@ -1459,7 +1456,7 @@ u8 sub_80A77AC(u8 a1) return a1; } -u8 sub_80A77B4(u8 position) +static u8 GetBattlerAtPosition_(u8 position) { return GetBattlerAtPosition(position); } @@ -1527,33 +1524,33 @@ void sub_80A78AC(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker)) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); sprite->callback = sub_80A791C; } -void sub_80A791C(struct Sprite *sprite) +static void sub_80A791C(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } void sub_80A7938(struct Sprite *sprite) { bool8 r4; - u8 battlerId, attributeId; + u8 battlerId, coordType; if (!gBattleAnimArgs[6]) { r4 = TRUE; - attributeId = BATTLER_COORD_Y_PIC_OFFSET; + coordType = BATTLER_COORD_Y_PIC_OFFSET; } else { r4 = FALSE; - attributeId = BATTLER_COORD_Y; + coordType = BATTLER_COORD_Y; } if (!gBattleAnimArgs[5]) { @@ -1570,7 +1567,7 @@ void sub_80A7938(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, r4); sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(battlerId, attributeId) + gBattleAnimArgs[3]; + sprite->data[4] = GetBattlerSpriteCoord(battlerId, coordType) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -1629,7 +1626,7 @@ void sub_80A7A74(u8 taskId) gTasks[taskId].func = sub_80A7AFC; } -void sub_80A7AFC(u8 taskId) +static void sub_80A7AFC(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1674,7 +1671,7 @@ void AnimTask_BlendMonInAndOut(u8 task) AnimTask_BlendMonInAndOutSetup(&gTasks[task]); } -void AnimTask_BlendMonInAndOutSetup(struct Task *task) +static void AnimTask_BlendMonInAndOutSetup(struct Task *task) { task->data[1] = gBattleAnimArgs[1]; task->data[2] = 0; @@ -1686,7 +1683,7 @@ void AnimTask_BlendMonInAndOutSetup(struct Task *task) task->func = AnimTask_BlendMonInAndOutStep; } -void AnimTask_BlendMonInAndOutStep(u8 taskId) +static void AnimTask_BlendMonInAndOutStep(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1844,7 +1841,7 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) gSprites[spriteId].pos2.y = (var - var2) / 2; } -u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) +static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) { struct BattleSpriteInfo *spriteInfo; u8 battlerId = gSprites[spriteId].data[0]; @@ -2300,7 +2297,7 @@ void sub_80A8A6C(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[4]; sprite->data[5] = gBattleAnimArgs[5]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A66DC; + sprite->callback = TranslateSpriteLinearAndFlicker; } void sub_80A8AEC(struct Sprite *sprite) @@ -2321,7 +2318,7 @@ void sub_80A8AEC(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; StartSpriteAnim(sprite, gBattleAnimArgs[6]); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A66DC; + sprite->callback = TranslateSpriteLinearAndFlicker; } void sub_80A8B64(struct Sprite *sprite) @@ -2362,7 +2359,7 @@ void sub_80A8BC4(u8 taskId) task->func = sub_80A8CAC; } -void sub_80A8CAC(u8 taskId) +static void sub_80A8CAC(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[2]) @@ -2395,7 +2392,7 @@ void sub_80A8CAC(u8 taskId) } } -void sub_80A8D78(struct Task *task, u8 taskId) +static void sub_80A8D78(struct Task *task, u8 taskId) { s16 spriteId = CloneBattlerSpriteWithBlend(0); if (spriteId >= 0) @@ -2411,7 +2408,7 @@ void sub_80A8D78(struct Task *task, u8 taskId) } } -void sub_80A8DFC(struct Sprite *sprite) +static void sub_80A8DFC(struct Sprite *sprite) { if (--sprite->data[0] == 0) { @@ -2432,7 +2429,7 @@ void sub_80A8E30(struct Sprite *sprite) sprite->callback = sub_80A8E88; } -void sub_80A8E88(struct Sprite *sprite) +static void sub_80A8E88(struct Sprite *sprite) { sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; diff --git a/src/battle_anim_80D51AC.c b/src/battle_anim_80D51AC.c index 34eee7376..250a0459f 100644 --- a/src/battle_anim_80D51AC.c +++ b/src/battle_anim_80D51AC.c @@ -441,14 +441,14 @@ static void DoHorizontalLunge(struct Sprite *sprite) sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; } static void ReverseHorizontalLungeDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[1] = -sprite->data[1]; - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -468,14 +468,14 @@ static void DoVerticalDip(struct Sprite *sprite) sprite->data[3] = spriteId; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; } static void ReverseVerticalDipDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[2] = -sprite->data[2]; - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -581,7 +581,7 @@ static void SlideMonToOffset(struct Sprite *sprite) sprite->data[5] = monSpriteId; sprite->invisible = TRUE; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = sub_80A6680; + sprite->callback = TranslateMonSpriteLinearFixedPoint; } static void sub_80D5B48(struct Sprite *sprite) @@ -624,7 +624,7 @@ static void sub_80D5B48(struct Sprite *sprite) { StoreSpriteCallbackInData6(sprite, sub_80D5C20); } - sprite->callback = sub_80A6680; + sprite->callback = TranslateMonSpriteLinearFixedPoint; } diff --git a/src/battle_anim_8170478.c b/src/battle_anim_8170478.c index 7d899fb09..92874fe09 100755 --- a/src/battle_anim_8170478.c +++ b/src/battle_anim_8170478.c @@ -392,7 +392,7 @@ extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; void unref_sub_8170478(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData unknownStruct; u8 healthBoxSpriteId; u8 battler; u8 spriteId1, spriteId2, spriteId3, spriteId4; @@ -426,9 +426,9 @@ void unref_sub_8170478(u8 taskId) gSprites[spriteId4].callback = SpriteCallbackDummy; sub_80A6B30(&unknownStruct); - sub_80A6D48(unknownStruct.bgId, gUnknown_08C2EA9C); - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); - LoadCompressedPalette(gCureBubblesPal, unknownStruct.unk8 << 4, 32); + AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C); + AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset); + LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32); gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32; gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32; @@ -806,7 +806,7 @@ static void sub_8171134(struct Sprite *sprite) u8 ballId; int ballId2; // extra var needed to match - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) { @@ -1276,7 +1276,7 @@ static void sub_81719EC(struct Sprite *sprite) static void sub_8171AAC(struct Sprite *sprite) { sprite->invisible = !sprite->invisible; - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroySprite(sprite); } @@ -2206,7 +2206,7 @@ static void sub_817339C(struct Sprite *sprite) static void sub_81733D4(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 0; sprite->invisible = 1; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 25eb14637..f14e502f3 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2326,7 +2326,7 @@ void AnimAbsorptionOrb(struct Sprite* sprite) static void AnimAbsorptionOrbStep(struct Sprite* sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } @@ -2401,7 +2401,7 @@ void AnimLeechSeed(struct Sprite* sprite) static void AnimLeechSeedStep(struct Sprite* sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->invisible = 1; sprite->data[0] = 10; @@ -2662,7 +2662,7 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) s16 r0; sprite->data[0] = 1; - TranslateAnimArc(sprite); + TranslateAnimHorizontalArc(sprite); r0 = sprite->data[7]; sprite->data[0] = a; if (b > 200 && r0 < 56 && sprite->oam.affineParam == 0) @@ -3325,7 +3325,7 @@ static void sub_8100128(u8 taskId) { case 4: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 5; task->data[0] = 0xFF; @@ -3333,7 +3333,7 @@ static void sub_8100128(u8 taskId) break; case 8: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 9; task->data[0] = 0xFF; @@ -3341,7 +3341,7 @@ static void sub_8100128(u8 taskId) break; case 0: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 1; task->data[0] = 0xFF; @@ -3367,7 +3367,7 @@ static void sub_8100128(u8 taskId) break; case 2: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 3; task->data[0] = 0xFF; @@ -3410,7 +3410,7 @@ static void sub_8100128(u8 taskId) break; case 6: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 7; task->data[0] = 0xFF; @@ -3453,7 +3453,7 @@ static void sub_8100128(u8 taskId) break; case 10: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 11; task->data[0] = 0xFF; @@ -3481,7 +3481,7 @@ static void sub_8100128(u8 taskId) } case 12: sub_8100524(task, taskId); - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { DestroySprite(sprite); task->data[0]++; @@ -3766,7 +3766,7 @@ void sub_8100A94(struct Sprite* sprite) sprite->data[5] = gBattleAnimArgs[5]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A66DC; + sprite->callback = TranslateSpriteLinearAndFlicker; } // Moves the sprite in a diagonally slashing motion across the target mon. @@ -3995,7 +3995,7 @@ static void sub_8100FD4(struct Sprite *sprite) if (sprite->data[7] == 16) { sprite->invisible = 1; - sprite->callback = sub_80A67F4; + sprite->callback = DestroyAnimSpriteAndDisableBlend; } } } @@ -4121,7 +4121,7 @@ void sub_810130C(struct Sprite* sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = AnimTranslateLinearSimple; + sprite->callback = TranslateSpriteLinearFixedPoint; } void sub_810135C(struct Sprite* sprite) @@ -4158,7 +4158,7 @@ void sub_810135C(struct Sprite* sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = AnimTranslateLinearSimple; + sprite->callback = TranslateSpriteLinearFixedPoint; } void sub_8101440(struct Sprite* sprite) @@ -4428,7 +4428,7 @@ static void sub_8101998(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData6(sprite, sub_81019E8); - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; } static void sub_81019E8(struct Sprite* sprite) @@ -4458,7 +4458,7 @@ static void sub_8101A74(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; StoreSpriteCallbackInData6(sprite, sub_8101B84); - sprite->callback = TranslateMonBGUntil; + sprite->callback = TranslateMonSpriteLinear; } static void sub_8101AC4(struct Sprite* sprite) @@ -4737,7 +4737,7 @@ static void sub_8102044(struct Sprite* sprite) sprite->data[1] = 8; sprite->data[2] = 0; StoreSpriteCallbackInData6(sprite, sub_810207C); - sprite->callback = TranslateSpriteOverDuration; + sprite->callback = TranslateSpriteLinear; } } diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 8306ada1c..0c6f2ef11 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1264,7 +1264,7 @@ void sub_8103448(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[3]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A6450; + sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback(sprite); } @@ -2318,7 +2318,7 @@ void Anim_BreathPuff(struct Sprite *sprite) sprite->data[3] = 0; sprite->data[4] = 0; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = AnimTranslateLinearSimple; + sprite->callback = TranslateSpriteLinearFixedPoint; } // Animates an "angry" mark above a mon's head. @@ -3291,7 +3291,7 @@ static void sub_810627C(struct Sprite *sprite) void sub_81062E8(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -3304,16 +3304,16 @@ void sub_81062E8(u8 taskId) gBattle_BG1_Y = 0; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&unknownStruct); - sub_80A6CC0(unknownStruct.bgId, &gUnknown_08C232E0, unknownStruct.tilesOffset); - sub_80A6D60(&unknownStruct, &gUnknown_08C23D78, 0); - LoadCompressedPalette(&gUnknown_08C23D50, unknownStruct.unk8 << 4, 32); + sub_80A6B30(&animBg); + AnimLoadCompressedBgGfx(animBg.bgId, &gUnknown_08C232E0, animBg.tilesOffset); + sub_80A6D60(&animBg, &gUnknown_08C23D78, 0); + LoadCompressedPalette(&gUnknown_08C23D50, animBg.paletteId * 16, 32); gTasks[taskId].func = sub_81063A8; } static void sub_81063A8(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; switch (gTasks[taskId].data[12]) { @@ -3351,8 +3351,8 @@ static void sub_81063A8(u8 taskId) } break; case 3: - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + sub_80A6B30(&animBg); + sub_80A6C68(animBg.bgId); gTasks[taskId].data[12]++; break; case 4: @@ -3369,7 +3369,7 @@ static void sub_81063A8(u8 taskId) void sub_81064F8(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -3382,22 +3382,22 @@ void sub_81064F8(u8 taskId) gBattle_BG1_Y = 0; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&unknownStruct); + sub_80A6B30(&animBg); if (IsContest()) - sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFaceContest, 0); + sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceContest, 0); else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFacePlayer, 0); + sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFacePlayer, 0); else - sub_80A6D60(&unknownStruct, &gBattleAnimBackgroundTilemap_ScaryFaceOpponent, 0); + sub_80A6D60(&animBg, &gBattleAnimBackgroundTilemap_ScaryFaceOpponent, 0); - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C249F8, unknownStruct.tilesOffset); - LoadCompressedPalette(gUnknown_08C249D0, unknownStruct.unk8 << 4, 32); + AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C249F8, animBg.tilesOffset); + LoadCompressedPalette(gUnknown_08C249D0, animBg.paletteId * 16, 32); gTasks[taskId].func = sub_81065EC; } static void sub_81065EC(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; switch (gTasks[taskId].data[12]) { @@ -3435,7 +3435,7 @@ static void sub_81065EC(u8 taskId) } break; case 3: - sub_80A6B30(&unknownStruct); + sub_80A6B30(&animBg); sub_80A6C68(1); sub_80A6C68(2); gTasks[taskId].data[12]++; @@ -3804,7 +3804,7 @@ void sub_8106F60(struct Sprite *sprite) sprite->callback = sub_8107018; sprite->data[0] = 0; - oamt_add_pos2_onto_pos1(sprite); + SetSpritePrimaryCoordsFromSecondaryCoords(sprite); sprite->data[2] = 5; sprite->data[4] = 0; sprite->data[3] = 0; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index a8b7d6d6a..49fb69342 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1453,7 +1453,7 @@ void sub_815A6C4(struct Sprite *sprite) static void sub_815A73C(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->data[0] = 30; sprite->data[1] = 0; @@ -2257,10 +2257,10 @@ void sub_815B7D0(u8 taskId) { int i, j; u8 position; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; u8 *dest; u8 *src; - u16 *unk4; + u16 *bgTilemap; u16 stretch; switch (gTasks[taskId].data[0]) @@ -2288,7 +2288,7 @@ void sub_815B7D0(u8 taskId) break; case 2: HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]); - sub_80A6BFC(&unknownStruct, gBattleAnimAttacker); + sub_80A6BFC(&animBg, gBattleAnimAttacker); if (IsContest()) position = 0; @@ -2296,21 +2296,21 @@ void sub_815B7D0(u8 taskId) position = GetBattlerPosition(gBattleAnimAttacker); src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11); - dest = unknownStruct.bgTiles; + dest = animBg.bgTiles; CpuCopy32(src, dest, 0x800); - LoadBgTiles(1, unknownStruct.bgTiles, 0x800, unknownStruct.tilesOffset); + LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); if (IsContest()) { if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2)) { - unk4 = (u16 *)unknownStruct.unk4; + bgTilemap = (u16 *)animBg.bgTilemap; for (i = 0; i < 8; i++) { for (j = 0; j < 4; j++) { - u16 temp = unk4[j + i * 0x20]; - unk4[j + i * 0x20] = unk4[(7 - j) + i * 0x20]; - unk4[(7 - j) + i * 0x20] = temp; + u16 temp = bgTilemap[j + i * 0x20]; + bgTilemap[j + i * 0x20] = bgTilemap[(7 - j) + i * 0x20]; + bgTilemap[(7 - j) + i * 0x20] = temp; } } @@ -2318,7 +2318,7 @@ void sub_815B7D0(u8 taskId) { for (j = 0; j < 8; j++) { - unk4[j + i * 0x20] ^= 0x400; + bgTilemap[j + i * 0x20] ^= 0x400; } } } @@ -2380,7 +2380,7 @@ void sub_815BB58(u8 taskId) void sub_815BB84(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; switch (gTasks[taskId].data[0]) { @@ -2392,8 +2392,8 @@ void sub_815BB84(u8 taskId) if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - sub_80A6B30(&unknownStruct); - sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0); + sub_80A6B30(&animBg); + sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0); if (IsContest()) { gBattle_BG1_X = -56; @@ -2409,8 +2409,8 @@ void sub_815BB84(u8 taskId) gBattle_BG1_Y = 0; } - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2A634, unknownStruct.tilesOffset); - LoadCompressedPalette(gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32); + AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset); + LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; @@ -2455,8 +2455,8 @@ void sub_815BB84(u8 taskId) } break; case 4: - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + sub_80A6B30(&animBg); + sub_80A6C68(animBg.bgId); if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); @@ -2571,7 +2571,7 @@ static void sub_815C050(struct Sprite *sprite) void sub_815C0A4(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; switch (gTasks[taskId].data[0]) { @@ -2583,8 +2583,8 @@ void sub_815C0A4(u8 taskId) if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); - sub_80A6B30(&unknownStruct); - sub_80A6D60(&unknownStruct, &gUnknown_08C2A6EC, 0); + sub_80A6B30(&animBg); + sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0); if (IsContest()) { gBattle_BG1_X = -56; @@ -2615,8 +2615,8 @@ void sub_815C0A4(u8 taskId) gBattle_BG1_Y = 0; } - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C2A634, unknownStruct.tilesOffset); - LoadCompressedPalette(gUnknown_08C2A6D4, unknownStruct.unk8 << 4, 32); + AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset); + LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32); gTasks[taskId].data[10] = gBattle_BG1_X; gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; @@ -2654,8 +2654,8 @@ void sub_815C0A4(u8 taskId) gTasks[taskId].data[0] = 1; break; case 5: - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + sub_80A6B30(&animBg); + sub_80A6C68(animBg.bgId); if (!IsContest()) SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); @@ -4130,13 +4130,13 @@ static void AnimTask_BarrageBallStep(u8 taskId) if (++task->data[1] > 1) { task->data[1] = 0; - TranslateAnimArc(&gSprites[task->data[15]]); + TranslateAnimHorizontalArc(&gSprites[task->data[15]]); if (++task->data[2] > 7) task->data[0]++; } break; case 1: - if (TranslateAnimArc(&gSprites[task->data[15]])) + if (TranslateAnimHorizontalArc(&gSprites[task->data[15]])) { task->data[1] = 0; task->data[2] = 0; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index ba7cbd3aa..efe35e1b4 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -276,7 +276,7 @@ void sub_8116B14(u8 taskId) int spriteId, newSpriteId; u16 var0; u16 bg1Cnt; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData unknownStruct; var0 = 0; gBattle_WIN0H = 0; @@ -330,8 +330,8 @@ void sub_8116B14(u8 taskId) newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species); sub_80A6B30(&unknownStruct); sub_80A6D60(&unknownStruct, gUnknown_08C20684, 0); - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset); - LoadPalette(&gUnknown_08597418, unknownStruct.unk8 * 16 + 1, 2); + AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C20668, unknownStruct.tilesOffset); + LoadPalette(&gUnknown_08597418, unknownStruct.paletteId * 16 + 1, 2); gBattle_BG1_X = -gSprites[spriteId].pos1.x + 32; gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; @@ -342,7 +342,7 @@ void sub_8116B14(u8 taskId) static void sub_8116D64(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData unknownStruct; struct Sprite *sprite; u16 bg1Cnt; @@ -453,7 +453,7 @@ static void sub_8116F04(u8 taskId) static void sub_81170EC(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData unknownStruct; u8 spriteId, spriteId2; u8 battlerSpriteId; @@ -472,32 +472,32 @@ static void sub_81170EC(u8 taskId) else sub_80A6D60(&unknownStruct, gBattleStatMask2_Tilemap, 0); - sub_80A6CC0(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset); + AnimLoadCompressedBgGfx(unknownStruct.bgId, gBattleStatMask_Gfx, unknownStruct.tilesOffset); switch (sAnimStatsChangeData->data[1]) { case 0: - LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask2_Pal, unknownStruct.paletteId * 16, 32); break; case 1: - LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask1_Pal, unknownStruct.paletteId * 16, 32); break; case 2: - LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask3_Pal, unknownStruct.paletteId * 16, 32); break; case 3: - LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask4_Pal, unknownStruct.paletteId * 16, 32); break; case 4: - LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask6_Pal, unknownStruct.paletteId * 16, 32); break; case 5: - LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask7_Pal, unknownStruct.paletteId * 16, 32); break; case 6: - LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask8_Pal, unknownStruct.paletteId * 16, 32); break; default: - LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.unk8 << 4, 32); + LoadCompressedPalette(gBattleStatMask5_Pal, unknownStruct.paletteId * 16, 32); break; } @@ -773,7 +773,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u16 species; u8 spriteId, spriteId2; u16 bg1Cnt; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData unknownStruct; u8 battler2; spriteId2 = 0; @@ -820,8 +820,8 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, sub_80A6B30(&unknownStruct); sub_80A6D60(&unknownStruct, tilemap, 0); - sub_80A6CC0(unknownStruct.bgId, gfx, unknownStruct.tilesOffset); - LoadCompressedPalette(palette, unknownStruct.unk8 << 4, 32); + AnimLoadCompressedBgGfx(unknownStruct.bgId, gfx, unknownStruct.tilesOffset); + LoadCompressedPalette(palette, unknownStruct.paletteId * 16, 32); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index d69e05b9e..05da72e16 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1339,7 +1339,7 @@ static void LinkOpponentHandleTrainerSlide(void) static void LinkOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1700,7 +1700,7 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 5c9a92744..19d39609f 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -1160,7 +1160,7 @@ static void LinkPartnerHandleTrainerSlide(void) static void LinkPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1525,7 +1525,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index d8a0127d0..99bb0c588 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1376,7 +1376,7 @@ static void OpponentHandleTrainerSlide(void) static void OpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1849,7 +1849,7 @@ static void OpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 70b0a6160..6bcc97c68 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2377,7 +2377,7 @@ static void PlayerHandleTrainerSlide(void) static void PlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -2921,7 +2921,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 3cfc94977..a9b0f376b 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -1354,7 +1354,7 @@ static void PlayerPartnerHandleTrainerSlide(void) static void PlayerPartnerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1777,7 +1777,7 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 03c3c88b2..911eb6ce5 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -1267,7 +1267,7 @@ static void RecordedOpponentHandleTrainerSlide(void) static void RecordedOpponentHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1640,7 +1640,7 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 9055fc16b..b2dfca6a0 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -1268,7 +1268,7 @@ static void RecordedPlayerHandleTrainerSlide(void) static void RecordedPlayerHandleTrainerSlideBack(void) { - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y; @@ -1662,7 +1662,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) u8 taskId; u32 trainerPicId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 9a9773316..d891b96b6 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -1427,7 +1427,7 @@ static void WallyHandleIntroTrainerBallThrow(void) u8 paletteNum; u8 taskId; - oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; diff --git a/src/bug.c b/src/bug.c index 31d1a9740..88f93a3d5 100644 --- a/src/bug.c +++ b/src/bug.c @@ -433,7 +433,7 @@ static void AnimMissileArcStep(struct Sprite *sprite) { sprite->invisible = FALSE; - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { DestroyAnimSprite(sprite); } @@ -453,7 +453,7 @@ static void AnimMissileArcStep(struct Sprite *sprite) x2 += x1; y2 += y1; - if (!TranslateAnimArc(sprite)) + if (!TranslateAnimHorizontalArc(sprite)) { u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2, sprite->pos1.y + sprite->pos2.y - y2); diff --git a/src/dark.c b/src/dark.c index ecd466da8..80ce61800 100644 --- a/src/dark.c +++ b/src/dark.c @@ -389,14 +389,14 @@ void sub_8113A90(struct Sprite *sprite) static void sub_8113B90(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroySpriteAndMatrix(sprite); } void sub_8113BAC(u8 taskId) { struct ScanlineEffectParams scanlineParams; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; u16 i; u8 pos; int var0; @@ -420,10 +420,10 @@ void sub_8113BAC(u8 taskId) task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker); if (task->data[3] == 1) { - sub_80A6B30(&unknownStruct); + sub_80A6B30(&animBg); task->data[10] = gBattle_BG1_Y; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); - FillPalette(0, unknownStruct.unk8 << 4, 32); + FillPalette(0, animBg.paletteId * 16, 32); scanlineParams.dmaDest = ®_BG1VOFS; var0 = WINOUT_WIN01_BG1; if (!IsContest()) @@ -524,7 +524,7 @@ static void sub_8113D60(u8 taskId) void sub_8113E78(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; struct ScanlineEffectParams scanlineParams; u8 x; u16 i; @@ -561,14 +561,14 @@ void sub_8113E78(u8 taskId) case 1: if (task->data[3] == 1) { - sub_80A6B30(&unknownStruct); + sub_80A6B30(&animBg); task->data[10] = gBattle_BG1_Y; - FillPalette(0, unknownStruct.unk8 << 4, 32); + FillPalette(0, animBg.paletteId * 16, 32); } else { task->data[10] = gBattle_BG2_Y; - FillPalette(0, 144, 32); + FillPalette(0, 9 * 16, 32); } sub_8114374(3); @@ -809,7 +809,7 @@ void sub_81144F8(u8 taskId) u8 spriteId; u8 newSpriteId; u16 paletteNum; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; int var0 = 0; gBattle_WIN0H = var0; @@ -852,10 +852,10 @@ void sub_81144F8(u8 taskId) spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); newSpriteId = sub_80A89C8(gBattleAnimAttacker, spriteId, species); - sub_80A6B30(&unknownStruct); - sub_80A6D48(unknownStruct.bgId, gUnknown_08C1D210); - sub_80A6CC0(unknownStruct.bgId, gUnknown_08C1D0AC, unknownStruct.tilesOffset); - LoadCompressedPalette(gUnknown_08C1D1E8, unknownStruct.unk8 << 4, 32); + sub_80A6B30(&animBg); + AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); + AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); + LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32); gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96; gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32; @@ -876,7 +876,7 @@ void sub_81144F8(u8 taskId) static void sub_8114748(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; u16 paletteNum; u8 spriteId; u8 taskIdCopy = taskId; @@ -896,8 +896,8 @@ static void sub_8114748(u8 taskId) SetGreyscaleOrOriginalPalette(paletteNum, 1); DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]); - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + sub_80A6B30(&animBg); + sub_80A6C68(animBg.bgId); if (gTasks[taskIdCopy].data[6] == 1) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++; } diff --git a/src/dragon.c b/src/dragon.c index 9b39a8a30..befaf52e7 100644 --- a/src/dragon.c +++ b/src/dragon.c @@ -209,7 +209,7 @@ void sub_8113064(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; sprite->invisible = 1; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A66DC; + sprite->callback = TranslateSpriteLinearAndFlicker; } static void sub_8113100(struct Sprite *sprite) diff --git a/src/fire.c b/src/fire.c index 5f501a340..d428dc13b 100644 --- a/src/fire.c +++ b/src/fire.c @@ -479,7 +479,7 @@ static void sub_8108F08(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[3]; - sprite->callback = AnimTranslateLinearSimple; + sprite->callback = TranslateSpriteLinearFixedPoint; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -726,7 +726,7 @@ static void AnimFireCross(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateSpriteOverDuration; + sprite->callback = TranslateSpriteLinear; } static void sub_81093A4(struct Sprite *sprite) @@ -1280,9 +1280,9 @@ static void sub_8109E2C(u8 taskId) // arg 1: color code void AnimTask_BlendBackground(u8 taskId) { - struct UnknownAnimStruct2 unk; - sub_80A6B30(&unk); - BlendPalette(unk.unk8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor + struct BattleAnimBgData animBg; + sub_80A6B30(&animBg); + BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor DestroyAnimVisualTask(taskId); } diff --git a/src/ghost.c b/src/ghost.c index d26a4d1cb..998be0caa 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -275,7 +275,7 @@ static void sub_81116E8(struct Sprite *sprite) if (sprite->data[6] == 0) { sprite->invisible = TRUE; - sprite->callback = sub_80A67F4; + sprite->callback = DestroyAnimSpriteAndDisableBlend; } else sub_8111764(sprite); @@ -536,7 +536,7 @@ void sub_8111C50(u8 taskId) gSprites[task->data[0]].data[3] = 0; gSprites[task->data[0]].data[4] = 0; StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy); - gSprites[task->data[0]].callback = AnimTranslateLinearSimple; + gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint; task->func = sub_8111D78; } diff --git a/src/graphics.c b/src/graphics.c index 90b705d2f..1fc106dcc 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -592,9 +592,9 @@ const u32 gBattleAnimBackgroundImage_00[] = INCBIN_U32("graphics/battle_anims/ba const u32 gBattleAnimBackgroundPalette_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.gbapal.lz"); const u32 gBattleAnimBackgroundTilemap_00[] = INCBIN_U32("graphics/battle_anims/backgrounds/00.bin.lz"); -const u32 gUnknown_08C1D0AC[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz"); -const u32 gUnknown_08C1D1E8[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz"); -const u32 gUnknown_08C1D210[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.bin.lz"); +const u32 gMetalShineGfx[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.4bpp.lz"); +const u32 gMetalShinePalette[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.gbapal.lz"); +const u32 gMetalShineTilemap[] = INCBIN_U32("graphics/battle_anims/masks/metal_shine.bin.lz"); const u32 gUnusedGfx_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.4bpp.lz"); // ghost const u32 gUnusedPal_Goosuto[] = INCBIN_U32("graphics/unused/goosuto.gbapal.lz"); diff --git a/src/ground.c b/src/ground.c index 807205ad8..ae3cf6c3e 100644 --- a/src/ground.c +++ b/src/ground.c @@ -153,7 +153,7 @@ void AnimBonemerangProjectile(struct Sprite *sprite) static void AnimBonemerangProjectileStep(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; @@ -170,7 +170,7 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite) static void AnimBonemerangProjectileEnd(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } @@ -530,7 +530,7 @@ void AnimFissureDirtPlumeParticle(struct Sprite *sprite) static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } diff --git a/src/ice.c b/src/ice.c index d354fce7e..34ad572e8 100644 --- a/src/ice.c +++ b/src/ice.c @@ -1176,7 +1176,7 @@ void AnimSwirlingFogAnim(struct Sprite *sprite) // Fades mons to black and places foggy overlay in Haze. void AnimTask_Haze1(u8 taskId) { - struct UnknownAnimStruct2 subStruct; + struct BattleAnimBgData animBg; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -1191,17 +1191,17 @@ void AnimTask_Haze1(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&subStruct); - LoadBgTiles(subStruct.bgId, gWeatherFog1Tiles, 0x800, subStruct.tilesOffset); - sub_80A6D60(&subStruct, gBattleAnimFogTilemap, 0); - LoadPalette(&gUnknown_083970E8, subStruct.unk8 * 16, 32); + sub_80A6B30(&animBg); + LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset); + sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0); + LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); gTasks[taskId].func = AnimTask_Haze2; } void AnimTask_Haze2(u8 taskId) { - struct UnknownAnimStruct2 subStruct; + struct BattleAnimBgData animBg; gBattle_BG1_X += -1; gBattle_BG1_Y += 0; @@ -1245,7 +1245,7 @@ void AnimTask_Haze2(u8 taskId) } break; case 3: - sub_80A6B30(&subStruct); + sub_80A6B30(&animBg); sub_80A6C68(1); sub_80A6C68(2); @@ -1283,7 +1283,7 @@ void AnimThrowMistBall(struct Sprite *sprite) // Displays misty background in Mist Ball. void AnimTask_LoadMistTiles(u8 taskId) { - struct UnknownAnimStruct2 subStruct; + struct BattleAnimBgData animBg; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -1298,10 +1298,10 @@ void AnimTask_LoadMistTiles(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&subStruct); - LoadBgTiles(subStruct.bgId, gWeatherFog1Tiles, 0x800, subStruct.tilesOffset); - sub_80A6D60(&subStruct, gBattleAnimFogTilemap, 0); - LoadPalette(&gUnknown_083970E8, subStruct.unk8 * 16, 32); + sub_80A6B30(&animBg); + LoadBgTiles(animBg.bgId, gWeatherFog1Tiles, 0x800, animBg.tilesOffset); + sub_80A6D60(&animBg, gBattleAnimFogTilemap, 0); + LoadPalette(&gUnknown_083970E8, animBg.paletteId * 16, 32); gTasks[taskId].data[15] = -1; gTasks[taskId].func = AnimTask_OverlayFogTiles; @@ -1309,7 +1309,7 @@ void AnimTask_LoadMistTiles(u8 taskId) void AnimTask_OverlayFogTiles(u8 taskId) { - struct UnknownAnimStruct2 subStruct; + struct BattleAnimBgData animBg; gBattle_BG1_X += gTasks[taskId].data[15]; gBattle_BG1_Y += 0; @@ -1347,7 +1347,7 @@ void AnimTask_OverlayFogTiles(u8 taskId) } break; case 3: - sub_80A6B30(&subStruct); + sub_80A6B30(&animBg); sub_80A6C68(1); sub_80A6C68(2); @@ -1887,7 +1887,7 @@ void InitIceBallAnim(struct Sprite *sprite) // Throws the ball of ice in Ice Ball. void AnimThrowIceBall(struct Sprite *sprite) { - if (!TranslateAnimArc(sprite)) + if (!TranslateAnimHorizontalArc(sprite)) return; StartSpriteAnim(sprite, 1); diff --git a/src/normal.c b/src/normal.c index 95c99d29e..87c8792f1 100644 --- a/src/normal.c +++ b/src/normal.c @@ -323,14 +323,14 @@ void AnimSimplePaletteBlend(struct Sprite *sprite) // 6: BG palette 5 u32 UnpackSelectedBattleAnimPalettes(s16 selector) { - u8 arg0 = selector & 1; - u8 arg1 = (selector >> 1) & 1; - u8 arg2 = (selector >> 2) & 1; - u8 arg3 = (selector >> 3) & 1; - u8 arg4 = (selector >> 4) & 1; + u8 battleBackground = selector & 1; + u8 attacker = (selector >> 1) & 1; + u8 target = (selector >> 2) & 1; + u8 attackerPartner = (selector >> 3) & 1; + u8 targetPartner = (selector >> 4) & 1; u8 arg5 = (selector >> 5) & 1; u8 arg6 = (selector >> 6) & 1; - return sub_80A75AC(arg0, arg1, arg2, arg3, arg4, arg5, arg6); + return sub_80A75AC(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); } static void AnimSimplePaletteBlendStep(struct Sprite *sprite) diff --git a/src/poison.c b/src/poison.c index a72aab111..c86ec2cd8 100644 --- a/src/poison.c +++ b/src/poison.c @@ -208,7 +208,7 @@ void sub_810DBAC(struct Sprite *sprite) static void sub_810DC10(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } @@ -236,7 +236,7 @@ void sub_810DC2C(struct Sprite *sprite) static void sub_810DCB4(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); } @@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite) static void sub_810DD24(struct Sprite *sprite) { - AnimTranslateLinearSimple(sprite); + TranslateSpriteLinearFixedPoint(sprite); sprite->data[1] -= sprite->data[5]; sprite->data[2] -= sprite->data[6]; diff --git a/src/pokeball.c b/src/pokeball.c index 1938d888d..d4605ccd8 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -411,7 +411,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) static void SpriteCB_TestBallThrow(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { u16 ballId; u8 taskId = sprite->oam.affineParam; @@ -940,7 +940,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) } else { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; diff --git a/src/psychic.c b/src/psychic.c index 5756fe97f..6f808b547 100644 --- a/src/psychic.c +++ b/src/psychic.c @@ -939,7 +939,7 @@ static void sub_810FD3C(u8 taskId) void sub_810FDF0(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); diff --git a/src/rock.c b/src/rock.c index ebf477ec1..14ffc63e0 100644 --- a/src/rock.c +++ b/src/rock.c @@ -326,7 +326,7 @@ void sub_81109F0(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[2]; StoreSpriteCallbackInData6(sprite, sub_8110A70); - sprite->callback = sub_80A6450; + sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback(sprite); } @@ -341,7 +341,7 @@ static void sub_8110A70(struct Sprite *sprite) sprite->data[4] = -24; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = sub_80A6450; + sprite->callback = TranslateSpriteInEllipseOverDuration; sprite->callback(sprite); } @@ -367,7 +367,7 @@ void sub_8110AB4(struct Sprite *sprite) sprite->data[3] = 0; sprite->data[4] = 0; - sprite->callback = AnimTranslateLinearSimple; + sprite->callback = TranslateSpriteLinearFixedPoint; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } @@ -402,7 +402,7 @@ static void sub_8110B80(struct Sprite *sprite) void AnimTask_LoadSandstormBackground(u8 taskId) { int var0; - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; var0 = 0; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); @@ -418,10 +418,10 @@ void AnimTask_LoadSandstormBackground(u8 taskId) SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); - sub_80A6B30(&unknownStruct); - sub_80A6CC0(unknownStruct.bgId, gUnknown_08D8D58C, unknownStruct.tilesOffset); - sub_80A6D60(&unknownStruct, gUnknown_08D8D410, 0); - LoadCompressedPalette(gBattleAnimSpritePalette_261, unknownStruct.unk8 * 16, 32); + sub_80A6B30(&animBg); + AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08D8D58C, animBg.tilesOffset); + sub_80A6D60(&animBg, gUnknown_08D8D410, 0); + LoadCompressedPalette(gBattleAnimSpritePalette_261, animBg.paletteId * 16, 32); if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; @@ -432,7 +432,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId) static void sub_8110CB0(u8 taskId) { - struct UnknownAnimStruct2 unknownStruct; + struct BattleAnimBgData animBg; if (gTasks[taskId].data[0] == 0) gBattle_BG1_X += -6; @@ -477,8 +477,8 @@ static void sub_8110CB0(u8 taskId) } break; case 3: - sub_80A6B30(&unknownStruct); - sub_80A6C68(unknownStruct.bgId); + sub_80A6B30(&animBg); + sub_80A6C68(animBg.bgId); gTasks[taskId].data[12]++; break; case 4: @@ -735,7 +735,7 @@ static void sub_8111214(struct Task *task) void sub_811131C(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { u8 taskId = FindTaskIdByFunc(sub_81110A4); if (taskId != 0xFF) diff --git a/src/water.c b/src/water.c index 42ab1d67f..d13b1378e 100644 --- a/src/water.c +++ b/src/water.c @@ -876,31 +876,31 @@ void sub_810790C(struct Sprite *sprite) #ifdef NONMATCHING void AnimTask_CreateSurfWave(u8 taskId) { - struct UnknownAnimStruct2 unk; + struct BattleAnimBgData animBg; u8 taskId2; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); - sub_80A6B30(&unk); + sub_80A6B30(&animBg); if (!IsContest()) { SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) - sub_80A6D48(unk.bgId, gUnknown_08D95E00); + AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D95E00); else - sub_80A6D48(unk.bgId, gUnknown_08D960D0); + AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_08D960D0); } else { - sub_80A6D60(&unk, gUnknown_08D963A4, 1); + sub_80A6D60(&animBg, gUnknown_08D963A4, 1); } - sub_80A6CC0(unk.bgId, gBattleAnimBackgroundImage_Surf, unk.tilesOffset); + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBackgroundImage_Surf, animBg.tilesOffset); if (gBattleAnimArgs[0] == 0) - LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, unk.unk8 * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundPalette_Surf, animBg.paletteId * 16, 32); else - LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, unk.unk8 * 16, 32); + LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32); taskId2 = CreateTask(sub_8107D58, gTasks[taskId].priority + 1); gTasks[taskId].data[15] = taskId2; gTasks[taskId2].data[0] = 0; @@ -993,14 +993,14 @@ void AnimTask_CreateSurfWave(u8 taskId) mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ ldr r1, =gUnknown_08D95E00\n\ - bl sub_80A6D48\n\ + bl AnimLoadCompressedBgTilemap\n\ b _081079EA\n\ .pool\n\ _081079D0:\n\ mov r0, sp\n\ ldrb r0, [r0, 0x9]\n\ ldr r1, =gUnknown_08D960D0\n\ - bl sub_80A6D48\n\ + bl AnimLoadCompressedBgTilemap\n\ b _081079EA\n\ .pool\n\ _081079E0:\n\ @@ -1014,7 +1014,7 @@ _081079EA:\n\ ldr r1, =gBattleAnimBackgroundImage_Surf\n\ mov r2, sp\n\ ldrh r2, [r2, 0xA]\n\ - bl sub_80A6CC0\n\ + bl AnimLoadCompressedBgGfx\n\ ldr r0, =gBattleAnimArgs\n\ movs r1, 0\n\ ldrsh r0, [r0, r1]\n\ @@ -1176,7 +1176,7 @@ _08107B58:\n\ #ifdef NONMATCHING void sub_8107B84(u8 taskId) { - struct UnknownAnimStruct2 unk; + struct BattleAnimBgData animBg; u8 i; u16 rgbBuffer; u16 *BGptrX = &gBattle_BG1_X; @@ -1187,18 +1187,18 @@ void sub_8107B84(u8 taskId) *BGptrX += gTasks[taskId].data[0]; *BGptrY += gTasks[taskId].data[1]; - sub_80A6B30(&unk); + sub_80A6B30(&animBg); gTasks[taskId].data[2] += gTasks[taskId].data[1]; if (++gTasks[taskId].data[5] == 4) { - rgbBuffer = gPlttBufferFaded[unk.unk8 * 16 + 7]; + rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7]; for (i = 6; i != 0; i--) { - palNum = unk.unk8 * 16; + palNum = animBg.paletteId * 16; palOffset = 1 + i; gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; } - gPlttBufferFaded[unk.unk8 * 16 + 1] = rgbBuffer; + gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer; gTasks[taskId].data[5] = 0; } if (++gTasks[taskId].data[6] > 1) @@ -2320,7 +2320,7 @@ void sub_8108AC0(struct Task *task) void sub_8108B2C(struct Sprite *sprite) { - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { sprite->pos1.x += sprite->pos2.x; sprite->pos1.y += sprite->pos2.y; @@ -2337,7 +2337,7 @@ void sub_8108B94(struct Sprite *sprite) { u16 i; - if (TranslateAnimArc(sprite)) + if (TranslateAnimHorizontalArc(sprite)) { for (i = 0; i < NUM_TASKS; i++) { -- cgit v1.2.3 From a1ad1bad3a96222e8575bb2ce4625864593daa73 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 6 Feb 2019 20:01:29 -0600 Subject: Document a bunch of battle pyramid --- src/battle_pyramid.c | 1624 ++++++++++++++++++++++--------------------- src/battle_pyramid_bag.c | 2 +- src/event_object_movement.c | 4 +- src/field_screen_effect.c | 4 +- src/fieldmap.c | 7 +- src/overworld.c | 8 +- src/start_menu.c | 2 +- 7 files changed, 847 insertions(+), 804 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index ed911d8d9..9aa006985 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -34,12 +34,28 @@ #include "constants/maps.h" #include "constants/moves.h" #include "constants/species.h" +#include "constants/trainers.h" extern const struct MapLayout *const gMapLayouts[]; extern const u16 gUnknown_08D856C8[][16]; #define TOTAL_ROUNDS 20 #define PICKUP_ITEMS_PER_ROUND 10 +#define FLOOR_WALKABLE_METATILE 0x28D +#define FLOOR_EXIT_METATILE 0x28E + +enum +{ + HINT_EXIT_DIRECTION, + HINT_REMAINING_ITEMS, + HINT_REMAINING_TRAINERS, + HINT_EXIT_SHORT_REMAINING_TRAINERS, + HINT_EXIT_SHORT_REMAINING_ITEMS, + HINT_EXIT_MEDIUM_REMAINING_TRAINERS, + HINT_EXIT_MEDIUM_REMAINING_ITEMS, + HINT_EXIT_FAR_REMAINING_TRAINERS, + HINT_EXIT_FAR_REMAINING_ITEMS, +}; struct PyramidWildMon { @@ -49,231 +65,238 @@ struct PyramidWildMon u16 moves[4]; }; -struct Struct_08613650 +struct PyramidFloorTemplate { - u8 unk0; - u8 unk1; + u8 numItems; + u8 numTrainers; u8 unk2; u8 unk3; u8 runMultiplier; - u8 unk5[8]; + u8 layoutOffsets[8]; }; -struct ClassMusic +struct PyramidTrainerEncounterMusic { - u8 class; - u8 music; + u8 trainerClass; + u8 trainerEncounterMusic; }; // This file's functions. -static void sub_81A8E9C(void); -static void sub_81A8F38(void); -static void sub_81A9048(void); +static void InitPyramidBag(void); +static void GetBattlePyramidData(void); +static void SetBattlePyramidData(void); static void sub_81A9134(void); -static void sub_81A917C(void); -static void sub_81A91FC(void); -static void sub_81A9254(void); -static void sub_81A9290(void); -static void sub_81A93C8(void); -static void sub_81A9414(void); -static void sub_81A9424(void); -static void sub_81A9618(void); -static void sub_81A966C(void); -static void sub_81A9684(void); -static void sub_81A975C(void); -static void sub_81A97C8(void); +static void SetBattlePyramidRewardItem(void); +static void GiveBattlePyramidRewardItem(void); +static void SeedPyramidFloor(void); +static void SetPickupItem(void); +static void HidePyramidItem(void); +static void InitPyramidFacilityTrainers(void); +static void ShowPostBattleHintText(void); +static void UpdatePyramidWinStreak(void); +static void GetInBattlePyramid(void); +static void UpdatePyramidLightRadius(void); +static void ClearPyramidPartyHeldItems(void); +static void SetPyramidFloorPalette(void); static void sub_81A9828(void); -static void sub_81A9834(void); -static void InitBagItems(u8 lvlMode); -static u8 sub_81AA9E4(void); -static u8 sub_81A9998(s32 *, u8, u8); -static void sub_81A97DC(u8 taskId); +static void RestorePlayerPartyAfterPyramid(void); +static void InitPyramidBagItems(u8 lvlMode); +static u8 GetPyramidFloorTemplateId(void); +static u8 GetPostBattleDirectionHintTextIndex(int *, u8, u8); +static void Task_SetPyramidFloorPalette(u8 taskId); static void sub_81A9B44(u16 trainerId); -static void sub_81AA96C(u8 *mapNums); -static void sub_81AA33C(u8 *, u8 *); +static void SetPyramidFloorLayoutOffsets(u8 *layoutOffsets); +static void SetPyramidEntranceAndExitSquareIds(u8 *, u8 *); static void sub_81AA398(u8); static bool8 sub_81AA4D8(u8, u8); static bool8 sub_81AA648(u8, u8); -static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id); -static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id); +static bool8 sub_81AA760(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); +static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); // Const rom data. #include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" #include "data/battle_frontier/battle_pyramid_open_level_wild_mons.h" -static const struct Struct_08613650 gUnknown_08613650[] = +static const struct PyramidFloorTemplate sPyramidFloorTemplates[] = { { - .unk0 = 0x07, - .unk1 = 0x03, + .numItems = 7, + .numTrainers = 3, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x80, - .unk5 = {0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03} + .layoutOffsets = {0, 0, 1, 1, 2, 2, 3, 3}, }, { - .unk0 = 0x06, - .unk1 = 0x03, + .numItems = 6, + .numTrainers = 3, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x80, - .unk5 = {0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04} + .layoutOffsets = {1, 1, 2, 2, 3, 3, 4, 4}, }, { - .unk0 = 0x05, - .unk1 = 0x03, + .numItems = 5, + .numTrainers = 3, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x78, - .unk5 = {0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05} + .layoutOffsets = {2, 2, 3, 3, 4, 4, 5, 5}, }, { - .unk0 = 0x04, - .unk1 = 0x04, + .numItems = 4, + .numTrainers = 4, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x78, - .unk5 = {0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x06} + .layoutOffsets = {3, 3, 4, 4, 5, 5, 6, 6}, }, { - .unk0 = 0x04, - .unk1 = 0x04, + .numItems = 4, + .numTrainers = 4, .unk2 = 0x00, .unk3 = 0x01, .runMultiplier = 0x70, - .unk5 = {0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07} + .layoutOffsets = {4, 4, 5, 5, 6, 6, 7, 7}, }, { - .unk0 = 0x03, - .unk1 = 0x05, + .numItems = 3, + .numTrainers = 5, .unk2 = 0x00, .unk3 = 0x02, .runMultiplier = 0x70, - .unk5 = {0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c} + .layoutOffsets = {5, 6, 7, 8, 9, 10, 11, 12}, }, { - .unk0 = 0x03, - .unk1 = 0x05, + .numItems = 3, + .numTrainers = 5, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x68, - .unk5 = {0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d} + .layoutOffsets = {6, 7, 8, 9, 10, 11, 12, 13}, }, { - .unk0 = 0x02, - .unk1 = 0x04, + .numItems = 2, + .numTrainers = 4, .unk2 = 0x00, .unk3 = 0x01, .runMultiplier = 0x68, - .unk5 = {0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e} + .layoutOffsets = {7, 8, 9, 10, 11, 12, 13, 14}, }, { - .unk0 = 0x04, - .unk1 = 0x05, + .numItems = 4, + .numTrainers = 5, .unk2 = 0x00, .unk3 = 0x02, .runMultiplier = 0x60, - .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + .layoutOffsets = {8, 9, 10, 11, 12, 13, 14, 15}, }, { - .unk0 = 0x03, - .unk1 = 0x06, + .numItems = 3, + .numTrainers = 6, .unk2 = 0x00, .unk3 = 0x04, .runMultiplier = 0x60, - .unk5 = {0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f} + .layoutOffsets = {8, 9, 10, 11, 12, 13, 14, 15}, }, { - .unk0 = 0x02, - .unk1 = 0x03, + .numItems = 2, + .numTrainers = 3, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x58, - .unk5 = {0x0c, 0x0d, 0x0e, 0x0c, 0x0d, 0x0e, 0x0c, 0x0d} + .layoutOffsets = {12, 13, 14, 12, 13, 14, 12, 13}, }, { - .unk0 = 0x04, - .unk1 = 0x05, + .numItems = 4, + .numTrainers = 5, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x58, - .unk5 = {0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b} + .layoutOffsets = {11, 11, 11, 11, 11, 11, 11, 11}, }, { - .unk0 = 0x03, - .unk1 = 0x07, + .numItems = 3, + .numTrainers = 7, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x50, - .unk5 = {0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c} + .layoutOffsets = {12, 12, 12, 12, 12, 12, 12, 12}, }, { - .unk0 = 0x02, - .unk1 = 0x04, + .numItems = 2, + .numTrainers = 4, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x50, - .unk5 = {0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d} + .layoutOffsets = {13, 13, 13, 13, 13, 13, 13, 13}, }, { - .unk0 = 0x03, - .unk1 = 0x06, + .numItems = 3, + .numTrainers = 6, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x50, - .unk5 = {0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e} + .layoutOffsets = {14, 14, 14, 14, 14, 14, 14, 14}, }, { - .unk0 = 0x03, - .unk1 = 0x08, + .numItems = 3, + .numTrainers = 8, .unk2 = 0x00, .unk3 = 0x00, .runMultiplier = 0x50, - .unk5 = {0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f} + .layoutOffsets = {15, 15, 15, 15, 15, 15, 15, 15}, } }; -static const u8 gUnknown_08613750[34][2] = -{ - {0x28, 0x00}, - {0x46, 0x01}, - {0x5a, 0x02}, - {0x64, 0x03}, - {0x23, 0x01}, - {0x37, 0x02}, - {0x4b, 0x03}, - {0x5a, 0x04}, - {0x64, 0x0a}, - {0x23, 0x02}, - {0x37, 0x03}, - {0x4b, 0x04}, - {0x5a, 0x05}, - {0x64, 0x0b}, - {0x23, 0x03}, - {0x37, 0x04}, - {0x4b, 0x05}, - {0x5a, 0x06}, - {0x64, 0x0c}, - {0x23, 0x04}, - {0x37, 0x05}, - {0x4b, 0x06}, - {0x5a, 0x07}, - {0x64, 0x0d}, - {0x23, 0x05}, - {0x37, 0x06}, - {0x4b, 0x07}, - {0x5a, 0x08}, - {0x64, 0x0e}, - {0x23, 0x06}, - {0x37, 0x07}, - {0x4b, 0x08}, - {0x5a, 0x09}, - {0x64, 0x0f} +static const u8 sPyramidFloorTemplateOptions[][2] = +{ + // Floor 0 + {40, 0}, + {70, 1}, + {90, 2}, + {100, 3}, + // Floor 1 + {35, 1}, + {55, 2}, + {75, 3}, + {90, 4}, + {100, 10}, + // Floor 2 + {35, 2}, + {55, 3}, + {75, 4}, + {90, 5}, + {100, 11}, + // Floor 3 + {35, 3}, + {55, 4}, + {75, 5}, + {90, 6}, + {100, 12}, + // Floor 4 + {35, 4}, + {55, 5}, + {75, 6}, + {90, 7}, + {100, 13}, + // Floor 5 + {35, 5}, + {55, 6}, + {75, 7}, + {90, 8}, + {100, 14}, + // Floor 6 + {35, 6}, + {55, 7}, + {75, 8}, + {90, 9}, + {100, 15} }; -static const u8 gUnknown_08613794[] = +static const u8 sFloorTemplateOffsets[] = { - 0x00, 0x04, 0x09, 0x0e, 0x13, 0x18, 0x1d, 0x00 + 0, 4, 9, 14, 19, 24, 29, 0 }; static const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = @@ -324,482 +347,499 @@ static const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, }; -static const u8 gUnknown_08613ABC[63][2] = -{ - {0x1f, 0x00}, - {0x2e, 0x01}, - {0x3d, 0x02}, - {0x47, 0x03}, - {0x51, 0x04}, - {0x5b, 0x05}, - {0x5e, 0x06}, - {0x61, 0x07}, - {0x64, 0x08}, - {0x0f, 0x00}, - {0x2e, 0x01}, - {0x3d, 0x02}, - {0x47, 0x03}, - {0x51, 0x04}, - {0x5b, 0x05}, - {0x5e, 0x06}, - {0x61, 0x08}, - {0x64, 0x09}, - {0x0f, 0x00}, - {0x1e, 0x01}, - {0x3d, 0x02}, - {0x47, 0x03}, - {0x51, 0x04}, - {0x5b, 0x05}, - {0x5e, 0x06}, - {0x61, 0x07}, - {0x64, 0x08}, - {0x1c, 0x00}, - {0x2b, 0x01}, - {0x3a, 0x02}, - {0x44, 0x03}, - {0x4e, 0x04}, - {0x58, 0x05}, - {0x5c, 0x07}, - {0x60, 0x08}, - {0x64, 0x09}, - {0x0f, 0x00}, - {0x2b, 0x01}, - {0x3a, 0x02}, - {0x44, 0x03}, - {0x4e, 0x04}, - {0x58, 0x05}, - {0x5c, 0x06}, - {0x60, 0x07}, - {0x64, 0x09}, - {0x0f, 0x00}, - {0x1e, 0x01}, - {0x3a, 0x02}, - {0x44, 0x03}, - {0x4e, 0x04}, - {0x58, 0x05}, - {0x5c, 0x06}, - {0x60, 0x07}, - {0x64, 0x08}, - {0x1c, 0x00}, - {0x2b, 0x01}, - {0x3a, 0x02}, - {0x44, 0x03}, - {0x4e, 0x04}, - {0x58, 0x05}, - {0x5c, 0x06}, - {0x60, 0x08}, - {0x64, 0x09}, +static const u8 sPickupItemSlots[][2] = +{ + // Floor 0 + { 31, 0}, + { 46, 1}, + { 61, 2}, + { 71, 3}, + { 81, 4}, + { 91, 5}, + { 94, 6}, + { 97, 7}, + {100, 8}, + // Floor 1 + { 15, 0}, + { 46, 1}, + { 61, 2}, + { 71, 3}, + { 81, 4}, + { 91, 5}, + { 94, 6}, + { 97, 8}, + {100, 9}, + // Floor 2 + { 15, 0}, + { 30, 1}, + { 61, 2}, + { 71, 3}, + { 81, 4}, + { 91, 5}, + { 94, 6}, + { 97, 7}, + {100, 8}, + // Floor 3 + { 28, 0}, + { 43, 1}, + { 58, 2}, + { 68, 3}, + { 78, 4}, + { 88, 5}, + { 92, 7}, + { 96, 8}, + {100, 9}, + // Floor 4 + { 15, 0}, + { 43, 1}, + { 58, 2}, + { 68, 3}, + { 78, 4}, + { 88, 5}, + { 92, 6}, + { 96, 7}, + {100, 9}, + // Floor 5 + { 15, 0}, + { 30, 1}, + { 58, 2}, + { 68, 3}, + { 78, 4}, + { 88, 5}, + { 92, 6}, + { 96, 7}, + {100, 8}, + // Floor 6 + { 28, 0}, + { 43, 1}, + { 58, 2}, + { 68, 3}, + { 78, 4}, + { 88, 5}, + { 92, 6}, + { 96, 8}, + {100, 9}, }; -static const u8 gUnknown_08613B3A[] = {0x00, 0x09, 0x12, 0x1b, 0x24, 0x2d, 0x36}; - -static const struct ClassMusic gUnknown_08613B44[54] = -{ - {0x03, 0x06}, - {0x0b, 0x06}, - {0x0d, 0x06}, - {0x0f, 0x01}, - {0x2b, 0x04}, - {0x2d, 0x01}, - {0x24, 0x09}, - {0x29, 0x04}, - {0x05, 0x05}, - {0x18, 0x04}, - {0x2f, 0x00}, - {0x2e, 0x09}, - {0x11, 0x0c}, - {0x10, 0x0b}, - {0x1e, 0x0d}, - {0x08, 0x01}, - {0x17, 0x03}, - {0x0c, 0x04}, - {0x38, 0x04}, - {0x1c, 0x03}, - {0x1a, 0x00}, - {0x19, 0x0b}, - {0x09, 0x07}, - {0x31, 0x07}, - {0x35, 0x07}, - {0x36, 0x01}, - {0x33, 0x00}, - {0x2a, 0x03}, - {0x16, 0x0d}, - {0x0e, 0x03}, - {0x15, 0x01}, - {0x14, 0x01}, - {0x2c, 0x01}, - {0x1b, 0x02}, - {0x04, 0x01}, - {0x07, 0x03}, - {0x34, 0x05}, - {0x32, 0x00}, - {0x37, 0x02}, - {0x1d, 0x04}, - {0x22, 0x09}, - {0x1f, 0x01}, - {0x25, 0x00}, - {0x0a, 0x04}, - {0x28, 0x00}, - {0x06, 0x05}, - {0x27, 0x0b}, - {0x26, 0x00}, - {0x13, 0x00}, - {0x12, 0x02}, - {0x39, 0x08}, - {0x02, 0x0b}, - {0x20, 0x01}, - {0x21, 0x00}, +static const u8 sPickupItemOffsets[] = {0, 9, 18, 27, 36, 45, 54}; + +static const struct PyramidTrainerEncounterMusic sTrainerClassEncounterMusic[54] = +{ + {TRAINER_CLASS_TEAM_AQUA, TRAINER_ENCOUNTER_MUSIC_AQUA}, + {TRAINER_CLASS_AQUA_ADMIN, TRAINER_ENCOUNTER_MUSIC_AQUA}, + {TRAINER_CLASS_AQUA_LEADER, TRAINER_ENCOUNTER_MUSIC_AQUA}, + {TRAINER_CLASS_AROMA_LADY, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_BATTLE_GIRL, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_SWIMMER_F, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_POKEFAN, TRAINER_ENCOUNTER_MUSIC_TWINS}, + {TRAINER_CLASS_DRAGON_TAMER, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_COOLTRAINER, TRAINER_ENCOUNTER_MUSIC_COOL}, + {TRAINER_CLASS_GUITARIST, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_SAILOR, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_TWINS, TRAINER_ENCOUNTER_MUSIC_TWINS}, + {TRAINER_CLASS_INTERVIEWER, TRAINER_ENCOUNTER_MUSIC_INTERVIEWER}, + {TRAINER_CLASS_RUIN_MANIAC, TRAINER_ENCOUNTER_MUSIC_HIKER}, + {TRAINER_CLASS_GENTLEMAN, TRAINER_ENCOUNTER_MUSIC_RICH}, + {TRAINER_CLASS_SWIMMER_M, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_POKEMANIAC, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS}, + {TRAINER_CLASS_BLACK_BELT, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_OLD_COUPLE, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_BUG_MANIAC, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS}, + {TRAINER_CLASS_CAMPER, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_KINDLER, TRAINER_ENCOUNTER_MUSIC_HIKER}, + {TRAINER_CLASS_TEAM_MAGMA, TRAINER_ENCOUNTER_MUSIC_MAGMA}, + {TRAINER_CLASS_MAGMA_ADMIN, TRAINER_ENCOUNTER_MUSIC_MAGMA}, + {TRAINER_CLASS_MAGMA_LEADER, TRAINER_ENCOUNTER_MUSIC_MAGMA}, + {TRAINER_CLASS_LASS, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_BUG_CATCHER, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_NINJA_BOY, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS}, + {TRAINER_CLASS_RICH_BOY, TRAINER_ENCOUNTER_MUSIC_RICH}, + {TRAINER_CLASS_HEX_MANIAC, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS}, + {TRAINER_CLASS_BEAUTY, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_LADY, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_PARASOL_LADY, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_PICNICKER, TRAINER_ENCOUNTER_MUSIC_GIRL}, + {TRAINER_CLASS_PKMN_BREEDER, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_COLLECTOR, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS}, + {TRAINER_CLASS_PKMN_RANGER, TRAINER_ENCOUNTER_MUSIC_COOL}, + {TRAINER_CLASS_PKMN_TRAINER_3, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_YOUNG_COUPLE, TRAINER_ENCOUNTER_MUSIC_GIRL}, + {TRAINER_CLASS_PSYCHIC, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_SR_AND_JR, TRAINER_ENCOUNTER_MUSIC_TWINS}, + {TRAINER_CLASS_ELITE_FOUR, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_YOUNGSTER, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_EXPERT, TRAINER_ENCOUNTER_MUSIC_INTENSE}, + {TRAINER_CLASS_TRIATHLETE, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_BIRD_KEEPER, TRAINER_ENCOUNTER_MUSIC_COOL}, + {TRAINER_CLASS_FISHERMAN, TRAINER_ENCOUNTER_MUSIC_HIKER}, + {TRAINER_CLASS_CHAMPION, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_TUBER_M, TRAINER_ENCOUNTER_MUSIC_MALE}, + {TRAINER_CLASS_TUBER_F, TRAINER_ENCOUNTER_MUSIC_GIRL}, + {TRAINER_CLASS_SIS_AND_BRO, TRAINER_ENCOUNTER_MUSIC_SWIMMER}, + {TRAINER_CLASS_HIKER, TRAINER_ENCOUNTER_MUSIC_HIKER}, + {TRAINER_CLASS_LEADER, TRAINER_ENCOUNTER_MUSIC_FEMALE}, + {TRAINER_CLASS_SCHOOL_KID, TRAINER_ENCOUNTER_MUSIC_MALE}, }; -static const u8 gUnknown_08613C1C[50][2] = -{ - {0x0d, 0x03}, - {0x0e, 0x04}, - {0x10, 0x01}, - {0x11, 0x00}, - {0x03, 0x02}, - {0x12, 0x03}, - {0x0c, 0x03}, - {0x13, 0x03}, - {0x14, 0x03}, - {0x15, 0x02}, - {0x17, 0x02}, - {0x07, 0x02}, - {0x0a, 0x04}, - {0x19, 0x02}, - {0x1a, 0x02}, - {0x1b, 0x00}, - {0x1d, 0x02}, - {0x1e, 0x02}, - {0x1f, 0x03}, - {0x20, 0x04}, - {0x26, 0x00}, - {0x27, 0x01}, - {0x29, 0x04}, - {0x2a, 0x05}, - {0x09, 0x04}, - {0x16, 0x05}, - {0x2b, 0x00}, - {0x2d, 0x04}, - {0x2e, 0x02}, - {0x30, 0x02}, - {0x32, 0x02}, - {0x31, 0x03}, - {0x2f, 0x03}, - {0x33, 0x03}, - {0x34, 0x02}, - {0x04, 0x02}, - {0x35, 0x00}, - {0x36, 0x03}, - {0x37, 0x03}, - {0x38, 0x03}, - {0x1c, 0x01}, - {0x3a, 0x02}, - {0x05, 0x02}, - {0x42, 0x02}, - {0x02, 0x03}, - {0x44, 0x02}, - {0x45, 0x03}, - {0x47, 0x03}, - {0x43, 0x00}, - {0x00, 0x04}, +static const u8 sTrainerTextGroups[50][2] = +{ + {FACILITY_CLASS_AROMA_LADY, 3}, + {FACILITY_CLASS_RUIN_MANIAC, 4}, + {FACILITY_CLASS_TUBER_F, 1}, + {FACILITY_CLASS_TUBER_M, 0}, + {FACILITY_CLASS_COOLTRAINER_M, 2}, + {FACILITY_CLASS_COOLTRAINER_F, 3}, + {FACILITY_CLASS_HEX_MANIAC, 3}, + {FACILITY_CLASS_LADY, 3}, + {FACILITY_CLASS_BEAUTY, 3}, + {FACILITY_CLASS_RICH_BOY, 2}, + {FACILITY_CLASS_POKEMANIAC, 2}, + {FACILITY_CLASS_SWIMMER_M, 2}, + {FACILITY_CLASS_BLACK_BELT, 4}, + {FACILITY_CLASS_GUITARIST, 2}, + {FACILITY_CLASS_KINDLER, 2}, + {FACILITY_CLASS_CAMPER, 0}, + {FACILITY_CLASS_BUG_MANIAC, 2}, + {FACILITY_CLASS_PSYCHIC_M, 2}, + {FACILITY_CLASS_PSYCHIC_F, 3}, + {FACILITY_CLASS_GENTLEMAN, 4}, + {FACILITY_CLASS_SCHOOL_KID_M, 0}, + {FACILITY_CLASS_SCHOOL_KID_F, 1}, + {FACILITY_CLASS_POKEFAN_M, 4}, + {FACILITY_CLASS_POKEFAN_F, 5}, + {FACILITY_CLASS_EXPERT_M, 4}, + {FACILITY_CLASS_EXPERT_F, 5}, + {FACILITY_CLASS_YOUNGSTER, 0}, + {FACILITY_CLASS_FISHERMAN, 4}, + {FACILITY_CLASS_CYCLING_TRIATHLETE_M, 2}, + {FACILITY_CLASS_RUNNING_TRIATHLETE_M, 2}, + {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, 2}, + {FACILITY_CLASS_RUNNING_TRIATHLETE_F, 3}, + {FACILITY_CLASS_CYCLING_TRIATHLETE_F, 3}, + {FACILITY_CLASS_SWIMMING_TRIATHLETE_F, 3}, + {FACILITY_CLASS_DRAGON_TAMER, 2}, + {FACILITY_CLASS_BIRD_KEEPER, 2}, + {FACILITY_CLASS_NINJA_BOY, 0}, + {FACILITY_CLASS_BATTLE_GIRL, 3}, + {FACILITY_CLASS_PARASOL_LADY, 3}, + {FACILITY_CLASS_SWIMMER_F, 3}, + {FACILITY_CLASS_PICNICKER, 1}, + {FACILITY_CLASS_SAILOR, 2}, + {FACILITY_CLASS_COLLECTOR, 2}, + {FACILITY_CLASS_PKMN_BREEDER_M, 2}, + {FACILITY_CLASS_POKEMON_BREEDER_F, 3}, + {FACILITY_CLASS_PKMN_RANGER_M, 2}, + {FACILITY_CLASS_PKMN_RANGER_F, 3}, + {FACILITY_CLASS_LASS, 3}, + {FACILITY_CLASS_BUG_CATCHER, 0}, + {FACILITY_CLASS_HIKER, 4}, }; -static const u8 *const gUnknown_08613C80[] = +static const u8 *const sExitDirectionHintTexts1[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_252D2D, - BattleFrontier_BattlePyramidEmptySquare_Text_252D57, - BattleFrontier_BattlePyramidEmptySquare_Text_252D81, - BattleFrontier_BattlePyramidEmptySquare_Text_252DAB, + BattlePyramid_ExitHintUp_Text1, + BattlePyramid_ExitHintLeft_Text1, + BattlePyramid_ExitHintRight_Text1, + BattlePyramid_ExitHintDown_Text1, }; -static const u8 *const gUnknown_08613C90[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_25330B, - BattleFrontier_BattlePyramidEmptySquare_Text_2532CC, - BattleFrontier_BattlePyramidEmptySquare_Text_25328B, - BattleFrontier_BattlePyramidEmptySquare_Text_253248, - BattleFrontier_BattlePyramidEmptySquare_Text_253206, - BattleFrontier_BattlePyramidEmptySquare_Text_2531C4, - BattleFrontier_BattlePyramidEmptySquare_Text_253183, - BattleFrontier_BattlePyramidEmptySquare_Text_253140, - BattleFrontier_BattlePyramidEmptySquare_Text_2530FD, +static const u8 *const sRemainingItemsHintTexts1[] = +{ + BattlePyramid_ZeroItemsRemaining_Text1, + BattlePyramid_OneItemRemaining_Text1, + BattlePyramid_TwoItemsRemaining_Text1, + BattlePyramid_ThreeItemsRemaining_Text1, + BattlePyramid_FourItemsRemaining_Text1, + BattlePyramid_FiveItemsRemaining_Text1, + BattlePyramid_SixItemsRemaining_Text1, + BattlePyramid_SevenItemsRemaining_Text1, + BattlePyramid_EightItemsRemaining_Text1, }; -static const u8 *const gUnknown_08613CB4[] = +static const u8 *const sRemainingTrainersHintTexts1[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_2544A6, - BattleFrontier_BattlePyramidEmptySquare_Text_25445A, - BattleFrontier_BattlePyramidEmptySquare_Text_25440B, - BattleFrontier_BattlePyramidEmptySquare_Text_2543BA, - BattleFrontier_BattlePyramidEmptySquare_Text_25436A, - BattleFrontier_BattlePyramidEmptySquare_Text_25431A, - BattleFrontier_BattlePyramidEmptySquare_Text_2542CB, - BattleFrontier_BattlePyramidEmptySquare_Text_25427A, + BattlePyramid_ZeroTrainersRemaining_Text1, + BattlePyramid_OneTrainersRemaining_Text1, + BattlePyramid_TwoTrainersRemaining_Text1, + BattlePyramid_ThreeTrainersRemaining_Text1, + BattlePyramid_FourTrainersRemaining_Text1, + BattlePyramid_FiveTrainersRemaining_Text1, + BattlePyramid_SixTrainersRemaining_Text1, + BattlePyramid_SevenTrainersRemaining_Text1, }; -static const u8 *const gUnknown_08613CD4[] = +static const u8 *const sExitDirectionHintTexts2[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_252DD5, - BattleFrontier_BattlePyramidEmptySquare_Text_252E03, - BattleFrontier_BattlePyramidEmptySquare_Text_252E31, - BattleFrontier_BattlePyramidEmptySquare_Text_252E5F, + BattlePyramid_ExitHintUp_Text2, + BattlePyramid_ExitHintLeft_Text2, + BattlePyramid_ExitHintRight_Text2, + BattlePyramid_ExitHintDown_Text2, }; -static const u8 *const gUnknown_08613CE4[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_25362E, - BattleFrontier_BattlePyramidEmptySquare_Text_2535D4, - BattleFrontier_BattlePyramidEmptySquare_Text_253578, - BattleFrontier_BattlePyramidEmptySquare_Text_25351A, - BattleFrontier_BattlePyramidEmptySquare_Text_2534BD, - BattleFrontier_BattlePyramidEmptySquare_Text_253460, - BattleFrontier_BattlePyramidEmptySquare_Text_253404, - BattleFrontier_BattlePyramidEmptySquare_Text_2533A6, - BattleFrontier_BattlePyramidEmptySquare_Text_25334D, +static const u8 *const sRemainingItemsHintTexts2[] = +{ + BattlePyramid_ZeroItemsRemaining_Text2, + BattlePyramid_OneItemRemaining_Text2, + BattlePyramid_TwoItemsRemaining_Text2, + BattlePyramid_ThreeItemsRemaining_Text2, + BattlePyramid_FourItemsRemaining_Text2, + BattlePyramid_FiveItemsRemaining_Text2, + BattlePyramid_SixItemsRemaining_Text2, + BattlePyramid_SevenItemsRemaining_Text2, + BattlePyramid_EightItemsRemaining_Text2, }; -static const u8 *const gUnknown_08613D08[] = +static const u8 *const sRemainingTrainersHintTexts2[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_25471E, - BattleFrontier_BattlePyramidEmptySquare_Text_2546CC, - BattleFrontier_BattlePyramidEmptySquare_Text_25467C, - BattleFrontier_BattlePyramidEmptySquare_Text_25462A, - BattleFrontier_BattlePyramidEmptySquare_Text_2545D9, - BattleFrontier_BattlePyramidEmptySquare_Text_254588, - BattleFrontier_BattlePyramidEmptySquare_Text_254538, - BattleFrontier_BattlePyramidEmptySquare_Text_2544E6, + BattlePyramid_ZeroTrainersRemaining_Text2, + BattlePyramid_OneTrainersRemaining_Text2, + BattlePyramid_TwoTrainersRemaining_Text2, + BattlePyramid_ThreeTrainersRemaining_Text2, + BattlePyramid_FourTrainersRemaining_Text2, + BattlePyramid_FiveTrainersRemaining_Text2, + BattlePyramid_SixTrainersRemaining_Text2, + BattlePyramid_SevenTrainersRemaining_Text2, }; -static const u8 *const gUnknown_08613D28[] = +static const u8 *const sExitDirectionHintTexts3[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_252E8D, - BattleFrontier_BattlePyramidEmptySquare_Text_252EAA, - BattleFrontier_BattlePyramidEmptySquare_Text_252EC7, - BattleFrontier_BattlePyramidEmptySquare_Text_252EE4, + BattlePyramid_ExitHintUp_Text3, + BattlePyramid_ExitHintLeft_Text3, + BattlePyramid_ExitHintRight_Text3, + BattlePyramid_ExitHintDown_Text3, }; -static const u8 *const gUnknown_08613D38[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_2539EC, - BattleFrontier_BattlePyramidEmptySquare_Text_253980, - BattleFrontier_BattlePyramidEmptySquare_Text_253915, - BattleFrontier_BattlePyramidEmptySquare_Text_2538A8, - BattleFrontier_BattlePyramidEmptySquare_Text_25383C, - BattleFrontier_BattlePyramidEmptySquare_Text_2537D0, - BattleFrontier_BattlePyramidEmptySquare_Text_253765, - BattleFrontier_BattlePyramidEmptySquare_Text_2536F8, - BattleFrontier_BattlePyramidEmptySquare_Text_25368B, +static const u8 *const sRemainingItemsHintTexts3[] = +{ + BattlePyramid_ZeroItemsRemaining_Text3, + BattlePyramid_OneItemRemaining_Text3, + BattlePyramid_TwoItemsRemaining_Text3, + BattlePyramid_ThreeItemsRemaining_Text3, + BattlePyramid_FourItemsRemaining_Text3, + BattlePyramid_FiveItemsRemaining_Text3, + BattlePyramid_SixItemsRemaining_Text3, + BattlePyramid_SevenItemsRemaining_Text3, + BattlePyramid_EightItemsRemaining_Text3, }; -static const u8 *const gUnknown_08613D5C[] = +static const u8 *const sRemainingTrainersHintTexts3[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_254A0B, - BattleFrontier_BattlePyramidEmptySquare_Text_2549AE, - BattleFrontier_BattlePyramidEmptySquare_Text_25494D, - BattleFrontier_BattlePyramidEmptySquare_Text_2548EB, - BattleFrontier_BattlePyramidEmptySquare_Text_25488A, - BattleFrontier_BattlePyramidEmptySquare_Text_254829, - BattleFrontier_BattlePyramidEmptySquare_Text_2547C9, - BattleFrontier_BattlePyramidEmptySquare_Text_254767, + BattlePyramid_ZeroTrainersRemaining_Text3, + BattlePyramid_OneTrainersRemaining_Text3, + BattlePyramid_TwoTrainersRemaining_Text3, + BattlePyramid_ThreeTrainersRemaining_Text3, + BattlePyramid_FourTrainersRemaining_Text3, + BattlePyramid_FiveTrainersRemaining_Text3, + BattlePyramid_SixTrainersRemaining_Text3, + BattlePyramid_SevenTrainersRemaining_Text3, }; -static const u8 *const gUnknown_08613D7C[] = +static const u8 *const sExitDirectionHintTexts4[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_252F01, - BattleFrontier_BattlePyramidEmptySquare_Text_252F3A, - BattleFrontier_BattlePyramidEmptySquare_Text_252F73, - BattleFrontier_BattlePyramidEmptySquare_Text_252FAC, + BattlePyramid_ExitHintUp_Text4, + BattlePyramid_ExitHintLeft_Text4, + BattlePyramid_ExitHintRight_Text4, + BattlePyramid_ExitHintDown_Text4, }; -static const u8 *const gUnknown_08613D8C[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_253D3E, - BattleFrontier_BattlePyramidEmptySquare_Text_253CE0, - BattleFrontier_BattlePyramidEmptySquare_Text_253C87, - BattleFrontier_BattlePyramidEmptySquare_Text_253C2C, - BattleFrontier_BattlePyramidEmptySquare_Text_253BD2, - BattleFrontier_BattlePyramidEmptySquare_Text_253B78, - BattleFrontier_BattlePyramidEmptySquare_Text_253B1F, - BattleFrontier_BattlePyramidEmptySquare_Text_253AC4, - BattleFrontier_BattlePyramidEmptySquare_Text_253A69, +static const u8 *const sRemainingItemsHintTexts4[] = +{ + BattlePyramid_ZeroItemsRemaining_Text4, + BattlePyramid_OneItemRemaining_Text4, + BattlePyramid_TwoItemsRemaining_Text4, + BattlePyramid_ThreeItemsRemaining_Text4, + BattlePyramid_FourItemsRemaining_Text4, + BattlePyramid_FiveItemsRemaining_Text4, + BattlePyramid_SixItemsRemaining_Text4, + BattlePyramid_SevenItemsRemaining_Text4, + BattlePyramid_EightItemsRemaining_Text4, }; -static const u8 *const gUnknown_08613DB0[] = +static const u8 *const sRemainingTrainersHintTexts4[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_254C3E, - BattleFrontier_BattlePyramidEmptySquare_Text_254BF1, - BattleFrontier_BattlePyramidEmptySquare_Text_254BAE, - BattleFrontier_BattlePyramidEmptySquare_Text_254B69, - BattleFrontier_BattlePyramidEmptySquare_Text_254B25, - BattleFrontier_BattlePyramidEmptySquare_Text_254AE1, - BattleFrontier_BattlePyramidEmptySquare_Text_254A9E, - BattleFrontier_BattlePyramidEmptySquare_Text_254A59, + BattlePyramid_ZeroTrainersRemaining_Text4, + BattlePyramid_OneTrainersRemaining_Text4, + BattlePyramid_TwoTrainersRemaining_Text4, + BattlePyramid_ThreeTrainersRemaining_Text4, + BattlePyramid_FourTrainersRemaining_Text4, + BattlePyramid_FiveTrainersRemaining_Text4, + BattlePyramid_SixTrainersRemaining_Text4, + BattlePyramid_SevenTrainersRemaining_Text4, }; -static const u8 *const gUnknown_08613DD0[] = +static const u8 *const sExitDirectionHintTexts5[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_252FE5, - BattleFrontier_BattlePyramidEmptySquare_Text_253000, - BattleFrontier_BattlePyramidEmptySquare_Text_25301B, - BattleFrontier_BattlePyramidEmptySquare_Text_253036, + BattlePyramid_ExitHintUp_Text5, + BattlePyramid_ExitHintLeft_Text5, + BattlePyramid_ExitHintRight_Text5, + BattlePyramid_ExitHintDown_Text5, }; -static const u8 *const gUnknown_08613DE0[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_253F6C, - BattleFrontier_BattlePyramidEmptySquare_Text_253F34, - BattleFrontier_BattlePyramidEmptySquare_Text_253EFA, - BattleFrontier_BattlePyramidEmptySquare_Text_253EBE, - BattleFrontier_BattlePyramidEmptySquare_Text_253E83, - BattleFrontier_BattlePyramidEmptySquare_Text_253E48, - BattleFrontier_BattlePyramidEmptySquare_Text_253E0E, - BattleFrontier_BattlePyramidEmptySquare_Text_253DD2, - BattleFrontier_BattlePyramidEmptySquare_Text_253D96, +static const u8 *const sRemainingItemsHintTexts5[] = +{ + BattlePyramid_ZeroItemsRemaining_Text5, + BattlePyramid_OneItemRemaining_Text5, + BattlePyramid_TwoItemsRemaining_Text5, + BattlePyramid_ThreeItemsRemaining_Text5, + BattlePyramid_FourItemsRemaining_Text5, + BattlePyramid_FiveItemsRemaining_Text5, + BattlePyramid_SixItemsRemaining_Text5, + BattlePyramid_SevenItemsRemaining_Text5, + BattlePyramid_EightItemsRemaining_Text5, }; -static const u8 *const gUnknown_08613E04[] = +static const u8 *const sRemainingTrainersHintTexts5[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_254E6E, - BattleFrontier_BattlePyramidEmptySquare_Text_254E27, - BattleFrontier_BattlePyramidEmptySquare_Text_254DE0, - BattleFrontier_BattlePyramidEmptySquare_Text_254D97, - BattleFrontier_BattlePyramidEmptySquare_Text_254D4F, - BattleFrontier_BattlePyramidEmptySquare_Text_254D07, - BattleFrontier_BattlePyramidEmptySquare_Text_254CC0, - BattleFrontier_BattlePyramidEmptySquare_Text_254C77, + BattlePyramid_ZeroTrainersRemaining_Text5, + BattlePyramid_OneTrainersRemaining_Text5, + BattlePyramid_TwoTrainersRemaining_Text5, + BattlePyramid_ThreeTrainersRemaining_Text5, + BattlePyramid_FourTrainersRemaining_Text5, + BattlePyramid_FiveTrainersRemaining_Text5, + BattlePyramid_SixTrainersRemaining_Text5, + BattlePyramid_SevenTrainersRemaining_Text5, }; -static const u8 *const gUnknown_08613E24[] = +static const u8 *const sExitDirectionHintTexts6[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_253051, - BattleFrontier_BattlePyramidEmptySquare_Text_25307C, - BattleFrontier_BattlePyramidEmptySquare_Text_2530A7, - BattleFrontier_BattlePyramidEmptySquare_Text_2530D2, + BattlePyramid_ExitHintUp_Text6, + BattlePyramid_ExitHintLeft_Text6, + BattlePyramid_ExitHintRight_Text6, + BattlePyramid_ExitHintDown_Text6, }; -static const u8 *const gUnknown_08613E34[] = -{ - BattleFrontier_BattlePyramidEmptySquare_Text_25422B, - BattleFrontier_BattlePyramidEmptySquare_Text_2541DD, - BattleFrontier_BattlePyramidEmptySquare_Text_25418D, - BattleFrontier_BattlePyramidEmptySquare_Text_25413B, - BattleFrontier_BattlePyramidEmptySquare_Text_2540EA, - BattleFrontier_BattlePyramidEmptySquare_Text_254099, - BattleFrontier_BattlePyramidEmptySquare_Text_254049, - BattleFrontier_BattlePyramidEmptySquare_Text_253FF7, - BattleFrontier_BattlePyramidEmptySquare_Text_253FA5, +static const u8 *const sRemainingItemsHintTexts6[] = +{ + BattlePyramid_ZeroItemsRemaining_Text6, + BattlePyramid_OneItemRemaining_Text6, + BattlePyramid_TwoItemsRemaining_Text6, + BattlePyramid_ThreeItemsRemaining_Text6, + BattlePyramid_FourItemsRemaining_Text6, + BattlePyramid_FiveItemsRemaining_Text6, + BattlePyramid_SixItemsRemaining_Text6, + BattlePyramid_SevenItemsRemaining_Text6, + BattlePyramid_EightItemsRemaining_Text6, }; -static const u8 *const gUnknown_08613E58[] = +static const u8 *const sRemainingTrainersHintTexts6[] = { - BattleFrontier_BattlePyramidEmptySquare_Text_255068, - BattleFrontier_BattlePyramidEmptySquare_Text_25502F, - BattleFrontier_BattlePyramidEmptySquare_Text_254FF6, - BattleFrontier_BattlePyramidEmptySquare_Text_254FBB, - BattleFrontier_BattlePyramidEmptySquare_Text_254F81, - BattleFrontier_BattlePyramidEmptySquare_Text_254F47, - BattleFrontier_BattlePyramidEmptySquare_Text_254F0E, - BattleFrontier_BattlePyramidEmptySquare_Text_254ED3, + BattlePyramid_ZeroTrainersRemaining_Text6, + BattlePyramid_OneTrainersRemaining_Text6, + BattlePyramid_TwoTrainersRemaining_Text6, + BattlePyramid_ThreeTrainersRemaining_Text6, + BattlePyramid_FourTrainersRemaining_Text6, + BattlePyramid_FiveTrainersRemaining_Text6, + BattlePyramid_SixTrainersRemaining_Text6, + BattlePyramid_SevenTrainersRemaining_Text6, }; -static const u8 *const *const gUnknown_08613E78[] = +static const u8 *const *const sPostBattleHintTexts1[] = { - gUnknown_08613C80, - gUnknown_08613C90, - gUnknown_08613CB4, + sExitDirectionHintTexts1, + sRemainingItemsHintTexts1, + sRemainingTrainersHintTexts1, }; -static const u8 *const *const gUnknown_08613E84[] = +static const u8 *const *const sPostBattleHintTexts2[] = { - gUnknown_08613CD4, - gUnknown_08613CE4, - gUnknown_08613D08, + sExitDirectionHintTexts2, + sRemainingItemsHintTexts2, + sRemainingTrainersHintTexts2, }; -static const u8 *const *const gUnknown_08613E90[] = +static const u8 *const *const sPostBattleHintTexts3[] = { - gUnknown_08613D28, - gUnknown_08613D38, - gUnknown_08613D5C, + sExitDirectionHintTexts3, + sRemainingItemsHintTexts3, + sRemainingTrainersHintTexts3, }; -static const u8 *const *const gUnknown_08613E9C[] = +static const u8 *const *const sPostBattleHintTexts4[] = { - gUnknown_08613D7C, - gUnknown_08613D8C, - gUnknown_08613DB0, + sExitDirectionHintTexts4, + sRemainingItemsHintTexts4, + sRemainingTrainersHintTexts4, }; -static const u8 *const *const gUnknown_08613EA8[] = +static const u8 *const *const sPostBattleHintTexts5[] = { - gUnknown_08613DD0, - gUnknown_08613DE0, - gUnknown_08613E04, + sExitDirectionHintTexts5, + sRemainingItemsHintTexts5, + sRemainingTrainersHintTexts5, }; -static const u8 *const *const gUnknown_08613EB4[] = +static const u8 *const *const sPostBattleHintTexts6[] = { - gUnknown_08613E24, - gUnknown_08613E34, - gUnknown_08613E58, + sExitDirectionHintTexts6, + sRemainingItemsHintTexts6, + sRemainingTrainersHintTexts6, }; -static const u8 *const *const *const gUnknown_08613EC0[] = +static const u8 *const *const *const sPostBattleTexts[] = { - gUnknown_08613E78, - gUnknown_08613E84, - gUnknown_08613E90, - gUnknown_08613E9C, - gUnknown_08613EA8, - gUnknown_08613EB4, + sPostBattleHintTexts1, + sPostBattleHintTexts2, + sPostBattleHintTexts3, + sPostBattleHintTexts4, + sPostBattleHintTexts5, + sPostBattleHintTexts6, }; -static const u8 gUnknown_08613ED8[] = {3, 4, 5, 6, 7, 8, 3, 4}; +static const u8 sHintTextTypes[] = +{ + HINT_EXIT_SHORT_REMAINING_TRAINERS, + HINT_EXIT_SHORT_REMAINING_ITEMS, + HINT_EXIT_MEDIUM_REMAINING_TRAINERS, + HINT_EXIT_MEDIUM_REMAINING_ITEMS, + HINT_EXIT_FAR_REMAINING_TRAINERS, + HINT_EXIT_FAR_REMAINING_ITEMS, + HINT_EXIT_SHORT_REMAINING_TRAINERS, + HINT_EXIT_SHORT_REMAINING_ITEMS, +}; static void (* const sBattlePyramidFunctions[])(void) = { - sub_81A8E9C, - sub_81A8F38, - sub_81A9048, + InitPyramidBag, + GetBattlePyramidData, + SetBattlePyramidData, sub_81A9134, - sub_81A917C, - sub_81A91FC, - sub_81A9254, - sub_81A9290, - sub_81A93C8, - sub_81A9414, - sub_81A9424, - sub_81A9618, - sub_81A966C, - sub_81A9684, - sub_81A975C, - sub_81A97C8, + SetBattlePyramidRewardItem, + GiveBattlePyramidRewardItem, + SeedPyramidFloor, + SetPickupItem, + HidePyramidItem, + InitPyramidFacilityTrainers, + ShowPostBattleHintText, + UpdatePyramidWinStreak, + GetInBattlePyramid, + UpdatePyramidLightRadius, + ClearPyramidPartyHeldItems, + SetPyramidFloorPalette, sub_81A9828, - sub_81A9834, + RestorePlayerPartyAfterPyramid, }; -static const u16 gUnknown_08613F28[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; -static const u16 gUnknown_08613F34[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND}; - -static const u8 gUnknown_08613F46[][4] = -{ - {0x01, 0x04, 0xff, 0xff}, - {0x00, 0x02, 0x05, 0xff}, - {0x01, 0x03, 0x06, 0xff}, - {0x02, 0x07, 0xff, 0xff}, - {0x00, 0x05, 0x08, 0xff}, - {0x01, 0x04, 0x06, 0x09}, - {0x02, 0x05, 0x07, 0x0a}, - {0x03, 0x06, 0x0b, 0xff}, - {0x04, 0x09, 0x0c, 0xff}, - {0x05, 0x08, 0x0a, 0x0d}, - {0x06, 0x09, 0x0b, 0x0e}, - {0x07, 0x0a, 0x0f, 0xff}, - {0x08, 0x0d, 0xff, 0xff}, - {0x09, 0x0c, 0x0e, 0xff}, - {0x0a, 0x0d, 0x0f, 0xff}, - {0x0b, 0x0e, 0xff, 0xff}, +static const u16 sShortStreakRewardItems[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; +static const u16 sLongStreakRewardItems[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND}; + +static const u8 sBorderedSquareIds[][4] = +{ + {1, 4, -1, -1}, + {0, 2, 5, -1}, + {1, 3, 6, -1}, + {2, 7, -1, -1}, + {0, 5, 8, -1}, + {1, 4, 6, 9}, + {2, 5, 7, 10}, + {3, 6, 11, -1}, + {4, 9, 12, -1}, + {5, 8, 10, 13}, + {6, 9, 11, 14}, + {7, 10, 15, -1}, + {8, 13, -1, -1}, + {9, 12, 14, -1}, + {10, 13, 15, -1}, + {11, 14, -1, -1}, }; static const u8 sPickupPercentages[PICKUP_ITEMS_PER_ROUND] = {30, 40, 50, 60, 70, 80, 85, 90, 95, 100}; @@ -810,7 +850,7 @@ void CallBattlePyramidFunction(void) sBattlePyramidFunctions[gSpecialVar_0x8004](); } -static void sub_81A8E9C(void) +static void InitPyramidBag(void) { bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -826,22 +866,22 @@ static void sub_81A8E9C(void) if (!isCurrent) { gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] = 0; - InitBagItems(lvlMode); + InitPyramidBagItems(lvlMode); } - sub_81C4EEC(); + InitBattlePyramidBagCursorPosition(); gTrainerBattleOpponent_A = 0; gBattleOutcome = 0; } -static void sub_81A8F38(void) +static void GetBattlePyramidData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; switch (gSpecialVar_0x8005) { case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E18; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidRewardItem; break; case 1: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; @@ -867,14 +907,14 @@ static void sub_81A8F38(void) } } -static void sub_81A9048(void) +static void SetBattlePyramidData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; switch (gSpecialVar_0x8005) { case 0: - gSaveBlock2Ptr->frontier.field_E18 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.pyramidRewardItem = gSpecialVar_0x8006; break; case 1: gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] = gSpecialVar_0x8006; @@ -896,7 +936,7 @@ static void sub_81A9048(void) } break; case 7: - gSaveBlock2Ptr->frontier.field_E2A = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.pyramidTrainerFlags = gSpecialVar_0x8006; break; } } @@ -910,22 +950,22 @@ static void sub_81A9134(void) TrySavingData(SAVE_LINK); } -static void sub_81A917C(void) +static void SetBattlePyramidRewardItem(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 41) - gSaveBlock2Ptr->frontier.field_E18 = gUnknown_08613F34[Random() % ARRAY_COUNT(gUnknown_08613F34)]; + gSaveBlock2Ptr->frontier.pyramidRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)]; else - gSaveBlock2Ptr->frontier.field_E18 = gUnknown_08613F28[Random() % ARRAY_COUNT(gUnknown_08613F28)]; + gSaveBlock2Ptr->frontier.pyramidRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)]; } -static void sub_81A91FC(void) +static void GiveBattlePyramidRewardItem(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_E18, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.pyramidRewardItem, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_E18, gStringVar1); - gSaveBlock2Ptr->frontier.field_E18 = 0; + CopyItemName(gSaveBlock2Ptr->frontier.pyramidRewardItem, gStringVar1); + gSaveBlock2Ptr->frontier.pyramidRewardItem = 0; gSpecialVar_Result = TRUE; } else @@ -934,21 +974,21 @@ static void sub_81A91FC(void) } } -static void sub_81A9254(void) +static void SeedPyramidFloor(void) { - s32 i; + int i; for (i = 0; i < 4; i++) - gSaveBlock2Ptr->frontier.field_E22[i] = Random(); + gSaveBlock2Ptr->frontier.pyramidRandoms[i] = Random(); - gSaveBlock2Ptr->frontier.field_E2A = 0; + gSaveBlock2Ptr->frontier.pyramidTrainerFlags = 0; } -static void sub_81A9290(void) +static void SetPickupItem(void) { - s32 i; - s32 r7; - s32 rand; + int i; + int itemIndex; + int rand; u8 id; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 floor = gSaveBlock2Ptr->frontier.curChallengeBattleNum; @@ -957,37 +997,39 @@ static void sub_81A9290(void) if (round >= TOTAL_ROUNDS) round = TOTAL_ROUNDS - 1; - id = sub_81AA9E4(); - r7 = (gSpecialVar_LastTalked - gUnknown_08613650[id].unk1) - 1; - rand = gSaveBlock2Ptr->frontier.field_E22[r7 / 2]; + id = GetPyramidFloorTemplateId(); + itemIndex = (gSpecialVar_LastTalked - sPyramidFloorTemplates[id].numTrainers) - 1; + rand = gSaveBlock2Ptr->frontier.pyramidRandoms[itemIndex / 2]; SeedRng2(rand); - for (i = 0; i < r7 + 1; i++) + for (i = 0; i < itemIndex + 1; i++) rand = Random2() % 100; - for (i = gUnknown_08613B3A[floor]; i < ARRAY_COUNT(gUnknown_08613ABC); i++) + for (i = sPickupItemOffsets[floor]; i < ARRAY_COUNT(sPickupItemSlots); i++) { - if (rand < gUnknown_08613ABC[i][0]) + if (rand < sPickupItemSlots[i][0]) break; } if (lvlMode != FRONTIER_LVL_50) - gSpecialVar_0x8000 = sPickupItemsLvlOpen[round][gUnknown_08613ABC[i][1]]; + gSpecialVar_0x8000 = sPickupItemsLvlOpen[round][sPickupItemSlots[i][1]]; else - gSpecialVar_0x8000 = sPickupItemsLvl50[round][gUnknown_08613ABC[i][1]]; + gSpecialVar_0x8000 = sPickupItemsLvl50[round][sPickupItemSlots[i][1]]; gSpecialVar_0x8001 = 1; } -static void sub_81A93C8(void) +static void HidePyramidItem(void) { struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; - s32 i = 0; + int i = 0; for (;;) { if (events[i].localId == gSpecialVar_LastTalked) { + // Rather than using event flags to hide the item event object, + // it moves them far off the map bounds. events[i].x = 0x7FFF; events[i].y = 0x7FFF; break; @@ -998,82 +1040,82 @@ static void sub_81A93C8(void) } } -static void sub_81A9414(void) +static void InitPyramidFacilityTrainers(void) { gFacilityTrainers = gBattleFrontierTrainers; } -static void sub_81A9424(void) +static void ShowPostBattleHintText(void) { - s32 i; - s32 var_24; + int i; + int hintType; u8 id; - s32 class = 0; - s32 r7 = 0; + int textGroup = 0; + int textIndex = 0; struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; u16 trainerId = LocalIdToPyramidTrainerId(gEventObjects[gSelectedEventObject].localId); - for (i = 0; i < ARRAY_COUNT(gUnknown_08613C1C); i++) + for (i = 0; i < ARRAY_COUNT(sTrainerTextGroups); i++) { - if (gUnknown_08613C1C[i][0] == gFacilityTrainers[trainerId].facilityClass) + if (sTrainerTextGroups[i][0] == gFacilityTrainers[trainerId].facilityClass) { - class = gUnknown_08613C1C[i][1]; + textGroup = sTrainerTextGroups[i][1]; break; } } - var_24 = gUnknown_08613ED8[gEventObjects[gSelectedEventObject].localId - 1]; + hintType = sHintTextTypes[gEventObjects[gSelectedEventObject].localId - 1]; i = 0; while (!i) { - switch (var_24) + switch (hintType) { - case 0: - r7 = sub_81A9998(&var_24, 8, 0); + case HINT_EXIT_DIRECTION: + textIndex = GetPostBattleDirectionHintTextIndex(&hintType, 8, HINT_EXIT_DIRECTION); i = 1; break; - case 1: - for (i = 0; i < sub_81AAA40(); i++) + case HINT_REMAINING_ITEMS: + for (i = 0; i < GetNumBattlePyramidEventObjects(); i++) { if (events[i].graphicsId == EVENT_OBJ_GFX_ITEM_BALL && events[i].x != 0x7FFF && events[i].y != 0x7FFF) - r7++; + textIndex++; } i = 1; break; - case 2: - id = sub_81AA9E4(); - r7 = gUnknown_08613650[id].unk1; + case HINT_REMAINING_TRAINERS: + id = GetPyramidFloorTemplateId(); + textIndex = sPyramidFloorTemplates[id].numTrainers; for (i = 0; i < 8; i++) { - if (gBitTable[i] & gSaveBlock2Ptr->frontier.field_E2A) - r7--; + if (gBitTable[i] & gSaveBlock2Ptr->frontier.pyramidTrainerFlags) + textIndex--; } i = 1; break; - case 3: - sub_81A9998(&var_24, 8, 2); + case HINT_EXIT_SHORT_REMAINING_TRAINERS: + GetPostBattleDirectionHintTextIndex(&hintType, 8, HINT_REMAINING_TRAINERS); break; - case 4: - sub_81A9998(&var_24, 8, 1); + case HINT_EXIT_SHORT_REMAINING_ITEMS: + GetPostBattleDirectionHintTextIndex(&hintType, 8, HINT_REMAINING_ITEMS); break; - case 5: - sub_81A9998(&var_24, 16, 2); + case HINT_EXIT_MEDIUM_REMAINING_TRAINERS: + GetPostBattleDirectionHintTextIndex(&hintType, 16, HINT_REMAINING_TRAINERS); break; - case 6: - sub_81A9998(&var_24, 16, 1); + case HINT_EXIT_MEDIUM_REMAINING_ITEMS: + GetPostBattleDirectionHintTextIndex(&hintType, 16, HINT_REMAINING_ITEMS); break; - case 7: - sub_81A9998(&var_24, 24, 2); + case HINT_EXIT_FAR_REMAINING_TRAINERS: + GetPostBattleDirectionHintTextIndex(&hintType, 24, HINT_REMAINING_TRAINERS); break; - case 8: - sub_81A9998(&var_24, 24, 1); + case HINT_EXIT_FAR_REMAINING_ITEMS: + GetPostBattleDirectionHintTextIndex(&hintType, 24, HINT_REMAINING_ITEMS); break; } } - ShowFieldMessage(gUnknown_08613EC0[class][var_24][r7]); + ShowFieldMessage(sPostBattleTexts[textGroup][hintType][textIndex]); } -static void sub_81A9618(void) +static void UpdatePyramidWinStreak(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -1083,17 +1125,17 @@ static void sub_81A9618(void) gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; } -static void sub_81A966C(void) +static void GetInBattlePyramid(void) { gSpecialVar_Result = InBattlePyramid(); } -static void sub_81A9684(void) +static void UpdatePyramidLightRadius(void) { switch (gSpecialVar_0x8006) { case 0: - gSaveBlock2Ptr->frontier.field_E68 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.pyramidLightRadius = gSpecialVar_0x8005; break; case 1: switch (gSpecialVar_Result) @@ -1101,8 +1143,8 @@ static void sub_81A9684(void) case 0: if (!gPaletteFade.active) { - if (gSaveBlock2Ptr->frontier.field_E68 >= 120) - gSaveBlock2Ptr->frontier.field_E68 = 120; + if (gSaveBlock2Ptr->frontier.pyramidLightRadius >= 120) + gSaveBlock2Ptr->frontier.pyramidLightRadius = 120; else PlaySE(gSpecialVar_0x8007); gSpecialVar_Result++; @@ -1112,13 +1154,13 @@ static void sub_81A9684(void) if (gSpecialVar_0x8005 != 0) { gSpecialVar_0x8005--; - gSaveBlock2Ptr->frontier.field_E68++; - if (gSaveBlock2Ptr->frontier.field_E68 > 120) + gSaveBlock2Ptr->frontier.pyramidLightRadius++; + if (gSaveBlock2Ptr->frontier.pyramidLightRadius > 120) { - gSaveBlock2Ptr->frontier.field_E68 = 120; + gSaveBlock2Ptr->frontier.pyramidLightRadius = 120; gSpecialVar_Result++; } - door_upload_tiles(); + WriteBattlePyramidViewScanlineEffectBuffer(); } else { @@ -1133,9 +1175,9 @@ static void sub_81A9684(void) } } -static void sub_81A975C(void) +static void ClearPyramidPartyHeldItems(void) { - s32 i, j; + int i, j; u16 item = 0; for (i = 0; i < PARTY_SIZE; i++) @@ -1148,12 +1190,12 @@ static void sub_81A975C(void) } } -static void sub_81A97C8(void) +static void SetPyramidFloorPalette(void) { - CreateTask(sub_81A97DC, 0); + CreateTask(Task_SetPyramidFloorPalette, 0); } -static void sub_81A97DC(u8 taskId) +static void Task_SetPyramidFloorPalette(u8 taskId) { if (gPaletteFade.active) { @@ -1167,29 +1209,29 @@ static void sub_81A9828(void) sub_809FDD4(); } -static void sub_81A9834(void) +static void RestorePlayerPartyAfterPyramid(void) { - s32 i, j, k, l; + int i, j, k, l; for (i = 0; i < 3; i++) { - s32 id = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; + int partyIndex = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; for (j = 0; j < 3; j++) { - if (GetMonData(&gSaveBlock1Ptr->playerParty[id], MON_DATA_SPECIES, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL)) + if (GetMonData(&gSaveBlock1Ptr->playerParty[partyIndex], MON_DATA_SPECIES, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL)) { for (k = 0; k < MAX_MON_MOVES; k++) { for (l = 0; l < MAX_MON_MOVES; l++) { - if (GetMonData(&gSaveBlock1Ptr->playerParty[id], MON_DATA_MOVE1 + l, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_MOVE1 + k, NULL)) + if (GetMonData(&gSaveBlock1Ptr->playerParty[partyIndex], MON_DATA_MOVE1 + l, NULL) == GetMonData(&gPlayerParty[j], MON_DATA_MOVE1 + k, NULL)) break; } if (l == MAX_MON_MOVES) SetMonMoveSlot(&gPlayerParty[j], MOVE_SKETCH, k); } - gSaveBlock1Ptr->playerParty[id] = gPlayerParty[j]; - gSelectedOrderFromParty[j] = id + 1; + gSaveBlock1Ptr->playerParty[partyIndex] = gPlayerParty[j]; + gSelectedOrderFromParty[j] = partyIndex + 1; break; } } @@ -1199,74 +1241,78 @@ static void sub_81A9834(void) gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i]; } -static u8 sub_81A9998(s32 *arg0, u8 arg1, u8 arg2) +static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForExitHint, u8 defaultHintType) { - s32 i, j; - u8 ret = 0; + int x, y; + u8 textIndex = 0; u16 *map = gBackupMapLayout.map; map += gBackupMapLayout.width * 7 + 7; - for (i = 0; i < 32; map += 47, i++) + for (y = 0; y < 32; map += 47, y++) { - for (j = 0; j < 32; j++) + for (x = 0; x < 32; x++) { - if ((map[j] & 0x3FF) == 0x28E) + if ((map[x] & 0x3FF) == FLOOR_EXIT_METATILE) { - j += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; - i += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; - if (j >= arg1 || j <= -arg1 || i >= arg1 || i <= -arg1 || arg2 == 0) + x += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; + y += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; + if (x >= minDistanceForExitHint + || x <= -minDistanceForExitHint + || y >= minDistanceForExitHint + || y <= -minDistanceForExitHint + || defaultHintType == HINT_EXIT_DIRECTION) { - if (j > 0 && i > 0) + if (x > 0 && y > 0) { - if (j >= i) - ret = 2; + if (x >= y) + textIndex = 2; else - ret = 3; + textIndex = 3; } - else if (j < 0 && i < 0) + else if (x < 0 && y < 0) { - if (j > i) - ret = 0; + if (x > y) + textIndex = 0; else - ret = 1; + textIndex = 1; } - else if (j == 0) + else if (x == 0) { - if (i > 0) - ret = 3; + if (y > 0) + textIndex = 3; else - ret = 0; + textIndex = 0; } - else if (i == 0) + else if (y == 0) { - if (j > 0) - ret = 2; + if (x > 0) + textIndex = 2; else - ret = 1; + textIndex = 1; } - else if (j < 0) + else if (x < 0) { - if (j + i > 0) - ret = 3; + if (x + y > 0) + textIndex = 3; else - ret = 1; + textIndex = 1; } else { - ret = (~(j + i) >= 0) ? 0 : 2; + textIndex = (~(x + y) >= 0) ? 0 : 2; } - *arg0 = 0; + *hintType = HINT_EXIT_DIRECTION; } else { - *arg0 = arg2; + *hintType = defaultHintType; } - return ret; + return textIndex; } } } - return ret; + return textIndex; } u16 LocalIdToPyramidTrainerId(u8 localId) @@ -1276,7 +1322,7 @@ u16 LocalIdToPyramidTrainerId(u8 localId) bool8 GetBattlePyramidTrainerFlag(u8 eventId) { - return gSaveBlock2Ptr->frontier.field_E2A & gBitTable[gEventObjects[eventId].localId - 1]; + return gSaveBlock2Ptr->frontier.pyramidTrainerFlags & gBitTable[gEventObjects[eventId].localId - 1]; } void sub_81A9B04(void) @@ -1296,7 +1342,7 @@ static void sub_81A9B44(u16 trainerId) for (i = 0; i < 8; i++) { if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) - gSaveBlock2Ptr->frontier.field_E2A |= gBitTable[i]; + gSaveBlock2Ptr->frontier.pyramidTrainerFlags |= gBitTable[i]; } gEventObjects[gSelectedEventObject].movementType = MOVEMENT_TYPE_WANDER_AROUND; @@ -1375,8 +1421,8 @@ void GenerateBattlePyramidWildMon(void) u8 GetPyramidRunMultiplier(void) { - u8 id = sub_81AA9E4(); - return gUnknown_08613650[id].runMultiplier; + u8 id = GetPyramidFloorTemplateId(); + return sPyramidFloorTemplates[id].runMultiplier; } u8 InBattlePyramid(void) @@ -1399,7 +1445,7 @@ void sub_81A9E90(void) { if (InBattlePyramid()) { - sub_81A9834(); + RestorePlayerPartyAfterPyramid(); gSaveBlock2Ptr->frontier.field_CA8 = 2; VarSet(VAR_TEMP_E, 0); LoadPlayerParty(); @@ -1429,14 +1475,14 @@ void CopyPyramidTrainerLoseSpeech(u16 trainerId) u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerId) { - s32 i; + int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_08613B44); i++) + for (i = 0; i < ARRAY_COUNT(sTrainerClassEncounterMusic); i++) { - if (gUnknown_08613B44[i].class == gFacilityClassToTrainerClass[gFacilityTrainers[trainerId].facilityClass]) - return gUnknown_08613B44[i].music; + if (sTrainerClassEncounterMusic[i].trainerClass == gFacilityClassToTrainerClass[gFacilityTrainers[trainerId].facilityClass]) + return sTrainerClassEncounterMusic[i].trainerEncounterMusic; } - return 0; + return TRAINER_ENCOUNTER_MUSIC_MALE; } static void sub_81A9F80(void) @@ -1446,7 +1492,7 @@ static void sub_81A9F80(void) static u16 sub_81A9F90(u8 count) { - s32 i; + int i; u16 trainerId; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 challengeNum = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7; @@ -1479,49 +1525,49 @@ static u16 sub_81A9F90(u8 count) return trainerId; } -void sub_81AA078(u16 *mapArg, u8 arg1) +void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPosition) { - s32 j, k; - s32 i; - u8 var0, var1; - u8 *allocated = AllocZeroed(0x10); + int y, x; + int i; + u8 entranceSquareId, exitSquareId; + u8 *floorLayoutOffsets = AllocZeroed(16); - sub_81AA96C(allocated); - sub_81AA33C(&var0, &var1); + SetPyramidFloorLayoutOffsets(floorLayoutOffsets); + SetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); for (i = 0; i < 16; i++) { u16 *map; - s32 heightAdd, widthAdd; - const struct MapLayout *mapLayout = gMapLayouts[allocated[i] + 0x169]; + int yOffset, xOffset; + const struct MapLayout *mapLayout = gMapLayouts[floorLayoutOffsets[i] + LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE]; const u16 *layoutMap = mapLayout->map; - gBackupMapLayout.map = mapArg; + gBackupMapLayout.map = backupMapData; gBackupMapLayout.width = mapLayout->width * 4 + 15; gBackupMapLayout.height = mapLayout->height * 4 + 14; - map = mapArg; - heightAdd = (((i / 4 * mapLayout->height) + 7) * (gBackupMapLayout.width)); - widthAdd = ((i % 4 * mapLayout->width) + 7); - map += heightAdd + widthAdd; - for (j = 0; j < mapLayout->height; j++) + map = backupMapData; + yOffset = ((i / 4 * mapLayout->height) + 7) * gBackupMapLayout.width; + xOffset = (i % 4 * mapLayout->width) + 7; + map += yOffset + xOffset; + for (y = 0; y < mapLayout->height; y++) { - for (k = 0; k < mapLayout->width; k++) + for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[k] & 0x3FF) != 0x28E) + if ((layoutMap[x] & 0x3FF) != FLOOR_EXIT_METATILE) { - map[k] = layoutMap[k]; + map[x] = layoutMap[x]; } - else if (i != var1) + else if (i != exitSquareId) { - if (i == var0 && arg1 == 0) + if (i == entranceSquareId && setPlayerPosition == FALSE) { - gSaveBlock1Ptr->pos.x = (mapLayout->width * (i % 4)) + k; - gSaveBlock1Ptr->pos.y = (mapLayout->height * (i / 4)) + j; + gSaveBlock1Ptr->pos.x = (mapLayout->width * (i % 4)) + x; + gSaveBlock1Ptr->pos.y = (mapLayout->height * (i / 4)) + y; } - map[k] = (layoutMap[k] & 0xFC00) | 0x28D; + map[x] = (layoutMap[x] & 0xFC00) | FLOOR_WALKABLE_METATILE; } else { - map[k] = layoutMap[k]; + map[x] = layoutMap[x]; } } map += 15 + (mapLayout->width * 4); @@ -1529,29 +1575,29 @@ void sub_81AA078(u16 *mapArg, u8 arg1) } } mapheader_run_script_with_tag_x1(); - free(allocated); + free(floorLayoutOffsets); } void sub_81AA1D8(void) { - s32 i; + int i; u8 id; - u8 var0, var1; + u8 entranceSquareId, exitSquareId; for (i = 0; i < 8; i++) gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF; - id = sub_81AA9E4(); - sub_81AA33C(&var0, &var1); + id = GetPyramidFloorTemplateId(); + SetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); CpuFill32(0, gSaveBlock1Ptr->eventObjectTemplates, sizeof(gSaveBlock1Ptr->eventObjectTemplates)); for (i = 0; i < 2; i++) { u8 value; if (i == 0) - value = gUnknown_08613650[id].unk3; + value = sPyramidFloorTemplates[id].unk3; else - value = gUnknown_08613650[id].unk2; + value = sPyramidFloorTemplates[id].unk2; switch (value) { @@ -1559,19 +1605,19 @@ void sub_81AA1D8(void) sub_81AA398(i); break; case 1: - if (sub_81AA4D8(i, var0)) + if (sub_81AA4D8(i, entranceSquareId)) sub_81AA398(i); break; case 2: - if (sub_81AA4D8(i, var1)) + if (sub_81AA4D8(i, exitSquareId)) sub_81AA398(i); break; case 3: - if (sub_81AA648(i, var0)) + if (sub_81AA648(i, entranceSquareId)) sub_81AA398(i); break; case 4: - if (sub_81AA648(i, var1)) + if (sub_81AA648(i, exitSquareId)) sub_81AA398(i); break; } @@ -1592,39 +1638,39 @@ void sub_81AA2F8(void) } } -static void sub_81AA33C(u8 *var0, u8 *var1) +static void SetPyramidEntranceAndExitSquareIds(u8 *entranceSquareId, u8 *exitSquareId) { - *var0 = gSaveBlock2Ptr->frontier.field_E22[3] % 16; - *var1 = gSaveBlock2Ptr->frontier.field_E22[0] % 16; + *entranceSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[3] % 16; + *exitSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[0] % 16; - if (*var0 == *var1) + if (*entranceSquareId == *exitSquareId) { - *var0 = (gSaveBlock2Ptr->frontier.field_E22[3] + 1 ) % 16; - *var1 = (gSaveBlock2Ptr->frontier.field_E22[0] + 15) % 16; + *entranceSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[3] + 1 ) % 16; + *exitSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[0] + 15) % 16; } } static void sub_81AA398(u8 arg0) { - s32 i; - s32 count; - s32 var_28; - s32 r4; + int i; + int count; + int var_28; + int squareId; u32 bits = 0; - u8 id = sub_81AA9E4(); - u8 *allocated = AllocZeroed(0x10); + u8 id = GetPyramidFloorTemplateId(); + u8 *floorLayoutOffsets = AllocZeroed(16); - sub_81AA96C(allocated); - r4 = gSaveBlock2Ptr->frontier.field_E22[2] % 16; + SetPyramidFloorLayoutOffsets(floorLayoutOffsets); + squareId = gSaveBlock2Ptr->frontier.pyramidRandoms[2] % 16; if (arg0 == 0) { - count = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numTrainers; var_28 = 0; } else { - count = gUnknown_08613650[id].unk0; - var_28 = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numItems; + var_28 = sPyramidFloorTemplates[id].numTrainers; } for (i = 0; i < count; i++) @@ -1635,18 +1681,18 @@ static void sub_81AA398(u8 arg0) { if (bits & 1) { - if (!(gBitTable[r4] & gSaveBlock2Ptr->frontier.field_E22[3])) + if (!(gBitTable[squareId] & gSaveBlock2Ptr->frontier.pyramidRandoms[3])) bits |= 2; } else { - if (gBitTable[r4] & gSaveBlock2Ptr->frontier.field_E22[3]) + if (gBitTable[squareId] & gSaveBlock2Ptr->frontier.pyramidRandoms[3]) bits |= 2; } - if (++r4 >= 16) - r4 = 0; + if (++squareId >= 16) + squareId = 0; - if (r4 == gSaveBlock2Ptr->frontier.field_E22[2] % 16) + if (squareId == gSaveBlock2Ptr->frontier.pyramidRandoms[2] % 16) { if (bits & 1) bits |= 6; @@ -1655,62 +1701,62 @@ static void sub_81AA398(u8 arg0) } } while (!(bits & 2)); - } while (!(bits & 4) && sub_81AA760(arg0, allocated, r4, var_28 + i)); + } while (!(bits & 4) && sub_81AA760(arg0, floorLayoutOffsets, squareId, var_28 + i)); bits &= 1; } - free(allocated); + free(floorLayoutOffsets); } -static bool8 sub_81AA4D8(u8 arg0, u8 arg1) +static bool8 sub_81AA4D8(u8 arg0, u8 squareId) { - s32 i; - s32 var_28; - s32 r6 = 0; - s32 r7 = 0; - s32 var_34 = 0; - s32 count; - u8 id = sub_81AA9E4(); - u8 *allocated = AllocZeroed(0x10); - - sub_81AA96C(allocated); + int i; + int var_28; + int borderedIndex = 0; + int r7 = 0; + int var_34 = 0; + int count; + u8 id = GetPyramidFloorTemplateId(); + u8 *floorLayoutOffsets = AllocZeroed(16); + + SetPyramidFloorLayoutOffsets(floorLayoutOffsets); if (arg0 == 0) { - count = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numTrainers; var_28 = 0; } else { - count = gUnknown_08613650[id].unk0; - var_28 = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numItems; + var_28 = sPyramidFloorTemplates[id].numTrainers; } for (i = 0; i < count; i++) { if (r7 == 0) { - if (sub_81AA760(arg0, allocated, arg1, var_28 + i)) + if (sub_81AA760(arg0, floorLayoutOffsets, squareId, var_28 + i)) r7 = 1; else var_34++; } if (r7 & 1) { - if (sub_81AA760(arg0, allocated, gUnknown_08613F46[arg1][r6], var_28 + i)) + if (sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], var_28 + i)) { do { - r6++; - if (gUnknown_08613F46[arg1][r6] == 0xFF || r6 >= 4) - r6 = 0; + borderedIndex++; + if (sBorderedSquareIds[squareId][borderedIndex] == 0xFF || borderedIndex >= 4) + borderedIndex = 0; r7 += 2; - } while (r7 >> 1 != 4 && sub_81AA760(arg0, allocated, gUnknown_08613F46[arg1][r6], var_28 + i)); + } while (r7 >> 1 != 4 && sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], var_28 + i)); var_34++; } else { - r6++; - if (gUnknown_08613F46[arg1][r6] == 0xFF || r6 >= 4) - r6 = 0; + borderedIndex++; + if (sBorderedSquareIds[squareId][borderedIndex] == 0xFF || borderedIndex >= 4) + borderedIndex = 0; var_34++; } } @@ -1720,51 +1766,51 @@ static bool8 sub_81AA4D8(u8 arg0, u8 arg1) r7 &= 1; } - // free(allocated); BUG: allocated memory not freed + // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed return (count / 2 > var_34); } -static bool8 sub_81AA648(u8 arg0, u8 arg1) +static bool8 sub_81AA648(u8 arg0, u8 squareId) { - s32 i; - s32 var_28; - s32 r4 = 0; - s32 r7 = 0; - s32 r8 = 0; - s32 count; - u8 id = sub_81AA9E4(); - u8 *allocated = AllocZeroed(0x10); - - sub_81AA96C(allocated); + int i; + int var_28; + int r4 = 0; + int r7 = 0; + int r8 = 0; + int count; + u8 id = GetPyramidFloorTemplateId(); + u8 *floorLayoutOffsets = AllocZeroed(16); + + SetPyramidFloorLayoutOffsets(floorLayoutOffsets); if (arg0 == 0) { - count = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numTrainers; var_28 = 0; } else { - count = gUnknown_08613650[id].unk0; - var_28 = gUnknown_08613650[id].unk1; + count = sPyramidFloorTemplates[id].numItems; + var_28 = sPyramidFloorTemplates[id].numTrainers; } for (i = 0; i < count; i++) { - if (sub_81AA760(arg0, allocated, gUnknown_08613F46[arg1][r4], var_28 + i)) + if (sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][r4], var_28 + i)) { do { r4++; - if (gUnknown_08613F46[arg1][r4] == 0xFF || r4 >= 4) + if (sBorderedSquareIds[squareId][r4] == 0xFF || r4 >= 4) r4 = 0; r8++; - } while (r8 != 4 && sub_81AA760(arg0, allocated, gUnknown_08613F46[arg1][r4], var_28 + i)); + } while (r8 != 4 && sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][r4], var_28 + i)); r7++; } else { r4++; - if (gUnknown_08613F46[arg1][r4] == 0xFF || r4 >= 4) + if (sBorderedSquareIds[squareId][r4] == 0xFF || r4 >= 4) r4 = 0; r7++; } @@ -1772,23 +1818,23 @@ static bool8 sub_81AA648(u8 arg0, u8 arg1) if (r8 == 4) break; } - // free(allocated); BUG: allocated memory not freed + // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed return (count / 2 > r7); } -static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id) +static bool8 sub_81AA760(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) { - s32 i, j; + int i, j; - if (gSaveBlock2Ptr->frontier.field_E22[0] & 1) + if (gSaveBlock2Ptr->frontier.pyramidRandoms[0] & 1) { - s32 minus1 = -1; + int minus1 = -1; for (i = 7; i > minus1; i--) { for (j = 7; j >= 0; j--) { - if (!sub_81AA810(arg0, j, i, mapNums, whichMap, id)) + if (!sub_81AA810(arg0, j, i, floorLayoutOffsets, squareId, eventObjectId)) return FALSE; } } @@ -1799,7 +1845,7 @@ static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id) { for (j = 0; j < 8; j++) { - if (!sub_81AA810(arg0, j, i, mapNums, whichMap, id)) + if (!sub_81AA810(arg0, j, i, floorLayoutOffsets, squareId, eventObjectId)) return FALSE; } } @@ -1808,13 +1854,13 @@ static bool8 sub_81AA760(u8 arg0, u8 *mapNums, u8 whichMap, u8 id) return TRUE; } -static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id) +static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) { - s32 i, j; + int i, j; const struct MapHeader *mapHeader; struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; - mapHeader = Overworld_GetMapHeaderByGroupAndId(MAP_GROUP(BATTLE_PYRAMID_SQUARE01), mapNums[whichMap] + MAP_NUM(BATTLE_PYRAMID_SQUARE01)); + mapHeader = Overworld_GetMapHeaderByGroupAndId(MAP_GROUP(BATTLE_PYRAMID_SQUARE01), floorLayoutOffsets[squareId] + MAP_NUM(BATTLE_PYRAMID_SQUARE01)); for (i = 0; i < mapHeader->events->eventObjectCount; i++) { if (mapHeader->events->eventObjects[i].x != x || mapHeader->events->eventObjects[i].y != y) @@ -1826,23 +1872,23 @@ static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id) continue; } - for (j = 0; j < id; j++) + for (j = 0; j < eventObjectId; j++) { - if (events[j].x == x + ((whichMap % 4) * 8) && events[j].y == y + ((whichMap / 4) * 8)) + if (events[j].x == x + ((squareId % 4) * 8) && events[j].y == y + ((squareId / 4) * 8)) break; } - if (j != id) + if (j != eventObjectId) continue; - events[id] = mapHeader->events->eventObjects[i]; - events[id].x += ((whichMap % 4) * 8); - events[id].y += ((whichMap / 4) * 8); - events[id].localId = id + 1; - if (events[id].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) + events[eventObjectId] = mapHeader->events->eventObjects[i]; + events[eventObjectId].x += ((squareId % 4) * 8); + events[eventObjectId].y += ((squareId / 4) * 8); + events[eventObjectId].localId = eventObjectId + 1; + if (events[eventObjectId].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) { - i = sub_81A9F90(id); - events[id].graphicsId = GetBattleFacilityTrainerGfxId(i); - gSaveBlock2Ptr->frontier.field_CB4[id] = i; + i = sub_81A9F90(eventObjectId); + events[eventObjectId].graphicsId = GetBattleFacilityTrainerGfxId(i); + gSaveBlock2Ptr->frontier.field_CB4[eventObjectId] = i; } return FALSE; } @@ -1850,39 +1896,39 @@ static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *mapNums, u8 whichMap, u8 id) return TRUE; } -static void sub_81AA96C(u8 *mapNums) +static void SetPyramidFloorLayoutOffsets(u8 *layoutOffsets) { - s32 i; - s32 bits = (gSaveBlock2Ptr->frontier.field_E22[0]) | (gSaveBlock2Ptr->frontier.field_E22[1] << 16); - u8 id = sub_81AA9E4(); + int i; + int rand = (gSaveBlock2Ptr->frontier.pyramidRandoms[0]) | (gSaveBlock2Ptr->frontier.pyramidRandoms[1] << 16); + u8 id = GetPyramidFloorTemplateId(); for (i = 0; i < 16; i++) { - mapNums[i] = gUnknown_08613650[id].unk5[bits & 7]; - bits >>= 3; + layoutOffsets[i] = sPyramidFloorTemplates[id].layoutOffsets[rand & 0x7]; + rand >>= 3; if (i == 7) { - bits = (gSaveBlock2Ptr->frontier.field_E22[2]) | (gSaveBlock2Ptr->frontier.field_E22[3] << 16); - bits >>= 8; + rand = (gSaveBlock2Ptr->frontier.pyramidRandoms[2]) | (gSaveBlock2Ptr->frontier.pyramidRandoms[3] << 16); + rand >>= 8; } } } -static u8 sub_81AA9E4(void) +static u8 GetPyramidFloorTemplateId(void) { - s32 i; - s32 var = gSaveBlock2Ptr->frontier.field_E22[3] % 100; - s32 battleNum = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + int i; + int rand = gSaveBlock2Ptr->frontier.pyramidRandoms[3] % 100; + int floor = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - for (i = gUnknown_08613794[battleNum]; i < ARRAY_COUNT(gUnknown_08613750); i++) + for (i = sFloorTemplateOffsets[floor]; i < ARRAY_COUNT(sPyramidFloorTemplateOptions); i++) { - if (var < gUnknown_08613750[i][0]) - return gUnknown_08613750[i][1]; + if (rand < sPyramidFloorTemplateOptions[i][0]) + return sPyramidFloorTemplateOptions[i][1]; } return 0; } -u8 sub_81AAA40(void) +u8 GetNumBattlePyramidEventObjects(void) { u8 i; struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; @@ -1896,14 +1942,14 @@ u8 sub_81AAA40(void) return i; } -static void InitBagItems(u8 lvlMode) +static void InitPyramidBagItems(u8 lvlMode) { s32 i; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { - gSaveBlock2Ptr->frontier.pyramidBag.itemId[lvlMode][i] = 0; - gSaveBlock2Ptr->frontier.pyramidBag.quantity[lvlMode][i] = 0; + gSaveBlock2Ptr->frontier.pyramidBag.itemId[lvlMode][i] = ITEM_NONE; + gSaveBlock2Ptr->frontier.pyramidBag.quantity[lvlMode][i] = ITEM_NONE; } AddPyramidBagItem(ITEM_HYPER_POTION, 1); @@ -1912,10 +1958,10 @@ static void InitBagItems(u8 lvlMode) u16 GetBattlePyramidPickupItemId(void) { - s32 rand; + int rand; u32 i; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - s32 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7); + int round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7); if (round >= TOTAL_ROUNDS) round = TOTAL_ROUNDS - 1; diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 9bed2ab43..1f0672dcb 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -338,7 +338,7 @@ static const struct SpriteTemplate gUnknown_0861F3D4 = }; // code -void sub_81C4EEC(void) +void InitBattlePyramidBagCursorPosition(void) { gPyramidBagCursorData.cursorPosition = 0; gPyramidBagCursorData.scrollPosition = 0; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 6e1bae31e..845e41dad 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1420,7 +1420,7 @@ u8 Unref_TryInitLocalEventObject(u8 localId) { if (InBattlePyramid()) { - eventObjectCount = sub_81AAA40(); + eventObjectCount = GetNumBattlePyramidEventObjects(); } else if (InTrainerHill()) { @@ -1746,7 +1746,7 @@ void TrySpawnEventObjects(s16 cameraX, s16 cameraY) if (InBattlePyramid()) { - objectCount = sub_81AAA40(); + objectCount = GetNumBattlePyramidEventObjects(); } else if (InTrainerHill()) { diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index b9e9272d4..93017f125 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -1004,9 +1004,9 @@ void WriteFlashScanlineEffectBuffer(u8 flashLevel) } } -void door_upload_tiles(void) +void WriteBattlePyramidViewScanlineEffectBuffer(void) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.field_E68); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, gSaveBlock2Ptr->frontier.pyramidLightRadius); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } diff --git a/src/fieldmap.c b/src/fieldmap.c index f67f61ede..7d9d079fc 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_pyramid.h" #include "bg.h" #include "fieldmap.h" #include "fldeff.h" @@ -15,8 +16,6 @@ #include "tv.h" #include "constants/rgb.h" -extern void sub_81AA078(u16*, u8); - struct ConnectionFlags { u8 south:1; @@ -67,10 +66,10 @@ void InitMapFromSavedGame(void) UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); } -void InitBattlePyramidMap(u8 a0) +void InitBattlePyramidMap(bool8 setPlayerPosition) { CpuFastFill(0x03ff03ff, gBackupMapData, sizeof(gBackupMapData)); - sub_81AA078(gBackupMapData, a0); + GenerateBattlePyramidFloorLayout(gBackupMapData, setPlayerPosition); } void InitTrainerHillMap(void) diff --git a/src/overworld.c b/src/overworld.c index 8d4c24ff6..8119204f2 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -110,7 +110,6 @@ extern void ShowMapNamePopup(void); extern bool32 sub_808651C(void); extern bool8 sub_80AF6A4(void); extern bool8 sub_80E909C(void); -extern void sub_81AA1D8(void); extern void c2_change_map(void); extern void sub_81D5DF8(void); extern void sub_80EB218(void); @@ -119,7 +118,6 @@ extern void sub_808B578(void); extern void sub_80AF314(void); extern void sub_80AF214(void); extern void sub_80AF188(void); -extern void door_upload_tiles(void); extern void RotatingGate_InitPuzzleAndGraphics(void); extern void sub_80AF168(void); extern void sub_80AF3C8(void); @@ -916,7 +914,7 @@ static void mli0_load_map(u32 a1) UpdateLocationHistoryForRoamer(); RoamerMoveToOtherLocationSet(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) - InitBattlePyramidMap(0); + InitBattlePyramidMap(FALSE); else if (InTrainerHill()) InitTrainerHillMap(); else @@ -1765,7 +1763,7 @@ void CB2_ContinueSavedGame(void) DoTimeBasedEvents(); sub_8084788(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) - InitBattlePyramidMap(1); + InitBattlePyramidMap(TRUE); else if (trainerHillMapId != 0) InitTrainerHillMap(); else @@ -1836,7 +1834,7 @@ static void InitCurrentFlashLevelScanlineEffect(void) if (InBattlePyramid_()) { - door_upload_tiles(); + WriteBattlePyramidViewScanlineEffectBuffer(); ScanlineEffect_SetParams(sFlashEffectParams); } else if ((flashLevel = Overworld_GetFlashLevel())) diff --git a/src/start_menu.c b/src/start_menu.c index 5c7e5365d..d932e1d6b 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -751,7 +751,7 @@ static bool8 StartMenuBattlePyramidRetireCallback(void) return FALSE; } -void sub_809FDD4(void) // Called from battle_frontier_2.s +void sub_809FDD4(void) { sub_8197DF8(0, FALSE); ScriptUnfreezeEventObjects(); -- cgit v1.2.3 From 3a88ab831d2fb57e1f3e0908aeb79395700867d4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Feb 2019 11:37:28 -0600 Subject: Document more battle pyramid --- src/battle_factory.c | 4 +- src/battle_pike.c | 14 +- src/battle_pyramid.c | 403 +++++++++++++++++++++++++++------------------------ src/battle_setup.c | 6 +- src/battle_tent.c | 4 +- src/battle_tower.c | 86 +++++------ src/frontier_util.c | 2 +- src/overworld.c | 5 +- src/pokemon.c | 2 +- src/start_menu.c | 5 +- src/trainer_hill.c | 10 +- 11 files changed, 278 insertions(+), 263 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index c025dc139..db67b0b13 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -304,14 +304,14 @@ static void sub_81A61B0(void) trainerId = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum); gTrainerBattleOpponent_A = trainerId; if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId; i = 0; while (i != 3) diff --git a/src/battle_pike.c b/src/battle_pike.c index bdf6e8027..a93a5725d 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -1393,7 +1393,7 @@ static void PrepareOneTrainer(bool8 difficult) trainerId = sub_8162548(challengeNum, battleNum); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1); @@ -1402,7 +1402,7 @@ static void PrepareOneTrainer(bool8 difficult) gFacilityTrainers = gBattleFrontierTrainers; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 14) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A; } static void PrepareTwoTrainers(void) @@ -1418,7 +1418,7 @@ static void PrepareTwoTrainers(void) trainerId = sub_8162548(challengeNum, 1); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1); @@ -1426,14 +1426,14 @@ static void PrepareTwoTrainers(void) gTrainerBattleOpponent_A = trainerId; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); if (gSaveBlock2Ptr->frontier.curChallengeBattleNum <= 14) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A; do { trainerId = sub_8162548(challengeNum, 1); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum); @@ -1441,7 +1441,7 @@ static void PrepareTwoTrainers(void) gTrainerBattleOpponent_B = trainerId; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1); if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 14) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2] = gTrainerBattleOpponent_B; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2] = gTrainerBattleOpponent_B; } static void sub_81A84B4(void) @@ -1449,7 +1449,7 @@ static void sub_81A84B4(void) u8 i; for (i = 0; i < 14; i++) - gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF; + gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } static void sub_81A84EC(void) diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 9aa006985..aa088e6c6 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -57,6 +57,21 @@ enum HINT_EXIT_FAR_REMAINING_ITEMS, }; +enum +{ + OBJ_TRAINERS, + OBJ_ITEMS, +}; + +enum +{ + OBJ_POSITIONS_UNIFORM, + OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE, + OBJ_POSITIONS_IN_AND_NEAR_EXIT, + OBJ_POSITIONS_NEAR_NEAR_ENTRANCE, + OBJ_POSITIONS_NEAR_NEAR_EXIT, +}; + struct PyramidWildMon { u16 species; @@ -69,8 +84,8 @@ struct PyramidFloorTemplate { u8 numItems; u8 numTrainers; - u8 unk2; - u8 unk3; + u8 itemPositions; + u8 trainerPositions; u8 runMultiplier; u8 layoutOffsets[8]; }; @@ -99,19 +114,19 @@ static void UpdatePyramidLightRadius(void); static void ClearPyramidPartyHeldItems(void); static void SetPyramidFloorPalette(void); static void sub_81A9828(void); -static void RestorePlayerPartyAfterPyramid(void); +static void RestorePyramidPlayerParty(void); static void InitPyramidBagItems(u8 lvlMode); static u8 GetPyramidFloorTemplateId(void); static u8 GetPostBattleDirectionHintTextIndex(int *, u8, u8); static void Task_SetPyramidFloorPalette(u8 taskId); -static void sub_81A9B44(u16 trainerId); -static void SetPyramidFloorLayoutOffsets(u8 *layoutOffsets); -static void SetPyramidEntranceAndExitSquareIds(u8 *, u8 *); -static void sub_81AA398(u8); -static bool8 sub_81AA4D8(u8, u8); -static bool8 sub_81AA648(u8, u8); -static bool8 sub_81AA760(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); -static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); +static void MarkPyramidTrainerAsBattled(u16 trainerId); +static void GetPyramidFloorLayoutOffsets(u8 *layoutOffsets); +static void GetPyramidEntranceAndExitSquareIds(u8 *, u8 *); +static void SetPyramidObjectPositionsUniformly(u8); +static bool8 SetPyramidObjectPositionsInAndNearSquare(u8, u8); +static bool8 SetPyramidObjectPositionsNearSquare(u8, u8); +static bool8 TrySetPyramidEventObjectPositionInSquare(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); +static bool8 TrySetPyramidEventObjectPositionAtCoords(bool8 objType, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId); // Const rom data. #include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" @@ -122,129 +137,129 @@ static const struct PyramidFloorTemplate sPyramidFloorTemplates[] = { .numItems = 7, .numTrainers = 3, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x80, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 128, .layoutOffsets = {0, 0, 1, 1, 2, 2, 3, 3}, }, { .numItems = 6, .numTrainers = 3, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x80, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 128, .layoutOffsets = {1, 1, 2, 2, 3, 3, 4, 4}, }, { .numItems = 5, .numTrainers = 3, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x78, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 120, .layoutOffsets = {2, 2, 3, 3, 4, 4, 5, 5}, }, { .numItems = 4, .numTrainers = 4, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x78, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 120, .layoutOffsets = {3, 3, 4, 4, 5, 5, 6, 6}, }, { .numItems = 4, .numTrainers = 4, - .unk2 = 0x00, - .unk3 = 0x01, - .runMultiplier = 0x70, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE, + .runMultiplier = 112, .layoutOffsets = {4, 4, 5, 5, 6, 6, 7, 7}, }, { .numItems = 3, .numTrainers = 5, - .unk2 = 0x00, - .unk3 = 0x02, - .runMultiplier = 0x70, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_IN_AND_NEAR_EXIT, + .runMultiplier = 112, .layoutOffsets = {5, 6, 7, 8, 9, 10, 11, 12}, }, { .numItems = 3, .numTrainers = 5, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x68, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 104, .layoutOffsets = {6, 7, 8, 9, 10, 11, 12, 13}, }, { .numItems = 2, .numTrainers = 4, - .unk2 = 0x00, - .unk3 = 0x01, - .runMultiplier = 0x68, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE, + .runMultiplier = 104, .layoutOffsets = {7, 8, 9, 10, 11, 12, 13, 14}, }, { .numItems = 4, .numTrainers = 5, - .unk2 = 0x00, - .unk3 = 0x02, - .runMultiplier = 0x60, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_IN_AND_NEAR_EXIT, + .runMultiplier = 96, .layoutOffsets = {8, 9, 10, 11, 12, 13, 14, 15}, }, { .numItems = 3, .numTrainers = 6, - .unk2 = 0x00, - .unk3 = 0x04, - .runMultiplier = 0x60, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_NEAR_NEAR_EXIT, + .runMultiplier = 96, .layoutOffsets = {8, 9, 10, 11, 12, 13, 14, 15}, }, { .numItems = 2, .numTrainers = 3, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x58, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 88, .layoutOffsets = {12, 13, 14, 12, 13, 14, 12, 13}, }, { .numItems = 4, .numTrainers = 5, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x58, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 88, .layoutOffsets = {11, 11, 11, 11, 11, 11, 11, 11}, }, { .numItems = 3, .numTrainers = 7, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x50, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 80, .layoutOffsets = {12, 12, 12, 12, 12, 12, 12, 12}, }, { .numItems = 2, .numTrainers = 4, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x50, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 80, .layoutOffsets = {13, 13, 13, 13, 13, 13, 13, 13}, }, { .numItems = 3, .numTrainers = 6, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x50, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 80, .layoutOffsets = {14, 14, 14, 14, 14, 14, 14, 14}, }, { .numItems = 3, .numTrainers = 8, - .unk2 = 0x00, - .unk3 = 0x00, - .runMultiplier = 0x50, + .itemPositions = OBJ_POSITIONS_UNIFORM, + .trainerPositions = OBJ_POSITIONS_UNIFORM, + .runMultiplier = 80, .layoutOffsets = {15, 15, 15, 15, 15, 15, 15, 15}, } }; @@ -816,7 +831,7 @@ static void (* const sBattlePyramidFunctions[])(void) = ClearPyramidPartyHeldItems, SetPyramidFloorPalette, sub_81A9828, - RestorePlayerPartyAfterPyramid, + RestorePyramidPlayerParty, }; static const u16 sShortStreakRewardItems[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; @@ -1209,7 +1224,7 @@ static void sub_81A9828(void) sub_809FDD4(); } -static void RestorePlayerPartyAfterPyramid(void) +static void RestorePyramidPlayerParty(void) { int i, j, k, l; @@ -1317,7 +1332,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx u16 LocalIdToPyramidTrainerId(u8 localId) { - return gSaveBlock2Ptr->frontier.field_CB4[localId - 1]; + return gSaveBlock2Ptr->frontier.trainerIds[localId - 1]; } bool8 GetBattlePyramidTrainerFlag(u8 eventId) @@ -1325,23 +1340,23 @@ bool8 GetBattlePyramidTrainerFlag(u8 eventId) return gSaveBlock2Ptr->frontier.pyramidTrainerFlags & gBitTable[gEventObjects[eventId].localId - 1]; } -void sub_81A9B04(void) +void MarkApproachingPyramidTrainersAsBattled(void) { - sub_81A9B44(gTrainerBattleOpponent_A); + MarkPyramidTrainerAsBattled(gTrainerBattleOpponent_A); if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { gSelectedEventObject = GetChosenApproachingTrainerEventObjectId(1); - sub_81A9B44(gTrainerBattleOpponent_B); + MarkPyramidTrainerAsBattled(gTrainerBattleOpponent_B); } } -static void sub_81A9B44(u16 trainerId) +static void MarkPyramidTrainerAsBattled(u16 trainerId) { - s32 i; + int i; for (i = 0; i < 8; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) gSaveBlock2Ptr->frontier.pyramidTrainerFlags |= gBitTable[i]; } @@ -1354,7 +1369,7 @@ static void sub_81A9B44(u16 trainerId) void GenerateBattlePyramidWildMon(void) { u8 name[POKEMON_NAME_LENGTH + 1]; - s32 i; + int i; const struct PyramidWildMon *wildMons; u32 id; u32 lvl = gSaveBlock2Ptr->frontier.lvlMode; @@ -1410,7 +1425,8 @@ void GenerateBattlePyramidWildMon(void) for (i = 0; i < MAX_MON_MOVES; i++) SetMonMoveSlot(&gEnemyParty[0], wildMons[id].moves[i], i); - if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] >= 140) // BUG: Reading outside the array as lvl was used for mon level instead of frontier lvl mode. + // BUG: Reading outside the array as lvl was used for mon level instead of frontier lvl mode. + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] >= 140) { id = (Random() % 17) + 15; for (i = 0; i < NUM_STATS; i++) @@ -1445,14 +1461,14 @@ void sub_81A9E90(void) { if (InBattlePyramid()) { - RestorePlayerPartyAfterPyramid(); + RestorePyramidPlayerParty(); gSaveBlock2Ptr->frontier.field_CA8 = 2; VarSet(VAR_TEMP_E, 0); LoadPlayerParty(); } } -void sub_81A9EC8(void) +void SoftResetInBattlePyramid(void) { if (InBattlePyramid()) DoSoftReset(); @@ -1473,7 +1489,7 @@ void CopyPyramidTrainerLoseSpeech(u16 trainerId) FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose); } -u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerId) +u8 GetBattlePyramindTrainerEncounterMusicId(u16 trainerId) { int i; @@ -1485,12 +1501,12 @@ u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerId) return TRAINER_ENCOUNTER_MUSIC_MALE; } -static void sub_81A9F80(void) +void sub_81A9F80(void) { ScriptContext1_SetupScript(BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88); } -static u16 sub_81A9F90(u8 count) +static u16 GetUniqueTrainerId(u8 eventObjectId) { int i; u16 trainerId; @@ -1502,24 +1518,24 @@ static u16 sub_81A9F90(u8 count) do { trainerId = sub_8162548(challengeNum + 1, battleNum); - for (i = 0; i < count; i++) + for (i = 0; i < eventObjectId; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } - } while (i != count); + } while (i != eventObjectId); } else { do { trainerId = sub_8162548(challengeNum, battleNum); - for (i = 0; i < count; i++) + for (i = 0; i < eventObjectId; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } - } while (i != count); + } while (i != eventObjectId); } return trainerId; @@ -1532,8 +1548,8 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio u8 entranceSquareId, exitSquareId; u8 *floorLayoutOffsets = AllocZeroed(16); - SetPyramidFloorLayoutOffsets(floorLayoutOffsets); - SetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); + GetPyramidFloorLayoutOffsets(floorLayoutOffsets); + GetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); for (i = 0; i < 16; i++) { u16 *map; @@ -1578,67 +1594,67 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio free(floorLayoutOffsets); } -void sub_81AA1D8(void) +void LoadBattlePyramidEventObjectTemplates(void) { int i; u8 id; u8 entranceSquareId, exitSquareId; for (i = 0; i < 8; i++) - gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF; + gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; id = GetPyramidFloorTemplateId(); - SetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); + GetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId); CpuFill32(0, gSaveBlock1Ptr->eventObjectTemplates, sizeof(gSaveBlock1Ptr->eventObjectTemplates)); for (i = 0; i < 2; i++) { - u8 value; + u8 objectPositionsType; - if (i == 0) - value = sPyramidFloorTemplates[id].unk3; - else - value = sPyramidFloorTemplates[id].unk2; + if (i == OBJ_TRAINERS) + objectPositionsType = sPyramidFloorTemplates[id].trainerPositions; + else // OBJ_ITEMS + objectPositionsType = sPyramidFloorTemplates[id].itemPositions; - switch (value) + switch (objectPositionsType) { - case 0: - sub_81AA398(i); + case OBJ_POSITIONS_UNIFORM: + SetPyramidObjectPositionsUniformly(i); break; - case 1: - if (sub_81AA4D8(i, entranceSquareId)) - sub_81AA398(i); + case OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE: + if (SetPyramidObjectPositionsInAndNearSquare(i, entranceSquareId)) + SetPyramidObjectPositionsUniformly(i); break; - case 2: - if (sub_81AA4D8(i, exitSquareId)) - sub_81AA398(i); + case OBJ_POSITIONS_IN_AND_NEAR_EXIT: + if (SetPyramidObjectPositionsInAndNearSquare(i, exitSquareId)) + SetPyramidObjectPositionsUniformly(i); break; - case 3: - if (sub_81AA648(i, entranceSquareId)) - sub_81AA398(i); + case OBJ_POSITIONS_NEAR_NEAR_ENTRANCE: + if (SetPyramidObjectPositionsNearSquare(i, entranceSquareId)) + SetPyramidObjectPositionsUniformly(i); break; - case 4: - if (sub_81AA648(i, exitSquareId)) - sub_81AA398(i); + case OBJ_POSITIONS_NEAR_NEAR_EXIT: + if (SetPyramidObjectPositionsNearSquare(i, exitSquareId)) + SetPyramidObjectPositionsUniformly(i); break; } } } -void sub_81AA2F8(void) +void LoadBattlePyramidFloorEventObjectScripts(void) { - s32 i; + int i; struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; for (i = 0; i < EVENT_OBJECT_TEMPLATES_COUNT; i++) { if (events[i].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) - events[i].script = BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F; + events[i].script = BattlePyramid_TrainerBattle; else - events[i].script = BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A; + events[i].script = BattlePyramid_FindItemBall; } } -static void SetPyramidEntranceAndExitSquareIds(u8 *entranceSquareId, u8 *exitSquareId) +static void GetPyramidEntranceAndExitSquareIds(u8 *entranceSquareId, u8 *exitSquareId) { *entranceSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[3] % 16; *exitSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[0] % 16; @@ -1650,30 +1666,30 @@ static void SetPyramidEntranceAndExitSquareIds(u8 *entranceSquareId, u8 *exitSqu } } -static void sub_81AA398(u8 arg0) +static void SetPyramidObjectPositionsUniformly(u8 objType) { int i; - int count; - int var_28; + int numObjects; + int objectStartIndex; int squareId; u32 bits = 0; u8 id = GetPyramidFloorTemplateId(); u8 *floorLayoutOffsets = AllocZeroed(16); - SetPyramidFloorLayoutOffsets(floorLayoutOffsets); + GetPyramidFloorLayoutOffsets(floorLayoutOffsets); squareId = gSaveBlock2Ptr->frontier.pyramidRandoms[2] % 16; - if (arg0 == 0) + if (objType == OBJ_TRAINERS) { - count = sPyramidFloorTemplates[id].numTrainers; - var_28 = 0; + numObjects = sPyramidFloorTemplates[id].numTrainers; + objectStartIndex = 0; } - else + else // OBJ_ITEMS { - count = sPyramidFloorTemplates[id].numItems; - var_28 = sPyramidFloorTemplates[id].numTrainers; + numObjects = sPyramidFloorTemplates[id].numItems; + objectStartIndex = sPyramidFloorTemplates[id].numTrainers; } - for (i = 0; i < count; i++) + for (i = 0; i < numObjects; i++) { do { @@ -1701,47 +1717,47 @@ static void sub_81AA398(u8 arg0) } } while (!(bits & 2)); - } while (!(bits & 4) && sub_81AA760(arg0, floorLayoutOffsets, squareId, var_28 + i)); + } while (!(bits & 4) && TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, squareId, objectStartIndex + i)); bits &= 1; } free(floorLayoutOffsets); } -static bool8 sub_81AA4D8(u8 arg0, u8 squareId) +static bool8 SetPyramidObjectPositionsInAndNearSquare(u8 objType, u8 squareId) { int i; - int var_28; + int objectStartIndex; int borderedIndex = 0; int r7 = 0; - int var_34 = 0; - int count; + int numPlacedObjects = 0; + int numObjects; u8 id = GetPyramidFloorTemplateId(); u8 *floorLayoutOffsets = AllocZeroed(16); - SetPyramidFloorLayoutOffsets(floorLayoutOffsets); - if (arg0 == 0) + GetPyramidFloorLayoutOffsets(floorLayoutOffsets); + if (objType == OBJ_TRAINERS) { - count = sPyramidFloorTemplates[id].numTrainers; - var_28 = 0; + numObjects = sPyramidFloorTemplates[id].numTrainers; + objectStartIndex = 0; } - else + else // OBJ_ITEMS { - count = sPyramidFloorTemplates[id].numItems; - var_28 = sPyramidFloorTemplates[id].numTrainers; + numObjects = sPyramidFloorTemplates[id].numItems; + objectStartIndex = sPyramidFloorTemplates[id].numTrainers; } - for (i = 0; i < count; i++) + for (i = 0; i < numObjects; i++) { if (r7 == 0) { - if (sub_81AA760(arg0, floorLayoutOffsets, squareId, var_28 + i)) + if (TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, squareId, objectStartIndex + i)) r7 = 1; else - var_34++; + numPlacedObjects++; } if (r7 & 1) { - if (sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], var_28 + i)) + if (TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], objectStartIndex + i)) { do { @@ -1749,15 +1765,15 @@ static bool8 sub_81AA4D8(u8 arg0, u8 squareId) if (sBorderedSquareIds[squareId][borderedIndex] == 0xFF || borderedIndex >= 4) borderedIndex = 0; r7 += 2; - } while (r7 >> 1 != 4 && sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], var_28 + i)); - var_34++; + } while (r7 >> 1 != 4 && TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, sBorderedSquareIds[squareId][borderedIndex], objectStartIndex + i)); + numPlacedObjects++; } else { borderedIndex++; if (sBorderedSquareIds[squareId][borderedIndex] == 0xFF || borderedIndex >= 4) borderedIndex = 0; - var_34++; + numPlacedObjects++; } } @@ -1768,51 +1784,51 @@ static bool8 sub_81AA4D8(u8 arg0, u8 squareId) } // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed - return (count / 2 > var_34); + return (numObjects / 2) > numPlacedObjects; } -static bool8 sub_81AA648(u8 arg0, u8 squareId) +static bool8 SetPyramidObjectPositionsNearSquare(u8 objType, u8 squareId) { int i; - int var_28; - int r4 = 0; - int r7 = 0; + int objectStartIndex; + int borderOffset = 0; + int numPlacedObjects = 0; int r8 = 0; - int count; + int numObjects; u8 id = GetPyramidFloorTemplateId(); u8 *floorLayoutOffsets = AllocZeroed(16); - SetPyramidFloorLayoutOffsets(floorLayoutOffsets); - if (arg0 == 0) + GetPyramidFloorLayoutOffsets(floorLayoutOffsets); + if (objType == OBJ_TRAINERS) { - count = sPyramidFloorTemplates[id].numTrainers; - var_28 = 0; + numObjects = sPyramidFloorTemplates[id].numTrainers; + objectStartIndex = 0; } - else + else // OBJ_ITEMS { - count = sPyramidFloorTemplates[id].numItems; - var_28 = sPyramidFloorTemplates[id].numTrainers; + numObjects = sPyramidFloorTemplates[id].numItems; + objectStartIndex = sPyramidFloorTemplates[id].numTrainers; } - for (i = 0; i < count; i++) + for (i = 0; i < numObjects; i++) { - if (sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][r4], var_28 + i)) + if (TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, sBorderedSquareIds[squareId][borderOffset], objectStartIndex + i)) { do { - r4++; - if (sBorderedSquareIds[squareId][r4] == 0xFF || r4 >= 4) - r4 = 0; + borderOffset++; + if (sBorderedSquareIds[squareId][borderOffset] == 0xFF || borderOffset >= 4) + borderOffset = 0; r8++; - } while (r8 != 4 && sub_81AA760(arg0, floorLayoutOffsets, sBorderedSquareIds[squareId][r4], var_28 + i)); - r7++; + } while (r8 != 4 && TrySetPyramidEventObjectPositionInSquare(objType, floorLayoutOffsets, sBorderedSquareIds[squareId][borderOffset], objectStartIndex + i)); + numPlacedObjects++; } else { - r4++; - if (sBorderedSquareIds[squareId][r4] == 0xFF || r4 >= 4) - r4 = 0; - r7++; + borderOffset++; + if (sBorderedSquareIds[squareId][borderOffset] == 0xFF || borderOffset >= 4) + borderOffset = 0; + numPlacedObjects++; } if (r8 == 4) @@ -1820,32 +1836,31 @@ static bool8 sub_81AA648(u8 arg0, u8 squareId) } // free(floorLayoutOffsets); BUG: floorLayoutOffsets memory not freed - return (count / 2 > r7); + return (numObjects / 2) > numPlacedObjects; } -static bool8 sub_81AA760(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) +static bool8 TrySetPyramidEventObjectPositionInSquare(u8 objType, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) { - int i, j; + int x, y; if (gSaveBlock2Ptr->frontier.pyramidRandoms[0] & 1) { - int minus1 = -1; - for (i = 7; i > minus1; i--) + for (y = 7; y > -1; y--) { - for (j = 7; j >= 0; j--) + for (x = 7; x > -1; x--) { - if (!sub_81AA810(arg0, j, i, floorLayoutOffsets, squareId, eventObjectId)) + if (!TrySetPyramidEventObjectPositionAtCoords(objType, x, y, floorLayoutOffsets, squareId, eventObjectId)) return FALSE; } } } else { - for (i = 0; i < 8; i++) + for (y = 0; y < 8; y++) { - for (j = 0; j < 8; j++) + for (x = 0; x < 8; x++) { - if (!sub_81AA810(arg0, j, i, floorLayoutOffsets, squareId, eventObjectId)) + if (!TrySetPyramidEventObjectPositionAtCoords(objType, x, y, floorLayoutOffsets, squareId, eventObjectId)) return FALSE; } } @@ -1854,11 +1869,11 @@ static bool8 sub_81AA760(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 eventO return TRUE; } -static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) +static bool8 TrySetPyramidEventObjectPositionAtCoords(u8 objType, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 eventObjectId) { int i, j; const struct MapHeader *mapHeader; - struct EventObjectTemplate *events = gSaveBlock1Ptr->eventObjectTemplates; + struct EventObjectTemplate *floorEvents = gSaveBlock1Ptr->eventObjectTemplates; mapHeader = Overworld_GetMapHeaderByGroupAndId(MAP_GROUP(BATTLE_PYRAMID_SQUARE01), floorLayoutOffsets[squareId] + MAP_NUM(BATTLE_PYRAMID_SQUARE01)); for (i = 0; i < mapHeader->events->eventObjectCount; i++) @@ -1866,37 +1881,39 @@ static bool8 sub_81AA810(u8 arg0, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareI if (mapHeader->events->eventObjects[i].x != x || mapHeader->events->eventObjects[i].y != y) continue; - if (arg0 != 0 || mapHeader->events->eventObjects[i].graphicsId == EVENT_OBJ_GFX_ITEM_BALL) + if (objType != OBJ_TRAINERS || mapHeader->events->eventObjects[i].graphicsId == EVENT_OBJ_GFX_ITEM_BALL) { - if (arg0 != 1 || mapHeader->events->eventObjects[i].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) + if (objType != OBJ_ITEMS || mapHeader->events->eventObjects[i].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) continue; } + // Ensure an object wasn't previously placed in the exact same position. for (j = 0; j < eventObjectId; j++) { - if (events[j].x == x + ((squareId % 4) * 8) && events[j].y == y + ((squareId / 4) * 8)) + if (floorEvents[j].x == x + ((squareId % 4) * 8) && floorEvents[j].y == y + ((squareId / 4) * 8)) break; } - if (j != eventObjectId) - continue; - events[eventObjectId] = mapHeader->events->eventObjects[i]; - events[eventObjectId].x += ((squareId % 4) * 8); - events[eventObjectId].y += ((squareId / 4) * 8); - events[eventObjectId].localId = eventObjectId + 1; - if (events[eventObjectId].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) + if (j == eventObjectId) { - i = sub_81A9F90(eventObjectId); - events[eventObjectId].graphicsId = GetBattleFacilityTrainerGfxId(i); - gSaveBlock2Ptr->frontier.field_CB4[eventObjectId] = i; + floorEvents[eventObjectId] = mapHeader->events->eventObjects[i]; + floorEvents[eventObjectId].x += (squareId % 4) * 8; + floorEvents[eventObjectId].y += (squareId / 4) * 8; + floorEvents[eventObjectId].localId = eventObjectId + 1; + if (floorEvents[eventObjectId].graphicsId != EVENT_OBJ_GFX_ITEM_BALL) + { + i = GetUniqueTrainerId(eventObjectId); + floorEvents[eventObjectId].graphicsId = GetBattleFacilityTrainerGfxId(i); + gSaveBlock2Ptr->frontier.trainerIds[eventObjectId] = i; + } + return FALSE; } - return FALSE; } return TRUE; } -static void SetPyramidFloorLayoutOffsets(u8 *layoutOffsets) +static void GetPyramidFloorLayoutOffsets(u8 *layoutOffsets) { int i; int rand = (gSaveBlock2Ptr->frontier.pyramidRandoms[0]) | (gSaveBlock2Ptr->frontier.pyramidRandoms[1] << 16); @@ -1944,7 +1961,7 @@ u8 GetNumBattlePyramidEventObjects(void) static void InitPyramidBagItems(u8 lvlMode) { - s32 i; + int i; for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { diff --git a/src/battle_setup.c b/src/battle_setup.c index f5e9e3e9e..7626420e9 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -874,8 +874,8 @@ u8 sub_80B100C(s32 arg0) return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)]; } - var = gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 0] - + gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 1]; + var = gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 0] + + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum * 2 + 1]; return sUnknown_0854FE98[var % ARRAY_COUNT(sUnknown_0854FE98)]; } @@ -1266,7 +1266,7 @@ void BattleSetup_StartTrainerBattle(void) ZeroMonData(&gEnemyParty[2]); } - sub_81A9B04(); + MarkApproachingPyramidTrainersAsBattled(); } else if (sub_81D5C18()) { diff --git a/src/battle_tent.c b/src/battle_tent.c index cb8149253..d85883cd5 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -356,7 +356,7 @@ static void sub_81BA040(void) trainerId = Random() % 30; for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum); @@ -370,7 +370,7 @@ static void sub_81BA040(void) } if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; i = 0; diff --git a/src/battle_tower.c b/src/battle_tower.c index 088ef7972..fbb77789e 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1311,15 +1311,15 @@ static void ChooseNextBattleTowerTrainer(void) if (battleMode == FRONTIER_MODE_MULTIS || battleMode == FRONTIER_MODE_LINK_MULTIS) { id = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.field_CB4[id * 2]; - gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.field_CB4[id * 2 + 1]; + gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.trainerIds[id * 2]; + gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[id * 2 + 1]; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1); } else if (ChooseSpecialBattleTowerTrainer()) { SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; } else { @@ -1331,7 +1331,7 @@ static void ChooseNextBattleTowerTrainer(void) // Ensure trainer wasn't previously fought in this challenge. for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == id) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == id) break; } if (i == gSaveBlock2Ptr->frontier.curChallengeBattleNum) @@ -1341,7 +1341,7 @@ static void ChooseNextBattleTowerTrainer(void) gTrainerBattleOpponent_A = id; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 7) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; } } } @@ -2250,7 +2250,7 @@ void DoSpecialTrainerBattle(void) break; case FRONTIER_MODE_MULTIS: FillFrontierTrainersParties(2); - gPartnerTrainerId = gSaveBlock2Ptr->frontier.field_CB4[17]; + gPartnerTrainerId = gSaveBlock2Ptr->frontier.trainerIds[17]; FillPartnerParty(gPartnerTrainerId); gBattleTypeFlags |= BATTLE_TYPE_DOUBLE | BATTLE_TYPE_INGAME_PARTNER | BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS; break; @@ -2524,32 +2524,32 @@ static void sub_81642A0(void) trainerId = sub_8162548(challengeNum, 0); for (i = 0; i < j; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; - if (gFacilityTrainers[gSaveBlock2Ptr->frontier.field_CB4[i]].facilityClass == gFacilityTrainers[trainerId].facilityClass) + if (gFacilityTrainers[gSaveBlock2Ptr->frontier.trainerIds[i]].facilityClass == gFacilityTrainers[trainerId].facilityClass) break; } } while (i != j); - gSaveBlock2Ptr->frontier.field_CB4[j] = trainerId; + gSaveBlock2Ptr->frontier.trainerIds[j] = trainerId; j++; } while (j < 6); r10 = 8; for (i = 0; i < 6; i++) { - trainerId = gSaveBlock2Ptr->frontier.field_CB4[i]; + trainerId = gSaveBlock2Ptr->frontier.trainerIds[i]; eventObjTemplates[i + 1].graphicsId = GetBattleFacilityTrainerGfxId(trainerId); for (j = 0; j < 2; j++) { while (1) { monSetId = RandomizeFacilityTrainerMonSet(trainerId); - if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_CB4[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId) + if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId) continue; for (k = 8; k < r10; k++) { - if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_CB4[k]].species == gFacilityTrainerMons[monSetId].species) + if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monSetId].species) break; if (species1 == gFacilityTrainerMons[monSetId].species) break; @@ -2560,7 +2560,7 @@ static void sub_81642A0(void) break; } - gSaveBlock2Ptr->frontier.field_CB4[r10] = monSetId; + gSaveBlock2Ptr->frontier.trainerIds[r10] = monSetId; r10++; } } @@ -2591,10 +2591,10 @@ static void sub_81642A0(void) } if (r10 != 0) { - gSaveBlock2Ptr->frontier.field_CB4[6] = spArray[Random() % r10]; - eventObjTemplates[7].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[6]); + gSaveBlock2Ptr->frontier.trainerIds[6] = spArray[Random() % r10]; + eventObjTemplates[7].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[6]); FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_1); - sub_81640E0(gSaveBlock2Ptr->frontier.field_CB4[6]); + sub_81640E0(gSaveBlock2Ptr->frontier.trainerIds[6]); } r10 = 0; @@ -2634,10 +2634,10 @@ static void sub_81642A0(void) } if (r10 != 0) { - gSaveBlock2Ptr->frontier.field_CB4[7] = spArray[Random() % r10]; - eventObjTemplates[8].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[7]); + gSaveBlock2Ptr->frontier.trainerIds[7] = spArray[Random() % r10]; + eventObjTemplates[8].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[7]); FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_2); - sub_8164188(gSaveBlock2Ptr->frontier.field_CB4[7]); + sub_8164188(gSaveBlock2Ptr->frontier.trainerIds[7]); } } @@ -2684,7 +2684,7 @@ static void sub_8164828(void) u16 winStreak = GetCurrentFacilityWinStreak(); s32 challengeNum = winStreak / 7; s32 k = gSpecialVar_LastTalked - 2; - s32 trainerId = gSaveBlock2Ptr->frontier.field_CB4[k]; + s32 trainerId = gSaveBlock2Ptr->frontier.trainerIds[k]; for (arrId = 0; arrId < ARRAY_COUNT(gUnknown_085DD500); arrId++) { @@ -2717,29 +2717,29 @@ static void sub_8164828(void) } break; case 1: - monSetId = gSaveBlock2Ptr->frontier.field_CB4[8 + k * 2]; + monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2]; sub_81646BC(trainerId, monSetId); break; case 2: - monSetId = gSaveBlock2Ptr->frontier.field_CB4[9 + k * 2]; + monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2]; sub_81646BC(trainerId, monSetId); break; case 3: gPartnerTrainerId = trainerId; if (trainerId < TRAINER_RECORD_MIXING_FRIEND) { - gSaveBlock2Ptr->frontier.field_CB4[18] = gSaveBlock2Ptr->frontier.field_CB4[8 + k * 2]; - gSaveBlock2Ptr->frontier.field_CB4[19] = gSaveBlock2Ptr->frontier.field_CB4[9 + k * 2]; + gSaveBlock2Ptr->frontier.trainerIds[18] = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2]; + gSaveBlock2Ptr->frontier.trainerIds[19] = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2]; } else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) { - gSaveBlock2Ptr->frontier.field_CB4[18] = gUnknown_03006298[2]; - gSaveBlock2Ptr->frontier.field_CB4[19] = gUnknown_03006298[3]; + gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[2]; + gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[3]; } else { - gSaveBlock2Ptr->frontier.field_CB4[18] = gUnknown_03006298[0]; - gSaveBlock2Ptr->frontier.field_CB4[19] = gUnknown_03006298[1]; + gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[0]; + gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[1]; } for (k = 0; k < 14; k++) { @@ -2751,15 +2751,15 @@ static void sub_8164828(void) for (j = 0; j < k; j++) { - if (gSaveBlock2Ptr->frontier.field_CB4[j] == i) + if (gSaveBlock2Ptr->frontier.trainerIds[j] == i) break; } if (j == k) break; } - gSaveBlock2Ptr->frontier.field_CB4[k] = i; + gSaveBlock2Ptr->frontier.trainerIds[k] = i; } - gSaveBlock2Ptr->frontier.field_CB4[17] = trainerId; + gSaveBlock2Ptr->frontier.trainerIds[17] = trainerId; break; case 4: break; @@ -2825,12 +2825,12 @@ static void sub_8164B74(void) trainerId = sub_8162548(challengeNum, i / 2); for (j = 0; j < i; j++) { - if (gSaveBlock2Ptr->frontier.field_CB4[j] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[j] == trainerId) break; } } while (i != j); if (i == j) // This condition is always true, because of the loop above. - gSaveBlock2Ptr->frontier.field_CB4[i] = trainerId; + gSaveBlock2Ptr->frontier.trainerIds[i] = trainerId; } gSpecialVar_Result = 2; } @@ -2838,7 +2838,7 @@ static void sub_8164B74(void) case 2: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), &gSaveBlock2Ptr->frontier.field_CB4, sizeof(gSaveBlock2Ptr->frontier.field_CB4)); + SendBlock(bitmask_all_link_players_but_self(), &gSaveBlock2Ptr->frontier.trainerIds, sizeof(gSaveBlock2Ptr->frontier.trainerIds)); gSpecialVar_Result = 3; } break; @@ -2846,9 +2846,9 @@ static void sub_8164B74(void) if ((GetBlockReceivedStatus() & 3) == 3) { ResetBlockReceivedFlags(); - memcpy(&gSaveBlock2Ptr->frontier.field_CB4, gBlockRecvBuffer, sizeof(gSaveBlock2Ptr->frontier.field_CB4)); - gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.field_CB4[battleNum * 2]; - gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.field_CB4[battleNum * 2 + 1]; + memcpy(&gSaveBlock2Ptr->frontier.trainerIds, gBlockRecvBuffer, sizeof(gSaveBlock2Ptr->frontier.trainerIds)); + gTrainerBattleOpponent_A = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2]; + gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2 + 1]; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1); if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType == 0) @@ -2880,7 +2880,7 @@ static void sub_8164DCC(void) static void sub_8164DE4(void) { - SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.field_CB4[17], 0xF); + SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF); } static void sub_8164E04(void) @@ -3213,7 +3213,7 @@ static void FillPartnerParty(u16 trainerId) otID = Random32(); for (i = 0; i < 2; i++) { - monSetId = gSaveBlock2Ptr->frontier.field_CB4[i + 18]; + monSetId = gSaveBlock2Ptr->frontier.trainerIds[i + 18]; CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i], gFacilityTrainerMons[monSetId].species, level, @@ -3243,7 +3243,7 @@ static void FillPartnerParty(u16 trainerId) for (i = 0; i < 2; i++) { struct EmeraldBattleTowerRecord *record = &gSaveBlock2Ptr->frontier.towerRecords[trainerId]; - struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.field_CB4[18 + i]]; + struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.trainerIds[18 + i]]; StringCopy(trainerName, record->name); if (record->language == LANGUAGE_JAPANESE) { @@ -3269,7 +3269,7 @@ static void FillPartnerParty(u16 trainerId) trainerId -= TRAINER_RECORD_MIXING_APPRENTICE; for (i = 0; i < 2; i++) { - CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.field_CB4[18 + i]); + CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]); j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_APPRENTICE); SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); } @@ -3564,7 +3564,7 @@ static void sub_8165E18(void) trainerId = sub_8165D40(); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) break; } } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum); @@ -3572,7 +3572,7 @@ static void sub_8165E18(void) gTrainerBattleOpponent_A = trainerId; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 3) - gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; + gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; } static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) diff --git a/src/frontier_util.c b/src/frontier_util.c index 742b73858..e6954c356 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1827,7 +1827,7 @@ void sub_81A3ACC(void) s32 i; for (i = 0; i < 20; i++) - gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF; + gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } static void sub_81A3B00(void) diff --git a/src/overworld.c b/src/overworld.c index 8119204f2..2bc4f96d5 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -124,7 +124,6 @@ extern void sub_80AF3C8(void); extern void ExecuteTruckSequence(void); extern void sub_80A0A38(void); extern void WriteFlashScanlineEffectBuffer(u8); -extern void sub_81AA2F8(void); extern void InitMatchCallCounters(void); extern void sub_80EDB44(void); extern void InitFieldMessageBox(void); @@ -886,7 +885,7 @@ static void mli0_load_map(u32 a1) if (!(sUnknown_020322D8 & 1)) { if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) - sub_81AA1D8(); + LoadBattlePyramidEventObjectTemplates(); else if (InTrainerHill()) sub_81D5DF8(); else @@ -1753,7 +1752,7 @@ void CB2_ContinueSavedGame(void) ClearDiveAndHoleWarps(); trainerHillMapId = GetCurrentTrainerHillMapId(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) - sub_81AA2F8(); + LoadBattlePyramidFloorEventObjectScripts(); else if (trainerHillMapId != 0 && trainerHillMapId != 6) sub_81D5F48(); else diff --git a/src/pokemon.c b/src/pokemon.c index 5f1664450..9553fdf17 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6081,7 +6081,7 @@ s32 GetBattlerMultiplayerId(u16 a1) u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) { if (InBattlePyramid()) - return GetTrainerEncounterMusicIdInBattlePyramind(trainerOpponentId); + return GetBattlePyramindTrainerEncounterMusicId(trainerOpponentId); else if (sub_81D5C18()) return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId); else diff --git a/src/start_menu.c b/src/start_menu.c index d932e1d6b..334330b67 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -36,6 +36,7 @@ #include "international_string_util.h" #include "constants/songs.h" #include "field_player_avatar.h" +#include "battle_pyramid.h" #include "battle_pyramid_bag.h" #include "battle_pike.h" #include "new_game.h" @@ -94,9 +95,7 @@ extern void CB2_Pokedex(void); extern void PlayRainSoundEffect(void); extern void CB2_PokeNav(void); extern void ScriptUnfreezeEventObjects(void); -extern void sub_81A9EC8(void); extern void save_serialize_map(void); -extern void sub_81A9E90(void); // Menu action callbacks static bool8 StartMenuPokedexCallback(void); @@ -798,7 +797,7 @@ static bool8 SaveCallback(void) sub_8197DF8(0, TRUE); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); - sub_81A9EC8(); + SoftResetInBattlePyramid(); return TRUE; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 309ffdb1d..efe11b0c7 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -660,7 +660,7 @@ void sub_81D5DF8(void) SetUpDataStruct(); for (i = 0; i < 2; i++) - gSaveBlock2Ptr->frontier.field_CB4[i] = 0xFFFF; + gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; CpuFill32(0, gSaveBlock1Ptr->eventObjectTemplates, sizeof(gSaveBlock1Ptr->eventObjectTemplates)); floorId = GetFloorId(); @@ -677,7 +677,7 @@ void sub_81D5DF8(void) eventTemplates[i].movementType = ((sHillData->tag.floors[floorId].direction >> bits) & 0xF) + MOVEMENT_TYPE_FACE_UP; eventTemplates[i].trainerRange_berryTreeId = (sHillData->tag.floors[floorId].range >> bits) & 0xF; eventTemplates[i].script = EventScript_2C83F0; - gSaveBlock2Ptr->frontier.field_CB4[i] = i + 1; + gSaveBlock2Ptr->frontier.trainerIds[i] = i + 1; } FreeDataStruct(); @@ -874,7 +874,7 @@ const struct WarpEvent* sub_81D6134(u8 warpEventId) u16 LocalIdToHillTrainerId(u8 localId) { - return gSaveBlock2Ptr->frontier.field_CB4[localId - 1]; + return gSaveBlock2Ptr->frontier.trainerIds[localId - 1]; } bool8 GetHillTrainerFlag(u8 eventObjectId) @@ -892,7 +892,7 @@ void SetHillTrainerFlag(void) for (i = 0; i < 2; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == gTrainerBattleOpponent_A) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == gTrainerBattleOpponent_A) { gSaveBlock2Ptr->frontier.field_EE0 |= gBitTable[floorId + i]; break; @@ -903,7 +903,7 @@ void SetHillTrainerFlag(void) { for (i = 0; i < 2; i++) { - if (gSaveBlock2Ptr->frontier.field_CB4[i] == gTrainerBattleOpponent_B) + if (gSaveBlock2Ptr->frontier.trainerIds[i] == gTrainerBattleOpponent_B) { gSaveBlock2Ptr->frontier.field_EE0 |= gBitTable[floorId + i]; break; -- cgit v1.2.3 From b52871433a49c33a27d480e358b7cd695f65e214 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Feb 2019 11:54:51 -0600 Subject: Fix typo --- src/battle_pyramid.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index aa088e6c6..824a2946d 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -68,8 +68,8 @@ enum OBJ_POSITIONS_UNIFORM, OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE, OBJ_POSITIONS_IN_AND_NEAR_EXIT, - OBJ_POSITIONS_NEAR_NEAR_ENTRANCE, - OBJ_POSITIONS_NEAR_NEAR_EXIT, + OBJ_POSITIONS_NEAR_ENTRANCE, + OBJ_POSITIONS_NEAR_EXIT, }; struct PyramidWildMon @@ -210,7 +210,7 @@ static const struct PyramidFloorTemplate sPyramidFloorTemplates[] = .numItems = 3, .numTrainers = 6, .itemPositions = OBJ_POSITIONS_UNIFORM, - .trainerPositions = OBJ_POSITIONS_NEAR_NEAR_EXIT, + .trainerPositions = OBJ_POSITIONS_NEAR_EXIT, .runMultiplier = 96, .layoutOffsets = {8, 9, 10, 11, 12, 13, 14, 15}, }, @@ -1628,11 +1628,11 @@ void LoadBattlePyramidEventObjectTemplates(void) if (SetPyramidObjectPositionsInAndNearSquare(i, exitSquareId)) SetPyramidObjectPositionsUniformly(i); break; - case OBJ_POSITIONS_NEAR_NEAR_ENTRANCE: + case OBJ_POSITIONS_NEAR_ENTRANCE: if (SetPyramidObjectPositionsNearSquare(i, entranceSquareId)) SetPyramidObjectPositionsUniformly(i); break; - case OBJ_POSITIONS_NEAR_NEAR_EXIT: + case OBJ_POSITIONS_NEAR_EXIT: if (SetPyramidObjectPositionsNearSquare(i, exitSquareId)) SetPyramidObjectPositionsUniformly(i); break; -- cgit v1.2.3 From 4785a07acd8d27372f12eebca84b5a67e0591f3c Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Feb 2019 12:58:09 -0600 Subject: Document battle factory functions --- src/battle_factory.c | 194 ++++++++++++++++++++++--------------------- src/battle_factory_screen.c | 22 ++--- src/battle_tent.c | 4 +- src/pokemon_summary_screen.c | 10 +-- 4 files changed, 117 insertions(+), 113 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index db67b0b13..170a1b91e 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -16,28 +16,28 @@ #include "constants/moves.h" // IWRAM bss -static IWRAM_DATA bool8 gUnknown_03001288; +static IWRAM_DATA bool8 sPerformedRentalSwap; // This file's functions. -static void sub_81A5E94(void); -static void sub_81A5FA8(void); -static void sub_81A6054(void); +static void InitFactoryChallenge(void); +static void GetBattleFactoryData(void); +static void SetBattleFactoryData(void); static void sub_81A613C(void); static void nullsub_75(void); static void nullsub_123(void); -static void sub_81A6188(void); -static void sub_81A6198(void); -static void sub_81A61A4(void); -static void sub_81A63CC(void); -static void sub_81A64C4(void); -static void sub_81A63B8(void); -static void sub_81A61B0(void); -static void sub_81A67EC(void); -static void sub_81A6A08(void); -static void sub_81A6AEC(void); -static void sub_81A6C1C(void); +static void SelectInitialRentalMons(void); +static void SwapRentalMons(void); +static void SetPerformedRentalSwap(void); +static void SetRentalsToOpponentParty(void); +static void SetPlayerAndOpponentParties(void); +static void SetOpponentGfxVar(void); +static void GenerateOpponentMons(void); +static void GenerateInitialRentalMons(void); +static void GetOpponentMostCommonMonType(void); +static void GetOpponentBattleStyle(void); +static void RestorePlayerPartyHeldItems(void); static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2); -static u8 GetStyleForMove(u16 move); +static u8 GetMoveBattleStyle(u16 move); // Const rom data. static const u8 sRequiredMoveCounts[] = {3, 3, 3, 2, 2, 2, 2}; @@ -110,25 +110,25 @@ static const u16 *const sMoveStyles[] = sMoves_DependsOnTheBattlesFlow, }; -static void (* const gUnknown_08612120[])(void) = +static void (* const sBattleFactoryFunctions[])(void) = { - sub_81A5E94, - sub_81A5FA8, - sub_81A6054, + InitFactoryChallenge, + GetBattleFactoryData, + SetBattleFactoryData, sub_81A613C, nullsub_75, nullsub_123, - sub_81A6188, - sub_81A6198, - sub_81A61A4, - sub_81A63CC, - sub_81A64C4, - sub_81A63B8, - sub_81A61B0, - sub_81A67EC, - sub_81A6A08, - sub_81A6AEC, - sub_81A6C1C, + SelectInitialRentalMons, + SwapRentalMons, + SetPerformedRentalSwap, + SetRentalsToOpponentParty, + SetPlayerAndOpponentParties, + SetOpponentGfxVar, + GenerateOpponentMons, + GenerateInitialRentalMons, + GetOpponentMostCommonMonType, + GetOpponentBattleStyle, + RestorePlayerPartyHeldItems, }; static const u32 gUnknown_08612164[][2] = @@ -178,10 +178,10 @@ static const u16 sMonsToChooseFrom[][2] = // code void CallBattleFactoryFunction(void) { - gUnknown_08612120[gSpecialVar_0x8004](); + sBattleFactoryFunctions[gSpecialVar_0x8004](); } -static void sub_81A5E94(void) +static void InitFactoryChallenge(void) { u8 i; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -197,9 +197,9 @@ static void sub_81A5E94(void) gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = 0; } - gUnknown_03001288 = FALSE; + sPerformedRentalSwap = FALSE; for (i = 0; i < 6; i++) - gSaveBlock2Ptr->frontier.field_E70[i].monId = 0xFFFF; + gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF; for (i = 0; i < 3; i++) gUnknown_03006298[i] = 0xFFFF; @@ -207,10 +207,10 @@ static void sub_81A5E94(void) gTrainerBattleOpponent_A = 0; } -static void sub_81A5FA8(void) +static void GetBattleFactoryData(void) { - u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + int lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { @@ -226,10 +226,10 @@ static void sub_81A5FA8(void) } } -static void sub_81A6054(void) +static void SetBattleFactoryData(void) { - u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + int lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { @@ -243,10 +243,10 @@ static void sub_81A6054(void) gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_08612174[battleMode][lvlMode]; break; case 3: - if (gUnknown_03001288 == TRUE) + if (sPerformedRentalSwap == TRUE) { gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = gSpecialVar_0x8006; - gUnknown_03001288 = FALSE; + sPerformedRentalSwap = FALSE; } break; } @@ -270,28 +270,28 @@ static void nullsub_123(void) } -static void sub_81A6188(void) +static void SelectInitialRentalMons(void) { ZeroPlayerPartyMons(); DoBattleFactorySelectScreen(); } -static void sub_81A6198(void) +static void SwapRentalMons(void) { DoBattleFactorySwapScreen(); } -static void sub_81A61A4(void) +static void SetPerformedRentalSwap(void) { - gUnknown_03001288 = TRUE; + sPerformedRentalSwap = TRUE; } -static void sub_81A61B0(void) +static void GenerateOpponentMons(void) { - s32 i, j, k; + int i, j, k; u16 species[3]; u16 heldItems[3]; - s32 firstMonId = 0; + int firstMonId = 0; u16 trainerId = 0; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -322,7 +322,7 @@ static void sub_81A61B0(void) for (j = 0; j < 6; j++) { - if (gFacilityTrainerMons[monSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species) + if (gFacilityTrainerMons[monSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species) break; } if (j != 6) @@ -333,6 +333,7 @@ static void sub_81A61B0(void) for (k = firstMonId; k < firstMonId + i; k++) { + // BUG: Small undefined behavior bug, since species array values were not initialized. if (species[k] == gFacilityTrainerMons[monSetId].species) break; } @@ -341,6 +342,7 @@ static void sub_81A61B0(void) for (k = firstMonId; k < firstMonId + i; k++) { + // BUG: Small undefined behavior bug, since heldItems array values were not initialized. if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]) break; } @@ -354,12 +356,12 @@ static void sub_81A61B0(void) } } -static void sub_81A63B8(void) +static void SetOpponentGfxVar(void) { SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); } -static void sub_81A63CC(void) +static void SetRentalsToOpponentParty(void) { u8 i; @@ -370,18 +372,18 @@ static void sub_81A63CC(void) for (i = 0; i < 3; i++) { - gSaveBlock2Ptr->frontier.field_E70[i + 3].monId = gUnknown_03006298[i]; - gSaveBlock2Ptr->frontier.field_E70[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL); - gSaveBlock2Ptr->frontier.field_E70[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[i + 3].abilityBit = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ALT_ABILITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gUnknown_03006298[i]; + gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityBit = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ALT_ABILITY, NULL); SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[gUnknown_03006298[i]].itemTableId]); } } -static void sub_81A64C4(void) +static void SetPlayerAndOpponentParties(void) { - s32 i, j, k; - s32 count = 0; + int i, j, k; + int count = 0; u8 bits = 0; u8 monLevel; u16 monSetId; @@ -408,13 +410,13 @@ static void sub_81A64C4(void) ZeroPlayerPartyMons(); for (i = 0; i < 3; i++) { - monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; - ivs = gSaveBlock2Ptr->frontier.field_E70[i].ivs; + monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId; + ivs = gSaveBlock2Ptr->frontier.rentalMons[i].ivs; CreateMon(&gPlayerParty[i], gFacilityTrainerMons[monSetId].species, monLevel, ivs, - TRUE, gSaveBlock2Ptr->frontier.field_E70[i].personality, + TRUE, gSaveBlock2Ptr->frontier.rentalMons[i].personality, 0, 0); count = 0; @@ -439,7 +441,7 @@ static void sub_81A64C4(void) SetMonMoveAvoidReturn(&gPlayerParty[i], gFacilityTrainerMons[monSetId].moves[k], k); SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &friendship); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); - SetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.field_E70[i].abilityBit); + SetMonData(&gPlayerParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.rentalMons[i].abilityBit); } } @@ -449,13 +451,13 @@ static void sub_81A64C4(void) case 2: for (i = 0; i < 3; i++) { - monSetId = gSaveBlock2Ptr->frontier.field_E70[i + 3].monId; - ivs = gSaveBlock2Ptr->frontier.field_E70[i + 3].ivs; + monSetId = gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId; + ivs = gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs; CreateMon(&gEnemyParty[i], gFacilityTrainerMons[monSetId].species, monLevel, ivs, - TRUE, gSaveBlock2Ptr->frontier.field_E70[i + 3].personality, + TRUE, gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality, 0, 0); count = 0; @@ -478,15 +480,15 @@ static void sub_81A64C4(void) for (k = 0; k < MAX_MON_MOVES; k++) SetMonMoveAvoidReturn(&gEnemyParty[i], gFacilityTrainerMons[monSetId].moves[k], k); SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); - SetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.field_E70[i + 3].abilityBit); + SetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY, &gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityBit); } break; } } -static void sub_81A67EC(void) +static void GenerateInitialRentalMons(void) { - s32 i, j; + int i, j; u8 firstMonId; u8 battleMode; u8 lvlMode; @@ -526,7 +528,7 @@ static void sub_81A67EC(void) factoryLvlMode = FRONTIER_LVL_50; firstMonId = 0; } - var_40 = sub_81A6F70(factoryBattleMode, factoryLvlMode); + var_40 = GetNumPastRentalsRank(factoryBattleMode, factoryLvlMode); currSpecies = SPECIES_NONE; i = 0; @@ -570,7 +572,7 @@ static void sub_81A67EC(void) if (j != firstMonId + i) continue; - gSaveBlock2Ptr->frontier.field_E70[i].monId = monSetId; + gSaveBlock2Ptr->frontier.rentalMons[i].monId = monSetId; species[i] = gFacilityTrainerMons[monSetId].species; heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]; monIds[i] = monSetId; @@ -578,7 +580,7 @@ static void sub_81A67EC(void) } } -static void sub_81A6A08(void) +static void GetOpponentMostCommonMonType(void) { u8 i; u8 typesCount[NUMBER_OF_MON_TYPES]; @@ -613,7 +615,7 @@ static void sub_81A6A08(void) gSpecialVar_Result = NUMBER_OF_MON_TYPES; } -static void sub_81A6AEC(void) +static void GetOpponentBattleStyle(void) { u8 i, j, count; u8 stylePoints[8]; @@ -622,13 +624,14 @@ static void sub_81A6AEC(void) gFacilityTrainerMons = gBattleFrontierMons; for (i = 0; i < 8; i++) stylePoints[i] = 0; + for (i = 0; i < 3; i++) { u16 monSetId = gUnknown_03006298[i]; for (j = 0; j < MAX_MON_MOVES; j++) { - u8 id = GetStyleForMove(gFacilityTrainerMons[monSetId].moves[j]); - stylePoints[id]++; + u8 battleStyle = GetMoveBattleStyle(gFacilityTrainerMons[monSetId].moves[j]); + stylePoints[battleStyle]++; } } @@ -641,11 +644,12 @@ static void sub_81A6AEC(void) count++; } } + if (count > 2) gSpecialVar_Result = 8; } -static u8 GetStyleForMove(u16 move) +static u8 GetMoveBattleStyle(u16 move) { const u16 *moves; u8 i, j; @@ -661,13 +665,13 @@ static u8 GetStyleForMove(u16 move) return 0; } -bool8 sub_81A6BF4(void) +bool8 InBattleFactory(void) { return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM; } -static void sub_81A6C1C(void) +static void RestorePlayerPartyHeldItems(void) { u8 i; @@ -680,7 +684,7 @@ static void sub_81A6C1C(void) { SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, - &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[i].monId].itemTableId]); + &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[i].monId].itemTableId]); } } @@ -699,11 +703,11 @@ u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1) void FillFactoryBrainParty(void) { - s32 i, j, k; + int i, j, k; u16 species[3]; u16 heldItems[3]; u8 friendship; - s32 monLevel; + int monLevel; u8 fixedIV; u32 otId; @@ -726,7 +730,7 @@ void FillFactoryBrainParty(void) for (j = 0; j < 6; j++) { - if (monSetId == gSaveBlock2Ptr->frontier.field_E70[j].monId) + if (monSetId == gSaveBlock2Ptr->frontier.rentalMons[j].monId) break; } if (j != 6) @@ -769,7 +773,7 @@ void FillFactoryBrainParty(void) static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2) { - u16 range, ret; + u16 range, monSetId; u16 adder; if (lvlMode == FRONTIER_LVL_50) @@ -782,14 +786,14 @@ static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2) if (arg2) { range = (sMonsToChooseFrom[adder + challengeNum + 1][1] - sMonsToChooseFrom[adder + challengeNum + 1][0]) + 1; - ret = Random() % range; - ret += sMonsToChooseFrom[adder + challengeNum + 1][0]; + monSetId = Random() % range; + monSetId += sMonsToChooseFrom[adder + challengeNum + 1][0]; } else { range = (sMonsToChooseFrom[adder + challengeNum][1] - sMonsToChooseFrom[adder + challengeNum][0]) + 1; - ret = Random() % range; - ret += sMonsToChooseFrom[adder + challengeNum][0]; + monSetId = Random() % range; + monSetId += sMonsToChooseFrom[adder + challengeNum][0]; } } else @@ -798,14 +802,14 @@ static u16 GetMonSetId(u8 lvlMode, u8 challengeNum, bool8 arg2) if (num != 7) num = 7; range = (sMonsToChooseFrom[adder + num][1] - sMonsToChooseFrom[adder + num][0]) + 1; - ret = Random() % range; - ret += sMonsToChooseFrom[adder + num][0]; + monSetId = Random() % range; + monSetId += sMonsToChooseFrom[adder + num][0]; } - return ret; + return monSetId; } -u8 sub_81A6F70(u8 battleMode, u8 lvlMode) +u8 GetNumPastRentalsRank(u8 battleMode, u8 lvlMode) { u8 ret; u8 rents = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; @@ -828,7 +832,7 @@ u8 sub_81A6F70(u8 battleMode, u8 lvlMode) u32 GetAiScriptsInBattleFactory(void) { - s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + int lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (lvlMode == FRONTIER_LVL_TENT) { @@ -836,8 +840,8 @@ u32 GetAiScriptsInBattleFactory(void) } else { - s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); - s32 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7; + int battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + int challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7; if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) return AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 7831ef750..bb9fe8e28 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1673,12 +1673,12 @@ static void CreateFrontierFactorySelectableMons(u8 firstMonId) else level = 50; - var_28 = sub_81A6F70(battleMode, lvlMode); + var_28 = GetNumPastRentalsRank(battleMode, lvlMode); otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + u16 monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId; sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; if (i < var_28) ivs = GetFactoryMonFixedIV(challengeNum + 1, 0); @@ -1712,7 +1712,7 @@ static void CreateTentFactorySelectableMons(u8 firstMonId) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + u16 monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId; sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; CreateMonWithEVSpreadNatureOTID(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].species, @@ -1740,10 +1740,10 @@ static void Select_CopyMonsToPlayerParty(void) if (sFactorySelectScreen->mons[j].selectedId == i + 1) { gPlayerParty[i] = sFactorySelectScreen->mons[j].monData; - gSaveBlock2Ptr->frontier.field_E70[i].monId = sFactorySelectScreen->mons[j].monSetId; - gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i].monId = sFactorySelectScreen->mons[j].monSetId; + gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); break; } } @@ -2263,10 +2263,10 @@ static void CopySwappedMonData(void) gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId]; happiness = 0; SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].monId; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].ivs; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].monId; + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->enemyMonId + 3].ivs; + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); } static void Task_FromSwapScreenToSummaryScreen(u8 taskId) diff --git a/src/battle_tent.c b/src/battle_tent.c index d85883cd5..b07020822 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -329,7 +329,7 @@ static void sub_81B9EC0(void) if (j != i + firstMonId) continue; - gSaveBlock2Ptr->frontier.field_E70[i].monId = monSetId; + gSaveBlock2Ptr->frontier.rentalMons[i].monId = monSetId; species[i] = gFacilityTrainerMons[monSetId].species; heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]; monIds[i] = monSetId; @@ -379,7 +379,7 @@ static void sub_81BA040(void) sRandMonSetId = monSets[Random() % setsCount]; for (j = 0; j < 6; j++) { - if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species) + if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species) break; } if (j != 6) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index d878d2c9e..46bdc9ef3 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2801,7 +2801,7 @@ static void CreatePageWindowTilemaps(u8 page) case PSS_PAGE_INFO: PutWindowTilemap(0); PutWindowTilemap(4); - if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) + if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE) PutWindowTilemap(8); PutWindowTilemap(9); break; @@ -2852,7 +2852,7 @@ static void ClearPageWindowTilemaps(u8 page) { case PSS_PAGE_INFO: ClearWindowTilemap(4); - if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE) + if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE) ClearWindowTilemap(8); ClearWindowTilemap(9); break; @@ -2985,7 +2985,7 @@ static void PrintMonOTName(void) { u8 windowId; int x; - if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) + if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) { windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); @@ -3000,7 +3000,7 @@ static void PrintMonOTName(void) static void PrintMonOTID(void) { int xPos; - if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE) + if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) { ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); @@ -3030,7 +3030,7 @@ static void BufferMonTrainerMemo(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B); BufferNatureString(); - if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) + if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) { DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_XNature); } -- cgit v1.2.3 From 85040e26fd82003e69aad6caac9d512319871877 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Feb 2019 17:37:41 -0600 Subject: Document battle pike --- src/battle_factory.c | 2 - src/battle_pike.c | 761 ++++++++++++++++++++++++++------------------------- src/battle_pyramid.c | 6 +- 3 files changed, 395 insertions(+), 374 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 170a1b91e..d08ffe6e6 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -333,7 +333,6 @@ static void GenerateOpponentMons(void) for (k = firstMonId; k < firstMonId + i; k++) { - // BUG: Small undefined behavior bug, since species array values were not initialized. if (species[k] == gFacilityTrainerMons[monSetId].species) break; } @@ -342,7 +341,6 @@ static void GenerateOpponentMons(void) for (k = firstMonId; k < firstMonId + i; k++) { - // BUG: Small undefined behavior bug, since heldItems array values were not initialized. if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]) break; } diff --git a/src/battle_pike.c b/src/battle_pike.c index a93a5725d..f2f2025d7 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -16,6 +16,7 @@ #include "constants/event_objects.h" #include "constants/battle_frontier.h" #include "constants/abilities.h" +#include "constants/easy_chat.h" #include "constants/layouts.h" #include "constants/rgb.h" #include "constants/trainers.h" @@ -36,12 +37,12 @@ #define PIKE_STATUS_KIRLIA 0 #define PIKE_STATUS_DUSCLOPS 1 -struct Unk0861231C +struct PikeRoomNPC { - u16 unk0; - u8 unk2; - u8 unk3; - u8 unk4; + u16 graphicsId; + u8 speechId1; + u8 speechId2; + u8 speechId3; }; struct PikeWildMon @@ -56,50 +57,50 @@ static IWRAM_DATA u8 sRoomType; static IWRAM_DATA u8 sStatusMon; static IWRAM_DATA bool8 sUnknown_0300128E; static IWRAM_DATA u32 sStatusFlags; -static IWRAM_DATA u8 sUnknown_03001294; +static IWRAM_DATA u8 sNpcId; // This file's functions. -static void sub_81A705C(void); -static void sub_81A7140(void); -static void sub_81A7248(void); -static void sub_81A73B8(void); -static void sub_81A7070(void); -static void sub_81A73EC(void); +static void SetRoomType(void); +static void GetBattlePikeData(void); +static void SetBattlePikeData(void); +static void GetInFinalRoom(void); +static void SetupRoomEventObjects(void); +static void GetRoomType(void); static void sub_81A7400(void); static void sub_81A740C(void); static void sub_81A7418(void); static void nullsub_76(void); static void nullsub_124(void); -static void sub_81A7468(void); -static void sub_81A74CC(void); -static void sub_81A74E0(void); -static void sub_81A7508(void); -static void sub_81A7580(void); -static void sub_81A8090(void); -static void sub_81A80DC(void); -static void sub_81A825C(void); -static void sub_81A827C(void); -static void sub_81A84B4(void); -static void sub_81A84EC(void); -static void sub_81A863C(void); -static void sub_81A8658(void); -static void sub_81A869C(void); -static void sub_81A86C0(void); -static void sub_81A8794(void); -static void sub_81A87E8(void); -static void sub_81A8830(void); +static void GetRoomInflictedStatus(void); +static void GetRoomInflictedStatusMon(void); +static void HealOneOrTwoMons(void); +static void BufferNPCMessage(void); +static void StatusInflictionScreenFade(void); +static void GetInBattlePike(void); +static void SetHintedRoom(void); +static void GetHintedRoomIndex(void); +static void GetRoomTypeHint(void); +static void ClearPikeTrainerIds(void); +static void BufferRecordMixingTrainerMessage(void); +static void GetCurrentRoomPikeQueenFightType(void); +static void HealSomeMonsBeforePikeQueen(void); +static void SetHealingRoomsDisabled(void); +static void CanAnyPartyMonsBeHealed(void); +static void BackupMonHeldItems(void); +static void RestoreMonHeldItems(void); +static void InitPikeChallenge(void); static u8 GetNextRoomType(void); static void PrepareOneTrainer(bool8 difficult); -static u16 sub_81A7B58(void); +static u16 GetNPCRoomGraphicsId(void); static void PrepareTwoTrainers(void); static void TryHealMons(u8 healCount); -static void sub_81A7EE4(u8 taskId); +static void Task_DoStatusInflictionScreenFade(u8 taskId); static bool8 AtLeastTwoAliveMons(void); static u8 SpeciesToPikeMonId(u16 species); static bool8 CanEncounterWildMon(u8 monLevel); -static u8 sub_81A8590(u8); -static bool8 sub_81A7D8C(struct Task *task); -static bool8 sub_81A7DE8(struct Task *task); +static u8 GetPikeQueenFightType(u8); +static bool8 StatusInflictionFadeOut(struct Task *task); +static bool8 StatusInflictionFadeIn(struct Task *task); // Const rom data. static const struct PikeWildMon sLvl50_Mons1[] = @@ -276,253 +277,264 @@ static const struct PikeWildMon *const *const sWildMons[2] = [FRONTIER_LVL_OPEN] = sLvlOpenMons }; -static const struct Unk0861231C gUnknown_0861231C[] = +static const struct PikeRoomNPC sNPCTable[] = { { - .unk0 = 0x0012, - .unk2 = 0x03, - .unk3 = 0x05, - .unk4 = 0x06 + .graphicsId = EVENT_OBJ_GFX_POKEFAN_F, + .speechId1 = 3, + .speechId2 = 5, + .speechId3 = 6 }, { - .unk0 = 0x0005, - .unk2 = 0x0d, - .unk3 = 0x20, - .unk4 = 0x25 + .graphicsId = EVENT_OBJ_GFX_NINJA_BOY, + .speechId1 = 13, + .speechId2 = 32, + .speechId3 = 37 }, { - .unk0 = 0x0011, - .unk2 = 0x08, - .unk3 = 0x0b, - .unk4 = 0x0c + .graphicsId = EVENT_OBJ_GFX_FAT_MAN, + .speechId1 = 8, + .speechId2 = 11, + .speechId3 = 12 }, { - .unk0 = 0x0024, - .unk2 = 0x22, - .unk3 = 0x1e, - .unk4 = 0x21 + .graphicsId = EVENT_OBJ_GFX_BUG_CATCHER, + .speechId1 = 34, + .speechId2 = 30, + .speechId3 = 33 }, { - .unk0 = 0x0015, - .unk2 = 0x00, - .unk3 = 0x00, - .unk4 = 0x00 + .graphicsId = EVENT_OBJ_GFX_EXPERT_M, + .speechId1 = 0, + .speechId2 = 0, + .speechId3 = 0 }, { - .unk0 = 0x001e, - .unk2 = 0x01, - .unk3 = 0x01, - .unk4 = 0x01 + .graphicsId = EVENT_OBJ_GFX_OLD_WOMAN, + .speechId1 = 1, + .speechId2 = 1, + .speechId3 = 1 }, { - .unk0 = 0x002c, - .unk2 = 0x16, - .unk3 = 0x17, - .unk4 = 0x1b + .graphicsId = EVENT_OBJ_GFX_BLACK_BELT, + .speechId1 = 22, + .speechId2 = 23, + .speechId3 = 27 }, { - .unk0 = 0x0037, - .unk2 = 0x08, - .unk3 = 0x16, - .unk4 = 0x1f + .graphicsId = EVENT_OBJ_GFX_HIKER, + .speechId1 = 8, + .speechId2 = 22, + .speechId3 = 31 }, { - .unk0 = 0x000e, - .unk2 = 0x0d, - .unk3 = 0x27, - .unk4 = 0x15 + .graphicsId = EVENT_OBJ_GFX_GIRL_3, + .speechId1 = 13, + .speechId2 = 39, + .speechId3 = 21 }, { - .unk0 = 0x0014, - .unk2 = 0x02, - .unk3 = 0x04, - .unk4 = 0x11 + .graphicsId = EVENT_OBJ_GFX_WOMAN_2, + .speechId1 = 2, + .speechId2 = 4, + .speechId3 = 17 }, { - .unk0 = 0x0038, - .unk2 = 0x1e, - .unk3 = 0x14, - .unk4 = 0x24 + .graphicsId = EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M, + .speechId1 = 30, + .speechId2 = 20, + .speechId3 = 36 }, { - .unk0 = 0x0042, - .unk2 = 0x1c, - .unk3 = 0x22, - .unk4 = 0x19 + .graphicsId = EVENT_OBJ_GFX_MAN_5, + .speechId1 = 28, + .speechId2 = 34, + .speechId3 = 25 }, { - .unk0 = 0x0026, - .unk2 = 0x17, - .unk3 = 0x26, - .unk4 = 0x1a + .graphicsId = EVENT_OBJ_GFX_SCHOOL_KID_M, + .speechId1 = 23, + .speechId2 = 38, + .speechId3 = 26 }, { - .unk0 = 0x0032, - .unk2 = 0x17, - .unk3 = 0x1e, - .unk4 = 0x0b + .graphicsId = EVENT_OBJ_GFX_FISHERMAN, + .speechId1 = 23, + .speechId2 = 30, + .speechId3 = 11 }, { - .unk0 = 0x002f, - .unk2 = 0x0f, - .unk3 = 0x13, - .unk4 = 0x0e + .graphicsId = EVENT_OBJ_GFX_LASS, + .speechId1 = 15, + .speechId2 = 19, + .speechId3 = 14 }, { - .unk0 = 0x0027, - .unk2 = 0x02, - .unk3 = 0x1d, - .unk4 = 0x1a + .graphicsId = EVENT_OBJ_GFX_MANIAC, + .speechId1 = 2, + .speechId2 = 29, + .speechId3 = 26 }, { - .unk0 = 0x0033, - .unk2 = 0x25, - .unk3 = 0x0c, - .unk4 = 0x20 + .graphicsId = EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M, + .speechId1 = 37, + .speechId2 = 12, + .speechId3 = 32 }, { - .unk0 = 0x0021, - .unk2 = 0x18, - .unk3 = 0x17, - .unk4 = 0x26 + .graphicsId = EVENT_OBJ_GFX_MAN_3, + .speechId1 = 24, + .speechId2 = 23, + .speechId3 = 38 }, { - .unk0 = 0x0018, - .unk2 = 0x05, - .unk3 = 0x16, - .unk4 = 0x04 + .graphicsId = EVENT_OBJ_GFX_WOMAN_3, + .speechId1 = 5, + .speechId2 = 22, + .speechId3 = 4 }, { - .unk0 = 0x000b, - .unk2 = 0x29, - .unk3 = 0x25, - .unk4 = 0x23 + .graphicsId = EVENT_OBJ_GFX_LITTLE_BOY, + .speechId1 = 41, + .speechId2 = 37, + .speechId3 = 35 }, { - .unk0 = 0x0035, - .unk2 = 0x27, - .unk3 = 0x0e, - .unk4 = 0x0d + .graphicsId = EVENT_OBJ_GFX_TUBER_F, + .speechId1 = 39, + .speechId2 = 14, + .speechId3 = 13 }, { - .unk0 = 0x0030, - .unk2 = 0x0a, - .unk3 = 0x07, - .unk4 = 0x09 + .graphicsId = EVENT_OBJ_GFX_GENTLEMAN, + .speechId1 = 10, + .speechId2 = 7, + .speechId3 = 9 }, { - .unk0 = 0x000c, - .unk2 = 0x28, - .unk3 = 0x14, - .unk4 = 0x10 + .graphicsId = EVENT_OBJ_GFX_LITTLE_GIRL, + .speechId1 = 40, + .speechId2 = 20, + .speechId3 = 16 }, { - .unk0 = 0x0034, - .unk2 = 0x12, - .unk3 = 0x0d, - .unk4 = 0x15 + .graphicsId = EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, + .speechId1 = 18, + .speechId2 = 13, + .speechId3 = 21 }, { - .unk0 = 0x0013, - .unk2 = 0x16, - .unk3 = 0x1f, - .unk4 = 0x1b + .graphicsId = EVENT_OBJ_GFX_MAN_1, + .speechId1 = 22, + .speechId2 = 31, + .speechId3 = 27 } }; -static const u16 gUnknown_086123E4[][6] = -{ - {0x0a29, 0x0630, 0x0a01, 0x140f, 0x1020, 0x270e}, - {0x0a2a, 0x081d, 0x061b, 0x1034, 0x1e20, 0x0a29}, - {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1a, 0x0c03}, - {0x1e0f, 0x100b, 0x1039, 0x200f, 0x102b, 0x0a14}, - {0x103b, 0x0a02, 0x161e, 0x1020, 0x143e, 0x0c03}, - {0x0a31, 0x0e02, 0x0e15, 0x1436, 0x1037, 0x1e0a}, - {0x0a29, 0x1025, 0x142a, 0x1034, 0x1e0f, 0x0a1b}, - {0x0a01, 0x0e07, 0x122a, 0x1e0f, 0x061f, 0xffff}, - {0x1a35, 0x1036, 0x0e0f, 0x0a01, 0x2621, 0x1e0f}, - {0x0e25, 0x102f, 0x062d, 0x201e, 0x0c03, 0xffff}, - {0x0c1d, 0x081d, 0x0a2b, 0x100f, 0x0a02, 0x0c03}, - {0x0a2a, 0x0a3e, 0x2000, 0x1027, 0x1c08, 0x0c04}, - {0x0a01, 0x1212, 0x0a01, 0x1000, 0x062d, 0xffff}, - {0x1e22, 0x1231, 0x0a01, 0x1018, 0x1c1c, 0x0c03}, - {0x0a01, 0x060b, 0x1030, 0x0a28, 0x2549, 0x0624}, - {0x1014, 0x0a2c, 0x0415, 0x1642, 0x1e1b, 0x0c03}, - {0x0628, 0x1a0f, 0x100b, 0x2017, 0x0c00, 0xffff}, - {0x0a01, 0x1015, 0x1647, 0x1e0f, 0x0e39, 0x0e36}, - {0x0a01, 0x1017, 0x1620, 0x0e19, 0x0a31, 0x0c38}, - {0x0c1d, 0x081d, 0x0c00, 0x1022, 0x1c12, 0x020b}, - {0x1029, 0x1404, 0x102f, 0x1006, 0x1e28, 0x1c1c}, - {0x1029, 0x0e20, 0x1028, 0x1c16, 0x1e29, 0x0c03}, - {0x1e0f, 0x100b, 0x0e2f, 0x0638, 0x100c, 0xffff}, - {0x0a29, 0x1408, 0x102f, 0x061e, 0x102c, 0xffff}, - {0x1023, 0x100b, 0x081d, 0x062d, 0x1037, 0x0a14}, - {0x0a29, 0x1022, 0x1408, 0x102f, 0x161e, 0x1029}, - {0x0601, 0x102c, 0x0a01, 0x1015, 0x0e39, 0x0e36}, - {0x1020, 0x020b, 0x103f, 0x1c12, 0x0c04, 0xffff}, - {0x1018, 0x0a02, 0x103a, 0x0446, 0x020e, 0x0c03}, - {0x1e10, 0x020b, 0x1e0a, 0x100b, 0x063a, 0xffff}, - {0x0a02, 0x1212, 0x1e0f, 0x100b, 0x0638, 0x0c03}, - {0x1e22, 0x1000, 0x161b, 0x103f, 0x1e0f, 0x0c03}, - {0x0a29, 0x0e1e, 0x1025, 0x1e26, 0x0c00, 0xffff}, - {0x0a01, 0x0e1e, 0x1236, 0x102f, 0x120b, 0x0c04}, - {0x2805, 0x1e0f, 0x0a1b, 0x100b, 0x1020, 0x063b}, - {0x0a01, 0x101f, 0x0a3e, 0x1037, 0x1020, 0x0628}, - {0x1026, 0x0a31, 0x1e29, 0x1c1c, 0x0a01, 0x1212}, - {0x0c0a, 0x0c00, 0x1029, 0x101c, 0x1e0f, 0x0c23}, - {0x0a28, 0x020e, 0x100f, 0x1039, 0x142a, 0x0c04}, - {0x0a28, 0x020e, 0x100f, 0x0620, 0x102f, 0x043c}, - {0x0c39, 0x0c39, 0x0c00, 0x0a29, 0x2017, 0x0c39}, - {0x265c, 0x100b, 0x1020, 0x1230, 0x1e05, 0x100c}, +static const u16 sNPCSpeeches[][6] = +{ + {EC_WORD_I_AM, EC_WORD_LOST, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, + {EC_WORD_I_VE, EC_WORD_NO, EC_WORD_SENSE, EC_WORD_OF, EC_WORD_WHERE, EC_WORD_I_AM}, + {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_NOW, EC_WORD_QUES}, + {EC_WORD_THIS, EC_WORD_IS, EC_WORD_TOO, EC_WORD_EXCITING, EC_WORD_FOR, EC_WORD_ME}, + {EC_WORD_DID, EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES}, + {EC_WORD_IT_S, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_IN, EC_WORD_HERE}, + {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_TIRED, EC_WORD_OF, EC_WORD_THIS, EC_WORD_PLACE}, + {EC_WORD_I, EC_WORD_QUITE, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_CHALLENGE, 0xFFFF}, + {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_HOW, EC_WORD_I, EC_MOVE2(TACKLE), EC_WORD_THIS}, + {EC_WORD_READY, EC_WORD_TO, EC_WORD_GIVE_UP, EC_WORD_YET, EC_WORD_QUES, 0xFFFF}, + {EC_WORD_OH, EC_WORD_NO, EC_WORD_WHO, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_QUES}, + {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_WANDERING, EC_WORD_ABOUT, EC_WORD_FOREVER, EC_WORD_ELLIPSIS}, + {EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_WILL, EC_WORD_GIVE_UP, 0xFFFF}, + {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_NEXT, EC_WORD_QUES}, + {EC_WORD_I, EC_WORD_CAN_WIN, EC_WORD_WITH, EC_WORD_MY, EC_MOVE(SHEER_COLD), EC_WORD_GENIUS}, + {EC_WORD_WON_T, EC_WORD_SOMEONE, EC_WORD_COOL, EC_WORD_SHOW, EC_WORD_UP, EC_WORD_QUES}, + {EC_WORD_BATTLE, EC_WORD_GAME, EC_WORD_IS, EC_WORD_AWESOME, EC_WORD_EXCL, 0xFFFF}, + {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_THIS, EC_WORD_ANY, EC_WORD_MORE}, + {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_IF, EC_WORD_IT_S, EC_WORD_OKAY}, + {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER}, + {EC_WORD_IT, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_LEFT, EC_WORD_NEXT}, + {EC_WORD_IT, EC_WORD_MUST_BE, EC_WORD_OVER, EC_WORD_SOON, EC_WORD_RIGHT, EC_WORD_QUES}, + {EC_WORD_THIS, EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_EASY, EC_WORD_ISN_T_IT_QUES, 0xFFFF}, + {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_POWER, EC_WORD_ON, 0xFFFF}, + {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_GIVE_UP, EC_WORD_IN, EC_WORD_ME}, + {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_IT}, + {EC_WORD_GO, EC_WORD_ON, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ANY, EC_WORD_MORE}, + {EC_WORD_A, EC_WORD_TRAINER, EC_WORD_AFTER, EC_WORD_ANOTHER, EC_WORD_ELLIPSIS, 0xFFFF}, + {EC_WORD_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_STEEL, EC_WORD_POKEMON, EC_WORD_QUES}, + {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HERE, EC_WORD_IS, EC_WORD_TOO_WEAK, 0xFFFF}, + {EC_WORD_YOU, EC_WORD_THINK, EC_WORD_THIS, EC_WORD_IS, EC_WORD_EASY, EC_WORD_QUES}, + {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_COME, EC_WORD_AFTER, EC_WORD_THIS, EC_WORD_QUES}, + {EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_SO, EC_WORD_CONFUSED, EC_WORD_EXCL, 0xFFFF}, + {EC_WORD_I, EC_WORD_JUST, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_ELLIPSIS}, + {EC_WORD_YEEHAW_EXCL, EC_WORD_THIS, EC_WORD_PLACE, EC_WORD_IS, EC_WORD_A, EC_WORD_PUSHOVER}, + {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_BEEN, EC_WORD_IN, EC_WORD_A, EC_WORD_BATTLE}, + {EC_WORD_MAYBE, EC_WORD_IT_S, EC_WORD_RIGHT, EC_WORD_NEXT, EC_WORD_I, EC_WORD_THINK}, + {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_IT, EC_WORD_WASN_T, EC_WORD_THIS, EC_WORD_WAY}, + {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_TOO, EC_WORD_TIRED, EC_WORD_ELLIPSIS}, + {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_STRONG, EC_WORD_TO, EC_WORD_POISON}, + {EC_WORD_LALALA, EC_WORD_LALALA, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_AWESOME, EC_WORD_LALALA}, + {EC_MOVE2(TOXIC), EC_WORD_IS, EC_WORD_A, EC_WORD_TERRIBLE, EC_WORD_THING, EC_WORD_ISN_T_IT_QUES}, }; -static const u8 gUnknown_086125DC[][4] = +// Only the 5th array in this data is used by the code. +static const u8 sPikeQueenWinStreakAppearances[][4] = { - {0x23, 0x46, 0x23, 0x01}, - {0x04, 0x09, 0x05, 0x00}, - {0x15, 0x2a, 0x15, 0x01}, - {0x1c, 0x38, 0x1c, 0x01}, - {0x15, 0x2a, 0x15, 0x01}, - {0x1c, 0x8c, 0x38, 0x01}, - {0x15, 0x46, 0x23, 0x00}, + {35, 70, 35, 1}, + { 4, 9, 5, 0}, + {21, 42, 21, 1}, + {28, 56, 28, 1}, + {21, 42, 21, 1}, + {28, 140, 56, 1}, + {21, 70, 35, 0}, }; static void (* const sBattlePikeFunctions[])(void) = { - sub_81A705C, - sub_81A7140, - sub_81A7248, - sub_81A73B8, - sub_81A7070, - sub_81A73EC, + SetRoomType, + GetBattlePikeData, + SetBattlePikeData, + GetInFinalRoom, + SetupRoomEventObjects, + GetRoomType, sub_81A7400, sub_81A740C, sub_81A7418, nullsub_76, nullsub_124, - sub_81A7468, - sub_81A74CC, - sub_81A74E0, - sub_81A7508, - sub_81A7580, - sub_81A8090, - sub_81A80DC, - sub_81A825C, - sub_81A827C, - sub_81A84B4, - sub_81A84EC, - sub_81A863C, - sub_81A8658, - sub_81A869C, - sub_81A86C0, - sub_81A8794, - sub_81A87E8, - sub_81A8830 + GetRoomInflictedStatus, + GetRoomInflictedStatusMon, + HealOneOrTwoMons, + BufferNPCMessage, + StatusInflictionScreenFade, + GetInBattlePike, + SetHintedRoom, + GetHintedRoomIndex, + GetRoomTypeHint, + ClearPikeTrainerIds, + BufferRecordMixingTrainerMessage, + GetCurrentRoomPikeQueenFightType, + HealSomeMonsBeforePikeQueen, + SetHealingRoomsDisabled, + CanAnyPartyMonsBeHealed, + BackupMonHeldItems, + RestoreMonHeldItems, + InitPikeChallenge }; -static const u8 gUnknown_0861266C[] = {3, 3, 1, 0, 0, 2, 2, 1, 4}; +static const u8 sRoomTypeHints[] = { + 3, // PIKE_ROOM_SINGLE_BATTLE + 3, // PIKE_ROOM_HEAL_FULL + 1, // PIKE_ROOM_NPC + 0, // PIKE_ROOM_STATUS + 0, // PIKE_ROOM_HEAL_PART + 2, // PIKE_ROOM_WILD_MONS + 2, // PIKE_ROOM_HARD_BATTLE + 1, // PIKE_ROOM_DOUBLE_BATTLE + 4, // PIKE_ROOM_BRAIN +}; -static const u8 gUnknown_08612675[][3] = +static const u8 sNumMonsToHealBeforePikeQueen[][3] = { {2, 1, 0}, {2, 0, 1}, @@ -532,9 +544,9 @@ static const u8 gUnknown_08612675[][3] = {0, 1, 2}, }; -static bool8 (* const gUnknown_08612688[])(struct Task *) = +static bool8 (* const sStatusInflictionScreenFadeFuncs[])(struct Task *) = { - sub_81A7D8C, sub_81A7DE8 + StatusInflictionFadeOut, StatusInflictionFadeIn }; static const u32 gUnknown_08612690[] = {0x400, 0x800}; @@ -545,78 +557,78 @@ void CallBattlePikeFunction(void) sBattlePikeFunctions[gSpecialVar_0x8004](); } -static void sub_81A705C(void) +static void SetRoomType(void) { u8 roomType = GetNextRoomType(); sRoomType = roomType; } -static void sub_81A7070(void) +static void SetupRoomEventObjects(void) { - bool32 setPerson1, setPerson2; - u32 person1; - u16 person2; + bool32 setObjGfx1, setObjGfx2; + u32 objGfx1; + u16 objGfx2; VarSet(VAR_OBJ_GFX_ID_0, EVENT_OBJ_GFX_LINK_RECEPTIONIST); VarSet(VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_DUSCLOPS); - setPerson1 = TRUE; - setPerson2 = FALSE; - person1 = 0; - person2 = 0; + setObjGfx1 = TRUE; + setObjGfx2 = FALSE; + objGfx1 = 0; + objGfx2 = 0; switch (sRoomType) { case PIKE_ROOM_SINGLE_BATTLE: PrepareOneTrainer(FALSE); - setPerson1 = FALSE; + setObjGfx1 = FALSE; break; case PIKE_ROOM_HEAL_FULL: - person1 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; + objGfx1 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; break; case PIKE_ROOM_NPC: - person1 = (u8)(sub_81A7B58()); + objGfx1 = (u8)(GetNPCRoomGraphicsId()); break; case PIKE_ROOM_STATUS: - person1 = EVENT_OBJ_GFX_GENTLEMAN; + objGfx1 = EVENT_OBJ_GFX_GENTLEMAN; if (sStatusMon == PIKE_STATUS_DUSCLOPS) - person2 = EVENT_OBJ_GFX_DUSCLOPS; + objGfx2 = EVENT_OBJ_GFX_DUSCLOPS; else - person2 = EVENT_OBJ_GFX_KIRLIA; - setPerson2 = TRUE; + objGfx2 = EVENT_OBJ_GFX_KIRLIA; + setObjGfx2 = TRUE; break; case PIKE_ROOM_HEAL_PART: - person1 = EVENT_OBJ_GFX_GENTLEMAN; + objGfx1 = EVENT_OBJ_GFX_GENTLEMAN; break; case PIKE_ROOM_WILD_MONS: - setPerson1 = FALSE; + setObjGfx1 = FALSE; break; case PIKE_ROOM_HARD_BATTLE: PrepareOneTrainer(TRUE); - person2 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; - setPerson1 = FALSE; - setPerson2 = TRUE; + objGfx2 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; + setObjGfx1 = FALSE; + setObjGfx2 = TRUE; break; case PIKE_ROOM_DOUBLE_BATTLE: PrepareTwoTrainers(); - setPerson1 = FALSE; + setObjGfx1 = FALSE; break; case PIKE_ROOM_BRAIN: SetFrontierBrainEventObjGfx(FRONTIER_FACILITY_PIKE); - person2 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; - setPerson1 = FALSE; - setPerson2 = TRUE; + objGfx2 = EVENT_OBJ_GFX_LINK_RECEPTIONIST; + setObjGfx1 = FALSE; + setObjGfx2 = TRUE; break; default: return; } - if (setPerson1 == TRUE) - VarSet(VAR_OBJ_GFX_ID_0, person1); - if (setPerson2 == TRUE) - VarSet(VAR_OBJ_GFX_ID_1, person2); + if (setObjGfx1 == TRUE) + VarSet(VAR_OBJ_GFX_ID_0, objGfx1); + if (setObjGfx2 == TRUE) + VarSet(VAR_OBJ_GFX_ID_1, objGfx2); } -static void sub_81A7140(void) +static void GetBattlePikeData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -643,7 +655,7 @@ static void sub_81A7140(void) } } -static void sub_81A7248(void) +static void SetBattlePikeData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -683,15 +695,15 @@ static void sub_81A7248(void) } } -static void sub_81A73B8(void) +static void GetInFinalRoom(void) { - if (gSaveBlock2Ptr->frontier.curChallengeBattleNum >= 15) + if (gSaveBlock2Ptr->frontier.curChallengeBattleNum > 14) gSpecialVar_Result = TRUE; else gSpecialVar_Result = FALSE; } -static void sub_81A73EC(void) +static void GetRoomType(void) { gSpecialVar_Result = sRoomType; } @@ -725,7 +737,7 @@ static void nullsub_124(void) } -static void sub_81A7468(void) +static void GetRoomInflictedStatus(void) { switch (sStatusFlags) { @@ -747,35 +759,35 @@ static void sub_81A7468(void) } } -static void sub_81A74CC(void) +static void GetRoomInflictedStatusMon(void) { gSpecialVar_Result = sStatusMon; } -static void sub_81A74E0(void) +static void HealOneOrTwoMons(void) { u16 toHeal = (Random() % 2) + 1; TryHealMons(toHeal); gSpecialVar_Result = toHeal; } -static void sub_81A7508(void) +static void BufferNPCMessage(void) { - s32 id; + int speechId; if (gSaveBlock2Ptr->frontier.curChallengeBattleNum <= 4) - id = gUnknown_0861231C[sUnknown_03001294].unk2; + speechId = sNPCTable[sNpcId].speechId1; else if (gSaveBlock2Ptr->frontier.curChallengeBattleNum <= 10) - id = gUnknown_0861231C[sUnknown_03001294].unk3; + speechId = sNPCTable[sNpcId].speechId2; else - id = gUnknown_0861231C[sUnknown_03001294].unk4; + speechId = sNPCTable[sNpcId].speechId3; - FrontierSpeechToString(gUnknown_086123E4[id]); + FrontierSpeechToString(sNPCSpeeches[speechId]); } -static void sub_81A7580(void) +static void StatusInflictionScreenFade(void) { - CreateTask(sub_81A7EE4, 2); + CreateTask(Task_DoStatusInflictionScreenFade, 2); } static void HealMon(struct Pokemon *mon) @@ -1014,81 +1026,88 @@ static bool8 AtLeastOneHealthyMon(void) static u8 GetNextRoomType(void) { - u8 sp[8]; + u8 roomTypesAvailability[8]; u8 i; - u8 ret; - u8 var; - u8 count; - u8 *allocated; + u8 nextRoomType; + u8 roomTypeGroup; + u8 numRoomCandidates; + u8 *roomCandidates; u8 id; - if (gSaveBlock2Ptr->frontier.field_E10_2 == PIKE_ROOM_BRAIN) - return gSaveBlock2Ptr->frontier.field_E10_2; - if (gSpecialVar_0x8007 == gSaveBlock2Ptr->frontier.field_E10_1) + if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_BRAIN) + return gSaveBlock2Ptr->frontier.pikeHintedRoomType; + + // Check if the player walked into the same room that the lady gave a hint about. + if (gSpecialVar_0x8007 == gSaveBlock2Ptr->frontier.pikeHintedRoomIndex) { - if (gSaveBlock2Ptr->frontier.field_E10_2 == PIKE_ROOM_STATUS) + if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_STATUS) TryInflictRandomStatus(); - return gSaveBlock2Ptr->frontier.field_E10_2; + return gSaveBlock2Ptr->frontier.pikeHintedRoomType; } for (i = 0; i < 8; i++) - sp[i] = 0; + roomTypesAvailability[i] = 0; + + numRoomCandidates = 8; - count = 8; - var = gUnknown_0861266C[gSaveBlock2Ptr->frontier.field_E10_2]; + // The room types associated with the lady's hint cannot be in the other two rooms. + roomTypeGroup = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; for (i = 0; i < 8; i++) { - if (gUnknown_0861266C[i] == var) + if (sRoomTypeHints[i] == roomTypeGroup) { - sp[i] = 1; - count--; + roomTypesAvailability[i] = 1; + numRoomCandidates--; } } - if (sp[7] != 1 && !AtLeastTwoAliveMons()) + // Remove room type candidates that would have no effect on the player's party. + if (roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] != 1 && !AtLeastTwoAliveMons()) { - sp[7] = 1; - count--; + roomTypesAvailability[PIKE_ROOM_DOUBLE_BATTLE] = 1; + numRoomCandidates--; } - if (sp[3] != 1 && !AtLeastOneHealthyMon()) + if (roomTypesAvailability[PIKE_ROOM_STATUS] != 1 && !AtLeastOneHealthyMon()) { - sp[3] = 1; - count--; + roomTypesAvailability[PIKE_ROOM_STATUS] = 1; + numRoomCandidates--; } - if (gSaveBlock2Ptr->frontier.field_E10_3) + + // Remove healing room type candidates if healing rooms are disabled. + if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) { - if (sp[1] != 1) + if (roomTypesAvailability[PIKE_ROOM_HEAL_FULL] != 1) { - sp[1] = 1; - count--; + roomTypesAvailability[PIKE_ROOM_HEAL_FULL] = 1; + numRoomCandidates--; } - if (sp[4] != 1) + if (roomTypesAvailability[PIKE_ROOM_HEAL_PART] != 1) { - sp[4] = 1; - count--; + roomTypesAvailability[PIKE_ROOM_HEAL_PART] = 1; + numRoomCandidates--; } } - allocated = AllocZeroed(count); + roomCandidates = AllocZeroed(numRoomCandidates); id = 0; for (i = 0; i < 8; i++) { - if (sp[i] == 0) - allocated[id++] = i; + if (roomTypesAvailability[i] == 0) + roomCandidates[id++] = i; } - ret = allocated[Random() % count]; - free(allocated); - if (ret == PIKE_ROOM_STATUS) + nextRoomType = roomCandidates[Random() % numRoomCandidates]; + free(roomCandidates); + if (nextRoomType == PIKE_ROOM_STATUS) TryInflictRandomStatus(); - return ret; + return nextRoomType; } -static u16 sub_81A7B58(void) +static u16 GetNPCRoomGraphicsId(void) { - sUnknown_03001294 = Random() % 25; - return gUnknown_0861231C[sUnknown_03001294].unk0; + sNpcId = Random() % ARRAY_COUNT(sNPCTable); + return sNPCTable[sNpcId].graphicsId; } static u8 sub_81A7B84(void) @@ -1163,12 +1182,12 @@ u8 GetBattlePikeWildMonHeaderId(void) return headerId; } -static void sub_81A7D54(u8 taskId) +static void DoStatusInflictionScreenFade(u8 taskId) { - while (gUnknown_08612688[gTasks[taskId].data[0]](&gTasks[taskId])); + while (sStatusInflictionScreenFadeFuncs[gTasks[taskId].data[0]](&gTasks[taskId])); } -static bool8 sub_81A7D8C(struct Task *task) +static bool8 StatusInflictionFadeOut(struct Task *task) { if (task->data[6] == 0 || --task->data[6] == 0) { @@ -1187,7 +1206,7 @@ static bool8 sub_81A7D8C(struct Task *task) return FALSE; } -static bool8 sub_81A7DE8(struct Task *task) +static bool8 StatusInflictionFadeIn(struct Task *task) { if (task->data[6] == 0 || --task->data[6] == 0) { @@ -1202,7 +1221,7 @@ static bool8 sub_81A7DE8(struct Task *task) { if (--task->data[3] == 0) { - DestroyTask(FindTaskIdByFunc(sub_81A7D54)); + DestroyTask(FindTaskIdByFunc(DoStatusInflictionScreenFade)); } else { @@ -1213,36 +1232,36 @@ static bool8 sub_81A7DE8(struct Task *task) return FALSE; } -static void sub_81A7E60(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4) +static void StartStatusInflictionScreenFade(s16 fadeOutDelay, s16 fadeInDelay, s16 numFades, s16 fadeOutSpeed, s16 fadeInSpped) { - u8 taskId = CreateTask(sub_81A7D54, 3); + u8 taskId = CreateTask(DoStatusInflictionScreenFade, 3); - gTasks[taskId].data[1] = a0; - gTasks[taskId].data[2] = a1; - gTasks[taskId].data[3] = a2; - gTasks[taskId].data[4] = a3; - gTasks[taskId].data[5] = a4; - gTasks[taskId].data[6] = a0; + gTasks[taskId].data[1] = fadeOutDelay; + gTasks[taskId].data[2] = fadeInDelay; + gTasks[taskId].data[3] = numFades; + gTasks[taskId].data[4] = fadeOutSpeed; + gTasks[taskId].data[5] = fadeInSpped; + gTasks[taskId].data[6] = fadeOutDelay; } -static bool8 sub_81A7EC4(void) +static bool8 IsStatusInflictionScreenFadeTaskFinished(void) { - if (FindTaskIdByFunc(sub_81A7D54) == 0xFF) + if (FindTaskIdByFunc(DoStatusInflictionScreenFade) == 0xFF) return TRUE; else return FALSE; } -static void sub_81A7EE4(u8 taskId) +static void Task_DoStatusInflictionScreenFade(u8 taskId) { if (gTasks[taskId].data[0] == 0) { gTasks[taskId].data[0]++; - sub_81A7E60(0, 0, 3, 2, 2); + StartStatusInflictionScreenFade(0, 0, 3, 2, 2); } else { - if (sub_81A7EC4()) + if (IsStatusInflictionScreenFadeTaskFinished()) { EnableBothScriptContexts(); DestroyTask(taskId); @@ -1308,7 +1327,7 @@ static void TryHealMons(u8 healCount) } } -static void sub_81A8090(void) +static void GetInBattlePike(void) { gSpecialVar_Result = InBattlePike(); } @@ -1321,61 +1340,65 @@ bool8 InBattlePike(void) || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_MAP_084693AC; } -static void sub_81A80DC(void) +static void SetHintedRoom(void) { u8 i, count, id; - u8 *allocated; + u8 *roomCandidates; gSpecialVar_Result = 0; - if (sub_81A8590(1)) + if (GetPikeQueenFightType(1)) { gSpecialVar_Result = 1; - gSaveBlock2Ptr->frontier.field_E10_1 = Random() % 6; - gSaveBlock2Ptr->frontier.field_E10_2 = PIKE_ROOM_BRAIN; + gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 6; + gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_BRAIN; } else { - gSaveBlock2Ptr->frontier.field_E10_1 = Random() % 3; - if (gSaveBlock2Ptr->frontier.field_E10_3) + gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 3; + if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) count = 6; else count = 8; - allocated = AllocZeroed(count); + roomCandidates = AllocZeroed(count); for (i = 0, id = 0; i < count; i++) { - if (gSaveBlock2Ptr->frontier.field_E10_3) + if (gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled) { if (i != PIKE_ROOM_HEAL_FULL && i != PIKE_ROOM_HEAL_PART) - allocated[id++] = i; + roomCandidates[id++] = i; } else { - allocated[i] = i; + roomCandidates[i] = i; } } - gSaveBlock2Ptr->frontier.field_E10_2 = allocated[Random() % count]; - free(allocated); - if (gSaveBlock2Ptr->frontier.field_E10_2 == PIKE_ROOM_STATUS && !AtLeastOneHealthyMon()) - gSaveBlock2Ptr->frontier.field_E10_2 = PIKE_ROOM_NPC; - if (gSaveBlock2Ptr->frontier.field_E10_2 == PIKE_ROOM_DOUBLE_BATTLE && !AtLeastTwoAliveMons()) - gSaveBlock2Ptr->frontier.field_E10_2 = PIKE_ROOM_NPC; + + gSaveBlock2Ptr->frontier.pikeHintedRoomType = roomCandidates[Random() % count]; + free(roomCandidates); + if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_STATUS && !AtLeastOneHealthyMon()) + gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_NPC; + if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_DOUBLE_BATTLE && !AtLeastTwoAliveMons()) + gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_NPC; } } -static void sub_81A825C(void) +static void GetHintedRoomIndex(void) { - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E10_1; + // 0 = left room + // 1 = center room + // 2 = right room + gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeHintedRoomIndex; } -static void sub_81A827C(void) +static void GetRoomTypeHint(void) { - gSpecialVar_Result = gUnknown_0861266C[gSaveBlock2Ptr->frontier.field_E10_2]; + gSpecialVar_Result = sRoomTypeHints[gSaveBlock2Ptr->frontier.pikeHintedRoomType]; } static void PrepareOneTrainer(bool8 difficult) { - s32 i; + int i; u8 lvlMode; u8 battleNum; u16 challengeNum; @@ -1407,7 +1430,7 @@ static void PrepareOneTrainer(bool8 difficult) static void PrepareTwoTrainers(void) { - s32 i; + int i; u16 trainerId; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u16 challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14; @@ -1444,7 +1467,7 @@ static void PrepareTwoTrainers(void) gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2] = gTrainerBattleOpponent_B; } -static void sub_81A84B4(void) +static void ClearPikeTrainerIds(void) { u8 i; @@ -1452,7 +1475,7 @@ static void sub_81A84B4(void) gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } -static void sub_81A84EC(void) +static void BufferRecordMixingTrainerMessage(void) { if (gSpecialVar_0x8005 == 0) { @@ -1485,31 +1508,31 @@ static bool8 AtLeastTwoAliveMons(void) return TRUE; } -static u8 sub_81A8590(u8 arg0) +static u8 GetPikeQueenFightType(u8 nextRoom) { - u8 symbolsCount; + u8 numPikeSymbols; u8 var = 5; u8 ret = 0; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - u16 wins = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; - wins += arg0; - symbolsCount = GetPlayerSymbolCountForFacility(FRONTIER_FACILITY_PIKE); + u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; + winStreak += nextRoom; + numPikeSymbols = GetPlayerSymbolCountForFacility(FRONTIER_FACILITY_PIKE); - switch (symbolsCount) + switch (numPikeSymbols) { case 0: case 1: - if (wins == gUnknown_086125DC[var][symbolsCount] - gUnknown_086125DC[var][3]) - ret = symbolsCount + 1; + if (winStreak == sPikeQueenWinStreakAppearances[var][numPikeSymbols] - sPikeQueenWinStreakAppearances[var][3]) + ret = numPikeSymbols + 1; break; case 2: default: - if (wins == gUnknown_086125DC[var][0] - gUnknown_086125DC[var][3]) + if (winStreak == sPikeQueenWinStreakAppearances[var][0] - sPikeQueenWinStreakAppearances[var][3]) ret = 3; - else if (wins == gUnknown_086125DC[var][1] - gUnknown_086125DC[var][3] - || (wins > gUnknown_086125DC[var][1] - && (wins - gUnknown_086125DC[var][1] + gUnknown_086125DC[var][3]) % gUnknown_086125DC[var][2] == 0)) + else if (winStreak == sPikeQueenWinStreakAppearances[var][1] - sPikeQueenWinStreakAppearances[var][3] + || (winStreak > sPikeQueenWinStreakAppearances[var][1] + && (winStreak - sPikeQueenWinStreakAppearances[var][1] + sPikeQueenWinStreakAppearances[var][3]) % sPikeQueenWinStreakAppearances[var][2] == 0)) ret = 4; break; } @@ -1517,25 +1540,25 @@ static u8 sub_81A8590(u8 arg0) return ret; } -static void sub_81A863C(void) +static void GetCurrentRoomPikeQueenFightType(void) { - gSpecialVar_Result = sub_81A8590(0); + gSpecialVar_Result = GetPikeQueenFightType(0); } -static void sub_81A8658(void) +static void HealSomeMonsBeforePikeQueen(void) { - u8 toHealCount = gUnknown_08612675[gSaveBlock2Ptr->frontier.field_E10_1][gSpecialVar_0x8007]; + u8 toHealCount = sNumMonsToHealBeforePikeQueen[gSaveBlock2Ptr->frontier.pikeHintedRoomIndex][gSpecialVar_0x8007]; TryHealMons(toHealCount); gSpecialVar_Result = toHealCount; } -static void sub_81A869C(void) +static void SetHealingRoomsDisabled(void) { - gSaveBlock2Ptr->frontier.field_E10_3 = gSpecialVar_0x8005; + gSaveBlock2Ptr->frontier.pikeHealingRoomsDisabled = gSpecialVar_0x8005; } -static void sub_81A86C0(void) +static void CanAnyPartyMonsBeHealed(void) { u8 i, j; @@ -1574,19 +1597,19 @@ static void sub_81A86C0(void) } } -static void sub_81A8794(void) +static void BackupMonHeldItems(void) { u8 i; for (i = 0; i < 3; i++) { - s32 heldItem = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], + int heldItem = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM); - gSaveBlock2Ptr->frontier.field_E12[i] = heldItem; + gSaveBlock2Ptr->frontier.pikeHeldItemsBackup[i] = heldItem; } } -static void sub_81A87E8(void) +static void RestoreMonHeldItems(void) { u8 i; @@ -1594,11 +1617,11 @@ static void sub_81A87E8(void) { SetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HELD_ITEM, - &gSaveBlock2Ptr->frontier.field_E12[i]); + &gSaveBlock2Ptr->frontier.pikeHeldItemsBackup[i]); } } -static void sub_81A8830(void) +static void InitPikeChallenge(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 824a2946d..a2fa4120f 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -97,7 +97,7 @@ struct PyramidTrainerEncounterMusic }; // This file's functions. -static void InitPyramidBag(void); +static void InitPyramidChallenge(void); static void GetBattlePyramidData(void); static void SetBattlePyramidData(void); static void sub_81A9134(void); @@ -814,7 +814,7 @@ static const u8 sHintTextTypes[] = static void (* const sBattlePyramidFunctions[])(void) = { - InitPyramidBag, + InitPyramidChallenge, GetBattlePyramidData, SetBattlePyramidData, sub_81A9134, @@ -865,7 +865,7 @@ void CallBattlePyramidFunction(void) sBattlePyramidFunctions[gSpecialVar_0x8004](); } -static void InitPyramidBag(void) +static void InitPyramidChallenge(void) { bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; -- cgit v1.2.3 From 3a40f5203baafb29f94dda8abdce6489d81635ae Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Feb 2019 17:41:44 -0600 Subject: Remove old rom_818CFC8.h header --- src/event_object_movement.c | 4 ++-- src/field_poison.c | 2 +- src/item_menu.c | 2 +- src/item_use.c | 2 +- src/map_name_popup.c | 2 +- src/start_menu.c | 1 - 6 files changed, 6 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 845e41dad..ba62db10d 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1,4 +1,6 @@ #include "global.h" +#include "alloc.h" +#include "battle_pyramid.h" #include "berry.h" #include "decoration.h" #include "event_data.h" @@ -9,14 +11,12 @@ #include "field_effect_helpers.h" #include "field_player_avatar.h" #include "fieldmap.h" -#include "alloc.h" #include "mauville_old_man.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" #include "pokenav.h" #include "random.h" -#include "rom_818CFC8.h" #include "sprite.h" #include "task.h" #include "trainer_see.h" diff --git a/src/field_poison.c b/src/field_poison.c index 89cd02728..532c7f027 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_pike.h" +#include "battle_pyramid.h" #include "event_data.h" #include "field_message_box.h" #include "field_poison.h" @@ -8,7 +9,6 @@ #include "frontier_util.h" #include "party_menu.h" #include "pokenav.h" -#include "rom_818CFC8.h" #include "script.h" #include "string_util.h" #include "strings.h" diff --git a/src/item_menu.c b/src/item_menu.c index 24a50aa9a..43f2afce3 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -2,6 +2,7 @@ #include "item_menu.h" #include "battle.h" #include "battle_controllers.h" +#include "battle_pyramid.h" #include "frontier_util.h" #include "berry_tag_screen.h" #include "bg.h" @@ -33,7 +34,6 @@ #include "player_pc.h" #include "pokemon.h" #include "pokemon_summary_screen.h" -#include "rom_818CFC8.h" #include "scanline_effect.h" #include "script.h" #include "shop.h" diff --git a/src/item_use.c b/src/item_use.c index 0ea5f6acf..97d6292c4 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,6 +1,7 @@ #include "global.h" #include "item_use.h" #include "battle.h" +#include "battle_pyramid.h" #include "battle_pyramid_bag.h" #include "berry.h" #include "bike.h" @@ -24,7 +25,6 @@ #include "party_menu.h" #include "pokeblock.h" #include "pokemon.h" -#include "rom_818CFC8.h" #include "script.h" #include "sound.h" #include "strings.h" diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 0d88815c0..cdb4c3330 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_pyramid.h" #include "bg.h" #include "event_data.h" #include "gpu_regs.h" @@ -7,7 +8,6 @@ #include "map_name_popup.h" #include "palette.h" #include "region_map.h" -#include "rom_818CFC8.h" #include "start_menu.h" #include "string_util.h" #include "task.h" diff --git a/src/start_menu.c b/src/start_menu.c index 334330b67..d5eec76d2 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -15,7 +15,6 @@ #include "overworld.h" #include "link.h" #include "frontier_util.h" -#include "rom_818CFC8.h" #include "field_specials.h" #include "event_object_movement.h" #include "script.h" -- cgit v1.2.3 From 4570e3b6a5fc1d652c224069a711d9f2fbee50e0 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 8 Feb 2019 09:41:36 -0600 Subject: Document battle arena --- src/battle_arena.c | 134 ++++++++++++++++++++++++------------------- src/battle_script_commands.c | 4 +- src/graphics.c | 4 +- 3 files changed, 79 insertions(+), 63 deletions(-) (limited to 'src') diff --git a/src/battle_arena.c b/src/battle_arena.c index cfcb10a0d..8146f5b38 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -22,18 +22,20 @@ #include "constants/songs.h" #include "constants/battle_string_ids.h" #include "constants/battle_frontier.h" +#include "constants/items.h" #include "constants/moves.h" +#include "constants/rgb.h" // This file's functions. -static void sub_81A58B4(void); -static void sub_81A5964(void); -static void sub_81A59FC(void); +static void InitArenaChallenge(void); +static void GetArenaData(void); +static void SetArenaData(void); static void sub_81A5AC4(void); -static void sub_81A5B08(void); -static void sub_81A5B88(void); -static void sub_81A5BE0(void); +static void SetArenaRewardItem(void); +static void GiveArenaRewardItem(void); +static void BufferArenaOpponentName(void); static void SpriteCb_JudgmentIcon(struct Sprite *sprite); -static void ShowJudgmentSprite(u8 x, u8 y, u8 arg2, u8 battler); +static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler); // Const rom data. static const s8 sMindRatings[] = @@ -395,7 +397,9 @@ static const s8 sMindRatings[] = [MOVE_PSYCHO_BOOST] = 1, }; -static const struct OamData sOamData_8611F24 = +#define TAG_JUDGEMENT_ICON 1000 + +static const struct OamData sJudgementIconOamData = { .y = 0, .affineMode = 0, @@ -412,74 +416,87 @@ static const struct OamData sOamData_8611F24 = .affineParam = 0 }; -static const union AnimCmd sSpriteAnim_8611F2C[] = +static const union AnimCmd sJudgementIconAnimCmd0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8611F34[] = +static const union AnimCmd sJudgementIconAnimCmd1[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8611F3C[] = +static const union AnimCmd sJudgementIconAnimCmd2[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_8611F44[] = +static const union AnimCmd sJudgementIconAnimCmd3[] = { ANIMCMD_FRAME(12, 1), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_8611F4C[] = +static const union AnimCmd *const sJudgementIconAnimCmds[] = { - sSpriteAnim_8611F2C, - sSpriteAnim_8611F34, - sSpriteAnim_8611F3C, - sSpriteAnim_8611F44 + sJudgementIconAnimCmd0, + sJudgementIconAnimCmd1, + sJudgementIconAnimCmd2, + sJudgementIconAnimCmd3 }; static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon = { - .tileTag = 0x3E8, + .tileTag = TAG_JUDGEMENT_ICON, .paletteTag = 0xFFFF, - .oam = &sOamData_8611F24, - .anims = sSpriteAnimTable_8611F4C, + .oam = &sJudgementIconOamData, + .anims = sJudgementIconAnimCmds, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCb_JudgmentIcon, }; -static const struct CompressedSpriteSheet gUnknown_08611F74[] = +static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] = { - {gUnknown_08D854E8, 0x200, 0x3E8}, + {gBattleArenaJudgementSymbolsGfx, 0x200, TAG_JUDGEMENT_ICON}, {0} }; static void (* const sArenaFunctions[])(void) = { - sub_81A58B4, - sub_81A5964, - sub_81A59FC, + InitArenaChallenge, + GetArenaData, + SetArenaData, sub_81A5AC4, - sub_81A5B08, - sub_81A5B88, - sub_81A5BE0, + SetArenaRewardItem, + GiveArenaRewardItem, + BufferArenaOpponentName, }; -static const u16 gUnknown_08611FA0[6] = +static const u16 sShortStreakRewardItems[] = { - 0x003f, 0x0040, 0x0041, 0x0043, 0x0042, 0x0046 + ITEM_HP_UP, + ITEM_PROTEIN, + ITEM_IRON, + ITEM_CALCIUM, + ITEM_CARBOS, + ITEM_ZINC, }; -static const u16 gUnknown_08611FAC[9] = +static const u16 sLongStreakRewardItems[] = { - 0x00b3, 0x00b4, 0x00b7, 0x00c8, 0x00b9, 0x00bb, 0x00c4, 0x00c6, 0x00ba + ITEM_BRIGHT_POWDER, + ITEM_WHITE_HERB, + ITEM_QUICK_CLAW, + ITEM_LEFTOVERS, + ITEM_MENTAL_HERB, + ITEM_KINGS_ROCK, + ITEM_FOCUS_BAND, + ITEM_SCOPE_LENS, + ITEM_CHOICE_BAND, }; // code @@ -490,15 +507,15 @@ void CallBattleArenaFunction(void) u8 BattleArena_ShowJudgmentWindow(u8 *state) { - s32 i; + int i; u8 ret = 0; switch (*state) { case 0: - BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, 0); + BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - LoadCompressedSpriteSheet(gUnknown_08611F74); - LoadCompressedPalette(gUnknown_08D855E8, 0x1F0, 0x20); + LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); + LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20); gBattle_WIN0H = 0xFF; gBattle_WIN0V = 0x70; (*state)++; @@ -536,7 +553,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); for (i = 0; i < 8; i++) { - u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 0x40 + (i * 0x10), 84, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0); StartSpriteAnim(&gSprites[spriteId], 3); } ret = 1; @@ -596,14 +613,14 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR); CopyBgTilemapBufferToVram(0); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); - BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, 0); + BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK); (*state)++; break; case 10: if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - FreeSpriteTilesByTag(0x3E8); + FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON); ret = 1; (*state)++; } @@ -615,9 +632,9 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler) { - s32 animNum = 0; - s32 pointsPlayer = 0; - s32 pointsOpponent = 0; + int animNum = 0; + int pointsPlayer = 0; + int pointsOpponent = 0; s8 *mindPoints = gBattleStruct->arenaMindPoints; s8 *skillPoints = gBattleStruct->arenaSkillPoints; u16 *hpAtStart = gBattleStruct->arenaStartHp; @@ -686,7 +703,6 @@ void BattleArena_InitPoints(void) void BattleArena_AddMindPoints(u8 battler) { s8 *mindPoints = gBattleStruct->arenaMindPoints; - mindPoints[battler] += sMindRatings[gCurrentMove]; } @@ -707,7 +723,7 @@ void BattleArena_AddSkillPoints(u8 battler) if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[6] != 1) skillPoints[battler] -= 2; } - else if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE && gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)) { skillPoints[battler] += 1; } @@ -765,7 +781,7 @@ void sub_81A586C(u8 battler) // Unused. hpAtStart[BATTLE_OPPOSITE(battler)] = gBattleMons[BATTLE_OPPOSITE(battler)].hp; } -static void sub_81A58B4(void) +static void InitArenaChallenge(void) { bool32 isCurrent; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -786,14 +802,14 @@ static void sub_81A58B4(void) gTrainerBattleOpponent_A = 0; } -static void sub_81A5964(void) +static void GetArenaData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; switch (gSpecialVar_0x8005) { case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DD8; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaRewardItem; break; case 1: gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; @@ -807,14 +823,14 @@ static void sub_81A5964(void) } } -static void sub_81A59FC(void) +static void SetArenaData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; switch (gSpecialVar_0x8005) { case 0: - gSaveBlock2Ptr->frontier.field_DD8 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.arenaRewardItem = gSpecialVar_0x8006; break; case 1: gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = gSpecialVar_0x8006; @@ -846,22 +862,22 @@ static void sub_81A5AC4(void) sub_81A4C30(); } -static void sub_81A5B08(void) +static void SetArenaRewardItem(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 41) - gSaveBlock2Ptr->frontier.field_DD8 = gUnknown_08611FAC[Random() % ARRAY_COUNT(gUnknown_08611FAC)]; + gSaveBlock2Ptr->frontier.arenaRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)]; else - gSaveBlock2Ptr->frontier.field_DD8 = gUnknown_08611FA0[Random() % ARRAY_COUNT(gUnknown_08611FA0)]; + gSaveBlock2Ptr->frontier.arenaRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)]; } -static void sub_81A5B88(void) +static void GiveArenaRewardItem(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_DD8, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.arenaRewardItem, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_DD8, gStringVar1); - gSaveBlock2Ptr->frontier.field_DD8 = 0; + CopyItemName(gSaveBlock2Ptr->frontier.arenaRewardItem, gStringVar1); + gSaveBlock2Ptr->frontier.arenaRewardItem = 0; gSpecialVar_Result = TRUE; } else @@ -870,12 +886,12 @@ static void sub_81A5B88(void) } } -static void sub_81A5BE0(void) +static void BufferArenaOpponentName(void) { GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } -void sub_81A5BF8(void) +void DrawArenaRefereeTextBox(void) { u8 width = 27; u8 palNum = 7; @@ -898,7 +914,7 @@ void sub_81A5BF8(void) FillBgTilemapBufferRect(0, 0x836, 29, 19, 1, 1, palNum); } -void sub_81A5D44(void) +void RemoveArenaRefereeTextBox(void) { u8 width; u8 height; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6023b2c1b..a53fa30f2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6721,10 +6721,10 @@ static void atk76_various(void) MarkBattlerForControllerExec(gActiveBattler); break; case 14: - sub_81A5BF8(); + DrawArenaRefereeTextBox(); break; case 15: - sub_81A5D44(); + RemoveArenaRefereeTextBox(); break; case VARIOUS_ARENA_JUDGMENT_STRING: BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); diff --git a/src/graphics.c b/src/graphics.c index 1fc106dcc..c6af13477 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -984,8 +984,8 @@ const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal const u32 gUnknown_08D85444[] = INCBIN_U32("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal const u32 gUnknown_08D854C8[] = INCBIN_U32("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal -const u32 gUnknown_08D854E8[] = INCBIN_U32("graphics/battle_frontier/symbols.4bpp.lz"); -const u32 gUnknown_08D855E8[] = INCBIN_U32("graphics/battle_frontier/symbols.gbapal.lz"); +const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz"); +const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz"); const u32 gUnknown_08D85600[] = INCBIN_U32("graphics/battle_frontier/text.gbapal.lz"); const u16 gUnknown_08D85620[] = INCBIN_U16("graphics/battle_frontier/text_pp.gbapal"); -- cgit v1.2.3 From 6add3e17944402eab6419d217c98d14d93f38a55 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 8 Feb 2019 11:08:25 -0600 Subject: Document some battle dome stuff --- src/battle_dome.c | 879 +++++++++++++++++++++++------------------------------- 1 file changed, 381 insertions(+), 498 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index b9e27675b..f6327f31f 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -17,6 +17,7 @@ #include "text.h" #include "bg.h" #include "window.h" +#include "strings.h" #include "palette.h" #include "decompress.h" #include "party_menu.h" @@ -59,177 +60,62 @@ struct UnkStruct_860DD10 }; // text -extern const u8 gTrainerClassNames[][0xD]; - -extern const u8 gBattleDomeOpponentPotential1[]; -extern const u8 gBattleDomeOpponentPotential2[]; -extern const u8 gBattleDomeOpponentPotential3[]; -extern const u8 gBattleDomeOpponentPotential4[]; -extern const u8 gBattleDomeOpponentPotential5[]; -extern const u8 gBattleDomeOpponentPotential6[]; -extern const u8 gBattleDomeOpponentPotential7[]; -extern const u8 gBattleDomeOpponentPotential8[]; -extern const u8 gBattleDomeOpponentPotential9[]; -extern const u8 gBattleDomeOpponentPotential10[]; -extern const u8 gBattleDomeOpponentPotential11[]; -extern const u8 gBattleDomeOpponentPotential12[]; -extern const u8 gBattleDomeOpponentPotential13[]; -extern const u8 gBattleDomeOpponentPotential14[]; -extern const u8 gBattleDomeOpponentPotential15[]; -extern const u8 gBattleDomeOpponentPotential16[]; -extern const u8 gBattleDomeOpponentPotential17[]; -extern const u8 gBattleDomeOpponentStyle1[]; -extern const u8 gBattleDomeOpponentStyle2[]; -extern const u8 gBattleDomeOpponentStyle3[]; -extern const u8 gBattleDomeOpponentStyle4[]; -extern const u8 gBattleDomeOpponentStyle5[]; -extern const u8 gBattleDomeOpponentStyle6[]; -extern const u8 gBattleDomeOpponentStyle7[]; -extern const u8 gBattleDomeOpponentStyle8[]; -extern const u8 gBattleDomeOpponentStyle9[]; -extern const u8 gBattleDomeOpponentStyle10[]; -extern const u8 gBattleDomeOpponentStyle11[]; -extern const u8 gBattleDomeOpponentStyle12[]; -extern const u8 gBattleDomeOpponentStyle13[]; -extern const u8 gBattleDomeOpponentStyle14[]; -extern const u8 gBattleDomeOpponentStyle15[]; -extern const u8 gBattleDomeOpponentStyle16[]; -extern const u8 gBattleDomeOpponentStyle17[]; -extern const u8 gBattleDomeOpponentStyle18[]; -extern const u8 gBattleDomeOpponentStyle19[]; -extern const u8 gBattleDomeOpponentStyle20[]; -extern const u8 gBattleDomeOpponentStyle21[]; -extern const u8 gBattleDomeOpponentStyle22[]; -extern const u8 gBattleDomeOpponentStyle23[]; -extern const u8 gBattleDomeOpponentStyle24[]; -extern const u8 gBattleDomeOpponentStyle25[]; -extern const u8 gBattleDomeOpponentStyle26[]; -extern const u8 gBattleDomeOpponentStyle27[]; -extern const u8 gBattleDomeOpponentStyle28[]; -extern const u8 gBattleDomeOpponentStyleUnused1[]; -extern const u8 gBattleDomeOpponentStyleUnused2[]; -extern const u8 gBattleDomeOpponentStyleUnused3[]; -extern const u8 gBattleDomeOpponentStyleUnused4[]; -extern const u8 gBattleDomeOpponentStats1[]; -extern const u8 gBattleDomeOpponentStats2[]; -extern const u8 gBattleDomeOpponentStats3[]; -extern const u8 gBattleDomeOpponentStats4[]; -extern const u8 gBattleDomeOpponentStats5[]; -extern const u8 gBattleDomeOpponentStats6[]; -extern const u8 gBattleDomeOpponentStats7[]; -extern const u8 gBattleDomeOpponentStats8[]; -extern const u8 gBattleDomeOpponentStats9[]; -extern const u8 gBattleDomeOpponentStats10[]; -extern const u8 gBattleDomeOpponentStats11[]; -extern const u8 gBattleDomeOpponentStats12[]; -extern const u8 gBattleDomeOpponentStats13[]; -extern const u8 gBattleDomeOpponentStats14[]; -extern const u8 gBattleDomeOpponentStats15[]; -extern const u8 gBattleDomeOpponentStats16[]; -extern const u8 gBattleDomeOpponentStats17[]; -extern const u8 gBattleDomeOpponentStats18[]; -extern const u8 gBattleDomeOpponentStats19[]; -extern const u8 gBattleDomeOpponentStats20[]; -extern const u8 gBattleDomeOpponentStats21[]; -extern const u8 gBattleDomeOpponentStats22[]; -extern const u8 gBattleDomeOpponentStats23[]; -extern const u8 gBattleDomeOpponentStats24[]; -extern const u8 gBattleDomeOpponentStats25[]; -extern const u8 gBattleDomeOpponentStats26[]; -extern const u8 gBattleDomeOpponentStats27[]; -extern const u8 gBattleDomeOpponentStats28[]; -extern const u8 gBattleDomeOpponentStats29[]; -extern const u8 gBattleDomeOpponentStats30[]; -extern const u8 gBattleDomeOpponentStats31[]; -extern const u8 gBattleDomeOpponentStats32[]; -extern const u8 gBattleDomeOpponentStats33[]; -extern const u8 gBattleDomeOpponentStats34[]; -extern const u8 gBattleDomeOpponentStats35[]; -extern const u8 gBattleDomeOpponentStats36[]; -extern const u8 gBattleDomeOpponentStats37[]; -extern const u8 gBattleDomeOpponentStats38[]; -extern const u8 gBattleDomeOpponentStats39[]; -extern const u8 gBattleDomeOpponentStats40[]; -extern const u8 gBattleDomeOpponentStats41[]; -extern const u8 gBattleDomeOpponentStats42[]; -extern const u8 gBattleDomeOpponentStats43[]; -extern const u8 gBattleDomeMatchNumber1[]; -extern const u8 gBattleDomeMatchNumber2[]; -extern const u8 gBattleDomeMatchNumber3[]; -extern const u8 gBattleDomeMatchNumber4[]; -extern const u8 gBattleDomeMatchNumber5[]; -extern const u8 gBattleDomeMatchNumber6[]; -extern const u8 gBattleDomeMatchNumber7[]; -extern const u8 gBattleDomeMatchNumber8[]; -extern const u8 gBattleDomeMatchNumber9[]; -extern const u8 gBattleDomeMatchNumber10[]; -extern const u8 gBattleDomeMatchNumber11[]; -extern const u8 gBattleDomeMatchNumber12[]; -extern const u8 gBattleDomeMatchNumber13[]; -extern const u8 gBattleDomeMatchNumber14[]; -extern const u8 gBattleDomeMatchNumber15[]; -extern const u8 gBattleDomeWinStrings1[]; -extern const u8 gBattleDomeWinStrings2[]; -extern const u8 gBattleDomeWinStrings3[]; -extern const u8 gBattleDomeWinStrings4[]; -extern const u8 gBattleDomeWinStrings5[]; -extern const u8 gBattleDomeWinStrings6[]; -extern const u8 gBattleDomeWinStrings7[]; +extern const u8 gTrainerClassNames[][13]; // This file's functions. static u8 GetDomeTrainerMonIvs(u16 trainerId); -static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray); -static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats); -static void CreateDomeTrainerMons(u16 tournamentTrainerId); -static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); -static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); -static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2); -static s32 sub_818FEB4(s32 *arr, bool8 arg1); -static void sub_8190400(u8 taskId); +static void SwapDomeTrainers(int id1, int id2, u16 *statsArray); +static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats); +static void CreateDomeOpponentMons(u16 tournamentTrainerId); +static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); +static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); +static int GetTypeEffectivenessPoints(int move, int species, int arg2); +static int sub_818FEB4(int *arr, bool8 arg1); +static void Task_ShowOpponentInfo(u8 taskId); static void sub_8190CD4(u8 taskId); static u8 sub_819221C(u8 taskId); -static void sub_8194D48(void); -static s32 TrainerIdToTournamentId(u16 trainerId); +static void InitDomeFacilityTrainersAndMons(void); +static int TrainerIdToTournamentId(u16 trainerId); static u16 TrainerIdOfPlayerOpponent(void); -static void sub_8194220(u8 taskId); +static void Task_ShowTourneyTree(u8 taskId); static void sub_8194950(u8 taskId); static void CB2_BattleDome(void); static void VblankCb0_BattleDome(void); static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); -static s32 sub_8192F08(u8, u8*); +static int sub_8192F08(u8, u8*); static u8 GetDomeBrainTrainerPicId(void); static u8 GetDomeBrainTrainerClass(void); -static void CopyDomeBrainTrainerName(u8 *dst); -static void CopyDomeTrainerName(u8 *dst, u16 trainerId); +static void CopyDomeBrainTrainerName(u8 *str); +static void CopyDomeTrainerName(u8 *str, u16 trainerId); static void HblankCb_BattleDome(void); static void VblankCb1_BattleDome(void); -static u8 sub_8193BDC(u8 taskId); +static u8 UpdateTourneyTreeCursor(u8 taskId); static void DecideRoundWinners(u8 roundId); static u8 sub_81953E8(u8 tournamentId, u8); static void sub_81948EC(u8, u8); static void sub_8190B40(struct Sprite *sprite); static void sub_8190C6C(struct Sprite *sprite); -static void sub_818E9CC(void); -static void sub_818EA84(void); -static void sub_818ED28(void); -static void sub_818F9B0(void); -static void sub_818F9E0(void); -static void sub_818FA20(void); +static void InitDomeChallenge(void); +static void GetDomeData(void); +static void SetDomeData(void); +static void BufferDomeRoundText(void); +static void BufferDomeOpponentName(void); +static void InitDomeOpponentParty(void); static void ShowDomeOpponentInfo(void); -static void sub_81938A4(void); -static void sub_81938E0(void); -static void sub_8190298(void); -static void sub_81902E4(void); -static void sub_8193D40(void); -static void sub_8193D7C(void); +static void ShowDomeTourneyTree(void); +static void ShowPreviousDomeResultsTourneyTree(void); +static void SetDomeOpponentId(void); +static void SetDomeOpponentGraphicsId(void); +static void ShowNonInteractiveDomeTourneyTree(void); +static void ResolveDomeRoundWinners(void); static void sub_81902F8(void); -static void sub_819033C(void); -static void sub_8194D68(void); -static void sub_8194E44(void); -static void sub_8194EB4(void); -static void sub_8194EC0(void); -static void sub_8194EF8(void); +static void UpdateDomeStreaks(void); +static void RestoreDomePlayerParty(void); +static void RestoreDomePlayerPartyHeldItems(void); +static void ReduceDomePlayerPartyTo3Mons(void); +static void GetPlayerSeededBeforeOpponent(void); +static void BufferLastDomeWinnerName(void); static void sub_8194F58(void); static void InitDomeTrainers(void); @@ -240,7 +126,7 @@ static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; // Const rom data. -static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = +static const u8 sMovePointsForDomeTrainers[][DOME_TOURNAMENT_TRAINERS_COUNT] = { [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, @@ -645,7 +531,7 @@ static const u8 sUnusedArray[] = 0, 0, 0, 254, 0, 0, 0, 0, 0, }; -static const u8 gUnknown_0860CBF1[][5][4]= +static const u8 sTourneyTreeCursorMovementMap[][5][4]= { {{0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}}, {{0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}}, @@ -960,14 +846,14 @@ static const struct WindowTemplate gUnknown_0860CEB4[] = // UB: No DUMMY_WIN_TEMPLATE at the array's end. }; -static const struct ScanlineEffectParams gUnknown_0860CF44 = +static const struct ScanlineEffectParams sTourneyTreeScanlineEffectParams = { .dmaDest = (void *)REG_ADDR_BG3CNT, - .dmaControl = 0xa2600001, + .dmaControl = SCANLINE_EFFECT_DMACNT_16BIT, .initState = 1, }; -static const struct CompressedSpriteSheet gUnknown_0860CF50[] = +static const struct CompressedSpriteSheet sDomeOptionsSpriteSheet[] = { {gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000}, {}, @@ -1191,34 +1077,31 @@ static const struct SpriteTemplate gUnknown_0860D068 = .callback = sub_8190C6C }; -static const u8 gUnknown_0860D080[DOME_TOURNAMENT_TRAINERS_COUNT] = -{ - 0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01 -}; +static const u8 sTourneyTreeTrainerIds[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1}; -static void (* const gUnknown_0860D090[])(void) = +static void (* const sBattleDomeFunctions[])(void) = { - sub_818E9CC, - sub_818EA84, - sub_818ED28, - sub_818F9B0, - sub_818F9E0, - sub_818FA20, + InitDomeChallenge, + GetDomeData, + SetDomeData, + BufferDomeRoundText, + BufferDomeOpponentName, + InitDomeOpponentParty, ShowDomeOpponentInfo, - sub_81938A4, - sub_81938E0, - sub_8190298, - sub_81902E4, - sub_8193D40, - sub_8193D7C, + ShowDomeTourneyTree, + ShowPreviousDomeResultsTourneyTree, + SetDomeOpponentId, + SetDomeOpponentGraphicsId, + ShowNonInteractiveDomeTourneyTree, + ResolveDomeRoundWinners, sub_81902F8, - sub_819033C, - sub_8194D48, - sub_8194D68, - sub_8194E44, - sub_8194EB4, - sub_8194EC0, - sub_8194EF8, + UpdateDomeStreaks, + InitDomeFacilityTrainersAndMons, + RestoreDomePlayerParty, + RestoreDomePlayerPartyHeldItems, + ReduceDomePlayerPartyTo3Mons, + GetPlayerSeededBeforeOpponent, + BufferLastDomeWinnerName, sub_8194F58, InitDomeTrainers, }; @@ -1293,108 +1176,108 @@ static const u8 gUnknown_0860D1A0[][4] = static const u8 gUnknown_0860D1C0[] = {0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05}; -static const u8 *const gBattleDomePotentialPointers[] = -{ - gBattleDomeOpponentPotential1, - gBattleDomeOpponentPotential2, - gBattleDomeOpponentPotential3, - gBattleDomeOpponentPotential4, - gBattleDomeOpponentPotential5, - gBattleDomeOpponentPotential6, - gBattleDomeOpponentPotential7, - gBattleDomeOpponentPotential8, - gBattleDomeOpponentPotential9, - gBattleDomeOpponentPotential10, - gBattleDomeOpponentPotential11, - gBattleDomeOpponentPotential12, - gBattleDomeOpponentPotential13, - gBattleDomeOpponentPotential14, - gBattleDomeOpponentPotential15, - gBattleDomeOpponentPotential16, - gBattleDomeOpponentPotential17, +static const u8 *const sBattleDomePotentialTexts[] = +{ + gBattleDomeOpponentPotentialText1, + gBattleDomeOpponentPotentialText2, + gBattleDomeOpponentPotentialText3, + gBattleDomeOpponentPotentialText4, + gBattleDomeOpponentPotentialText5, + gBattleDomeOpponentPotentialText6, + gBattleDomeOpponentPotentialText7, + gBattleDomeOpponentPotentialText8, + gBattleDomeOpponentPotentialText9, + gBattleDomeOpponentPotentialText10, + gBattleDomeOpponentPotentialText11, + gBattleDomeOpponentPotentialText12, + gBattleDomeOpponentPotentialText13, + gBattleDomeOpponentPotentialText14, + gBattleDomeOpponentPotentialText15, + gBattleDomeOpponentPotentialText16, + gBattleDomeOpponentPotentialText17, }; -static const u8 *const gBattleDomeOpponentStylePointers[] = -{ - gBattleDomeOpponentStyle1, - gBattleDomeOpponentStyle2, - gBattleDomeOpponentStyle3, - gBattleDomeOpponentStyle4, - gBattleDomeOpponentStyle5, - gBattleDomeOpponentStyle6, - gBattleDomeOpponentStyle7, - gBattleDomeOpponentStyle8, - gBattleDomeOpponentStyle9, - gBattleDomeOpponentStyle10, - gBattleDomeOpponentStyle11, - gBattleDomeOpponentStyle12, - gBattleDomeOpponentStyle13, - gBattleDomeOpponentStyle14, - gBattleDomeOpponentStyle15, - gBattleDomeOpponentStyle16, - gBattleDomeOpponentStyle17, - gBattleDomeOpponentStyle18, - gBattleDomeOpponentStyle19, - gBattleDomeOpponentStyle20, - gBattleDomeOpponentStyle21, - gBattleDomeOpponentStyle22, - gBattleDomeOpponentStyle23, - gBattleDomeOpponentStyle24, - gBattleDomeOpponentStyle25, - gBattleDomeOpponentStyle26, - gBattleDomeOpponentStyle27, - gBattleDomeOpponentStyle28, - gBattleDomeOpponentStyleUnused1, - gBattleDomeOpponentStyleUnused2, - gBattleDomeOpponentStyleUnused3, - gBattleDomeOpponentStyleUnused4, +static const u8 *const sBattleDomeOpponentStyleTexts[] = +{ + gBattleDomeOpponentStyleText1, + gBattleDomeOpponentStyleText2, + gBattleDomeOpponentStyleText3, + gBattleDomeOpponentStyleText4, + gBattleDomeOpponentStyleText5, + gBattleDomeOpponentStyleText6, + gBattleDomeOpponentStyleText7, + gBattleDomeOpponentStyleText8, + gBattleDomeOpponentStyleText9, + gBattleDomeOpponentStyleText10, + gBattleDomeOpponentStyleText11, + gBattleDomeOpponentStyleText12, + gBattleDomeOpponentStyleText13, + gBattleDomeOpponentStyleText14, + gBattleDomeOpponentStyleText15, + gBattleDomeOpponentStyleText16, + gBattleDomeOpponentStyleText17, + gBattleDomeOpponentStyleText18, + gBattleDomeOpponentStyleText19, + gBattleDomeOpponentStyleText20, + gBattleDomeOpponentStyleText21, + gBattleDomeOpponentStyleText22, + gBattleDomeOpponentStyleText23, + gBattleDomeOpponentStyleText24, + gBattleDomeOpponentStyleText25, + gBattleDomeOpponentStyleText26, + gBattleDomeOpponentStyleText27, + gBattleDomeOpponentStyleText28, + gBattleDomeOpponentStyleTextUnused1, + gBattleDomeOpponentStyleTextUnused2, + gBattleDomeOpponentStyleTextUnused3, + gBattleDomeOpponentStyleTextUnused4, }; -static const u8 *const gBattleDomeOpponentStatsPointers[] = -{ - gBattleDomeOpponentStats1, - gBattleDomeOpponentStats2, - gBattleDomeOpponentStats3, - gBattleDomeOpponentStats4, - gBattleDomeOpponentStats5, - gBattleDomeOpponentStats6, - gBattleDomeOpponentStats7, - gBattleDomeOpponentStats8, - gBattleDomeOpponentStats9, - gBattleDomeOpponentStats10, - gBattleDomeOpponentStats11, - gBattleDomeOpponentStats12, - gBattleDomeOpponentStats13, - gBattleDomeOpponentStats14, - gBattleDomeOpponentStats15, - gBattleDomeOpponentStats16, - gBattleDomeOpponentStats17, - gBattleDomeOpponentStats18, - gBattleDomeOpponentStats19, - gBattleDomeOpponentStats20, - gBattleDomeOpponentStats21, - gBattleDomeOpponentStats22, - gBattleDomeOpponentStats23, - gBattleDomeOpponentStats24, - gBattleDomeOpponentStats25, - gBattleDomeOpponentStats26, - gBattleDomeOpponentStats27, - gBattleDomeOpponentStats28, - gBattleDomeOpponentStats29, - gBattleDomeOpponentStats30, - gBattleDomeOpponentStats31, - gBattleDomeOpponentStats32, - gBattleDomeOpponentStats33, - gBattleDomeOpponentStats34, - gBattleDomeOpponentStats35, - gBattleDomeOpponentStats36, - gBattleDomeOpponentStats37, - gBattleDomeOpponentStats38, - gBattleDomeOpponentStats39, - gBattleDomeOpponentStats40, - gBattleDomeOpponentStats41, - gBattleDomeOpponentStats42, - gBattleDomeOpponentStats43, +static const u8 *const sBattleDomeOpponentStatsTexts[] = +{ + gBattleDomeOpponentStatsText1, + gBattleDomeOpponentStatsText2, + gBattleDomeOpponentStatsText3, + gBattleDomeOpponentStatsText4, + gBattleDomeOpponentStatsText5, + gBattleDomeOpponentStatsText6, + gBattleDomeOpponentStatsText7, + gBattleDomeOpponentStatsText8, + gBattleDomeOpponentStatsText9, + gBattleDomeOpponentStatsText10, + gBattleDomeOpponentStatsText11, + gBattleDomeOpponentStatsText12, + gBattleDomeOpponentStatsText13, + gBattleDomeOpponentStatsText14, + gBattleDomeOpponentStatsText15, + gBattleDomeOpponentStatsText16, + gBattleDomeOpponentStatsText17, + gBattleDomeOpponentStatsText18, + gBattleDomeOpponentStatsText19, + gBattleDomeOpponentStatsText20, + gBattleDomeOpponentStatsText21, + gBattleDomeOpponentStatsText22, + gBattleDomeOpponentStatsText23, + gBattleDomeOpponentStatsText24, + gBattleDomeOpponentStatsText25, + gBattleDomeOpponentStatsText26, + gBattleDomeOpponentStatsText27, + gBattleDomeOpponentStatsText28, + gBattleDomeOpponentStatsText29, + gBattleDomeOpponentStatsText30, + gBattleDomeOpponentStatsText31, + gBattleDomeOpponentStatsText32, + gBattleDomeOpponentStatsText33, + gBattleDomeOpponentStatsText34, + gBattleDomeOpponentStatsText35, + gBattleDomeOpponentStatsText36, + gBattleDomeOpponentStatsText37, + gBattleDomeOpponentStatsText38, + gBattleDomeOpponentStatsText39, + gBattleDomeOpponentStatsText40, + gBattleDomeOpponentStatsText41, + gBattleDomeOpponentStatsText42, + gBattleDomeOpponentStatsText43, }; static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68}; @@ -1403,34 +1286,34 @@ static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00}; static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00}; -static const u8 *const gBattleDomeMatchNumberPointers[] = -{ - gBattleDomeMatchNumber1, - gBattleDomeMatchNumber2, - gBattleDomeMatchNumber3, - gBattleDomeMatchNumber4, - gBattleDomeMatchNumber5, - gBattleDomeMatchNumber6, - gBattleDomeMatchNumber7, - gBattleDomeMatchNumber8, - gBattleDomeMatchNumber9, - gBattleDomeMatchNumber10, - gBattleDomeMatchNumber11, - gBattleDomeMatchNumber12, - gBattleDomeMatchNumber13, - gBattleDomeMatchNumber14, - gBattleDomeMatchNumber15, +static const u8 *const sBattleDomeMatchNumberTexts[] = +{ + gBattleDomeMatchNumberText1, + gBattleDomeMatchNumberText2, + gBattleDomeMatchNumberText3, + gBattleDomeMatchNumberText4, + gBattleDomeMatchNumberText5, + gBattleDomeMatchNumberText6, + gBattleDomeMatchNumberText7, + gBattleDomeMatchNumberText8, + gBattleDomeMatchNumberText9, + gBattleDomeMatchNumberText10, + gBattleDomeMatchNumberText11, + gBattleDomeMatchNumberText12, + gBattleDomeMatchNumberText13, + gBattleDomeMatchNumberText14, + gBattleDomeMatchNumberText15, }; -static const u8 *const gBattleDomeWinStringsPointers[] = +static const u8 *const sBattleDomeWinTexts[] = { - gBattleDomeWinStrings1, - gBattleDomeWinStrings2, - gBattleDomeWinStrings3, - gBattleDomeWinStrings4, - gBattleDomeWinStrings5, - gBattleDomeWinStrings6, - gBattleDomeWinStrings7, + gBattleDomeWinText1, + gBattleDomeWinText2, + gBattleDomeWinText3, + gBattleDomeWinText4, + gBattleDomeWinText5, + gBattleDomeWinText6, + gBattleDomeWinText7, }; static const u8 sFirstTrainerMonX[] = {0x60, 0x60, 0x60}; @@ -2373,10 +2256,10 @@ static const u8 gUnknown_0860DE10[DOME_TOURNAMENT_TRAINERS_COUNT][4] = // code void CallBattleDomeFunction(void) { - gUnknown_0860D090[gSpecialVar_0x8004](); + sBattleDomeFunctions[gSpecialVar_0x8004](); } -static void sub_818E9CC(void) +static void InitDomeChallenge(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2392,7 +2275,7 @@ static void sub_818E9CC(void) gTrainerBattleOpponent_A = 0; } -static void sub_818EA84(void) +static void GetDomeData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2460,7 +2343,7 @@ static void sub_818EA84(void) } } -static void sub_818ED28(void) +static void SetDomeData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2528,21 +2411,21 @@ static void sub_818ED28(void) static void InitDomeTrainers(void) { - s32 i, j, k; - s32 monLevel; - s32 species[3]; - s32 monTypesBits, monTypesCount; - s32 trainerId; - s32 monSetId; + int i, j, k; + int monLevel; + int species[3]; + int monTypesBits, monTypesCount; + int trainerId; + int monSetId; u16 *statSums; - s32 *statValues; + int *statValues; u8 ivs = 0; species[0] = 0; species[1] = 0; species[2] = 0; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); - statValues = AllocZeroed(sizeof(s32) * 6); + statValues = AllocZeroed(sizeof(int) * 6); gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1; gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; @@ -2599,7 +2482,7 @@ static void InitDomeTrainers(void) monSetId = RandomizeFacilityTrainerMonSet(trainerId); for (k = 0; k < j; k++) { - s32 checkingMonSetId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; + int checkingMonSetId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; if (checkingMonSetId == monSetId || species[0] == gFacilityTrainerMons[monSetId].species || species[1] == gFacilityTrainerMons[monSetId].species @@ -2729,12 +2612,12 @@ static void InitDomeTrainers(void) stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \ } -static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 nature, s32 *stats) +static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats) { - s32 i, count; + int i, count; u8 bits; u16 resultingEvs; - s32 evs[NUM_STATS]; + int evs[NUM_STATS]; count = 0, bits = evBits; for (i = 0; i < NUM_STATS; bits >>= 1, i++) @@ -2757,7 +2640,7 @@ static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 natu } else { - s32 n = 2 * gBaseStats[species].baseHP; + int n = 2 * gBaseStats[species].baseHP; stats[STAT_HP] = (((n + ivs + evs[STAT_HP] / 4) * level) / 100) + level + 10; } @@ -2768,9 +2651,9 @@ static void CalcDomeMonStats(u16 species, s32 level, s32 ivs, u8 evBits, u8 natu CALC_STAT(baseSpDefense, STAT_SPDEF); } -static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) +static void SwapDomeTrainers(int id1, int id2, u16 *statsArray) { - s32 i; + int i; u16 temp; SWAP(statsArray[id1], statsArray[id2], temp); @@ -2780,29 +2663,29 @@ static void SwapDomeTrainers(s32 id1, s32 id2, u16 *statsArray) SWAP(gSaveBlock2Ptr->frontier.domeMonIds[id1][i], gSaveBlock2Ptr->frontier.domeMonIds[id2][i], temp); } -static void sub_818F9B0(void) +static void BufferDomeRoundText(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.curChallengeBattleNum]); } -static void sub_818F9E0(void) +static void BufferDomeOpponentName(void) { StringCopy(gStringVar1, gRoundsStringTable[gSaveBlock2Ptr->frontier.curChallengeBattleNum]); CopyDomeTrainerName(gStringVar2, gTrainerBattleOpponent_A); } -static void sub_818FA20(void) +static void InitDomeOpponentParty(void) { gUnknown_0203CD70 = 0; gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); CalculatePlayerPartyCount(); - CreateDomeTrainerMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); + CreateDomeOpponentMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); } -static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) +static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) { - s32 i; + int i; u8 happiness = 0xFF; u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. u8 level = SetFacilityPtrsGetLevel(); @@ -2827,11 +2710,11 @@ static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentM &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].itemTableId]); } -static void CreateDomeTrainerMons(u16 tournamentTrainerId) +static void CreateDomeOpponentMons(u16 tournamentTrainerId) { u8 monsCount = 0; u32 otId = 0; - s32 i, bits; + int i, bits; ZeroEnemyPartyMons(); bits = GetDomeTrainerMonCountInBits(tournamentTrainerId); @@ -2842,7 +2725,7 @@ static void CreateDomeTrainerMons(u16 tournamentTrainerId) { if (bits & 1) { - CreateDomeMon(monsCount, tournamentTrainerId, i, otId); + CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } bits >>= 1; @@ -2854,7 +2737,7 @@ static void CreateDomeTrainerMons(u16 tournamentTrainerId) { if (bits & 4) { - CreateDomeMon(monsCount, tournamentTrainerId, i, otId); + CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } bits <<= 1; @@ -2862,9 +2745,9 @@ static void CreateDomeTrainerMons(u16 tournamentTrainerId) } } -s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) +int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) { - s32 bits; + int bits; if (Random() & 1) { bits = sub_818FCBC(tournamentTrainerId, FALSE); @@ -2881,10 +2764,10 @@ s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) return bits; } -static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) +static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) { - s32 i, moveId, playerMonId; - s32 array[3]; + int i, moveId, playerMonId; + int array[3]; for (i = 0; i < 3; i++) { @@ -2909,10 +2792,10 @@ static s32 sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) return sub_818FEB4(array, arg1); } -static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) +static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) { - s32 i, moveId, playerMonId; - s32 array[3]; + int i, moveId, playerMonId; + int array[3]; for (i = 0; i < 3; i++) { @@ -2937,11 +2820,11 @@ static s32 sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) return sub_818FEB4(array, arg1); } -static s32 sub_818FEB4(s32 *arr, bool8 arg1) +static int sub_818FEB4(int *arr, bool8 arg1) { - s32 i, j; - s32 bits = 0; - s32 array[3]; + int i, j; + int bits = 0; + int array[3]; for (i = 0; i < 3; i++) array[i] = i; @@ -2968,7 +2851,7 @@ static s32 sub_818FEB4(s32 *arr, bool8 arg1) { for (j = i + 1; j < 3; j++) { - s32 temp; + int temp; if (arr[i] < arr[j]) { @@ -3012,11 +2895,11 @@ static s32 sub_818FEB4(s32 *arr, bool8 arg1) // Functionally equivalent, while loop is impossible to match. #ifdef NONMATCHING -static s32 GetTypeEffectivenessPoints(s32 move, s32 targetSpecies, s32 arg2) +static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) { - s32 defType1, defType2, defAbility, moveType; - s32 i = 0; - s32 typePower = TYPE_x1; + int defType1, defType2, defAbility, moveType; + int i = 0; + int typePower = TYPE_x1; if (move == MOVE_NONE || move == 0xFFFF || gBattleMoves[move].power == 0) return 0; @@ -3131,7 +3014,7 @@ static s32 GetTypeEffectivenessPoints(s32 move, s32 targetSpecies, s32 arg2) } #else NAKED -static s32 GetTypeEffectivenessPoints(s32 move, s32 species, s32 arg2) +static int GetTypeEffectivenessPoints(int move, int species, int arg2) { asm_unified("\n\ push {r4-r7,lr}\n\ @@ -3394,9 +3277,9 @@ static u8 GetDomeTrainerMonIvs(u16 trainerId) return fixedIv; } -static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) +static int TournamentIdOfOpponent(int roundId, int trainerId) { - s32 i, j, val; + int i, j, val; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -3431,7 +3314,7 @@ static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) } } -static void sub_8190298(void) +static void SetDomeOpponentId(void) { gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); } @@ -3441,7 +3324,7 @@ static u16 TrainerIdOfPlayerOpponent(void) return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId; } -static void sub_81902E4(void) +static void SetDomeOpponentGraphicsId(void) { SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); } @@ -3454,7 +3337,7 @@ static void sub_81902F8(void) sub_81A4C30(); } -static void sub_819033C(void) +static void UpdateDomeStreaks(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -3470,7 +3353,7 @@ static void sub_819033C(void) static void ShowDomeOpponentInfo(void) { - u8 taskId = CreateTask(sub_8190400, 0); + u8 taskId = CreateTask(Task_ShowOpponentInfo, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); gTasks[taskId].data[2] = 0; @@ -3479,12 +3362,12 @@ static void ShowDomeOpponentInfo(void) SetMainCallback2(CB2_BattleDome); } -static void sub_8190400(u8 taskId) +static void Task_ShowOpponentInfo(u8 taskId) { - s32 i; - s32 r5 = gTasks[taskId].data[1]; - s32 r9 = gTasks[taskId].data[2]; - s32 r7 = gTasks[taskId].data[3]; + int i; + int r5 = gTasks[taskId].data[1]; + int r9 = gTasks[taskId].data[2]; + int r7 = gTasks[taskId].data[3]; switch (gTasks[taskId].data[0]) { @@ -3531,7 +3414,7 @@ static void sub_8190400(u8 taskId) DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1); DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1); - LoadCompressedSpriteSheet(gUnknown_0860CF50); + LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet); LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); LoadCompressedPalette(gUnknown_08D85600, 0xF0, 0x20); @@ -3774,10 +3657,10 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) static void sub_8190B40(struct Sprite *sprite) { - s32 taskId1 = sprite->data[0]; - s32 arrId = gTasks[gTasks[taskId1].data[4]].data[1]; - s32 tournmanetTrainerId = gUnknown_0860D080[arrId]; - s32 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + int taskId1 = sprite->data[0]; + int arrId = gTasks[gTasks[taskId1].data[4]].data[1]; + int tournmanetTrainerId = sTourneyTreeTrainerIds[arrId]; + int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; if (gTasks[taskId1].data[3] == 1) { @@ -3843,7 +3726,7 @@ static void sub_8190B40(struct Sprite *sprite) static void sub_8190C6C(struct Sprite *sprite) { - s32 taskId1 = sprite->data[0]; + int taskId1 = sprite->data[0]; if (gTasks[taskId1].data[3] == 1) { @@ -3873,12 +3756,12 @@ static void sub_8190C6C(struct Sprite *sprite) static void sub_8190CD4(u8 taskId) { - s32 i; - s32 windowId = 0; - s32 r9 = gTasks[taskId].data[3]; - s32 taskId2 = gTasks[taskId].data[4]; - s32 trainerTournamentId = 0; - s32 matchNo = 0; + int i; + int windowId = 0; + int r9 = gTasks[taskId].data[3]; + int taskId2 = gTasks[taskId].data[4]; + int trainerTournamentId = 0; + int matchNo = 0; switch (gTasks[taskId].data[0]) { @@ -3946,14 +3829,14 @@ static void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); sBattleDomeStruct->unk_10 = 0; } @@ -4062,14 +3945,14 @@ static void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); } else { gBattle_BG2_X = 0; gBattle_BG2_Y = 0; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); sBattleDomeStruct->unk_10 = 0; } @@ -4175,7 +4058,7 @@ static void sub_8190CD4(u8 taskId) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); } else @@ -4574,7 +4457,7 @@ static void sub_8190CD4(u8 taskId) } else { - i = CreateTask(sub_8194220, 0); + i = CreateTask(Task_ShowTourneyTree, 0); gTasks[i].data[0] = 0; gTasks[i].data[1] = 0; gTasks[i].data[2] = 3; @@ -4590,9 +4473,9 @@ static void sub_8190CD4(u8 taskId) static u8 sub_819221C(u8 taskId) { u8 retVal = 0; - s32 taskId2 = gTasks[taskId].data[4]; - s32 r5 = gTasks[taskId2].data[1]; - u8 r10 = gUnknown_0860D080[r5]; + int taskId2 = gTasks[taskId].data[4]; + int r5 = gTasks[taskId2].data[1]; + u8 r10 = sTourneyTreeTrainerIds[r5]; u16 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; if (gMain.newKeys & (A_BUTTON | B_BUTTON)) @@ -4699,12 +4582,12 @@ static u8 sub_819221C(u8 taskId) static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { struct TextPrinterTemplate textPrinter; - s32 i, j, k; - s32 trainerId = 0; + int i, j, k; + int trainerId = 0; u8 nature = 0; - s32 arrId = 0; - s32 windowId = 0; - s32 x = 0, y = 0; + int arrId = 0; + int windowId = 0; + int x = 0, y = 0; u8 palSlot = 0; s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18); trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId; @@ -4835,9 +4718,9 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) PutWindowTilemap(windowId + 4); CopyWindowToVram(windowId + 4, 3); if (trainerId == TRAINER_FRONTIER_BRAIN) - textPrinter.currentChar = gBattleDomePotentialPointers[16]; + textPrinter.currentChar = sBattleDomePotentialTexts[16]; else - textPrinter.currentChar = gBattleDomePotentialPointers[trainerTournamentId]; + textPrinter.currentChar = sBattleDomePotentialTexts[trainerTournamentId]; textPrinter.fontId = 1; textPrinter.windowId = windowId + 4; @@ -4864,7 +4747,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) for (i = 0; i < ARRAY_COUNT(gUnknown_0860C988); i++) { - s32 r4 = 0; + int r4 = 0; for (k = 0, j = 0; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) { @@ -4879,7 +4762,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) break; } - textPrinter.currentChar = gBattleDomeOpponentStylePointers[i]; + textPrinter.currentChar = sBattleDomeOpponentStyleTexts[i]; textPrinter.y = 20; textPrinter.currentY = 20; AddTextPrinter(&textPrinter, 0, NULL); @@ -4930,7 +4813,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { for (i = 0; i < 3; i++) { - s32 evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; + int evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; for (k = 0, j = 0; j < NUM_STATS; j++) { allocatedArray[j] = 0; @@ -5051,19 +4934,19 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) else i = 42; - textPrinter.currentChar = gBattleDomeOpponentStatsPointers[i]; + textPrinter.currentChar = sBattleDomeOpponentStatsTexts[i]; textPrinter.y = 36; textPrinter.currentY = 36; AddTextPrinter(&textPrinter, 0, NULL); Free(allocatedArray); } -static s32 sub_8192F08(u8 arg0, u8 *arg1) +static int sub_8192F08(u8 arg0, u8 *arg1) { - s32 i; + int i; u8 tournamentId; - s32 retVal = 0; - s32 count = 0; + int retVal = 0; + int count = 0; for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) { @@ -5123,14 +5006,14 @@ static s32 sub_8192F08(u8 arg0, u8 *arg1) static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { struct TextPrinterTemplate textPrinter; - s32 tournamentIds[2]; - s32 trainerIds[2]; + int tournamentIds[2]; + int trainerIds[2]; bool32 lost[2]; - s32 i; - s32 winStringId = 0; - s32 arrId = 0; - s32 windowId = 0; - s32 x = 0, y = 0; + int i; + int winStringId = 0; + int arrId = 0; + int windowId = 0; + int x = 0, y = 0; u8 palSlot = 0; if (flags & 1) @@ -5274,7 +5157,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) textPrinter.fgColor = 14; textPrinter.bgColor = 0; textPrinter.shadowColor = 13; - StringExpandPlaceholders(gStringVar4, gBattleDomeWinStringsPointers[winStringId]); + StringExpandPlaceholders(gStringVar4, sBattleDomeWinTexts[winStringId]); textPrinter.currentChar = gStringVar4; textPrinter.windowId = windowId + 8; textPrinter.fontId = 1; @@ -5320,7 +5203,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) // Print match number. textPrinter.letterSpacing = 0; - textPrinter.currentChar = gBattleDomeMatchNumberPointers[matchNo]; + textPrinter.currentChar = sBattleDomeMatchNumberTexts[matchNo]; textPrinter.windowId = windowId + 5; textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0xA0, textPrinter.letterSpacing); textPrinter.currentY = textPrinter.y = 2; @@ -5329,9 +5212,9 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) AddTextPrinter(&textPrinter, 0, NULL); } -static void sub_81938A4(void) +static void ShowDomeTourneyTree(void) { - u8 taskId = CreateTask(sub_8194220, 0); + u8 taskId = CreateTask(Task_ShowTourneyTree, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 2; @@ -5339,14 +5222,14 @@ static void sub_81938A4(void) SetMainCallback2(CB2_BattleDome); } -static void sub_81938E0(void) +static void ShowPreviousDomeResultsTourneyTree(void) { u8 taskId; - sub_8194D48(); + InitDomeFacilityTrainersAndMons(); gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 3; - taskId = CreateTask(sub_8194220, 0); + taskId = CreateTask(Task_ShowTourneyTree, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 2; @@ -5357,7 +5240,7 @@ static void sub_81938E0(void) static void sub_819395C(u8 taskId) { u8 newTaskId = 0; - s32 spriteId = gTasks[taskId].data[1]; + int spriteId = gTasks[taskId].data[1]; switch (gTasks[taskId].data[0]) { @@ -5374,7 +5257,7 @@ static void sub_819395C(u8 taskId) gTasks[taskId].data[0] = 2; break; case 2: - switch (sub_8193BDC(taskId)) + switch (UpdateTourneyTreeCursor(taskId)) { case 0: default: @@ -5399,9 +5282,9 @@ static void sub_819395C(u8 taskId) FreeAllWindowBuffers(); ScanlineEffect_Stop(); FREE_AND_SET_NULL(sTilemapBuffer); - newTaskId = CreateTask(sub_8190400, 0); + newTaskId = CreateTask(Task_ShowOpponentInfo, 0); gTasks[newTaskId].data[0] = 0; - gTasks[newTaskId].data[1] = gUnknown_0860D080[spriteId]; + gTasks[newTaskId].data[1] = sTourneyTreeTrainerIds[spriteId]; gTasks[newTaskId].data[2] = 1; gTasks[newTaskId].data[3] = taskId; @@ -5417,7 +5300,7 @@ static void sub_819395C(u8 taskId) FreeAllWindowBuffers(); ScanlineEffect_Stop(); FREE_AND_SET_NULL(sTilemapBuffer); - newTaskId = CreateTask(sub_8190400, 0); + newTaskId = CreateTask(Task_ShowOpponentInfo, 0); gTasks[newTaskId].data[0] = 0; gTasks[newTaskId].data[1] = spriteId - 16; gTasks[newTaskId].data[2] = 2; @@ -5442,21 +5325,21 @@ static void sub_819395C(u8 taskId) } } -static u8 sub_8193BDC(u8 taskId) +static u8 UpdateTourneyTreeCursor(u8 taskId) { u8 retVal = 1; - s32 arrId = 4; - s32 spriteId = gTasks[taskId].data[1]; - s32 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + int direction = 4; + int tourneyTreeCursorSpriteId = gTasks[taskId].data[1]; + int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && spriteId == 31)) + if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && tourneyTreeCursorSpriteId == 31)) { PlaySE(SE_SELECT); retVal = 0; } else if (gMain.newKeys & A_BUTTON) { - if (spriteId < 16) + if (tourneyTreeCursorSpriteId < 16) { PlaySE(SE_SELECT); retVal = 2; @@ -5469,31 +5352,31 @@ static u8 sub_8193BDC(u8 taskId) } else { - if (gMain.newKeys == DPAD_UP && gUnknown_0860CBF1[spriteId][roundId][0] != 0xFF) - arrId = 0; - else if (gMain.newKeys == DPAD_DOWN && gUnknown_0860CBF1[spriteId][roundId][1] != 0xFF) - arrId = 1; - else if (gMain.newKeys == DPAD_LEFT && gUnknown_0860CBF1[spriteId][roundId][2] != 0xFF) - arrId = 2; - else if (gMain.newKeys == DPAD_RIGHT && gUnknown_0860CBF1[spriteId][roundId][3] != 0xFF) - arrId = 3; + if (gMain.newKeys == DPAD_UP && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][0] != 0xFF) + direction = 0; + else if (gMain.newKeys == DPAD_DOWN && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][1] != 0xFF) + direction = 1; + else if (gMain.newKeys == DPAD_LEFT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][2] != 0xFF) + direction = 2; + else if (gMain.newKeys == DPAD_RIGHT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][3] != 0xFF) + direction = 3; } - if (arrId != 4) + if (direction != 4) { PlaySE(SE_SELECT); - StartSpriteAnim(&gSprites[spriteId], 0); - spriteId = gUnknown_0860CBF1[spriteId][roundId][arrId]; - StartSpriteAnim(&gSprites[spriteId], 1); - gTasks[taskId].data[1] = spriteId; + StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 0); + tourneyTreeCursorSpriteId = sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][direction]; + StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 1); + gTasks[taskId].data[1] = tourneyTreeCursorSpriteId; } return retVal; } -static void sub_8193D40(void) +static void ShowNonInteractiveDomeTourneyTree(void) { - u8 taskId = CreateTask(sub_8194220, 0); + u8 taskId = CreateTask(Task_ShowTourneyTree, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 1; gTasks[taskId].data[2] = 2; @@ -5501,9 +5384,9 @@ static void sub_8193D40(void) SetMainCallback2(CB2_BattleDome); } -static void sub_8193D7C(void) +static void ResolveDomeRoundWinners(void) { - s32 i; + int i; if (gSpecialVar_0x8005 == 1) { @@ -5525,14 +5408,14 @@ static void sub_8193D7C(void) } } -static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roundId) +static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roundId) { - s32 i, j, k; - s32 moveScores[4 * 3]; + int i, j, k; + int moveScores[4 * 3]; u16 moveIds[4 * 3]; u16 bestScore = 0; u16 bestId = 0; - s32 movePower = 0; + int movePower = 0; SetFacilityPtrsGetLevel(); // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons. @@ -5639,12 +5522,12 @@ static u16 GetWinningMove(s32 winnerTournamentId, s32 loserTournamentId, u8 roun return moveIds[j]; } -static void sub_8194220(u8 taskId) +static void Task_ShowTourneyTree(u8 taskId) { - s32 i; + int i; struct TextPrinterTemplate textPrinter; - s32 r10 = gTasks[taskId].data[1]; - s32 r4 = gTasks[taskId].data[2]; + int r10 = gTasks[taskId].data[1]; + int r4 = gTasks[taskId].data[2]; switch (gTasks[taskId].data[0]) { @@ -5703,7 +5586,7 @@ static void sub_8194220(u8 taskId) gTasks[taskId].data[0]++; break; case 3: - LoadCompressedSpriteSheet(gUnknown_0860CF50); + LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet); if (r10 == 0) { for (i = 0; i < (unsigned) 31; i++) @@ -5734,7 +5617,7 @@ static void sub_8194220(u8 taskId) AddTextPrinter(&textPrinter, 0, NULL); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - s32 roundId, var2; + int roundId, var2; CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); if (r10 == 1) @@ -5851,19 +5734,19 @@ static void sub_8194220(u8 taskId) i = 0; while (i < 91) { - gScanlineEffectRegBuffers[0][i] = 0x1F0A; - gScanlineEffectRegBuffers[1][i] = 0x1F0A; + gScanlineEffectRegBuffers[0][i] = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_CHARBASE(2) | BGCNT_TXT256x256; + gScanlineEffectRegBuffers[1][i] = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_CHARBASE(2) | BGCNT_TXT256x256; i++; } while (i < 160) { - gScanlineEffectRegBuffers[0][i] = 0x1F09; - gScanlineEffectRegBuffers[1][i] = 0x1F09; + gScanlineEffectRegBuffers[0][i] = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_CHARBASE(2) | BGCNT_TXT256x256; + gScanlineEffectRegBuffers[1][i] = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_CHARBASE(2) | BGCNT_TXT256x256; i++; } - ScanlineEffect_SetParams(gUnknown_0860CF44); + ScanlineEffect_SetParams(sTourneyTreeScanlineEffectParams); DestroyTask(taskId); break; } @@ -5871,7 +5754,7 @@ static void sub_8194220(u8 taskId) static void sub_81948EC(u8 tournamentId, u8 arg1) { - s32 i; + int i; const struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1]; for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++) @@ -5882,7 +5765,7 @@ static void sub_81948EC(u8 tournamentId, u8 arg1) static void sub_8194950(u8 taskId) { - s32 i; + int i; struct TextPrinterTemplate textPrinter; switch (gTasks[taskId].data[0]) @@ -5923,7 +5806,7 @@ static void sub_8194950(u8 taskId) } if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) { - s32 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; + int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; sub_81948EC(i, roundId); } } @@ -6050,20 +5933,20 @@ static void VblankCb1_BattleDome(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void sub_8194D48(void) +static void InitDomeFacilityTrainersAndMons(void) { gFacilityTrainerMons = gBattleFrontierMons; gFacilityTrainers = gBattleFrontierTrainers; } -static void sub_8194D68(void) +static void RestoreDomePlayerParty(void) { - s32 i, moveSlot; + int i, moveSlot; for (i = 0; i < 2; i++) { - s32 playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; - s32 count; + int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; + int count; for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++) { @@ -6082,24 +5965,24 @@ static void sub_8194D68(void) } } -static void sub_8194E44(void) +static void RestoreDomePlayerPartyHeldItems(void) { - s32 i; + int i; for (i = 0; i < 2; i++) { - s32 playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; + int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); } } -static void sub_8194EB4(void) +static void ReduceDomePlayerPartyTo3Mons(void) { ReducePlayerPartyToSelectedMons(); } -static void sub_8194EC0(void) +static void GetPlayerSeededBeforeOpponent(void) { if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER)) gSpecialVar_Result = 1; @@ -6107,11 +5990,11 @@ static void sub_8194EC0(void) gSpecialVar_Result = 2; } -static void sub_8194EF8(void) +static void BufferLastDomeWinnerName(void) { - s32 i; + int i; - sub_8194D48(); + InitDomeFacilityTrainersAndMons(); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) @@ -6122,15 +6005,15 @@ static void sub_8194EF8(void) static void sub_8194F58(void) { - s32 i, j, k; - s32 monLevel; - s32 species[3]; - s32 monTypesBits; - s32 trainerId; - s32 monSetId; + int i, j, k; + int monLevel; + int species[3]; + int monTypesBits; + int trainerId; + int monSetId; u8 lvlMode; u16 *statSums; - s32 *statValues; + int *statValues; u8 ivs = 0; species[0] = 0; @@ -6140,7 +6023,7 @@ static void sub_8194F58(void) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); - statValues = AllocZeroed(sizeof(s32) * 6); + statValues = AllocZeroed(sizeof(int) * 6); lvlMode = gSaveBlock2Ptr->frontier.lvlMode; gSaveBlock2Ptr->frontier.lvlMode = 0; // This one, I'd like to call a 'C fakematching'. @@ -6177,7 +6060,7 @@ static void sub_8194F58(void) monSetId = RandomizeFacilityTrainerMonSet(trainerId); for (k = 0; k < j; k++) { - s32 checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; + int checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; if (checkingMonId == monSetId || species[0] == gFacilityTrainerMons[monSetId].species || species[1] == gFacilityTrainerMons[monSetId].species @@ -6253,9 +6136,9 @@ static void sub_8194F58(void) gSaveBlock2Ptr->frontier.lvlMode = lvlMode; } -static s32 TrainerIdToTournamentId(u16 trainerId) +static int TrainerIdToTournamentId(u16 trainerId) { - s32 i; + int i; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -6267,9 +6150,9 @@ static s32 TrainerIdToTournamentId(u16 trainerId) } // The same as the above one, but has global scope. -s32 TrainerIdToDomeTournamentId(u16 trainerId) +int TrainerIdToDomeTournamentId(u16 trainerId) { - s32 i; + int i; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -6280,10 +6163,10 @@ s32 TrainerIdToDomeTournamentId(u16 trainerId) return i; } -static u8 sub_81953E8(u8 tournamentId, u8 arg1) +static u8 sub_81953E8(u8 tournamentId, u8 round) { u8 arr[2]; - sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][arg1] - 16, arr); + sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][round] - 16, arr); if (tournamentId == arr[0]) return arr[1]; else @@ -6292,11 +6175,11 @@ static u8 sub_81953E8(u8 tournamentId, u8 arg1) static void DecideRoundWinners(u8 roundId) { - s32 i; - s32 moveSlot, monId1, monId2; - s32 tournamentId1, tournamentId2; - s32 species; - s32 points1 = 0, points2 = 0; + int i; + int moveSlot, monId1, monId2; + int tournamentId1, tournamentId2; + int species; + int points1 = 0, points2 = 0; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { @@ -6400,28 +6283,28 @@ static void DecideRoundWinners(u8 roundId) } } -static void CopyDomeTrainerName(u8 *dst, u16 trainerId) +static void CopyDomeTrainerName(u8 *str, u16 trainerId) { - s32 i = 0; + int i = 0; SetFacilityPtrsGetLevel(); if (trainerId == TRAINER_FRONTIER_BRAIN) { - CopyDomeBrainTrainerName(dst); + CopyDomeBrainTrainerName(str); } else { if (trainerId == TRAINER_PLAYER) { for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gSaveBlock2Ptr->playerName[i]; + str[i] = gSaveBlock2Ptr->playerName[i]; } else if (trainerId < 300) { for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gFacilityTrainers[trainerId].trainerName[i]; + str[i] = gFacilityTrainers[trainerId].trainerName[i]; } - dst[i] = EOS; + str[i] = EOS; } } @@ -6435,11 +6318,11 @@ static u8 GetDomeBrainTrainerClass(void) return gTrainers[TRAINER_TUCKER].trainerClass; } -static void CopyDomeBrainTrainerName(u8 *dst) +static void CopyDomeBrainTrainerName(u8 *str) { - s32 i; + int i; for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gTrainers[TRAINER_TUCKER].trainerName[i]; - dst[i] = EOS; + str[i] = gTrainers[TRAINER_TUCKER].trainerName[i]; + str[i] = EOS; } -- cgit v1.2.3 From abebd2b8648313deeee52ef5be1d6cc0927193ad Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 8 Feb 2019 11:48:51 -0600 Subject: Cleanup externs in overworld.c --- src/field_specials.c | 2 +- src/new_game.c | 2 +- src/overworld.c | 69 +++++----------------------------------------------- 3 files changed, 8 insertions(+), 65 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index f2ebf2b8e..3c26085dd 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1956,7 +1956,7 @@ void sub_8139D98(void) } } -bool32 warp0_in_pokecenter(void) +bool8 warp0_in_pokecenter(void) { static const u16 gUnknown_085B2C2A[] = { 0x0202, 0x0301, 0x0405, 0x0504, 0x0604, 0x0700, 0x0804, 0x090b, 0x0a05, 0x0b05, 0x0c02, 0x0d06, 0x0e03, 0x0f02, 0x100c, 0x100a, 0x1a35, 0x193c, 0xFFFF }; diff --git a/src/new_game.c b/src/new_game.c index 158120245..f68ed3d4f 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -8,6 +8,7 @@ #include "lottery_corner.h" #include "play_time.h" #include "mauville_old_man.h" +#include "match_call.h" #include "lilycove_lady.h" #include "load_save.h" #include "pokeblock.h" @@ -47,7 +48,6 @@ extern void NewGameInitPCItems(void); extern void ClearDecorationInventories(void); extern void ResetFanClub(void); extern void copy_strings_to_sav1(void); -extern void InitMatchCallCounters(void); extern void sub_801AFD8(void); extern void sub_800E5AC(void); extern void ResetContestLinkResults(void); diff --git a/src/overworld.c b/src/overworld.c index 2bc4f96d5..43610fe09 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -19,6 +19,7 @@ #include "field_tasks.h" #include "field_weather.h" #include "fieldmap.h" +#include "fldeff.h" #include "gpu_regs.h" #include "heal_location.h" #include "link.h" @@ -28,6 +29,7 @@ #include "alloc.h" #include "m4a.h" #include "map_name_popup.h" +#include "match_call.h" #include "menu.h" #include "metatile_behavior.h" #include "mirage_tower.h" @@ -42,14 +44,15 @@ #include "save.h" #include "save_location.h" #include "script.h" -// #include "script_pokemon_80C4.h" +#include "script_pokemon_util_80F87D8.h" #include "secret_base.h" #include "sound.h" #include "start_menu.h" #include "task.h" -// #include "tileset_anim.h" +#include "tileset_anims.h" #include "time_events.h" #include "trainer_hill.h" +#include "trainer_pokemon_sprites.h" #include "tv.h" #include "scanline_effect.h" #include "wild_encounter.h" @@ -85,71 +88,11 @@ extern const u8 gUnknown_082773F5[]; extern const u8 gUnknown_082774EF[]; extern const u8 gUnknown_08277509[]; -// vars extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; -extern const s32 gMaxFlashLevel; +extern const int gMaxFlashLevel; extern const u16 gUnknown_82EC7C4[]; -// functions -extern void HealPlayerParty(void); -extern void move_tilemap_camera_to_upper_left_corner(void); -extern void cur_mapheader_run_tileset_funcs_after_some_cpuset(void); -extern void DrawWholeMapView(void); -extern void copy_map_tileset1_tileset2_to_vram(const struct MapLayout *); -extern void apply_map_tileset1_tileset2_palette(const struct MapLayout *); -extern void ResetCyclingRoadChallengeData(void); -extern void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey); -extern void mapheader_run_script_with_tag_x5(void); -extern void ResetFieldTasksArgs(void); -extern void sub_80A0A2C(void); -extern void apply_map_tileset2_palette(const struct MapLayout *); -extern void copy_map_tileset2_to_vram_2(const struct MapLayout *); -extern void RestartWildEncounterImmunitySteps(void); -extern void ShowMapNamePopup(void); -extern bool32 sub_808651C(void); -extern bool8 sub_80AF6A4(void); -extern bool8 sub_80E909C(void); -extern void c2_change_map(void); -extern void sub_81D5DF8(void); -extern void sub_80EB218(void); -extern void sub_80AF3C8(void); -extern void sub_808B578(void); -extern void sub_80AF314(void); -extern void sub_80AF214(void); -extern void sub_80AF188(void); -extern void RotatingGate_InitPuzzleAndGraphics(void); -extern void sub_80AF168(void); -extern void sub_80AF3C8(void); -extern void ExecuteTruckSequence(void); -extern void sub_80A0A38(void); -extern void WriteFlashScanlineEffectBuffer(u8); -extern void InitMatchCallCounters(void); -extern void sub_80EDB44(void); -extern void InitFieldMessageBox(void); -extern void copy_map_tileset1_to_vram(const struct MapLayout *); -extern void copy_map_tileset2_to_vram(const struct MapLayout *); -extern void FieldUpdateBgTilemapScroll(void); -extern void TransferTilesetAnimsBuffer(void); -extern bool8 warp0_in_pokecenter(void); -extern void ResetAllPicSprites(void); -extern void FieldEffectActiveListClear(void); -extern void SetUpFieldTasks(void); -extern void ShowStartMenu(void); -extern void sub_80AEE84(void); -extern void mapldr_default(void); -extern bool32 sub_800F0B8(void); -extern bool32 sub_8009F3C(void); -extern void sub_8010198(void); -extern u32 sub_800B4DC(void); -extern bool32 sub_80B39D4(u8); -extern const u8* GetInteractedLinkPlayerScript(struct MapPosition *a1, u8, u8); -extern u8 *GetCoordEventScriptAtMapPosition(void*); -extern u8 GetFRLGAvatarGraphicsIdByGender(u8); -extern u8 GetRSAvatarGraphicsIdByGender(u8); -extern void UpdateEventObjectSpriteVisibility(struct Sprite*, u8); - -// this file's functions static void Overworld_ResetStateAfterWhiteOut(void); static void c2_80567AC(void); static void CB2_LoadMap2(void); -- cgit v1.2.3 From 40dc6833c579f13a0ad939e3ac9ebd83d7dd752e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 8 Feb 2019 15:07:42 -0600 Subject: Fully document tileset animations --- src/battle_dome.c | 2 +- src/overworld.c | 12 +- src/tileset_anims.c | 1672 ++++++++++++++++++++++----------------------------- 3 files changed, 731 insertions(+), 955 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index f6327f31f..bfede1b28 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -126,7 +126,7 @@ static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; // Const rom data. -static const u8 sMovePointsForDomeTrainers[][DOME_TOURNAMENT_TRAINERS_COUNT] = +static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = { [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, diff --git a/src/overworld.c b/src/overworld.c index 43610fe09..08fd94c1b 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -528,7 +528,7 @@ static void mapdata_load_assets_to_gpu_and_full_redraw(void) copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout); apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); DrawWholeMapView(); - cur_mapheader_run_tileset_funcs_after_some_cpuset(); + InitTilesetAnimations(); } const struct MapLayout *GetMapLayout(void) @@ -808,7 +808,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) for (paletteIndex = 6; paletteIndex < 13; paletteIndex++) ApplyWeatherGammaShiftToPal(paletteIndex); - sub_80A0A2C(); + InitSecondaryTilesetAnimation(); UpdateLocationHistoryForRoamer(); RoamerMove(); DoCurrentWeather(); @@ -1451,7 +1451,7 @@ static void OverworldBasic(void) UpdateCameraPanning(); BuildOamBuffer(); UpdatePaletteFade(); - sub_80A0A38(); + UpdateTilesetAnimations(); do_scheduled_bg_tilemap_copies_to_vram(); } @@ -1843,7 +1843,7 @@ static bool32 map_loading_iteration_3(u8 *state) (*state)++; break; case 10: - cur_mapheader_run_tileset_funcs_after_some_cpuset(); + InitTilesetAnimations(); (*state)++; break; case 11: @@ -1918,7 +1918,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2) (*state)++; break; case 10: - cur_mapheader_run_tileset_funcs_after_some_cpuset(); + InitTilesetAnimations(); (*state)++; break; case 11: @@ -2015,7 +2015,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 9: - cur_mapheader_run_tileset_funcs_after_some_cpuset(); + InitTilesetAnimations(); (*state)++; break; case 11: diff --git a/src/tileset_anims.c b/src/tileset_anims.c index f7c3cd482..087b75b7c 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -1,5 +1,5 @@ -// Includes #include "global.h" +#include "graphics.h" #include "palette.h" #include "util.h" #include "battle_transition.h" @@ -7,10 +7,6 @@ #include "battle_transition.h" #include "fieldmap.h" -// Static type declarations - -// Static RAM declarations - static EWRAM_DATA struct { const u16 *src; u16 *dest; @@ -18,211 +14,209 @@ static EWRAM_DATA struct { } sTilesetDMA3TransferBuffer[20] = {0}; static u8 sTilesetDMA3TransferBufferSize; -static u16 sPrimaryTilesetCBCounter; -static u16 sPrimaryTilesetCBBufferSize; -static u16 sSecondaryTilesetCBCounter; -static u16 sSecondaryTilesetCBBufferSize; -static void (*sPrimaryTilesetCB)(u16); -static void (*sSecondaryTilesetCB)(u16); - -// Static ROM declarations - -static void cur_mapheader_run_tileset1_func(void); -static void cur_mapheader_run_tileset2_func(void); - -// .rodata - - -const u16 gTilesetAnims_General0_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/0/1.4bpp"); - -const u16 gTilesetAnims_General0_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/0/0.4bpp"); - -const u16 gTilesetAnims_General0_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/0/2.4bpp"); - +static u16 sPrimaryTilesetAnimCounter; +static u16 sPrimaryTilesetAnimCounterMax; +static u16 sSecondaryTilesetAnimCounter; +static u16 sSecondaryTilesetAnimCounterMax; +static void (*sPrimaryTilesetAnimCallback)(u16); +static void (*sSecondaryTilesetAnimCallback)(u16); + +static void _InitPrimaryTilesetAnimation(void); +static void _InitSecondaryTilesetAnimation(void); +static void TilesetAnim_General(u16); +static void TilesetAnim_Building(u16); +static void TilesetAnim_Rustboro(u16); +static void TilesetAnim_Dewford(u16); +static void TilesetAnim_Slateport(u16); +static void TilesetAnim_Mauville(u16); +static void TilesetAnim_Lavaridge(u16); +static void TilesetAnim_EverGrande(u16); +static void TilesetAnim_Pacifidlog(u16); +static void TilesetAnim_Sootopolis(u16); +static void TilesetAnim_BattleFrontierOutsideWest(u16); +static void TilesetAnim_BattleFrontierOutsideEast(u16); +static void TilesetAnim_Underwater(u16); +static void TilesetAnim_SootopolisGym(u16); +static void TilesetAnim_Cave(u16); +static void TilesetAnim_EliteFour(u16); +static void TilesetAnim_MauvilleGym(u16); +static void TilesetAnim_BikeShop(u16); +static void TilesetAnim_BattlePyramid(u16); +static void TilesetAnim_BattleDome(u16); +static void QueueAnimTiles_General_Flower(u16); +static void QueueAnimTiles_General_Water(u16); +static void QueueAnimTiles_General_SandWaterEdge(u16); +static void QueueAnimTiles_General_Waterfall(u16); +static void QueueAnimTiles_General_LandWaterEdge(u16); +static void QueueAnimTiles_Building_TVTurnedOn(u16); +static void QueueAnimTiles_Rustboro_WindyWater(u16, u8); +static void QueueAnimTiles_Rustboro_Fountain(u16); +static void QueueAnimTiles_Dewford_Flag(u16); +static void QueueAnimTiles_Slateport_Balloons(u16); +static void QueueAnimTiles_Mauville_Flowers(u16, u8); +static void QueueAnimTiles_BikeShop_BlinkingLights(u16); +static void QueueAnimTiles_BattlePyramid_Torch(u16); +static void QueueAnimTiles_BattlePyramid_StatueShadow(u16); +static void BlendAnimPalette_BattleDome_FloorLights(u16); +static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16); +static void QueueAnimTiles_Lavaridge_Steam(u8); +static void QueueAnimTiles_Lavaridge_Lava(u16); +static void QueueAnimTiles_EverGrande_Flowers(u16, u8); +static void QueueAnimTiles_Pacifidlog_LogBridges(u8); +static void QueueAnimTiles_Pacifidlog_WaterCurrents(u8); +static void QueueAnimTiles_Sootopolis_StormyWater(u16); +static void QueueAnimTiles_Underwater_Seaweed(u8); +static void QueueAnimTiles_Cave_Lava(u16); +static void QueueAnimTiles_BattleFrontierOutsideWest_Flag(u16); +static void QueueAnimTiles_BattleFrontierOutsideEast_Flag(u16); +static void QueueAnimTiles_MauvilleGym_ElectricGates(u16); +static void QueueAnimTiles_SootopolisGym_Waterfalls(u16); +static void QueueAnimTiles_EliteFour_GroundLights(u16); +static void QueueAnimTiles_EliteFour_WallLights(u16); + +const u16 gTilesetAnims_General_Flower_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/flower/1.4bpp"); +const u16 gTilesetAnims_General_Flower_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/flower/0.4bpp"); +const u16 gTilesetAnims_General_Flower_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/flower/2.4bpp"); const u16 tileset_anims_space_0[16] = {}; -const u16 *const gTilesetAnims_General0[] = { - gTilesetAnims_General0_Frame0, - gTilesetAnims_General0_Frame1, - gTilesetAnims_General0_Frame0, - gTilesetAnims_General0_Frame2 +const u16 *const gTilesetAnims_General_Flower[] = { + gTilesetAnims_General_Flower_Frame0, + gTilesetAnims_General_Flower_Frame1, + gTilesetAnims_General_Flower_Frame0, + gTilesetAnims_General_Flower_Frame2 }; -const u16 gTilesetAnims_General1_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/1/0.4bpp"); - -const u16 gTilesetAnims_General1_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/1/1.4bpp"); - -const u16 gTilesetAnims_General1_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/1/2.4bpp"); - -const u16 gTilesetAnims_General1_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/1/3.4bpp"); - -const u16 gTilesetAnims_General1_Frame4[] = INCBIN_U16("data/tilesets/primary/general/anim/1/4.4bpp"); - -const u16 gTilesetAnims_General1_Frame5[] = INCBIN_U16("data/tilesets/primary/general/anim/1/5.4bpp"); - -const u16 gTilesetAnims_General1_Frame6[] = INCBIN_U16("data/tilesets/primary/general/anim/1/6.4bpp"); - -const u16 gTilesetAnims_General1_Frame7[] = INCBIN_U16("data/tilesets/primary/general/anim/1/7.4bpp"); - -const u16 *const gTilesetAnims_General1[] = { - gTilesetAnims_General1_Frame0, - gTilesetAnims_General1_Frame1, - gTilesetAnims_General1_Frame2, - gTilesetAnims_General1_Frame3, - gTilesetAnims_General1_Frame4, - gTilesetAnims_General1_Frame5, - gTilesetAnims_General1_Frame6, - gTilesetAnims_General1_Frame7 +const u16 gTilesetAnims_General_Water_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/water/0.4bpp"); +const u16 gTilesetAnims_General_Water_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/water/1.4bpp"); +const u16 gTilesetAnims_General_Water_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/water/2.4bpp"); +const u16 gTilesetAnims_General_Water_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/water/3.4bpp"); +const u16 gTilesetAnims_General_Water_Frame4[] = INCBIN_U16("data/tilesets/primary/general/anim/water/4.4bpp"); +const u16 gTilesetAnims_General_Water_Frame5[] = INCBIN_U16("data/tilesets/primary/general/anim/water/5.4bpp"); +const u16 gTilesetAnims_General_Water_Frame6[] = INCBIN_U16("data/tilesets/primary/general/anim/water/6.4bpp"); +const u16 gTilesetAnims_General_Water_Frame7[] = INCBIN_U16("data/tilesets/primary/general/anim/water/7.4bpp"); + +const u16 *const gTilesetAnims_General_Water[] = { + gTilesetAnims_General_Water_Frame0, + gTilesetAnims_General_Water_Frame1, + gTilesetAnims_General_Water_Frame2, + gTilesetAnims_General_Water_Frame3, + gTilesetAnims_General_Water_Frame4, + gTilesetAnims_General_Water_Frame5, + gTilesetAnims_General_Water_Frame6, + gTilesetAnims_General_Water_Frame7 }; -const u16 gTilesetAnims_General2_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/2/0.4bpp"); - -const u16 gTilesetAnims_General2_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/2/1.4bpp"); - -const u16 gTilesetAnims_General2_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/2/2.4bpp"); - -const u16 gTilesetAnims_General2_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/2/3.4bpp"); - -const u16 gTilesetAnims_General2_Frame4[] = INCBIN_U16("data/tilesets/primary/general/anim/2/4.4bpp"); - -const u16 gTilesetAnims_General2_Frame5[] = INCBIN_U16("data/tilesets/primary/general/anim/2/5.4bpp"); - -const u16 gTilesetAnims_General2_Frame6[] = INCBIN_U16("data/tilesets/primary/general/anim/2/6.4bpp"); - -const u16 *const gTilesetAnims_General2[] = { - gTilesetAnims_General2_Frame0, - gTilesetAnims_General2_Frame1, - gTilesetAnims_General2_Frame2, - gTilesetAnims_General2_Frame3, - gTilesetAnims_General2_Frame4, - gTilesetAnims_General2_Frame5, - gTilesetAnims_General2_Frame6, - gTilesetAnims_General2_Frame0 +const u16 gTilesetAnims_General_SandWaterEdge_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/0.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/1.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/2.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/3.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame4[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/4.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame5[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/5.4bpp"); +const u16 gTilesetAnims_General_SandWaterEdge_Frame6[] = INCBIN_U16("data/tilesets/primary/general/anim/sand_water_edge/6.4bpp"); + +const u16 *const gTilesetAnims_General_SandWaterEdge[] = { + gTilesetAnims_General_SandWaterEdge_Frame0, + gTilesetAnims_General_SandWaterEdge_Frame1, + gTilesetAnims_General_SandWaterEdge_Frame2, + gTilesetAnims_General_SandWaterEdge_Frame3, + gTilesetAnims_General_SandWaterEdge_Frame4, + gTilesetAnims_General_SandWaterEdge_Frame5, + gTilesetAnims_General_SandWaterEdge_Frame6, + gTilesetAnims_General_SandWaterEdge_Frame0 }; -const u16 gTilesetAnims_General3_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/3/0.4bpp"); - -const u16 gTilesetAnims_General3_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/3/1.4bpp"); +const u16 gTilesetAnims_General_Waterfall_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/waterfall/0.4bpp"); +const u16 gTilesetAnims_General_Waterfall_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/waterfall/1.4bpp"); +const u16 gTilesetAnims_General_Waterfall_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/waterfall/2.4bpp"); +const u16 gTilesetAnims_General_Waterfall_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/waterfall/3.4bpp"); -const u16 gTilesetAnims_General3_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/3/2.4bpp"); - -const u16 gTilesetAnims_General3_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/3/3.4bpp"); - -const u16 *const gTilesetAnims_General3[] = { - gTilesetAnims_General3_Frame0, - gTilesetAnims_General3_Frame1, - gTilesetAnims_General3_Frame2, - gTilesetAnims_General3_Frame3 +const u16 *const gTilesetAnims_General_Waterfall[] = { + gTilesetAnims_General_Waterfall_Frame0, + gTilesetAnims_General_Waterfall_Frame1, + gTilesetAnims_General_Waterfall_Frame2, + gTilesetAnims_General_Waterfall_Frame3 }; -const u16 gTilesetAnims_General4_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/4/0.4bpp"); - -const u16 gTilesetAnims_General4_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/4/1.4bpp"); - -const u16 gTilesetAnims_General4_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/4/2.4bpp"); +const u16 gTilesetAnims_General_LandWaterEdge_Frame0[] = INCBIN_U16("data/tilesets/primary/general/anim/land_water_edge/0.4bpp"); +const u16 gTilesetAnims_General_LandWaterEdge_Frame1[] = INCBIN_U16("data/tilesets/primary/general/anim/land_water_edge/1.4bpp"); +const u16 gTilesetAnims_General_LandWaterEdge_Frame2[] = INCBIN_U16("data/tilesets/primary/general/anim/land_water_edge/2.4bpp"); +const u16 gTilesetAnims_General_LandWaterEdge_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/land_water_edge/3.4bpp"); -const u16 gTilesetAnims_General4_Frame3[] = INCBIN_U16("data/tilesets/primary/general/anim/4/3.4bpp"); - -const u16 *const gTilesetAnims_General4[] = { - gTilesetAnims_General4_Frame0, - gTilesetAnims_General4_Frame1, - gTilesetAnims_General4_Frame2, - gTilesetAnims_General4_Frame3 +const u16 *const gTilesetAnims_General_LandWaterEdge[] = { + gTilesetAnims_General_LandWaterEdge_Frame0, + gTilesetAnims_General_LandWaterEdge_Frame1, + gTilesetAnims_General_LandWaterEdge_Frame2, + gTilesetAnims_General_LandWaterEdge_Frame3 }; -const u16 gTilesetAnims_Lavaridge0_Frame0[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/0.4bpp"); - -const u16 gTilesetAnims_Lavaridge0_Frame1[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/1.4bpp"); - -const u16 gTilesetAnims_Lavaridge0_Frame2[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/2.4bpp"); +const u16 gTilesetAnims_Lavaridge_Steam_Frame0[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/steam/0.4bpp"); +const u16 gTilesetAnims_Lavaridge_Steam_Frame1[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/steam/1.4bpp"); +const u16 gTilesetAnims_Lavaridge_Steam_Frame2[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/steam/2.4bpp"); +const u16 gTilesetAnims_Lavaridge_Steam_Frame3[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/steam/3.4bpp"); -const u16 gTilesetAnims_Lavaridge0_Frame3[] = INCBIN_U16("data/tilesets/secondary/lavaridge/anim/3.4bpp"); - -const u16 *const gTilesetAnims_Lavaridge0[] = { - gTilesetAnims_Lavaridge0_Frame0, - gTilesetAnims_Lavaridge0_Frame1, - gTilesetAnims_Lavaridge0_Frame2, - gTilesetAnims_Lavaridge0_Frame3 +const u16 *const gTilesetAnims_Lavaridge_Steam[] = { + gTilesetAnims_Lavaridge_Steam_Frame0, + gTilesetAnims_Lavaridge_Steam_Frame1, + gTilesetAnims_Lavaridge_Steam_Frame2, + gTilesetAnims_Lavaridge_Steam_Frame3 }; -const u16 gTilesetAnims_Pacifidlog0_Frame0[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); - -const u16 gTilesetAnims_Pacifidlog0_Frame1[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); - -const u16 gTilesetAnims_Pacifidlog0_Frame2[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); +const u16 gTilesetAnims_Pacifidlog_LogBridges_Frame0[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/log_bridges/0.4bpp"); +const u16 gTilesetAnims_Pacifidlog_LogBridges_Frame1[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/log_bridges/1.4bpp"); +const u16 gTilesetAnims_Pacifidlog_LogBridges_Frame2[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/log_bridges/2.4bpp"); -const u16 *const gTilesetAnims_Pacifidlog0[] = { - gTilesetAnims_Pacifidlog0_Frame0, - gTilesetAnims_Pacifidlog0_Frame1, - gTilesetAnims_Pacifidlog0_Frame2, - gTilesetAnims_Pacifidlog0_Frame1 +const u16 *const gTilesetAnims_Pacifidlog_LogBridges[] = { + gTilesetAnims_Pacifidlog_LogBridges_Frame0, + gTilesetAnims_Pacifidlog_LogBridges_Frame1, + gTilesetAnims_Pacifidlog_LogBridges_Frame2, + gTilesetAnims_Pacifidlog_LogBridges_Frame1 }; -const u16 gTilesetAnims_Underwater0_Frame0[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/0.4bpp"); - -const u16 gTilesetAnims_Underwater0_Frame1[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/1.4bpp"); - -const u16 gTilesetAnims_Underwater0_Frame2[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/2.4bpp"); - -const u16 gTilesetAnims_Underwater0_Frame3[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/3.4bpp"); +const u16 gTilesetAnims_Underwater_Seaweed_Frame0[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/seaweed/0.4bpp"); +const u16 gTilesetAnims_Underwater_Seaweed_Frame1[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/seaweed/1.4bpp"); +const u16 gTilesetAnims_Underwater_Seaweed_Frame2[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/seaweed/2.4bpp"); +const u16 gTilesetAnims_Underwater_Seaweed_Frame3[] = INCBIN_U16("data/tilesets/secondary/underwater/anim/seaweed/3.4bpp"); -const u16 *const gTilesetAnims_Underwater0[] = { - gTilesetAnims_Underwater0_Frame0, - gTilesetAnims_Underwater0_Frame1, - gTilesetAnims_Underwater0_Frame2, - gTilesetAnims_Underwater0_Frame3 +const u16 *const gTilesetAnims_Underwater_Seaweed[] = { + gTilesetAnims_Underwater_Seaweed_Frame0, + gTilesetAnims_Underwater_Seaweed_Frame1, + gTilesetAnims_Underwater_Seaweed_Frame2, + gTilesetAnims_Underwater_Seaweed_Frame3 }; -const u16 gTilesetAnims_Pacifidlog1_Frame0[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame1[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame2[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame3[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame4[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame5[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame6[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); - -const u16 gTilesetAnims_Pacifidlog1_Frame7[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); - -const u16 *const gTilesetAnims_Pacifidlog1[] = { - gTilesetAnims_Pacifidlog1_Frame0, - gTilesetAnims_Pacifidlog1_Frame1, - gTilesetAnims_Pacifidlog1_Frame2, - gTilesetAnims_Pacifidlog1_Frame3, - gTilesetAnims_Pacifidlog1_Frame4, - gTilesetAnims_Pacifidlog1_Frame5, - gTilesetAnims_Pacifidlog1_Frame6, - gTilesetAnims_Pacifidlog1_Frame7 +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame0[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/0.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame1[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/1.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame2[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/2.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame3[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/3.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame4[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/4.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame5[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/5.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame6[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/6.4bpp"); +const u16 gTilesetAnims_Pacifidlog_WaterCurrents_Frame7[] = INCBIN_U16("data/tilesets/secondary/pacifidlog/anim/water_currents/7.4bpp"); + +const u16 *const gTilesetAnims_Pacifidlog_WaterCurrents[] = { + gTilesetAnims_Pacifidlog_WaterCurrents_Frame0, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame1, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame2, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame3, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame4, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame5, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame6, + gTilesetAnims_Pacifidlog_WaterCurrents_Frame7 }; -const u16 gTilesetAnims_Mauville0a_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/0.4bpp"); - -const u16 gTilesetAnims_Mauville0a_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/1.4bpp"); - -const u16 gTilesetAnims_Mauville0a_Frame2[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/2.4bpp"); - -const u16 gTilesetAnims_Mauville0a_Frame3[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/a/3.4bpp"); - -const u16 gTilesetAnims_Mauville1a_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/1/a/1.4bpp"); - -const u16 gTilesetAnims_Mauville0b_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/0.4bpp"); - -const u16 gTilesetAnims_Mauville0b_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/1.4bpp"); - -const u16 gTilesetAnims_Mauville0b_Frame2[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/2.4bpp"); - -const u16 gTilesetAnims_Mauville0b_Frame3[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/0/b/3.4bpp"); - -const u16 gTilesetAnims_Mauville1b_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/1/b/1.4bpp"); - +const u16 gTilesetAnims_Mauville_Flower1_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_1/0.4bpp"); +const u16 gTilesetAnims_Mauville_Flower1_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_1/1.4bpp"); +const u16 gTilesetAnims_Mauville_Flower1_Frame2[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_1/2.4bpp"); +const u16 gTilesetAnims_Mauville_Flower1_Frame3[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_1/3.4bpp"); +const u16 gTilesetAnims_Mauville_Flower1_Frame4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_1/4.4bpp"); +const u16 gTilesetAnims_Mauville_Flower2_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_2/0.4bpp"); +const u16 gTilesetAnims_Mauville_Flower2_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_2/1.4bpp"); +const u16 gTilesetAnims_Mauville_Flower2_Frame2[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_2/2.4bpp"); +const u16 gTilesetAnims_Mauville_Flower2_Frame3[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_2/3.4bpp"); +const u16 gTilesetAnims_Mauville_Flower2_Frame4[] = INCBIN_U16("data/tilesets/secondary/mauville/anim/flower_2/4.4bpp"); const u16 tileset_anims_space_1[16] = {}; -u16 *const gTilesetAnims_MauvilleVDests0[] = { +u16 *const gTilesetAnims_Mauville_Flower1_VDests[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 96)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 100)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 104)), @@ -233,7 +227,7 @@ u16 *const gTilesetAnims_MauvilleVDests0[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 124)) }; -u16 *const gTilesetAnims_MauvilleVDests1[] = { +u16 *const gTilesetAnims_Mauville_Flower2_VDests[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 128)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 132)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 136)), @@ -244,67 +238,60 @@ u16 *const gTilesetAnims_MauvilleVDests1[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 156)) }; -const u16 *const gTilesetAnims_Mauville0a[] = { - gTilesetAnims_Mauville0a_Frame0, - gTilesetAnims_Mauville0a_Frame0, - gTilesetAnims_Mauville0a_Frame1, - gTilesetAnims_Mauville0a_Frame2, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame3, - gTilesetAnims_Mauville0a_Frame2, - gTilesetAnims_Mauville0a_Frame1 +const u16 *const gTilesetAnims_Mauville_Flower1[] = { + gTilesetAnims_Mauville_Flower1_Frame0, + gTilesetAnims_Mauville_Flower1_Frame0, + gTilesetAnims_Mauville_Flower1_Frame1, + gTilesetAnims_Mauville_Flower1_Frame2, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame3, + gTilesetAnims_Mauville_Flower1_Frame2, + gTilesetAnims_Mauville_Flower1_Frame1 }; -const u16 *const gTilesetAnims_Mauville0b[] = { - gTilesetAnims_Mauville0b_Frame0, - gTilesetAnims_Mauville0b_Frame0, - gTilesetAnims_Mauville0b_Frame1, - gTilesetAnims_Mauville0b_Frame2, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame3, - gTilesetAnims_Mauville0b_Frame2, - gTilesetAnims_Mauville0b_Frame1 +const u16 *const gTilesetAnims_Mauville_Flower2[] = { + gTilesetAnims_Mauville_Flower2_Frame0, + gTilesetAnims_Mauville_Flower2_Frame0, + gTilesetAnims_Mauville_Flower2_Frame1, + gTilesetAnims_Mauville_Flower2_Frame2, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame3, + gTilesetAnims_Mauville_Flower2_Frame2, + gTilesetAnims_Mauville_Flower2_Frame1 }; -const u16 *const gTilesetAnims_Mauville1a[] = { - gTilesetAnims_Mauville0a_Frame0, - gTilesetAnims_Mauville0a_Frame0, - gTilesetAnims_Mauville1a_Frame1, - gTilesetAnims_Mauville1a_Frame1 +const u16 *const gTilesetAnims_Mauville_Flower1_B[] = { + gTilesetAnims_Mauville_Flower1_Frame0, + gTilesetAnims_Mauville_Flower1_Frame0, + gTilesetAnims_Mauville_Flower1_Frame4, + gTilesetAnims_Mauville_Flower1_Frame4 }; -const u16 *const gTilesetAnims_Mauville1b[] = { - gTilesetAnims_Mauville0b_Frame0, - gTilesetAnims_Mauville0b_Frame0, - gTilesetAnims_Mauville1b_Frame1, - gTilesetAnims_Mauville1b_Frame1 +const u16 *const gTilesetAnims_Mauville_Flower2_B[] = { + gTilesetAnims_Mauville_Flower2_Frame0, + gTilesetAnims_Mauville_Flower2_Frame0, + gTilesetAnims_Mauville_Flower2_Frame4, + gTilesetAnims_Mauville_Flower2_Frame4 }; -const u16 gTilesetAnims_Rustboro0_Frame0[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame1[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame2[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame3[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame4[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame5[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame6[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); - -const u16 gTilesetAnims_Rustboro0_Frame7[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame0[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/0.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame1[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/1.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame2[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/2.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame3[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/3.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame4[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/4.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame5[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/5.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame6[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/6.4bpp"); +const u16 gTilesetAnims_Rustboro_WindyWater_Frame7[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/windy_water/7.4bpp"); -u16 *const gTilesetAnims_RustboroVDests0[] = { +u16 *const gTilesetAnims_Rustboro_WindyWater_VDests[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 128)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 132)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 136)), @@ -315,72 +302,54 @@ u16 *const gTilesetAnims_RustboroVDests0[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 156)) }; -const u16 *const gTilesetAnims_Rustboro0[] = { - gTilesetAnims_Rustboro0_Frame0, - gTilesetAnims_Rustboro0_Frame1, - gTilesetAnims_Rustboro0_Frame2, - gTilesetAnims_Rustboro0_Frame3, - gTilesetAnims_Rustboro0_Frame4, - gTilesetAnims_Rustboro0_Frame5, - gTilesetAnims_Rustboro0_Frame6, - gTilesetAnims_Rustboro0_Frame7 +const u16 *const gTilesetAnims_Rustboro_WindyWater[] = { + gTilesetAnims_Rustboro_WindyWater_Frame0, + gTilesetAnims_Rustboro_WindyWater_Frame1, + gTilesetAnims_Rustboro_WindyWater_Frame2, + gTilesetAnims_Rustboro_WindyWater_Frame3, + gTilesetAnims_Rustboro_WindyWater_Frame4, + gTilesetAnims_Rustboro_WindyWater_Frame5, + gTilesetAnims_Rustboro_WindyWater_Frame6, + gTilesetAnims_Rustboro_WindyWater_Frame7 }; -const u16 gTilesetAnims_Rustboro1_Frame0[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); - -const u16 gTilesetAnims_Rustboro1_Frame1[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); - +const u16 gTilesetAnims_Rustboro_Fountain_Frame0[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/fountain/0.4bpp"); +const u16 gTilesetAnims_Rustboro_Fountain_Frame1[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/fountain/1.4bpp"); const u16 tileset_anims_space_2[16] = {}; -const u16 *const gTilesetAnims_Rustboro1[] = { - gTilesetAnims_Rustboro1_Frame0, - gTilesetAnims_Rustboro1_Frame1 +const u16 *const gTilesetAnims_Rustboro_Fountain[] = { + gTilesetAnims_Rustboro_Fountain_Frame0, + gTilesetAnims_Rustboro_Fountain_Frame1 }; -const u16 gTilesetAnims_Lavaridge1_Cave0_Frame0[] = INCBIN_U16("data/tilesets/secondary/cave/anim/0.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_Cave0_Frame1[] = INCBIN_U16("data/tilesets/secondary/cave/anim/1.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_Cave0_Frame2[] = INCBIN_U16("data/tilesets/secondary/cave/anim/2.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_Cave0_Frame3[] = INCBIN_U16("data/tilesets/secondary/cave/anim/3.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_CaveUnused_Frame0[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/0.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_CaveUnused_Frame1[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/1.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_CaveUnused_Frame2[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/2.4bpp"); - -const u16 gTilesetAnims_Lavaridge1_CaveUnused_Frame3[] = INCBIN_U16("data/tilesets/secondary/cave/anim/unused/3.4bpp"); - +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame0[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/0.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame1[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/1.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame2[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/2.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame3[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/3.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame4[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/4.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame5[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/5.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame6[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/6.4bpp"); +const u16 gTilesetAnims_Lavaridge_Cave_Lava_Frame7[] = INCBIN_U16("data/tilesets/secondary/cave/anim/lava/7.4bpp"); const u16 tileset_anims_space_3[16] = {}; -const u16 *const gTilesetAnims_Lavaridge1_Cave0[] = { - gTilesetAnims_Lavaridge1_Cave0_Frame0, - gTilesetAnims_Lavaridge1_Cave0_Frame1, - gTilesetAnims_Lavaridge1_Cave0_Frame2, - gTilesetAnims_Lavaridge1_Cave0_Frame3 +const u16 *const gTilesetAnims_Lavaridge_Cave_Lava[] = { + gTilesetAnims_Lavaridge_Cave_Lava_Frame0, + gTilesetAnims_Lavaridge_Cave_Lava_Frame1, + gTilesetAnims_Lavaridge_Cave_Lava_Frame2, + gTilesetAnims_Lavaridge_Cave_Lava_Frame3 }; -const u16 gTilesetAnims_EverGrande0_Frame0[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/0.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame1[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/1.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame2[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/2.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame3[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/3.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame4[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/4.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame5[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/5.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame6[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/6.4bpp"); - -const u16 gTilesetAnims_EverGrande0_Frame7[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/7.4bpp"); - +const u16 gTilesetAnims_EverGrande_Flowers_Frame0[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/0.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame1[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/1.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame2[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/2.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame3[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/3.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame4[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/4.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame5[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/5.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame6[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/6.4bpp"); +const u16 gTilesetAnims_EverGrande_Flowers_Frame7[] = INCBIN_U16("data/tilesets/secondary/ever_grande/anim/flowers/7.4bpp"); const u16 tileset_anims_space_4[16] = {}; -u16 *const gTilesetAnims_EverGrandeVDests0[] = { +u16 *const gTilesetAnims_EverGrande_VDests[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 228)), (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 232)), @@ -391,243 +360,190 @@ u16 *const gTilesetAnims_EverGrandeVDests0[] = { (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 252)) }; -const u16 *const gTilesetAnims_EverGrande0[] = { - gTilesetAnims_EverGrande0_Frame0, - gTilesetAnims_EverGrande0_Frame1, - gTilesetAnims_EverGrande0_Frame2, - gTilesetAnims_EverGrande0_Frame3, - gTilesetAnims_EverGrande0_Frame4, - gTilesetAnims_EverGrande0_Frame5, - gTilesetAnims_EverGrande0_Frame6, - gTilesetAnims_EverGrande0_Frame7 +const u16 *const gTilesetAnims_EverGrande_Flowers[] = { + gTilesetAnims_EverGrande_Flowers_Frame0, + gTilesetAnims_EverGrande_Flowers_Frame1, + gTilesetAnims_EverGrande_Flowers_Frame2, + gTilesetAnims_EverGrande_Flowers_Frame3, + gTilesetAnims_EverGrande_Flowers_Frame4, + gTilesetAnims_EverGrande_Flowers_Frame5, + gTilesetAnims_EverGrande_Flowers_Frame6, + gTilesetAnims_EverGrande_Flowers_Frame7 }; -const u16 gTilesetAnims_Dewford0_Frame0[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/0.4bpp"); - -const u16 gTilesetAnims_Dewford0_Frame1[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/1.4bpp"); +const u16 gTilesetAnims_Dewford_Flag_Frame0[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/flag/0.4bpp"); +const u16 gTilesetAnims_Dewford_Flag_Frame1[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/flag/1.4bpp"); +const u16 gTilesetAnims_Dewford_Flag_Frame2[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/flag/2.4bpp"); +const u16 gTilesetAnims_Dewford_Flag_Frame3[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/flag/3.4bpp"); -const u16 gTilesetAnims_Dewford0_Frame2[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/2.4bpp"); - -const u16 gTilesetAnims_Dewford0_Frame3[] = INCBIN_U16("data/tilesets/secondary/dewford/anim/3.4bpp"); - -const u16 *const gTilesetAnims_Dewford0[] = { - gTilesetAnims_Dewford0_Frame0, - gTilesetAnims_Dewford0_Frame1, - gTilesetAnims_Dewford0_Frame2, - gTilesetAnims_Dewford0_Frame3 +const u16 *const gTilesetAnims_Dewford_Flag[] = { + gTilesetAnims_Dewford_Flag_Frame0, + gTilesetAnims_Dewford_Flag_Frame1, + gTilesetAnims_Dewford_Flag_Frame2, + gTilesetAnims_Dewford_Flag_Frame3 }; -const u16 gTilesetAnims_BattleFrontierOutsideWest0_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/0.4bpp"); - -const u16 gTilesetAnims_BattleFrontierOutsideWest0_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/1.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/flag/0.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/flag/1.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/flag/2.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame3[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/flag/3.4bpp"); -const u16 gTilesetAnims_BattleFrontierOutsideWest0_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/2.4bpp"); - -const u16 gTilesetAnims_BattleFrontierOutsideWest0_Frame3[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_west/anim/3.4bpp"); - -const u16 *const gTilesetAnims_BattleFrontierOutsideWest0[] = { - gTilesetAnims_BattleFrontierOutsideWest0_Frame0, - gTilesetAnims_BattleFrontierOutsideWest0_Frame1, - gTilesetAnims_BattleFrontierOutsideWest0_Frame2, - gTilesetAnims_BattleFrontierOutsideWest0_Frame3 +const u16 *const gTilesetAnims_BattleFrontierOutsideWest_Flag[] = { + gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame0, + gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame1, + gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame2, + gTilesetAnims_BattleFrontierOutsideWest_Flag_Frame3 }; -const u16 gTilesetAnims_BattleFrontierOutsideEast0_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/0.4bpp"); - -const u16 gTilesetAnims_BattleFrontierOutsideEast0_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/1.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/flag/0.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/flag/1.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/flag/2.4bpp"); +const u16 gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame3[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/flag/3.4bpp"); -const u16 gTilesetAnims_BattleFrontierOutsideEast0_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/2.4bpp"); - -const u16 gTilesetAnims_BattleFrontierOutsideEast0_Frame3[] = INCBIN_U16("data/tilesets/secondary/battle_frontier_outside_east/anim/3.4bpp"); - -const u16 *const gTilesetAnims_BattleFrontierOutsideEast0[] = { - gTilesetAnims_BattleFrontierOutsideEast0_Frame0, - gTilesetAnims_BattleFrontierOutsideEast0_Frame1, - gTilesetAnims_BattleFrontierOutsideEast0_Frame2, - gTilesetAnims_BattleFrontierOutsideEast0_Frame3 +const u16 *const gTilesetAnims_BattleFrontierOutsideEast_Flag[] = { + gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame0, + gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame1, + gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame2, + gTilesetAnims_BattleFrontierOutsideEast_Flag_Frame3 }; -const u16 gTilesetAnims_Slateport0_Frame0[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/0.4bpp"); - -const u16 gTilesetAnims_Slateport0_Frame1[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/1.4bpp"); +const u16 gTilesetAnims_Slateport_Balloons_Frame0[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/balloons/0.4bpp"); +const u16 gTilesetAnims_Slateport_Balloons_Frame1[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/balloons/1.4bpp"); +const u16 gTilesetAnims_Slateport_Balloons_Frame2[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/balloons/2.4bpp"); +const u16 gTilesetAnims_Slateport_Balloons_Frame3[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/balloons/3.4bpp"); -const u16 gTilesetAnims_Slateport0_Frame2[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/2.4bpp"); - -const u16 gTilesetAnims_Slateport0_Frame3[] = INCBIN_U16("data/tilesets/secondary/slateport/anim/3.4bpp"); - -const u16 *const gTilesetAnims_Slateport0[] = { - gTilesetAnims_Slateport0_Frame0, - gTilesetAnims_Slateport0_Frame1, - gTilesetAnims_Slateport0_Frame2, - gTilesetAnims_Slateport0_Frame3 +const u16 *const gTilesetAnims_Slateport_Balloons[] = { + gTilesetAnims_Slateport_Balloons_Frame0, + gTilesetAnims_Slateport_Balloons_Frame1, + gTilesetAnims_Slateport_Balloons_Frame2, + gTilesetAnims_Slateport_Balloons_Frame3 }; -const u16 gTilesetAnims_InsideBuilding0_Frame0[] = INCBIN_U16("data/tilesets/primary/building/anim/0.4bpp"); - -const u16 gTilesetAnims_InsideBuilding0_Frame1[] = INCBIN_U16("data/tilesets/primary/building/anim/1.4bpp"); +const u16 gTilesetAnims_Building_TvTurnedOn_Frame0[] = INCBIN_U16("data/tilesets/primary/building/anim/tv_turned_on/0.4bpp"); +const u16 gTilesetAnims_Building_TvTurnedOn_Frame1[] = INCBIN_U16("data/tilesets/primary/building/anim/tv_turned_on/1.4bpp"); -const u16 *const gTilesetAnims_InsideBuilding0[] = { - gTilesetAnims_InsideBuilding0_Frame0, - gTilesetAnims_InsideBuilding0_Frame1 +const u16 *const gTilesetAnims_Building_TvTurnedOn[] = { + gTilesetAnims_Building_TvTurnedOn_Frame0, + gTilesetAnims_Building_TvTurnedOn_Frame1 }; -const u16 gTilesetAnims_SootopolisGym0_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); - -const u16 gTilesetAnims_SootopolisGym0_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); - -const u16 gTilesetAnims_SootopolisGym0_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); - -const u16 gTilesetAnims_SootopolisGym1_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); - -const u16 gTilesetAnims_SootopolisGym1_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); - -const u16 gTilesetAnims_SootopolisGym1_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); - -const u16 *const gTilesetAnims_SootopolisGym0[] = { - gTilesetAnims_SootopolisGym0_Frame0, - gTilesetAnims_SootopolisGym0_Frame1, - gTilesetAnims_SootopolisGym0_Frame2 +const u16 gTilesetAnims_SootopolisGym_SideWaterfall_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/0.4bpp"); +const u16 gTilesetAnims_SootopolisGym_SideWaterfall_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/1.4bpp"); +const u16 gTilesetAnims_SootopolisGym_SideWaterfall_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/side_waterfall/2.4bpp"); +const u16 gTilesetAnims_SootopolisGym_FrontWaterfall_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/0.4bpp"); +const u16 gTilesetAnims_SootopolisGym_FrontWaterfall_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/1.4bpp"); +const u16 gTilesetAnims_SootopolisGym_FrontWaterfall_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis_gym/anim/front_waterfall/2.4bpp"); + +const u16 *const gTilesetAnims_SootopolisGym_SideWaterfall[] = { + gTilesetAnims_SootopolisGym_SideWaterfall_Frame0, + gTilesetAnims_SootopolisGym_SideWaterfall_Frame1, + gTilesetAnims_SootopolisGym_SideWaterfall_Frame2 }; -const u16 *const gTilesetAnims_SootopolisGym1[] = { - gTilesetAnims_SootopolisGym1_Frame0, - gTilesetAnims_SootopolisGym1_Frame1, - gTilesetAnims_SootopolisGym1_Frame2 +const u16 *const gTilesetAnims_SootopolisGym_FrontWaterfall[] = { + gTilesetAnims_SootopolisGym_FrontWaterfall_Frame0, + gTilesetAnims_SootopolisGym_FrontWaterfall_Frame1, + gTilesetAnims_SootopolisGym_FrontWaterfall_Frame2 }; -const u16 gTilesetAnims_EliteFour0_Frame0[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); - -const u16 gTilesetAnims_EliteFour0_Frame1[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); - -const u16 gTilesetAnims_EliteFour1_Frame0[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); - -const u16 gTilesetAnims_EliteFour1_Frame1[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); - -const u16 gTilesetAnims_EliteFour1_Frame2[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); - -const u16 gTilesetAnims_EliteFour1_Frame3[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); - +const u16 gTilesetAnims_EliteFour_FloorLight_Frame0[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/floor_light/0.4bpp"); +const u16 gTilesetAnims_EliteFour_FloorLight_Frame1[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/floor_light/1.4bpp"); +const u16 gTilesetAnims_EliteFour_WallLights_Frame0[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/wall_lights/0.4bpp"); +const u16 gTilesetAnims_EliteFour_WallLights_Frame1[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/wall_lights/1.4bpp"); +const u16 gTilesetAnims_EliteFour_WallLights_Frame2[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/wall_lights/2.4bpp"); +const u16 gTilesetAnims_EliteFour_WallLights_Frame3[] = INCBIN_U16("data/tilesets/secondary/elite_four/anim/wall_lights/3.4bpp"); const u16 tileset_anims_space_5[16] = {}; -const u16 *const gTilesetAnims_EliteFour1[] = { - gTilesetAnims_EliteFour1_Frame0, - gTilesetAnims_EliteFour1_Frame1, - gTilesetAnims_EliteFour1_Frame2, - gTilesetAnims_EliteFour1_Frame3 +const u16 *const gTilesetAnims_EliteFour_WallLights[] = { + gTilesetAnims_EliteFour_WallLights_Frame0, + gTilesetAnims_EliteFour_WallLights_Frame1, + gTilesetAnims_EliteFour_WallLights_Frame2, + gTilesetAnims_EliteFour_WallLights_Frame3 }; -const u16 *const gTilesetAnims_EliteFour0[] = { - gTilesetAnims_EliteFour0_Frame0, - gTilesetAnims_EliteFour0_Frame1 +const u16 *const gTilesetAnims_EliteFour_FloorLight[] = { + gTilesetAnims_EliteFour_FloorLight_Frame0, + gTilesetAnims_EliteFour_FloorLight_Frame1 }; -const u16 gTilesetAnims_MauvilleGym0_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); - -const u16 gTilesetAnims_MauvilleGym0_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); - +const u16 gTilesetAnims_MauvilleGym_ElectricGates_Frame0[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/electric_gates/0.4bpp"); +const u16 gTilesetAnims_MauvilleGym_ElectricGates_Frame1[] = INCBIN_U16("data/tilesets/secondary/mauville_gym/anim/electric_gates/1.4bpp"); const u16 tileset_anims_space_6[16] = {}; -const u16 *const gTilesetAnims_MauvilleGym0[] = { - gTilesetAnims_MauvilleGym0_Frame0, - gTilesetAnims_MauvilleGym0_Frame1 +const u16 *const gTilesetAnims_MauvilleGym_ElectricGates[] = { + gTilesetAnims_MauvilleGym_ElectricGates_Frame0, + gTilesetAnims_MauvilleGym_ElectricGates_Frame1 }; -const u16 gTilesetAnims_BikeShop0_Frame0[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/0.4bpp"); - -const u16 gTilesetAnims_BikeShop0_Frame1[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/1.4bpp"); - +const u16 gTilesetAnims_BikeShop_BlinkingLights_Frame0[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/blinking_lights/0.4bpp"); +const u16 gTilesetAnims_BikeShop_BlinkingLights_Frame1[] = INCBIN_U16("data/tilesets/secondary/bike_shop/anim/blinking_lights/1.4bpp"); const u16 tileset_anims_space_7[16] = {}; -const u16 *const gTilesetAnims_BikeShop0[] = { - gTilesetAnims_BikeShop0_Frame0, - gTilesetAnims_BikeShop0_Frame1 +const u16 *const gTilesetAnims_BikeShop_BlinkingLights[] = { + gTilesetAnims_BikeShop_BlinkingLights_Frame0, + gTilesetAnims_BikeShop_BlinkingLights_Frame1 }; -const u16 gTilesetAnims_Sootopolis0_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/0.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/1.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/2.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame3[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/3.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/4.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame5[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/5.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame6[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/6.4bpp"); - -const u16 gTilesetAnims_Sootopolis0_Frame7[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/7.4bpp"); - +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame0[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/0.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame1[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/1.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame2[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/2.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame3[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/3.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame4[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/4.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame5[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/5.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame6[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/6.4bpp"); +const u16 gTilesetAnims_Sootopolis_StormyWater_Frame7[] = INCBIN_U16("data/tilesets/secondary/sootopolis/anim/stormy_water/7.4bpp"); const u16 tileset_anims_space_8[16] = {}; const u16 gTilesetAnims_Unused1_Frame0[] = INCBIN_U16("data/tilesets/secondary/unused_1/0.4bpp"); - const u16 gTilesetAnims_Unused1_Frame1[] = INCBIN_U16("data/tilesets/secondary/unused_1/1.4bpp"); - const u16 gTilesetAnims_Unused1_Frame2[] = INCBIN_U16("data/tilesets/secondary/unused_1/2.4bpp"); - const u16 gTilesetAnims_Unused1_Frame3[] = INCBIN_U16("data/tilesets/secondary/unused_1/3.4bpp"); -const u16 *const gTilesetAnims_Sootopolis0[] = { - gTilesetAnims_Sootopolis0_Frame0, - gTilesetAnims_Sootopolis0_Frame1, - gTilesetAnims_Sootopolis0_Frame2, - gTilesetAnims_Sootopolis0_Frame3, - gTilesetAnims_Sootopolis0_Frame4, - gTilesetAnims_Sootopolis0_Frame5, - gTilesetAnims_Sootopolis0_Frame6, - gTilesetAnims_Sootopolis0_Frame7 +const u16 *const gTilesetAnims_Sootopolis_StormyWater[] = { + gTilesetAnims_Sootopolis_StormyWater_Frame0, + gTilesetAnims_Sootopolis_StormyWater_Frame1, + gTilesetAnims_Sootopolis_StormyWater_Frame2, + gTilesetAnims_Sootopolis_StormyWater_Frame3, + gTilesetAnims_Sootopolis_StormyWater_Frame4, + gTilesetAnims_Sootopolis_StormyWater_Frame5, + gTilesetAnims_Sootopolis_StormyWater_Frame6, + gTilesetAnims_Sootopolis_StormyWater_Frame7 }; -const u16 gTilesetAnims_BattlePyramid0_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/0.4bpp"); - -const u16 gTilesetAnims_BattlePyramid0_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/1.4bpp"); - -const u16 gTilesetAnims_BattlePyramid0_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/0/2.4bpp"); - +const u16 gTilesetAnims_BattlePyramid_Torch_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/torch/0.4bpp"); +const u16 gTilesetAnims_BattlePyramid_Torch_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/torch/1.4bpp"); +const u16 gTilesetAnims_BattlePyramid_Torch_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/torch/2.4bpp"); const u16 tileset_anims_space_9[16] = {}; -const u16 gTilesetAnims_BattlePyramid1_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/0.4bpp"); - -const u16 gTilesetAnims_BattlePyramid1_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/1.4bpp"); - -const u16 gTilesetAnims_BattlePyramid1_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/1/2.4bpp"); - +const u16 gTilesetAnims_BattlePyramid_StatueShadow_Frame0[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/statue_shadow/0.4bpp"); +const u16 gTilesetAnims_BattlePyramid_StatueShadow_Frame1[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/statue_shadow/1.4bpp"); +const u16 gTilesetAnims_BattlePyramid_StatueShadow_Frame2[] = INCBIN_U16("data/tilesets/secondary/battle_pyramid/anim/statue_shadow/2.4bpp"); const u16 tileset_anims_space_10[7808] = {}; const u16 gTilesetAnims_Unused2_Frame0[] = INCBIN_U16("data/tilesets/secondary/unused_2/0.4bpp"); - const u16 tileset_anims_space_11[224] = {}; const u16 gTilesetAnims_Unused2_Frame1[] = INCBIN_U16("data/tilesets/secondary/unused_2/1.4bpp"); -const u16 *const gTilesetAnims_BattlePyramid0[] = { - gTilesetAnims_BattlePyramid0_Frame0, - gTilesetAnims_BattlePyramid0_Frame1, - gTilesetAnims_BattlePyramid0_Frame2 +const u16 *const gTilesetAnims_BattlePyramid_Torch[] = { + gTilesetAnims_BattlePyramid_Torch_Frame0, + gTilesetAnims_BattlePyramid_Torch_Frame1, + gTilesetAnims_BattlePyramid_Torch_Frame2 }; -const u16 *const gTilesetAnims_BattlePyramid1[] = { - gTilesetAnims_BattlePyramid1_Frame0, - gTilesetAnims_BattlePyramid1_Frame1, - gTilesetAnims_BattlePyramid1_Frame2 +const u16 *const gTilesetAnims_BattlePyramid_StatueShadow[] = { + gTilesetAnims_BattlePyramid_StatueShadow_Frame0, + gTilesetAnims_BattlePyramid_StatueShadow_Frame1, + gTilesetAnims_BattlePyramid_StatueShadow_Frame2 }; -extern const u16 gTilesetAnims_BattleDomePals0_0[]; -extern const u16 gTilesetAnims_BattleDomePals0_1[]; -extern const u16 gTilesetAnims_BattleDomePals0_2[]; -extern const u16 gTilesetAnims_BattleDomePals0_3[]; - -static const u16 *const gTilesetAnims_BattleDomePals0[] = { +static const u16 *const gTilesetAnims_BattleDomeFloorLightPals[] = { gTilesetAnims_BattleDomePals0_0, gTilesetAnims_BattleDomePals0_1, gTilesetAnims_BattleDomePals0_2, gTilesetAnims_BattleDomePals0_3, }; -// .text - static void ResetTilesetAnimBuffer(void) { sTilesetDMA3TransferBufferSize = 0; @@ -650,763 +566,623 @@ void TransferTilesetAnimsBuffer(void) int i; for (i = 0; i < sTilesetDMA3TransferBufferSize; i ++) - { DmaCopy16(3, sTilesetDMA3TransferBuffer[i].src, sTilesetDMA3TransferBuffer[i].dest, sTilesetDMA3TransferBuffer[i].size); - } + sTilesetDMA3TransferBufferSize = 0; } -void cur_mapheader_run_tileset_funcs_after_some_cpuset(void) +void InitTilesetAnimations(void) { ResetTilesetAnimBuffer(); - cur_mapheader_run_tileset1_func(); - cur_mapheader_run_tileset2_func(); + _InitPrimaryTilesetAnimation(); + _InitSecondaryTilesetAnimation(); } -void sub_80A0A2C(void) +void InitSecondaryTilesetAnimation(void) { - cur_mapheader_run_tileset2_func(); + _InitSecondaryTilesetAnimation(); } -void sub_80A0A38(void) +void UpdateTilesetAnimations(void) { ResetTilesetAnimBuffer(); - if (++sPrimaryTilesetCBCounter >= sPrimaryTilesetCBBufferSize) - sPrimaryTilesetCBCounter = 0; - if (++sSecondaryTilesetCBCounter >= sSecondaryTilesetCBBufferSize) - sSecondaryTilesetCBCounter = 0; - if (sPrimaryTilesetCB) - sPrimaryTilesetCB(sPrimaryTilesetCBCounter); - if (sSecondaryTilesetCB) - sSecondaryTilesetCB(sSecondaryTilesetCBCounter); + if (++sPrimaryTilesetAnimCounter >= sPrimaryTilesetAnimCounterMax) + sPrimaryTilesetAnimCounter = 0; + if (++sSecondaryTilesetAnimCounter >= sSecondaryTilesetAnimCounterMax) + sSecondaryTilesetAnimCounter = 0; + + if (sPrimaryTilesetAnimCallback) + sPrimaryTilesetAnimCallback(sPrimaryTilesetAnimCounter); + if (sSecondaryTilesetAnimCallback) + sSecondaryTilesetAnimCallback(sSecondaryTilesetAnimCounter); } -static void cur_mapheader_run_tileset1_func(void) +static void _InitPrimaryTilesetAnimation(void) { - sPrimaryTilesetCBCounter = 0; - sPrimaryTilesetCBBufferSize = 0; - sPrimaryTilesetCB = NULL; + sPrimaryTilesetAnimCounter = 0; + sPrimaryTilesetAnimCounterMax = 0; + sPrimaryTilesetAnimCallback = NULL; if (gMapHeader.mapLayout->primaryTileset && gMapHeader.mapLayout->primaryTileset->callback) gMapHeader.mapLayout->primaryTileset->callback(); } -static void cur_mapheader_run_tileset2_func(void) +static void _InitSecondaryTilesetAnimation(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = 0; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = 0; + sSecondaryTilesetAnimCallback = NULL; if (gMapHeader.mapLayout->secondaryTileset && gMapHeader.mapLayout->secondaryTileset->callback) gMapHeader.mapLayout->secondaryTileset->callback(); } -void TilesetCb_General(void) +void InitTilesetAnim_General(void) { - static void sub_80A0B70(u16); - - sPrimaryTilesetCBCounter = 0; - sPrimaryTilesetCBBufferSize = 0x100; - sPrimaryTilesetCB = sub_80A0B70; + sPrimaryTilesetAnimCounter = 0; + sPrimaryTilesetAnimCounterMax = 256; + sPrimaryTilesetAnimCallback = TilesetAnim_General; } -void TilesetCb_InsideBuilding(void) +void InitTilesetAnim_Building(void) { - static void sub_80A0BB4(u16); - - sPrimaryTilesetCBCounter = 0; - sPrimaryTilesetCBBufferSize = 0x100; - sPrimaryTilesetCB = sub_80A0BB4; + sPrimaryTilesetAnimCounter = 0; + sPrimaryTilesetAnimCounterMax = 256; + sPrimaryTilesetAnimCallback = TilesetAnim_Building; } -static void sub_80A0B70(u16 timer) +static void TilesetAnim_General(u16 timer) { - static void gTilesetAnims_Flower(u16); - static void gTilesetAnims_Water(u16); - static void gTilesetAnims_SandWaterEdge(u16); - static void gTilesetAnims_Waterfall(u16); - static void gTilesetAnims_LandWaterEdge (u16); - - if ((timer & 0x0F) == 0) - gTilesetAnims_Flower(timer >> 4); - if ((timer & 0x0F) == 1) - gTilesetAnims_Water(timer >> 4); - if ((timer & 0x0F) == 2) - gTilesetAnims_SandWaterEdge(timer >> 4); - if ((timer & 0x0F) == 3) - gTilesetAnims_Waterfall(timer >> 4); - if ((timer & 0x0F) == 4) - gTilesetAnims_LandWaterEdge (timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_General_Flower(timer >> 4); + if (timer % 16 == 1) + QueueAnimTiles_General_Water(timer >> 4); + if (timer % 16 == 2) + QueueAnimTiles_General_SandWaterEdge(timer >> 4); + if (timer % 16 == 3) + QueueAnimTiles_General_Waterfall(timer >> 4); + if (timer % 16 == 4) + QueueAnimTiles_General_LandWaterEdge(timer >> 4); } -static void sub_80A0BB4(u16 timer) +static void TilesetAnim_Building(u16 timer) { - static void sub_80A1688(u16); - - if ((timer & 0x7) == 0) - sub_80A1688(timer >> 3); + if (timer % 8 == 0) + QueueAnimTiles_Building_TVTurnedOn(timer >> 3); } -static void gTilesetAnims_Flower(u16 timer) +static void QueueAnimTiles_General_Flower(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General_Flower[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80); } -static void gTilesetAnims_Water(u16 timer) +static void QueueAnimTiles_General_Water(u16 timer) { - u8 idx; - - idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(432)), 0x3C0); + u8 i = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_General_Water[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(432)), 0x3C0); } -static void gTilesetAnims_SandWaterEdge(u16 timer) +static void QueueAnimTiles_General_SandWaterEdge(u16 timer) { - u16 idx; - - idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x140); + u16 i = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_General_SandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x140); } -static void gTilesetAnims_Waterfall(u16 timer) +static void QueueAnimTiles_General_Waterfall(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0xc0); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General_Waterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0xc0); } -void TilesetCb_Petalburg(void) +void InitTilesetAnim_Petalburg(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = NULL; } -void TilesetCb_Rustboro(void) +void InitTilesetAnim_Rustboro(void) { - static void sub_80A103C(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A103C; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Rustboro; } -void TilesetCb_Dewford(void) +void InitTilesetAnim_Dewford(void) { - static void sub_80A10B8(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A10B8; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Dewford; } -void TilesetCb_Slateport(void) +void InitTilesetAnim_Slateport(void) { - static void sub_80A10D0(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A10D0; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Slateport; } -void TilesetCb_Mauville(void) +void InitTilesetAnim_Mauville(void) { - static void sub_80A10E8(u16); - - sSecondaryTilesetCBCounter = sPrimaryTilesetCBCounter; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A10E8; + sSecondaryTilesetAnimCounter = sPrimaryTilesetAnimCounter; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Mauville; } -void TilesetCb_Lavaridge(void) +void InitTilesetAnim_Lavaridge(void) { - static void sub_80A115C(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A115C; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Lavaridge; } -void TilesetCb_Fallarbor(void) +void InitTilesetAnim_Fallarbor(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = NULL; } -void TilesetCb_Fortree(void) +void InitTilesetAnim_Fortree(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = NULL; } -void TilesetCb_Lilycove(void) +void InitTilesetAnim_Lilycove(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = NULL; } -void TilesetCb_Mossdeep(void) +void InitTilesetAnim_Mossdeep(void) { - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = NULL; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = NULL; } -void TilesetCb_EverGrande(void) +void InitTilesetAnim_EverGrande(void) { - static void sub_80A1188(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A1188; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_EverGrande; } -void TilesetCb_Pacifidlog(void) +void InitTilesetAnim_Pacifidlog(void) { - static void sub_80A11FC(u16); - - sSecondaryTilesetCBCounter = sPrimaryTilesetCBCounter; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A11FC; + sSecondaryTilesetAnimCounter = sPrimaryTilesetAnimCounter; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Pacifidlog; } -void TilesetCb_Sootopolis(void) +void InitTilesetAnim_Sootopolis(void) { - static void sub_80A122C(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A122C; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Sootopolis; } -void TilesetCb_BattleFrontierOutsideWest(void) +void InitTilesetAnim_BattleFrontierOutsideWest(void) { - static void sub_80A127C(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A127C; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_BattleFrontierOutsideWest; } -void TilesetCb_BattleFrontierOutsideEast(void) +void InitTilesetAnim_BattleFrontierOutsideEast(void) { - static void sub_80A1294(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A1294; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_BattleFrontierOutsideEast; } -void TilesetCb_Underwater(void) +void InitTilesetAnim_Underwater(void) { - static void sub_80A1244(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = 128; - sSecondaryTilesetCB = sub_80A1244; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = 128; + sSecondaryTilesetAnimCallback = TilesetAnim_Underwater; } -void TilesetCb_SootopolisGym(void) +void InitTilesetAnim_SootopolisGym(void) { - static void sub_80A15D8(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = 240; - sSecondaryTilesetCB = sub_80A15D8; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = 240; + sSecondaryTilesetAnimCallback = TilesetAnim_SootopolisGym; } -void TilesetCb_Cave(void) +void InitTilesetAnim_Cave(void) { - static void sub_80A1260(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A1260; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_Cave; } -void TilesetCb_EliteFour(void) +void InitTilesetAnim_EliteFour(void) { - static void sub_80A15F0(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = 128; - sSecondaryTilesetCB = sub_80A15F0; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = 128; + sSecondaryTilesetAnimCallback = TilesetAnim_EliteFour; } -void TilesetCb_MauvilleGym(void) +void InitTilesetAnim_MauvilleGym(void) { - static void sub_80A15C0(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A15C0; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_MauvilleGym; } -void TilesetCb_BikeShop(void) +void InitTilesetAnim_BikeShop(void) { - static void sub_80A161C(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A161C; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_BikeShop; } -void TilesetCb_BattlePyramid(void) +void InitTilesetAnim_BattlePyramid(void) { - static void sub_80A1634(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A1634; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_BattlePyramid; } -void TilesetCb_BattleDome(void) +void InitTilesetAnim_BattleDome(void) { - static void sub_80A1658(u16); - - sSecondaryTilesetCBCounter = 0; - sSecondaryTilesetCBBufferSize = sPrimaryTilesetCBBufferSize; - sSecondaryTilesetCB = sub_80A1658; + sSecondaryTilesetAnimCounter = 0; + sSecondaryTilesetAnimCounterMax = sPrimaryTilesetAnimCounterMax; + sSecondaryTilesetAnimCallback = TilesetAnim_BattleDome; } -static void sub_80A103C(u16 timer) +static void TilesetAnim_Rustboro(u16 timer) { - static void sub_80A1434(u16, u8); - static void sub_80A1470(u16); - - if ((timer & 0x07) == 0) + if (timer % 8 == 0) { - sub_80A1434(timer >> 3, 0); - sub_80A1470(timer >> 3); + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 0); + QueueAnimTiles_Rustboro_Fountain(timer >> 3); } - if ((timer & 0x07) == 1) - sub_80A1434(timer >> 3, 1); - if ((timer & 0x07) == 2) - sub_80A1434(timer >> 3, 2); - if ((timer & 0x07) == 3) - sub_80A1434(timer >> 3, 3); - if ((timer & 0x07) == 4) - sub_80A1434(timer >> 3, 4); - if ((timer & 0x07) == 5) - sub_80A1434(timer >> 3, 5); - if ((timer & 0x07) == 6) - sub_80A1434(timer >> 3, 6); - if ((timer & 0x07) == 7) - sub_80A1434(timer >> 3, 7); + if (timer % 8 == 1) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 1); + if (timer % 8 == 2) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 2); + if (timer % 8 == 3) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 3); + if (timer % 8 == 4) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 4); + if (timer % 8 == 5) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 5); + if (timer % 8 == 6) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 6); + if (timer % 8 == 7) + QueueAnimTiles_Rustboro_WindyWater(timer >> 3, 7); } -static void sub_80A10B8(u16 timer) +static void TilesetAnim_Dewford(u16 timer) { - static void sub_80A1520(u16); - - if ((timer & 7) == 0) - sub_80A1520(timer >> 3); + if (timer % 8 == 0) + QueueAnimTiles_Dewford_Flag(timer >> 3); } -static void sub_80A10D0(u16 timer) +static void TilesetAnim_Slateport(u16 timer) { - static void sub_80A1598(u16); - - if ((timer & 15) == 0) - sub_80A1598(timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_Slateport_Balloons(timer >> 4); } -static void sub_80A10E8(u16 timer) +static void TilesetAnim_Mauville(u16 timer) { - static void sub_80A1394(u16, u8); - - if ((timer & 0x07) == 0) - sub_80A1394(timer >> 3, 0); - if ((timer & 0x07) == 1) - sub_80A1394(timer >> 3, 1); - if ((timer & 0x07) == 2) - sub_80A1394(timer >> 3, 2); - if ((timer & 0x07) == 3) - sub_80A1394(timer >> 3, 3); - if ((timer & 0x07) == 4) - sub_80A1394(timer >> 3, 4); - if ((timer & 0x07) == 5) - sub_80A1394(timer >> 3, 5); - if ((timer & 0x07) == 6) - sub_80A1394(timer >> 3, 6); - if ((timer & 0x07) == 7) - sub_80A1394(timer >> 3, 7); + if (timer % 8 == 0) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 0); + if (timer % 8 == 1) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 1); + if (timer % 8 == 2) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 2); + if (timer % 8 == 3) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 3); + if (timer % 8 == 4) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 4); + if (timer % 8 == 5) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 5); + if (timer % 8 == 6) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 6); + if (timer % 8 == 7) + QueueAnimTiles_Mauville_Flowers(timer >> 3, 7); } -static void sub_80A115C(u16 timer) +static void TilesetAnim_Lavaridge(u16 timer) { - static void sub_80A12D4(u8); - static void sub_80A1498(u16); - - if ((timer & 0x0F) == 0) - sub_80A12D4(timer >> 4); - if ((timer & 0x0F) == 1) - sub_80A1498(timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_Lavaridge_Steam(timer >> 4); + if (timer % 16 == 1) + QueueAnimTiles_Lavaridge_Lava(timer >> 4); } -static void sub_80A1188(u16 timer) +static void TilesetAnim_EverGrande(u16 timer) { - static void sub_80A14C0(u16, u8); - - if ((timer & 0x07) == 0) - sub_80A14C0(timer >> 3, 0); - if ((timer & 0x07) == 1) - sub_80A14C0(timer >> 3, 1); - if ((timer & 0x07) == 2) - sub_80A14C0(timer >> 3, 2); - if ((timer & 0x07) == 3) - sub_80A14C0(timer >> 3, 3); - if ((timer & 0x07) == 4) - sub_80A14C0(timer >> 3, 4); - if ((timer & 0x07) == 5) - sub_80A14C0(timer >> 3, 5); - if ((timer & 0x07) == 6) - sub_80A14C0(timer >> 3, 6); - if ((timer & 0x07) == 7) - sub_80A14C0(timer >> 3, 7); + if (timer % 8 == 0) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 0); + if (timer % 8 == 1) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 1); + if (timer % 8 == 2) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 2); + if (timer % 8 == 3) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 3); + if (timer % 8 == 4) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 4); + if (timer % 8 == 5) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 5); + if (timer % 8 == 6) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 6); + if (timer % 8 == 7) + QueueAnimTiles_EverGrande_Flowers(timer >> 3, 7); } -static void sub_80A11FC(u16 timer) +static void TilesetAnim_Pacifidlog(u16 timer) { - static void sub_80A131C(u8); - static void sub_80A136C(u8); - - if ((timer & 0x0F) == 0) - sub_80A131C(timer >> 4); - if ((timer & 0x0F) == 1) - sub_80A136C(timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_Pacifidlog_LogBridges(timer >> 4); + if (timer % 16 == 1) + QueueAnimTiles_Pacifidlog_WaterCurrents(timer >> 4); } -static void sub_80A122C(u16 timer) +static void TilesetAnim_Sootopolis(u16 timer) { - static void sub_80A1798(u16); - - if ((timer & 0x0F) == 0) - sub_80A1798(timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_Sootopolis_StormyWater(timer >> 4); } -static void sub_80A1244(u16 timer) +static void TilesetAnim_Underwater(u16 timer) { - static void sub_80A1344(u8); - - if ((timer & 0x0F) == 0) - sub_80A1344(timer >> 4); + if (timer % 16 == 0) + QueueAnimTiles_Underwater_Seaweed(timer >> 4); } -static void sub_80A1260(u16 timer) +static void TilesetAnim_Cave(u16 timer) { - static void sub_80A14F8(u16); - - if ((timer & 0x0F) == 1) - sub_80A14F8(timer >> 4); + if (timer % 16 == 1) + QueueAnimTiles_Cave_Lava(timer >> 4); } -static void sub_80A127C(u16 timer) +static void TilesetAnim_BattleFrontierOutsideWest(u16 timer) { - static void sub_80A1548(u16); - - if ((timer & 0x07) == 0) - sub_80A1548(timer >> 3); + if (timer % 8 == 0) + QueueAnimTiles_BattleFrontierOutsideWest_Flag(timer >> 3); } -static void sub_80A1294(u16 timer) +static void TilesetAnim_BattleFrontierOutsideEast(u16 timer) { - static void sub_80A1570(u16); - - if ((timer & 0x07) == 0) - sub_80A1570(timer >> 3); + if (timer % 8 == 0) + QueueAnimTiles_BattleFrontierOutsideEast_Flag(timer >> 3); } -static void gTilesetAnims_LandWaterEdge (u16 timer) +static void QueueAnimTiles_General_LandWaterEdge(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(480)), 0x140); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_General_LandWaterEdge[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(480)), 0x140); } -static void sub_80A12D4(u8 timer) +static void QueueAnimTiles_Lavaridge_Steam(u8 timer) { - u8 idx; + u8 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 288)), 0x80); - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 288)), 0x80); - - idx = (timer + 2) % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 292)), 0x80); + i = (timer + 2) % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Steam[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 292)), 0x80); } -static void sub_80A131C(u8 timer) +static void QueueAnimTiles_Pacifidlog_LogBridges(u8 timer) { - u8 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x3C0); + u8 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_LogBridges[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x3C0); } -static void sub_80A1344(u8 timer) +static void QueueAnimTiles_Underwater_Seaweed(u8 timer) { - u8 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x80); + u8 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater_Seaweed[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x80); } -static void sub_80A136C(u8 timer) +static void QueueAnimTiles_Pacifidlog_WaterCurrents(u8 timer) { - u8 idx; - - idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x100); + u8 i = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog_WaterCurrents[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x100); } -static void sub_80A1394(u16 timer_div, u8 timer_mod) +static void QueueAnimTiles_Mauville_Flowers(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; if (timer_div < 12) // almost certainly a typo { timer_div %= 12; - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville0a[timer_div], gTilesetAnims_MauvilleVDests0[timer_mod], 0x80); - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville0b[timer_div], gTilesetAnims_MauvilleVDests1[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 0x80); } else { timer_div %= 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville1a[timer_div], gTilesetAnims_MauvilleVDests0[timer_mod], 0x80); - AppendTilesetAnimToBuffer(gTilesetAnims_Mauville1b[timer_div], gTilesetAnims_MauvilleVDests1[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower1_B[timer_div], gTilesetAnims_Mauville_Flower1_VDests[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Mauville_Flower2_B[timer_div], gTilesetAnims_Mauville_Flower2_VDests[timer_mod], 0x80); } } -static void sub_80A1434(u16 timer_div, u8 timer_mod) +static void QueueAnimTiles_Rustboro_WindyWater(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; timer_div %= 8; - if (gTilesetAnims_Rustboro0[timer_div]) - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro0[timer_div], gTilesetAnims_RustboroVDests0[timer_mod], 0x80); + if (gTilesetAnims_Rustboro_WindyWater[timer_div]) + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_WindyWater[timer_div], gTilesetAnims_Rustboro_WindyWater_VDests[timer_mod], 0x80); } -static void sub_80A1470(u16 timer) +static void QueueAnimTiles_Rustboro_Fountain(u16 timer) { - u16 idx; - - idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 448)), 0x80); + u16 i = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro_Fountain[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 448)), 0x80); } -static void sub_80A1498(u16 timer) +static void QueueAnimTiles_Lavaridge_Lava(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 160)), 0x80); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 160)), 0x80); } -static void sub_80A14C0(u16 timer_div, u8 timer_mod) +static void QueueAnimTiles_EverGrande_Flowers(u16 timer_div, u8 timer_mod) { timer_div -= timer_mod; timer_div %= 8; - AppendTilesetAnimToBuffer(gTilesetAnims_EverGrande0[timer_div], gTilesetAnims_EverGrandeVDests0[timer_mod], 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_EverGrande_Flowers[timer_div], gTilesetAnims_EverGrande_VDests[timer_mod], 0x80); } -static void sub_80A14F8(u16 timer) +static void QueueAnimTiles_Cave_Lava(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 416)), 0x80); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge_Cave_Lava[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 416)), 0x80); } -static void sub_80A1520(u16 timer) +static void QueueAnimTiles_Dewford_Flag(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 170)), 0xC0); + u16 id = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford_Flag[id], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 170)), 0xC0); } -static void sub_80A1548(u16 timer) +static void QueueAnimTiles_BattleFrontierOutsideWest_Flag(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); } -static void sub_80A1570(u16 timer) +static void QueueAnimTiles_BattleFrontierOutsideEast_Flag(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast_Flag[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); } -static void sub_80A1598(u16 timer) +static void QueueAnimTiles_Slateport_Balloons(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), 0x80); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport_Balloons[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), 0x80); } -static void sub_80A15C0(u16 timer) +static void TilesetAnim_MauvilleGym(u16 timer) { - static void sub_80A1748(u16); - - if ((timer & 1) == 0) - sub_80A1748(timer >> 1); + if (timer % 2 == 0) + QueueAnimTiles_MauvilleGym_ElectricGates(timer >> 1); } -static void sub_80A15D8(u16 timer) +static void TilesetAnim_SootopolisGym(u16 timer) { - static void sub_80A16B0(u16); - - if ((timer & 7) == 0) - sub_80A16B0(timer >> 3); + if (timer % 8 == 0) + QueueAnimTiles_SootopolisGym_Waterfalls(timer >> 3); } -static void sub_80A15F0(u16 timer) +static void TilesetAnim_EliteFour(u16 timer) { - static void sub_80A1720(u16); - static void sub_80A16F8(u16); - - if ((timer & 0x3f) == 1) - sub_80A1720(timer >> 6); - if ((timer & 0x07) == 1) - sub_80A16F8(timer >> 3); + if (timer % 64 == 1) + QueueAnimTiles_EliteFour_GroundLights(timer >> 6); + if (timer % 8 == 1) + QueueAnimTiles_EliteFour_WallLights(timer >> 3); } -static void sub_80A161C(u16 timer) -{ - static void sub_80A1770(u16); - if ((timer & 3) == 0) - sub_80A1770(timer >> 2); +static void TilesetAnim_BikeShop(u16 timer) +{ + if (timer % 4 == 0) + QueueAnimTiles_BikeShop_BlinkingLights(timer >> 2); } -static void sub_80A1634(u16 timer) +static void TilesetAnim_BattlePyramid(u16 timer) { - static void sub_80A17C0(u16); - static void sub_80A17EC(u16); - - if ((timer & 7) == 0) + if (timer % 8 == 0) { - sub_80A17C0(timer >> 3); - sub_80A17EC(timer >> 3); + QueueAnimTiles_BattlePyramid_Torch(timer >> 3); + QueueAnimTiles_BattlePyramid_StatueShadow(timer >> 3); } } -static void sub_80A1658(u16 timer) +static void TilesetAnim_BattleDome(u16 timer) { - static void sub_80A1818(u16); - - if ((timer & 3) == 0) - sub_80A1818(timer >> 2); + if (timer % 4 == 0) + BlendAnimPalette_BattleDome_FloorLights(timer >> 2); } -static void sub_80A1670(u16 timer) +static void TilesetAnim_BattleDome2(u16 timer) { - static void sub_80A1884(u16); - - if ((timer & 3) == 0) - sub_80A1884(timer >> 2); + if (timer % 4 == 0) + BlendAnimPalette_BattleDome_FloorLightsNoBlend(timer >> 2); } -static void sub_80A1688(u16 timer) +static void QueueAnimTiles_Building_TVTurnedOn(u16 timer) { - u16 idx; - - idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0x80); + u16 i = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_Building_TvTurnedOn[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0x80); } -static void sub_80A16B0(u16 timer) +static void QueueAnimTiles_SootopolisGym_Waterfalls(u16 timer) { - u16 idx; - - idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x180); - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x280); + u16 i = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_SideWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x180); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym_FrontWaterfall[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x280); } -static void sub_80A16F8(u16 timer) +static void QueueAnimTiles_EliteFour_WallLights(u16 timer) { - u16 idx; - - idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 504)), 0x20); + u16 i = timer % 4; + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_WallLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 504)), 0x20); } -static void sub_80A1720(u16 timer) +static void QueueAnimTiles_EliteFour_GroundLights(u16 timer) { - u16 idx; - - idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 480)), 0x80); + u16 i = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour_FloorLight[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 480)), 0x80); } -static void sub_80A1748(u16 timer) +static void QueueAnimTiles_MauvilleGym_ElectricGates(u16 timer) { - u16 idx; - - idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), 0x200); + u16 i = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym_ElectricGates[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), 0x200); } -static void sub_80A1770(u16 timer) +static void QueueAnimTiles_BikeShop_BlinkingLights(u16 timer) { - u16 idx; - - idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x120); + u16 i = timer % 2; + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop_BlinkingLights[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x120); } -static void sub_80A1798(u16 timer) +static void QueueAnimTiles_Sootopolis_StormyWater(u16 timer) { - u16 idx; - - idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), 0xc00); + u16 i = timer % 8; + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis_StormyWater[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), 0xc00); } -static void sub_80A17C0(u16 timer) +static void QueueAnimTiles_BattlePyramid_Torch(u16 timer) { - u16 idx; - - idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 151)), 0x100); + u16 i = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_Torch[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 151)), 0x100); } -static void sub_80A17EC(u16 timer) +static void QueueAnimTiles_BattlePyramid_StatueShadow(u16 timer) { - u16 idx; - - idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 135)), 0x100); + u16 i = timer % 3; + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid_StatueShadow[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 135)), 0x100); } -static void sub_80A1818(u16 a1) +static void BlendAnimPalette_BattleDome_FloorLights(u16 timer) { - CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32); - BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); + BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) != 0xFF ) { - sSecondaryTilesetCB = sub_80A1670; - sSecondaryTilesetCBBufferSize = 0x20; + sSecondaryTilesetAnimCallback = TilesetAnim_BattleDome2; + sSecondaryTilesetAnimCounterMax = 32; } } -static void sub_80A1884(u16 a1) +static void BlendAnimPalette_BattleDome_FloorLightsNoBlend(u16 timer) { - CpuCopy16(gTilesetAnims_BattleDomePals0[a1 & 0x3], gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gTilesetAnims_BattleDomeFloorLightPals[timer % 4], gPlttBufferUnfaded + 0x80, 32); if ((u8)FindTaskIdByFunc(TransitionPhase1_Task_RunFuncs) == 0xFF ) { - BlendPalette(0x80, 0x10, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); - if (!--sSecondaryTilesetCBBufferSize) - sSecondaryTilesetCB = NULL; + BlendPalette(0x80, 16, gPaletteFade.y, gPaletteFade.blendColor & 0x7FFF); + if (!--sSecondaryTilesetAnimCounterMax) + sSecondaryTilesetAnimCallback = NULL; } } -- cgit v1.2.3 From 6f1d2b870c1426e7f405f3b3bc4ff2b9edb380e1 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 9 Feb 2019 09:57:30 -0600 Subject: Give proper names to dynamic map layouts --- src/battle_pike.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/battle_pike.c b/src/battle_pike.c index f2f2025d7..cc58b81bb 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -1337,7 +1337,7 @@ bool8 InBattlePike(void) return gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 || gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 - || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_MAP_084693AC; + || gMapHeader.mapLayoutId == LAYOUT_UNKNOWN_084693AC; } static void SetHintedRoom(void) -- cgit v1.2.3 From 45297797e6f038ecf30a78306a15cdf5d33a859c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Feb 2019 21:07:07 -0500 Subject: Document the intro movie state machine Need to study the water droplet animation more closely before they can be renamed; otherwise, this names every major symbol in this file. --- src/credits.c | 10 +- src/intro.c | 386 +++++++++++++++++++++++++------------------ src/intro_credits_graphics.c | 5 +- src/new_game.c | 2 +- src/reset_save_heap.c | 2 +- src/title_screen.c | 6 +- 6 files changed, 237 insertions(+), 174 deletions(-) (limited to 'src') diff --git a/src/credits.c b/src/credits.c index 3639d36e4..c96c6b4a1 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1869,7 +1869,7 @@ static void sub_817664C(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); + gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(0, 0x2000, 0x20, 8); break; case 1: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; @@ -1880,7 +1880,7 @@ static void sub_817664C(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); + gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(0, 0x2000, 0x20, 8); break; case 2: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; @@ -1891,7 +1891,7 @@ static void sub_817664C(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); + gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(1, 0x2000, 0x200, 8); break; case 3: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; @@ -1902,7 +1902,7 @@ static void sub_817664C(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); + gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(1, 0x2000, 0x200, 8); break; case 4: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; @@ -1913,7 +1913,7 @@ static void sub_817664C(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.y = 46; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].data[0] = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data[0] = 0; - gTasks[taskIdA].data[TDA_0] = sub_817B3DC(2, 0x2000, 0x200, 8); + gTasks[taskIdA].data[TDA_0] = CreateBicycleAnimationTask(2, 0x2000, 0x200, 8); break; } diff --git a/src/intro.c b/src/intro.c index 18a899fb0..728811e82 100644 --- a/src/intro.c +++ b/src/intro.c @@ -27,14 +27,75 @@ #include "constants/rgb.h" #include "constants/battle_anim.h" +/* + * Intro animation sequence state machine + * -------------------------------------- + * + * Entry Point: CB2_InitCopyrightScreenAfterBootup + * + * Note: States advance sequentially unless otherwise stated. + * + * CB2_InitCopyrightScreenAfterBootup + * - Registers a serial interrupt handler that listens for a GameCube. + * - Waits for 140 frames, and then until palette fading completes. + * - Stops looking for a GameCube for dualboot. + * - Check the save file for corruption + * - Setup global pointers to save file + * - Initialize gHeap + * + * MainCB2_Intro + * - Spawn Task_IntroLoadPart1Graphics + * - If any keys are pressed during the intro, advance to + * MainCB2_EndIntro (which will then kill all tasks). + * + * Task_IntroLoadPart1Graphics + * Task_IntroFadeIn (frame counter starts at 0 here) + * Task_IntroWaterDrops + * - At frame 128 of this state, spawn Task_IntroWaterDrops_1 + * - At frame 256 of this state, spawn Task_IntroWaterDrops_2 + * - At frame 560 of this state, spawn Task_IntroWaterDrops_3 + * Task_IntroScrollDownAndShowFlygon + * Task_IntroWaitToSetupPart2 + * Task_IntroLoadPart2Graphics + * Task_IntroStartBikeRide + * - Spawn Task_AdvanceBicycleAnimation + * Task_IntroHandleBikeAndFlygonMovement + * - At frame 1856, kills the bicycle animation task + * Task_IntroWaitToSetupPart3 + * Task_IntroLoadPart3Graphics (frame counter resets to 0 here) + * Task_IntroSpinAndZoomPokeball + * - Continues until the zoom reaches a certain point + * Task_IntroWaitToSetupPart3LegendsFight + * Task_IntroLoadGroudonScene + * Task_IntroLoadPart3Graphics1 + * Task_IntroLoadPart3Graphics2 + * Task_IntroLoadPart3Graphics3 + * Task_IntroLoadPart3Graphics4 + * Task_IntroGroudonScene + * Task_IntroLoadKyogreScene + * Task_IntroKyogreScene + * Task_IntroLoadClouds1 + * Task_IntroLoadClouds2 + * Task_IntroLoadClouds3 + * Task_IntroCloudsScene + * Task_IntroLoadRayquazaLightningScene + * Task_IntroRaquazaLightningScene + * Task_IntroLoadRaquazaGlowScene + * Task_IntroRaquazaGlowScene_0 + * - Runs concurrently with Task_IntroRaquazaGlowScene_1 + * Task_EndIntroMovie + * MainCB2_EndIntro + * - Advances to CB2_InitTitleScreen + */ + extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct SpriteTemplate gUnknown_08596C10[]; //ewram -EWRAM_DATA u16 gUnknown_0203BCC8 = 0; +EWRAM_DATA u16 gIntroCharacterGender = 0; EWRAM_DATA u16 gUnknown_0203BCCA = 0; -EWRAM_DATA u16 gUnknown_0203BCCC = 0; +EWRAM_DATA u16 gIntroGraphicsFlygonYOffset = 0; //iwram u32 gIntroFrameCounter; @@ -67,12 +128,12 @@ static const u8 sUnknownBytes[] = { 0x10, 0x11, 0x12, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x02, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x00 }; -static const struct CompressedSpriteSheet gUnknown_085E4A74[] = +static const struct CompressedSpriteSheet gIntroSpriteSheet_Sparkle[] = { {gIntro1SparkleGfx, 0x400, 1505}, {NULL}, }; -static const struct SpritePalette gUnknown_085E4A84[] = +static const struct SpritePalette gIntroPalette_Lightning[] = { {gIntro3LightningPal, 1505}, {NULL}, @@ -132,14 +193,14 @@ static const u8 gUnknown_085E4AD0[][2] = {0xD0, 0x26}, {0x00, 0x00}, }; -static const struct CompressedSpriteSheet gUnknown_085E4AE8[] = +static const struct CompressedSpriteSheet gIntroPokemonRunningSpriteSheet[] = { {gIntro2VolbeatGfx, 0x400, 1500}, {gIntro2TorchicGfx, 0xC00, 1501}, {gIntro2ManectricGfx, 0x2000, 1502}, {NULL}, }; -static const struct SpritePalette gUnknown_085E4B08[] = +static const struct SpritePalette gIntroPokemonRunningPalette[] = { {gIntro2VolbeatPal, 1500}, {gIntro2TorchicPal, 1501}, @@ -278,12 +339,12 @@ static const struct SpriteTemplate gUnknown_085E4BDC = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_816DAE8, }; -static const struct CompressedSpriteSheet gUnknown_085E4BF4[] = +static const struct CompressedSpriteSheet gIntroRayquazaLightningSpriteSheet[] = { {gIntro3LightningGfx, 0xC00, 1503}, {NULL}, }; -static const struct SpritePalette gUnknown_085E4C04[] = +static const struct SpritePalette gIntroRayquazaLightningPalette[] = { {gIntro3LightningPal, 1503}, {NULL}, @@ -328,8 +389,8 @@ static const union AnimCmd *const gUnknown_085E4C40[] = gUnknown_085E4C28, gUnknown_085E4C34, }; -static void sub_816EC6C(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4C4C = +static void SpriteCB_IntroRaquazaLightning(struct Sprite *sprite); +static const struct SpriteTemplate gIntroLightningSprite = { .tileTag = 1503, .paletteTag = 1503, @@ -337,9 +398,9 @@ static const struct SpriteTemplate gUnknown_085E4C4C = .anims = gUnknown_085E4C40, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816EC6C, + .callback = SpriteCB_IntroRaquazaLightning, }; -static const s16 gUnknown_085E4C64[][3] = +static const s16 gIntroGroudonRockData[][3] = { {0x68, 0x00, 0x0C0}, {0x8E, 0x03, 0x280}, @@ -358,7 +419,7 @@ static const struct SpritePalette gUnknown_085E4C98[] = {gIntro2BubblesPal, 1504}, {NULL}, }; -static const s16 gUnknown_085E4CA8[][3] = +static const s16 gIntroKyogreBubbleData[][3] = { {0x42, 0x40, 0x1}, {0x60, 0x60, 0x8}, @@ -402,7 +463,7 @@ static const union AnimCmd *const gUnknown_085E4D10[] = { gUnknown_085E4CF8, }; -static void sub_816E7B4(struct Sprite *sprite); +static void SpriteCB_IntroKyogreBubbles(struct Sprite *sprite); static const struct SpriteTemplate gUnknown_085E4D14 = { .tileTag = 1504, @@ -411,7 +472,7 @@ static const struct SpriteTemplate gUnknown_085E4D14 = .anims = gUnknown_085E4D10, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_816E7B4, + .callback = SpriteCB_IntroKyogreBubbles, }; static const struct OamData gUnknown_085E4D2C = { @@ -457,7 +518,7 @@ static const union AnimCmd *const gUnknown_085E4D54[] = gUnknown_085E4D4C, }; static void sub_816F454(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E4D64 = +static const struct SpriteTemplate gIntroWaterDropSprite = { .tileTag = 2000, .paletteTag = 2000, @@ -497,7 +558,7 @@ static const union AnimCmd gUnknown_085E4DB4[] = ANIMCMD_FRAME(256, 16), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085E4DC4[] = +static const union AnimCmd *const gIntroBicycleAnimationCommands[] = { gUnknown_085E4D7C, gUnknown_085E4D90, @@ -772,17 +833,17 @@ static const struct SpriteTemplate gUnknown_085E4FC4 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_816FEDC, }; -static const struct CompressedSpriteSheet gUnknown_085E4FDC[] = +static const struct CompressedSpriteSheet gIntroSpriteSheet_WaterDropAndLogo[] = { {gIntroTiles, 0x1400, 2000}, {NULL}, }; -static const struct CompressedSpriteSheet gUnknown_085E4FEC[] = +static const struct CompressedSpriteSheet gIntroSpriteSheet_Flygon[] = { {gIntro1FlygonGfx, 0x400, 2002}, {NULL}, }; -static const struct SpritePalette gUnknown_085E4FFC[] = +static const struct SpritePalette gIntroPalette_DropLogoFlygon[] = { {gIntro1DropsPal, 2000}, {gIntro1GFLogoPal, 2001}, @@ -814,8 +875,8 @@ static const union AnimCmd *const gUnknown_085E502C[] = { gUnknown_085E5024, }; -static void sub_8170040(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085E5030 = +static void SpriteCB_IntroRaquazaHyperbeam(struct Sprite *sprite); +static const struct SpriteTemplate gIntroRaquazaHyperbeamSprite = { .tileTag = 2003, .paletteTag = 2003, @@ -823,14 +884,14 @@ static const struct SpriteTemplate gUnknown_085E5030 = .anims = gUnknown_085E502C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8170040, + .callback = SpriteCB_IntroRaquazaHyperbeam, }; -static const struct CompressedSpriteSheet gUnknown_085E5048[] = +static const struct CompressedSpriteSheet gIntroRaquazaGlowSpriteSheet[] = { {gIntro3MiscTiles, 0xA00, 2003}, {NULL}, }; -static const struct SpritePalette gUnknown_085E5058[] = +static const struct SpritePalette gIntroRaquazaGlowPalette[] = { {gIntro3Misc1Palette, 2003}, {NULL}, @@ -855,36 +916,36 @@ static void Task_IntroWaitToSetupPart3(u8); static void Task_IntroLoadPart3Graphics(u8); static void Task_IntroSpinAndZoomPokeball(u8); static void Task_IntroWaitToSetupPart3LegendsFight(u8); -static void Task_IntroLoadPart1Graphics3(u8); -static void Task_IntroLoadPart1Graphics4(u8); -static void Task_IntroLoadPart1Graphics5(u8); -static void Task_IntroLoadPart1Graphics6(u8); -static void Task_IntroLoadPart1Graphics7(u8); -static void Task_IntroLoadPart1Graphics8(u8); -static void Task_IntroLoadPart1Graphics9(u8); -static void Task_IntroFadeIn0(u8); -static void Task_IntroFadeIn1(u8); -static void Task_IntroFadeIn2(u8); -static void Task_IntroFadeIn3(u8); -static void Task_IntroFadeIn4(u8); -static void Task_IntroFadeIn5(u8); -static void Task_IntroFadeIn6(u8); -static void Task_IntroFadeIn7(u8); -static void Task_IntroFadeIn8(u8); -static void Task_IntroFadeIn9(u8); -static void sub_816E190(u8); -static void sub_816E1F8(struct Sprite *); -static void sub_816E6D4(u8); -static void sub_816E74C(void); -static void sub_816EEA8(u8); +static void Task_IntroLoadGroudonScene(u8); +static void Task_IntroLoadPart3Graphics1(u8); +static void Task_IntroLoadPart3Graphics2(u8); +static void Task_IntroLoadPart3Graphics3(u8); +static void Task_IntroLoadPart3Graphics4(u8); +static void Task_IntroGroudonScene(u8); +static void Task_IntroLoadKyogreScene(u8); +static void Task_IntroKyogreScene(u8); +static void Task_IntroLoadClouds1(u8); +static void Task_IntroLoadClouds2(u8); +static void Task_IntroLoadClouds3(u8); +static void Task_IntroCloudScene(u8); +static void Task_IntroLoadRaquazaLightningScene(u8); +static void Task_IntroRaquazaLightningScene(u8); +static void Task_IntroLoadRaquazaGlowScene(u8); +static void Task_IntroRaquazaGlowScene_0(u8); +static void Task_EndIntroMovie(u8); +static void CreateGroudonRockSprites(u8); +static void SpriteCB_IntroGroudonRocks(struct Sprite *); +static void CreateKyogreBubbleSprites_0(u8); +static void CreateKyogreBubbleSprites_1(void); +static void Task_IntroRaquazaGlowScene_1(u8); static void sub_816F46C(struct Sprite *); static void sub_816F5B4(struct Sprite *); static void sub_816F660(struct Sprite *); static void SpriteCB_WaterDropFall(struct Sprite *); static void sub_816F318(struct Sprite *); -static void sub_816F9D4(struct Sprite *); -static void sub_816FAB0(struct Sprite *); -static u8 sub_816FDB8(s16, s16, s16); +static void SpriteCB_IntroGraphicsBicycle(struct Sprite *); +static void SpriteCB_IntroGraphicsFlygon(struct Sprite *); +static u8 CreatePart1Animations(s16, s16, s16); static void VBlankCB_Intro(void) { @@ -1006,7 +1067,7 @@ void CB2_InitCopyrightScreenAfterBootup(void) if (!SetUpCopyrightScreen()) { SetSaveBlocksPointers(sub_815355C()); - sub_808447C(); + ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); Save_LoadGameData(SAVE_NORMAL); if (gSaveFileStatus == 0 || gSaveFileStatus == 2) @@ -1024,7 +1085,7 @@ void CB2_InitCopyrightScreenAfterTitleScreen(void) static void Task_IntroLoadPart1Graphics(u8 taskId) { SetVBlankCallback(NULL); - gUnknown_0203BCC8 = Random() & 1; + gIntroCharacterGender = Random() & 1; intro_reset_and_hide_bgs(); SetGpuReg(REG_OFFSET_BG3VOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0x50); @@ -1044,11 +1105,11 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(18) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(16) | BGCNT_16COLOR | BGCNT_TXT256x512); - LoadCompressedSpriteSheet(gUnknown_085E4FDC); - LoadCompressedSpriteSheet(gUnknown_085E4FEC); - LoadSpritePalettes(gUnknown_085E4FFC); - LoadCompressedSpriteSheet(gUnknown_085E4A74); - LoadSpritePalettes(gUnknown_085E4A84); + LoadCompressedSpriteSheet(gIntroSpriteSheet_WaterDropAndLogo); + LoadCompressedSpriteSheet(gIntroSpriteSheet_Flygon); + LoadSpritePalettes(gIntroPalette_DropLogoFlygon); + LoadCompressedSpriteSheet(gIntroSpriteSheet_Sparkle); + LoadSpritePalettes(gIntroPalette_Lightning); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1F0, 0x20); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1E1, 0x1E); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1D2, 0x1C); @@ -1056,7 +1117,7 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1B4, 0x18); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x1A5, 0x16); CpuCopy16(gPlttBufferUnfaded + 0x100, gPlttBufferUnfaded + 0x196, 0x14); - sub_816FDB8(0x78, 0x50, 0); + CreatePart1Animations(0x78, 0x50, 0); gTasks[taskId].data[0] = CreateWaterDrop(236, -14, 0x200, 1, 0x78, FALSE); gTasks[taskId].func = Task_IntroFadeIn; } @@ -1194,7 +1255,7 @@ static void Task_IntroLoadPart2Graphics(u8 taskId) FreeAllSpritePalettes(); gUnknown_0203BD24 = 0; gUnknown_0203BD26 = 0; - gUnknown_0203BCCC = 0; + gIntroGraphicsFlygonYOffset = 0; load_intro_part2_graphics(1); gTasks[taskId].func = Task_IntroStartBikeRide; } @@ -1203,7 +1264,7 @@ static void Task_IntroStartBikeRide(u8 taskId) { u8 spriteId; - if (gUnknown_0203BCC8 == 0) + if (gIntroCharacterGender == 0) LoadCompressedSpriteSheet(gIntro2BrendanSpriteSheet); else LoadCompressedSpriteSheet(gIntro2MaySpriteSheet); @@ -1213,29 +1274,29 @@ static void Task_IntroStartBikeRide(u8 taskId) for (spriteId = 0; spriteId < 3; spriteId++) { - LoadCompressedSpriteSheet(&gUnknown_085E4AE8[spriteId]); + LoadCompressedSpriteSheet(&gIntroPokemonRunningSpriteSheet[spriteId]); } - LoadSpritePalettes(gUnknown_085F530C); - LoadSpritePalettes(gUnknown_085E4B08); + LoadSpritePalettes(gIntroBikeAndFlygonPalette); + LoadSpritePalettes(gIntroPokemonRunningPalette); CreateSprite(&gUnknown_085E4BDC, 0x110, 0x80, 0); CreateSprite(&gUnknown_085E4BA4, 0x120, 0x6E, 1); - if (gUnknown_0203BCC8 == 0) + if (gIntroCharacterGender == 0) spriteId = intro_create_brendan_sprite(0x110, 100); else spriteId = intro_create_may_sprite(0x110, 100); - gSprites[spriteId].callback = sub_816F9D4; - gSprites[spriteId].anims = gUnknown_085E4DC4; + gSprites[spriteId].callback = SpriteCB_IntroGraphicsBicycle; + gSprites[spriteId].anims = gIntroBicycleAnimationCommands; gTasks[taskId].data[1] = spriteId; CreateSprite(&gUnknown_085E4B40, 0x110, 0x50, 0x4); spriteId = intro_create_flygon_sprite(-0x40, 0x3C); - gSprites[spriteId].callback = sub_816FAB0; + gSprites[spriteId].callback = SpriteCB_IntroGraphicsFlygon; gTasks[taskId].data[2] = spriteId; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_WHITEALPHA); SetVBlankCallback(VBlankCB_Intro); - gTasks[taskId].data[0] = sub_817B3DC(1, 0x4000, 0x400, 0x10); + gTasks[taskId].data[0] = CreateBicycleAnimationTask(1, 0x4000, 0x400, 0x10); sub_817B150(1); gTasks[taskId].func = Task_IntroHandleBikeAndFlygonMovement; } @@ -1243,11 +1304,12 @@ static void Task_IntroStartBikeRide(u8 taskId) static void Task_IntroHandleBikeAndFlygonMovement(u8 taskId) { s16 a; - u16 sine; + u16 offset; if (gIntroFrameCounter == 1856) { gUnknown_0203BD28 = 2; + // Destroys the CreateBicycleAnimationTask created earlier. DestroyTask(gTasks[taskId].data[0]); } if (gIntroFrameCounter > 1946) @@ -1268,8 +1330,8 @@ static void Task_IntroHandleBikeAndFlygonMovement(u8 taskId) if (gIntroFrameCounter == 1727) gSprites[gTasks[taskId].data[1]].data[0] = 4; - sine = Sin(gTasks[taskId].data[3] >> 2 & 0x7F, 48); - gUnknown_0203BCCC = sine; + offset = Sin(gTasks[taskId].data[3] >> 2 & 0x7F, 48); + gIntroGraphicsFlygonYOffset = offset; if (gTasks[taskId].data[3] < 512) gTasks[taskId].data[3]++; sub_817B540(0); @@ -1493,7 +1555,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId) gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 0; - sub_816F2A8(0x78, 0x50, 0, 0); + PanFadeAndZoomScreen(0x78, 0x50, 0, 0); ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_WHITEALPHA); @@ -1518,7 +1580,7 @@ static void Task_IntroSpinAndZoomPokeball(u8 taskId) gTasks[taskId].func = Task_IntroWaitToSetupPart3LegendsFight; } - sub_816F2A8(0x78, 0x50, 0x10000 / gTasks[taskId].data[1], gTasks[taskId].data[0]); + PanFadeAndZoomScreen(0x78, 0x50, 0x10000 / gTasks[taskId].data[1], gTasks[taskId].data[0]); if (gIntroFrameCounter == 28) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); @@ -1527,10 +1589,10 @@ static void Task_IntroSpinAndZoomPokeball(u8 taskId) static void Task_IntroWaitToSetupPart3LegendsFight(u8 taskId) { if (gIntroFrameCounter > 43) - gTasks[taskId].func = Task_IntroLoadPart1Graphics3; + gTasks[taskId].func = Task_IntroLoadGroudonScene; } -static void Task_IntroLoadPart1Graphics3(u8 taskId) +static void Task_IntroLoadGroudonScene(u8 taskId) { if (!gPaletteFade.active) { @@ -1545,11 +1607,11 @@ static void Task_IntroLoadPart1Graphics3(u8 taskId) LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); CpuCopy16(gIntro3BgPal, gPlttBufferUnfaded, sizeof(gIntro3BgPal)); - gTasks[taskId].func = Task_IntroLoadPart1Graphics4; + gTasks[taskId].func = Task_IntroLoadPart3Graphics1; } } -static void Task_IntroLoadPart1Graphics4(u8 taskId) +static void Task_IntroLoadPart3Graphics1(u8 taskId) { SetGpuReg(REG_OFFSET_WIN0H, 0xF0); SetGpuReg(REG_OFFSET_WIN0V, 0xA0); @@ -1577,11 +1639,11 @@ static void Task_IntroLoadPart1Graphics4(u8 taskId) gTasks[taskId].data[1] = 0xFFA0; gTasks[taskId].data[2] = 0xFF51; gTasks[taskId].data[3] = 0x100; - sub_816F2A8(0xFFA0, 0xFF51, 0x100, 0); - gTasks[taskId].func = Task_IntroLoadPart1Graphics5; + PanFadeAndZoomScreen(0xFFA0, 0xFF51, 0x100, 0); + gTasks[taskId].func = Task_IntroLoadPart3Graphics2; } -static void Task_IntroLoadPart1Graphics5(u8 taskId) +static void Task_IntroLoadPart3Graphics2(u8 taskId) { if (gTasks[taskId].data[0] != 32) { @@ -1591,30 +1653,30 @@ static void Task_IntroLoadPart1Graphics5(u8 taskId) else { SetGpuReg(REG_OFFSET_WIN0V, 0x2080); - gTasks[taskId].func = Task_IntroLoadPart1Graphics6; + gTasks[taskId].func = Task_IntroLoadPart3Graphics3; } } -static void Task_IntroLoadPart1Graphics6(u8 taskId) +static void Task_IntroLoadPart3Graphics3(u8 taskId) { - gTasks[taskId].func = Task_IntroLoadPart1Graphics7; + gTasks[taskId].func = Task_IntroLoadPart3Graphics4; } -static void Task_IntroLoadPart1Graphics7(u8 taskId) +static void Task_IntroLoadPart3Graphics4(u8 taskId) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = Task_IntroLoadPart1Graphics8; + gTasks[taskId].func = Task_IntroGroudonScene; ScanlineEffect_InitWave(0, 0xA0, 0x4, 4, 1, 4, 0); } -static void Task_IntroLoadPart1Graphics8(u8 taskId) +static void Task_IntroGroudonScene(u8 taskId) { s16 *data = gTasks[taskId].data; data[5]++; if ((u16)(data[0] - 1) < 7 && data[5] % 2 == 0) data[4] ^= 3; - sub_816F2A8(data[1], data[2] + data[4], data[3], 0); + PanFadeAndZoomScreen(data[1], data[2] + data[4], data[3], 0); switch (data[0]) { case 0: @@ -1624,7 +1686,7 @@ static void Task_IntroLoadPart1Graphics8(u8 taskId) data[0]++; data[6] = 2; data[7] = 0x1E2; - sub_816E190(taskId); + CreateGroudonRockSprites(taskId); } break; case 1: @@ -1706,30 +1768,30 @@ static void Task_IntroLoadPart1Graphics8(u8 taskId) case 9: if (!gPaletteFade.active) { - gTasks[taskId].func = Task_IntroLoadPart1Graphics9; + gTasks[taskId].func = Task_IntroLoadKyogreScene; gScanlineEffect.state = 3; } break; } } -static void sub_816E190(u8 a0) +static void CreateGroudonRockSprites(u8 a0) { int i; u8 spriteId; for (i = 0; i < 6; i++) { - spriteId = CreateSprite(gUnknown_08596C10, gUnknown_085E4C64[i][0], 0xA0, i); - gSprites[spriteId].callback = sub_816E1F8; + spriteId = CreateSprite(gUnknown_08596C10, gIntroGroudonRockData[i][0], 0xA0, i); + gSprites[spriteId].callback = SpriteCB_IntroGroudonRocks; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].data[1] = i; gSprites[spriteId].data[4] = a0; - StartSpriteAnim(&gSprites[spriteId], gUnknown_085E4C64[i][1]); + StartSpriteAnim(&gSprites[spriteId], gIntroGroudonRockData[i][1]); } } -static void sub_816E1F8(struct Sprite *sprite) +static void SpriteCB_IntroGroudonRocks(struct Sprite *sprite) { sprite->data[3]++; if (sprite->data[3] % 2 == 0) @@ -1738,7 +1800,7 @@ static void sub_816E1F8(struct Sprite *sprite) switch(sprite->data[0]) { case 0: - sprite->data[2] += gUnknown_085E4C64[sprite->data[1]][2]; + sprite->data[2] += gIntroGroudonRockData[sprite->data[1]][2]; sprite->pos1.y -= (sprite->data[2] & 0xFF00) >> 8; sprite->data[2] &= 0xFF; if (gTasks[sprite->data[4]].data[0] > 7) @@ -1758,7 +1820,7 @@ static void sub_816E1F8(struct Sprite *sprite) } } -static void Task_IntroLoadPart1Graphics9(u8 taskId) +static void Task_IntroLoadKyogreScene(u8 taskId) { ResetSpriteData(); LZDecompressVram(gIntro3KyogreGfx, (void *)VRAM); @@ -1767,21 +1829,21 @@ static void Task_IntroLoadPart1Graphics9(u8 taskId) LoadCompressedSpriteSheet(gUnknown_085E4C88); LoadSpritePalette(gUnknown_085E4C98); BeginNormalPaletteFade(0xFFFFFFFE, 0, 0x10, 0, RGB_WHITEALPHA); - gTasks[taskId].func = Task_IntroFadeIn0; + gTasks[taskId].func = Task_IntroKyogreScene; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0x150; gTasks[taskId].data[2] = 0x50; gTasks[taskId].data[6] = 0x10; gTasks[taskId].data[3] = 0x100; - sub_816F2A8(0x150, 0x50, 0x100, 0); + PanFadeAndZoomScreen(0x150, 0x50, 0x100, 0); ScanlineEffect_InitWave(0, 0xA0, 4, 4, 1, 6, 0); } -static void Task_IntroFadeIn0(u8 taskId) +static void Task_IntroKyogreScene(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_816F2A8(data[1], data[2], data[3], 0); + PanFadeAndZoomScreen(data[1], data[2], data[3], 0); switch (data[0]) { @@ -1798,7 +1860,7 @@ static void Task_IntroFadeIn0(u8 taskId) data[6] = 0x19; data[7] = 1; data[0]++; - sub_816E6D4(0); + CreateKyogreBubbleSprites_0(0); } break; case 2: @@ -1808,8 +1870,8 @@ static void Task_IntroFadeIn0(u8 taskId) gTasks[taskId].data[2] -= 0x102; data[6] = 8; data[0]++; - sub_816E6D4(0); - sub_816E74C(); + CreateKyogreBubbleSprites_0(0); + CreateKyogreBubbleSprites_1(); } break; case 3: @@ -1891,7 +1953,7 @@ static void Task_IntroFadeIn0(u8 taskId) { data[6] = 0; data[0]++; - sub_816E6D4(taskId); + CreateKyogreBubbleSprites_0(taskId); } break; case 11: @@ -1914,43 +1976,43 @@ static void Task_IntroFadeIn0(u8 taskId) case 13: if (!gPaletteFade.active) { - gTasks[taskId].func = Task_IntroFadeIn1; + gTasks[taskId].func = Task_IntroLoadClouds1; gScanlineEffect.state = 3; } break; } } -static void sub_816E6D4(u8 a0) +static void CreateKyogreBubbleSprites_0(u8 taskId) { int i; u8 spriteId; for (i = 0; i < 6; i++) { - spriteId = CreateSprite(&gUnknown_085E4D14, gUnknown_085E4CA8[i][0], gUnknown_085E4CA8[i][1], i); + spriteId = CreateSprite(&gUnknown_085E4D14, gIntroKyogreBubbleData[i][0], gIntroKyogreBubbleData[i][1], i); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[5] = a0; - gSprites[spriteId].data[6] = gUnknown_085E4CA8[i][2]; + gSprites[spriteId].data[5] = taskId; + gSprites[spriteId].data[6] = gIntroKyogreBubbleData[i][2]; gSprites[spriteId].data[7] = 0x40; } } -static void sub_816E74C(void) +static void CreateKyogreBubbleSprites_1(void) { int i; u8 spriteId; for (i = 0; i < 6; i++) { - spriteId = CreateSprite(&gUnknown_085E4D14, gUnknown_085E4CA8[i + 6][0], gUnknown_085E4CA8[i + 6][1], i); + spriteId = CreateSprite(&gUnknown_085E4D14, gIntroKyogreBubbleData[i + 6][0], gIntroKyogreBubbleData[i + 6][1], i); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data[6] = gUnknown_085E4CA8[i][2]; + gSprites[spriteId].data[6] = gIntroKyogreBubbleData[i][2]; gSprites[spriteId].data[7] = 0x40; } } -static void sub_816E7B4(struct Sprite *sprite) +static void SpriteCB_IntroKyogreBubbles(struct Sprite *sprite) { switch(sprite->data[0]) { @@ -1988,7 +2050,7 @@ static void sub_816E7B4(struct Sprite *sprite) } } -static void Task_IntroFadeIn1(u8 taskId) +static void Task_IntroLoadClouds1(u8 taskId) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 @@ -2027,27 +2089,27 @@ static void Task_IntroFadeIn1(u8 taskId) LZDecompressVram(gIntro3CloudsGfx, (void *)VRAM); LZDecompressVram(gIntro3CloudsGfx, (void *)(VRAM + 0x4000)); LZDecompressVram(gIntro3Clouds3Tilemap, (void *)(VRAM + 0xE000)); - gTasks[taskId].func = Task_IntroFadeIn2; + gTasks[taskId].func = Task_IntroLoadClouds2; } -static void Task_IntroFadeIn2(u8 taskId) +static void Task_IntroLoadClouds2(u8 taskId) { LZDecompressVram(gIntro3Clouds1Tilemap, (void *)(VRAM + 0xC000)); LZDecompressVram(gIntro3Clouds2Tilemap, (void *)(VRAM + 0xD000)); - gTasks[taskId].func = Task_IntroFadeIn3; + gTasks[taskId].func = Task_IntroLoadClouds3; } -static void Task_IntroFadeIn3(u8 taskId) +static void Task_IntroLoadClouds3(u8 taskId) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].func = Task_IntroFadeIn4; + gTasks[taskId].func = Task_IntroCloudScene; gTasks[taskId].data[0] = 0; gTasks[taskId].data[6] = 16; } -static void Task_IntroFadeIn4(u8 taskId) +static void Task_IntroCloudScene(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2071,12 +2133,12 @@ static void Task_IntroFadeIn4(u8 taskId) if (data[6] != 0) data[6] -= 0x80; else if (!gPaletteFade.active) - gTasks[taskId].func = Task_IntroFadeIn5; + gTasks[taskId].func = Task_IntroLoadRaquazaLightningScene; break; } } -static void Task_IntroFadeIn5(u8 taskId) +static void Task_IntroLoadRaquazaLightningScene(u8 taskId) { LZDecompressVram(gIntro3RayquazaTilemap, (void *)(VRAM + 0xE000)); LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(VRAM + 0xC000)); @@ -2088,15 +2150,15 @@ static void Task_IntroFadeIn5(u8 taskId) | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroFadeIn6; + gTasks[taskId].func = Task_IntroRaquazaLightningScene; gTasks[taskId].data[0] = 0; gTasks[taskId].data[6] = 1; gTasks[taskId].data[7] = 0; - LoadCompressedSpriteSheetUsingHeap(gUnknown_085E4BF4); - LoadSpritePalettes(gUnknown_085E4C04); + LoadCompressedSpriteSheetUsingHeap(gIntroRayquazaLightningSpriteSheet); + LoadSpritePalettes(gIntroRayquazaLightningPalette); } -static void Task_IntroFadeIn6(u8 taskId) +static void Task_IntroRaquazaLightningScene(u8 taskId) { s16 *data = gTasks[taskId].data; u8 spriteId; @@ -2106,10 +2168,10 @@ static void Task_IntroFadeIn6(u8 taskId) case 0: if (--data[6] == 0) { - CreateSprite(&gUnknown_085E4C4C, 200, 48, 0); - spriteId = CreateSprite(&gUnknown_085E4C4C, 200, 80, 1); + CreateSprite(&gIntroLightningSprite, 200, 48, 0); + spriteId = CreateSprite(&gIntroLightningSprite, 200, 80, 1); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gUnknown_085E4C4C, 200, 112, 2); + spriteId = CreateSprite(&gIntroLightningSprite, 200, 112, 2); StartSpriteAnim(&gSprites[spriteId], 2); data[0]++; data[6] = 72; @@ -2118,10 +2180,10 @@ static void Task_IntroFadeIn6(u8 taskId) case 1: if (--data[6] == 0) { - CreateSprite(&gUnknown_085E4C4C, 40, 48, 0); - spriteId = CreateSprite(&gUnknown_085E4C4C, 40, 80, 1); + CreateSprite(&gIntroLightningSprite, 40, 48, 0); + spriteId = CreateSprite(&gIntroLightningSprite, 40, 80, 1); StartSpriteAnim(&gSprites[spriteId], 1); - spriteId = CreateSprite(&gUnknown_085E4C4C, 40, 112, 2); + spriteId = CreateSprite(&gIntroLightningSprite, 40, 112, 2); StartSpriteAnim(&gSprites[spriteId], 2); data[0]++; data[6] = 48; @@ -2129,12 +2191,12 @@ static void Task_IntroFadeIn6(u8 taskId) break; case 2: if (--data[6] == 0) - gTasks[taskId].func = Task_IntroFadeIn7; + gTasks[taskId].func = Task_IntroLoadRaquazaGlowScene; break; } } -static void sub_816EC6C(struct Sprite *sprite) +static void SpriteCB_IntroRaquazaLightning(struct Sprite *sprite) { if (sprite->animEnded) sprite->invisible = TRUE; @@ -2165,30 +2227,30 @@ static void sub_816EC6C(struct Sprite *sprite) } } -static void Task_IntroFadeIn7(u8 taskId) +static void Task_IntroLoadRaquazaGlowScene(u8 taskId) { u8 newTaskId; - LoadCompressedSpriteSheet(gUnknown_085E5048); - LoadSpritePalettes(gUnknown_085E5058); + LoadCompressedSpriteSheet(gIntroRaquazaGlowSpriteSheet); + LoadSpritePalettes(gIntroRaquazaGlowPalette); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroFadeIn8; + gTasks[taskId].func = Task_IntroRaquazaGlowScene_0; BeginNormalPaletteFade(0x0000FFDE, 0, 16, 0, RGB(9, 10, 10)); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0xA8; gTasks[taskId].data[2] = -0x10; gTasks[taskId].data[3] = -0x88; gTasks[taskId].data[4] = -0x10; - newTaskId = CreateTask(sub_816EEA8, 0); + newTaskId = CreateTask(Task_IntroRaquazaGlowScene_1, 0); gTasks[newTaskId].data[4] = taskId; } -static void Task_IntroFadeIn8(u8 taskId) +static void Task_IntroRaquazaGlowScene_0(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2230,22 +2292,22 @@ static void Task_IntroFadeIn8(u8 taskId) break; case 3: if (--data[5] == 0) - gTasks[taskId].func = Task_IntroFadeIn9; + gTasks[taskId].func = Task_EndIntroMovie; break; } } -static void Task_IntroFadeIn9(u8 taskId) +static void Task_EndIntroMovie(u8 taskId) { DestroyTask(taskId); SetMainCallback2(MainCB2_EndIntro); } -static void sub_816EEA8(u8 taskId) +static void Task_IntroRaquazaGlowScene_1(u8 taskId) { + // Note: data[4] contains the taskId of Task_IntroRaquazaGlowScene_0 u8 spriteId; s16 *data = gTasks[taskId].data; - data[2]++; switch(data[0]) @@ -2292,7 +2354,7 @@ static void sub_816EEA8(u8 taskId) } if (data[1] == 6) { - spriteId = CreateSprite(&gUnknown_085E5030, 120, 88, 15); + spriteId = CreateSprite(&gIntroRaquazaHyperbeamSprite, 120, 88, 15); PlaySE(SE_OP_BASYU); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[3] = data[4]; @@ -2365,7 +2427,7 @@ static void Task_IntroWaterDrops_1(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0x40; gTasks[taskId].data[0]++; @@ -2377,11 +2439,11 @@ static void Task_IntroWaterDrops_1(u8 taskId) gTasks[taskId].data[1]--; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } @@ -2408,7 +2470,7 @@ static void Task_IntroWaterDrops_2(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -2420,11 +2482,11 @@ static void Task_IntroWaterDrops_2(u8 taskId) gTasks[taskId].data[1]++; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } @@ -2445,15 +2507,15 @@ static void Task_IntroWaterDrops_2(u8 taskId) } } -void sub_816F2A8(u16 scrX, u16 scrY, u16 zoom, u16 alpha) +void PanFadeAndZoomScreen(u16 screenX, u16 screenY, u16 zoom, u16 alpha) { struct BgAffineSrcData src; struct BgAffineDstData dest; src.texX = 0x8000; src.texY = 0x8000; - src.scrX = scrX; - src.scrY = scrY; + src.scrX = screenX; + src.scrY = screenY; src.sx = zoom; src.sy = zoom; src.alpha = alpha; @@ -2662,7 +2724,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) u8 spriteId; u8 oldSpriteId; - spriteId = CreateSprite(&gUnknown_085E4D64, x, y, 1); + spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); gSprites[spriteId].data[0] = 0; gSprites[spriteId].data[7] = 0; gSprites[spriteId].data[1] = d; @@ -2680,7 +2742,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) gSprites[spriteId].callback = SpriteCB_WaterDropFall_2; oldSpriteId = spriteId; - spriteId = CreateSprite(&gUnknown_085E4D64, x, y, 1); + spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); gSprites[spriteId].data[7] = oldSpriteId; gSprites[spriteId].data[1] = d + 1; gSprites[spriteId].oam.affineMode = 3; @@ -2688,7 +2750,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) CalcCenterToCornerVec(&gSprites[spriteId], 0, 2, 2); gSprites[spriteId].callback = sub_816F3A4; - spriteId = CreateSprite(&gUnknown_085E4D64, x, y, 1); + spriteId = CreateSprite(&gIntroWaterDropSprite, x, y, 1); gSprites[spriteId].data[7] = oldSpriteId; gSprites[spriteId].data[1] = d + 2; StartSpriteAnim(&gSprites[spriteId], 1); @@ -2704,7 +2766,7 @@ static u8 CreateWaterDrop(s16 x, s16 y, u16 c, u16 d, u16 e, u8 fallImmediately) return oldSpriteId; } -static void sub_816F9D4(struct Sprite *sprite) +static void SpriteCB_IntroGraphicsBicycle(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2753,7 +2815,7 @@ static void sub_816F9D4(struct Sprite *sprite) } } -static void sub_816FAB0(struct Sprite *sprite) +static void SpriteCB_IntroGraphicsFlygon(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2776,7 +2838,7 @@ static void sub_816FAB0(struct Sprite *sprite) sprite->pos2.x -= 2; break; } - sprite->pos2.y = Sin((u8)sprite->data[1], 8) - gUnknown_0203BCCC; + sprite->pos2.y = Sin((u8)sprite->data[1], 8) - gIntroGraphicsFlygonYOffset; sprite->data[1] += 4; } @@ -2896,7 +2958,7 @@ static void sub_816FD44(struct Sprite *sprite) } } -static u8 sub_816FDB8(s16 a0, s16 a1, s16 a2) +static u8 CreatePart1Animations(s16 a0, s16 a1, s16 a2) { u16 i; u8 spriteId; @@ -2981,7 +3043,7 @@ static void sub_816FEDC(struct Sprite *sprite) } } -static void sub_8170040(struct Sprite *sprite) +static void SpriteCB_IntroRaquazaHyperbeam(struct Sprite *sprite) { u16 foo; diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index d85e58938..ba1f56158 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -269,7 +269,7 @@ const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { { NULL } }; -const struct SpritePalette gUnknown_085F530C[] = { +const struct SpritePalette gIntroBikeAndFlygonPalette[] = { { gIntro2BrendanNoTurnPal, 1002 }, { gIntro2BrendanNoTurnPal, 1003 }, { gIntro2FlygonPal, 1004 }, @@ -358,6 +358,7 @@ void load_intro_part2_graphics(u8 a) gReservedSpritePaletteCount = 8; } +// Note: This is only called with a=1. void sub_817B150(u8 a) { switch (a) @@ -509,7 +510,7 @@ void sub_817B3A8(u8 a) | DISPCNT_OBJ_ON); } -u8 sub_817B3DC(u8 a, u16 b, u16 c, u16 d) +u8 CreateBicycleAnimationTask(u8 a, u16 b, u16 c, u16 d) { u8 taskId = CreateTask(&sub_817B458, 0); diff --git a/src/new_game.c b/src/new_game.c index f68ed3d4f..a4bf2951f 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -146,7 +146,7 @@ void Sav2_ClearSetDefault(void) SetDefaultOptions(); } -void sub_808447C(void) +void ResetMenuAndMonGlobals(void) { gDifferentSaveFile = 0; sub_80BB358(); diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index d7c93a75c..95d63a323 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -19,7 +19,7 @@ void sub_81700F8(void) REG_IME = imeBackup; gMain.inBattle = FALSE; SetSaveBlocksPointers(sub_815355C()); - sub_808447C(); + ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); Save_LoadGameData(0); if (gSaveFileStatus == 0 || gSaveFileStatus == 2) diff --git a/src/title_screen.c b/src/title_screen.c index 48571ff96..06bb066bb 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,7 +64,7 @@ static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_scre static const u32 sTitleScreenLogoShineGfx[] = INCBIN_U32("graphics/title_screen/logo_shine.4bpp.lz"); static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clouds.4bpp.lz"); -const u16 gUnknown_0853FF70[] = +const u16 gIntroWaterDropData[] = { 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, @@ -324,7 +324,7 @@ static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) sprite->pos1.y++; if (sprite->data[0] != 0) sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[sprite->data[0]]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[sprite->data[0]]); } } @@ -542,7 +542,7 @@ void CB2_InitTitleScreen(void) gMain.state = 4; break; case 4: - sub_816F2A8(0x78, 0x50, 0x100, 0); + PanFadeAndZoomScreen(0x78, 0x50, 0x100, 0); SetGpuReg(REG_OFFSET_BG2X_L, -29 * 256); SetGpuReg(REG_OFFSET_BG2X_H, -1); SetGpuReg(REG_OFFSET_BG2Y_L, -32 * 256); -- cgit v1.2.3 From 37bea25b01be5cf970882e9b9f21a411fabcc4bf Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 9 Feb 2019 21:50:12 -0500 Subject: Name the possible return values of palette fading functions Also replace implicit conversion from gPalette.active into a status with if statements, to make the return value clear. I've also added comments when the check is redundant. --- src/palette.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/palette.c b/src/palette.c index be5143876..5d1d6635c 100644 --- a/src/palette.c +++ b/src/palette.c @@ -115,7 +115,7 @@ u8 UpdatePaletteFade(void) u8 dummy = 0; if (sPlttBufferTransferPending) - return -1; + return PALETTE_FADE_STATUS_LOADING; if (gPaletteFade.mode == NORMAL_FADE) result = UpdateNormalPaletteFade(); @@ -409,11 +409,11 @@ static u8 UpdateNormalPaletteFade(void) u16 selectedPalettes; if (!gPaletteFade.active) - return 0; + return PALETTE_FADE_STATUS_DONE; if (IsSoftwarePaletteFadeFinishing()) { - return gPaletteFade.active; + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; } else { @@ -483,7 +483,9 @@ static u8 UpdateNormalPaletteFade(void) } } - return gPaletteFade.active; + // gPaletteFade.active cannot change since the last time it was checked. So this + // is equivalent to `return PALETTE_FADE_STATUS_ACTIVE;` + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; } } @@ -578,10 +580,11 @@ static u8 UpdateFastPaletteFade(void) s8 b; if (!gPaletteFade.active) - return 0; + return PALETTE_FADE_STATUS_DONE; if (IsSoftwarePaletteFadeFinishing()) - return gPaletteFade.active; + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; + if (gPaletteFade.objPaletteToggle) { @@ -688,7 +691,9 @@ static u8 UpdateFastPaletteFade(void) gPaletteFade.objPaletteToggle ^= 1; if (gPaletteFade.objPaletteToggle) - return gPaletteFade.active; + // gPaletteFade.active cannot change since the last time it was checked. So this + // is equivalent to `return PALETTE_FADE_STATUS_ACTIVE;` + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; if (gPaletteFade.y - gPaletteFade.deltaY < 0) gPaletteFade.y = 0; @@ -714,8 +719,10 @@ static u8 UpdateFastPaletteFade(void) gPaletteFade.mode = NORMAL_FADE; gPaletteFade.softwareFadeFinishing = 1; } - - return gPaletteFade.active; + + // gPaletteFade.active cannot change since the last time it was checked. So this + // is equivalent to `return PALETTE_FADE_STATUS_ACTIVE;` + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; } void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 shouldResetBlendRegisters) @@ -739,12 +746,12 @@ void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 should static u8 UpdateHardwarePaletteFade(void) { if (!gPaletteFade.active) - return 0; + return PALETTE_FADE_STATUS_DONE; if (gPaletteFade.delayCounter < gPaletteFade_delay) { gPaletteFade.delayCounter++; - return 2; + return PALETTE_FADE_STATUS_DELAY; } gPaletteFade.delayCounter = 0; @@ -778,7 +785,9 @@ static u8 UpdateHardwarePaletteFade(void) gPaletteFade.shouldResetBlendRegisters = 0; } - return gPaletteFade.active; + // gPaletteFade.active cannot change since the last time it was checked. So this + // is equivalent to `return PALETTE_FADE_STATUS_ACTIVE;` + return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE; } static void UpdateBlendRegisters(void) -- cgit v1.2.3 From 3fd878483f38145cb4311d377f99545f25af52a8 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 00:50:46 -0500 Subject: Start renaming symbols I finally figured out what the code is trying to do. I have a foothold; the rest should follow. --- src/cable_club.c | 12 +- src/overworld.c | 327 +++++++++++++++++++++++++++++------------------------ src/rom_8011DC0.c | 4 +- src/start_menu.c | 4 +- src/trainer_card.c | 2 +- 5 files changed, 189 insertions(+), 160 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index 303b0d016..a778ff559 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gUnknown_03005DB4 ^ 1); + UpdatePlayerLinkBattleRecords(gLinkGuestPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -1177,14 +1177,16 @@ void sp02A_crash_sound(void) ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic); } -bool32 sub_80B39D4(u8 linkPlayerIndex) +// Returns FALSE if the player has no stars. Returns TRUE otherwise, and puts the name of the +// color into gStringVar2. +bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex) { u32 trainerCardColorIndex; gSpecialVar_0x8006 = linkPlayerIndex; StringCopy(gStringVar1, gLinkPlayers[linkPlayerIndex].name); - trainerCardColorIndex = sub_80C4904(linkPlayerIndex); + trainerCardColorIndex = GetTrainerCardStars(linkPlayerIndex); if (trainerCardColorIndex == 0) return FALSE; diff --git a/src/overworld.c b/src/overworld.c index 08fd94c1b..a9dfa4280 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,13 +66,33 @@ #include "constants/species.h" #include "constants/weather.h" +#define LINK_CONSTANT_UNK_1 0x11 +#define LINK_CONSTANT_DPAD_DOWN 0x12 +#define LINK_CONSTANT_DPAD_UP 0x13 +#define LINK_CONSTANT_DPAD_LEFT 0x14 +#define LINK_CONSTANT_DPAD_RIGHT 0x15 +#define LINK_CONSTANT_UNK_2 0x16 +#define LINK_CONSTANT_UNK_3 0x17 +#define LINK_CONSTANT_START_BUTTON 0x18 +#define LINK_CONSTANT_A_BUTTON 0x19 +#define LINK_CONSTANT_UNK_4 0x1A // I'd guess this is the B button? +#define LINK_CONSTANT_UNK_5 0x1B +#define LINK_CONSTANT_UNK_6 0x1C +#define LINK_CONSTANT_UNK_7 0x1D +#define LINK_CONSTANT_UNK_8 0x1E + +#define TRAINER_TRADING_STATE_IDLE 0x80 +#define TRAINER_TRADING_STATE_UNK_1 0x81 +#define TRAINER_TRADING_STATE_UNK_2 0x82 +#define TRAINER_TRADING_STATE_UNK_3 0x83 + // event scripts extern const u8 EventScript_WhiteOut[]; extern const u8 EventScript_271862[]; extern const u8 EventScript_277513[]; extern const u8 EventScript_TradeRoom_TooBusyToNotice[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard1[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard2[]; +extern const u8 EventScript_TradeRoom_ReadTrainerCard_NoColor[]; +extern const u8 EventScript_TradeRoom_ReadTrainerCard_Normal[]; extern const u8 gUnknown_08277388[]; extern const u8 gUnknown_082773A3[]; extern const u8 gUnknown_082773BE[]; @@ -106,21 +126,21 @@ static bool32 load_map_stuff(u8 *state, u32); static bool32 map_loading_iteration_2_link(u8 *state); static void mli4_mapscripts_and_other(void); static void InitOverworldGraphicsRegisters(void); -static u8 sub_8087858(u8); +static u8 GetSpriteForLinkedPlayer(u8); static u16 sub_80871C0(u32 a1); static void sub_80867C8(void); static void sub_80867D8(void); static void sub_8086AE4(void); static void sub_80869DC(void); static void sub_8086B14(void); -static void sub_8086AAC(void); +static void SetCameraToTrackGuestPlayer(void); static void sub_8086988(bool32 arg0); static void sub_8086A80(void); static void sub_8086A68(void); static void sub_8086860(void); -static void sub_8086AC8(void); +static void SetCameraToTrackGuestPlayer_2(void); static void sub_8086B9C(void); -static void sub_8086C40(void); +static void guess_ResetHeldKeys(void); static void sub_8086C90(void); static void sub_8086FA0(u16); static void sub_8086F38(u16*, s32); @@ -138,26 +158,26 @@ static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); -static u8 sub_8087858(u8 linkPlayerId); +static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); static void sub_8087584(void); -static u32 sub_8087690(void); +static u32 GetLinkEventQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1); +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); static u16 sub_8087480(const u8 *script); static void sub_8087510(void); static void sub_808751C(void); static void sub_8087530(const u8 *script); static void sub_808754C(void); static void sub_8087568(const u8 *script); -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3); -static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1); -static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1); -static u8 *sub_8087370(struct UnkStruct_8054FF8 *a1); -static bool32 sub_8087388(struct UnkStruct_8054FF8 *a1); -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1); +static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3); +static bool32 sub_8087340(struct TradeRoomTrainer *a1); +static bool32 sub_8087358(struct TradeRoomTrainer *a1); +static u8 *sub_8087370(struct TradeRoomTrainer *a1); +static bool32 sub_8087388(struct TradeRoomTrainer *a1); +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); static u16 sub_808711C(u32); static u16 sub_8087140(u32); -static void sub_808709C(u16 *a1); +static void guess_ResetLinkKeys(u16 *a1); static u16 sub_80870B0(u32 a1); static u16 sub_80870F8(u32 a1); static u16 sub_8087068(u16 a1); @@ -172,8 +192,8 @@ static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars IWRAM_DATA static void *sUnknown_03000E0C; -IWRAM_DATA static u8 sUnknown_03000E10[4]; -IWRAM_DATA static u16 (*sUnknown_03000E14)(u32); +IWRAM_DATA static u8 sTrainerTradingStates[4]; +IWRAM_DATA static u16 (*sguess_PlayerKeyCallback)(u32); IWRAM_DATA static u8 sUnknown_03000E18; IWRAM_DATA static u8 sUnknown_03000E19; IWRAM_DATA static u32 sUnusedVar; @@ -185,7 +205,7 @@ u16 *gBGTilemapBuffers3; u16 gUnknown_03005DA8; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gUnknown_03005DB4; +u8 gLinkGuestPlayerId; u8 gFieldLinkPlayerCount; // EWRAM vars @@ -323,7 +343,7 @@ static u8 sub_80879D8(struct LinkPlayerEventObject *, struct EventObject *, u8); static u8 sub_80879F8(struct LinkPlayerEventObject *, struct EventObject *, u8); static u8 sub_80879FC(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 (*const gUnknown_08339DC8[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +static u8 (*const gLinkPlayerEventModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = { sub_80879D8, sub_80879F8, @@ -1100,7 +1120,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < 24) + if (gSaveBlock1Ptr->pos.x < LINK_CONSTANT_START_BUTTON) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1243,7 +1263,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % 30) + 50; + volume = (Random() % LINK_CONSTANT_UNK_8) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1810,7 +1830,7 @@ static bool32 map_loading_iteration_3(u8 *state) sub_8086AE4(); sub_80869DC(); sub_8086B14(); - sub_8086AAC(); + SetCameraToTrackGuestPlayer(); (*state)++; break; case 4: @@ -1982,7 +2002,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) case 2: sub_8086B9C(); sub_8086A68(); - sub_8086AC8(); + SetCameraToTrackGuestPlayer_2(); (*state)++; break; case 3: @@ -2169,21 +2189,25 @@ static void sub_8086A80(void) InitCameraUpdateCallback(gPlayerAvatar.spriteId); } -static void sub_8086AAC(void) +static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(sub_8087858(gUnknown_03005DB4)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); } -static void sub_8086AC8(void) +// Duplicate function. +static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(sub_8087858(gUnknown_03005DB4)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); } static void sub_8086AE4(void) { u16 x, y; GetCameraFocusCoords(&x, &y); - sub_8088B3C(x + gUnknown_03005DB4, y); + + // This is a hack of some kind; it's undone in sub_8086B14, which is called + // soon after this function. + sub_8088B3C(x + gLinkGuestPlayerId, y); } static void sub_8086B14(void) @@ -2192,7 +2216,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gUnknown_03005DB4; + x -= gLinkGuestPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2200,7 +2224,7 @@ static void sub_8086B14(void) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } - sub_8086C40(); + guess_ResetHeldKeys(); } static void sub_8086B9C(void) @@ -2214,10 +2238,10 @@ static void c1_link_related(void) { if (gWirelessCommType == 0 || !sub_800F0B8() || !sub_8009F3C()) { - u8 var = gUnknown_03005DB4; - sub_8086F38(gLinkPartnersHeldKeys, var); - sub_8086FA0(sUnknown_03000E14(var)); - sub_8086C40(); + u8 guestId = gLinkGuestPlayerId; + sub_8086F38(gLinkPartnersHeldKeys, guestId); + sub_8086FA0(sguess_PlayerKeyCallback(guestId)); + guess_ResetHeldKeys(); } } @@ -2227,15 +2251,15 @@ void sub_8086C2C(void) c1_link_related_func_set(sub_80870B0); } -static void sub_8086C40(void) +static void guess_ResetHeldKeys(void) { - sub_808709C(gLinkPartnersHeldKeys); + guess_ResetLinkKeys(gLinkPartnersHeldKeys); } static void c1_link_related_func_set(u16 (*func)(u32)) { sUnknown_03000E19 = 0; - sUnknown_03000E14 = func; + sguess_PlayerKeyCallback = func; } static void sub_8086C64(void) @@ -2248,7 +2272,7 @@ static void sub_8086C90(void) { s32 i; for (i = 0; i < 4; i++) - sUnknown_03000E10[i] = 0x80; + sTrainerTradingStates[i] = TRAINER_TRADING_STATE_IDLE; } static bool32 sub_8086CA8(u16 a1) @@ -2257,7 +2281,7 @@ static bool32 sub_8086CA8(u16 a1) s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sUnknown_03000E10[i] != a1) + if (sTrainerTradingStates[i] != a1) return FALSE; return TRUE; } @@ -2268,23 +2292,23 @@ static bool32 sub_8086CE0(u16 a1) s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sUnknown_03000E10[i] == a1) + if (sTrainerTradingStates[i] == a1) return TRUE; return FALSE; } -static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) +static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, u16 *a4) { const u8 *script; - if (sUnknown_03000E10[a1] == 0x80) + if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_IDLE) { - script = sub_8087370(a3); + script = sub_8087370(trainer); if (script) { *a4 = sub_8087480(script); - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087530(script); @@ -2293,66 +2317,67 @@ static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) } if (sub_8086CE0(0x83) == 1) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087584(); } return; } - switch (a2) + + switch (key) { - case 24: - if (sub_8087358(a3)) + case LINK_CONSTANT_START_BUTTON: + if (sub_8087358(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_808751C(); } } break; - case 18: - if (sub_8087388(a3) == TRUE) + case LINK_CONSTANT_DPAD_DOWN: + if (sub_8087388(trainer) == TRUE) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_808754C(); } } break; - case 25: - script = sub_80873B4(a3); + case LINK_CONSTANT_A_BUTTON: + script = sub_80873B4(trainer); if (script) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087568(script); } } break; - case 27: - if (sub_8087340(a3)) + case LINK_CONSTANT_UNK_5: + if (sub_8087340(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_808711C); sub_8087510(); } } break; - case 28: - if (sub_8087340(a3)) + case LINK_CONSTANT_UNK_6: + if (sub_8087340(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_8087140); sub_8087510(); @@ -2362,64 +2387,64 @@ static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) } } - switch (a2) + switch (key) { - case 23: - sUnknown_03000E10[a1] = 0x83; + case LINK_CONSTANT_UNK_3: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_3; break; - case 22: - sUnknown_03000E10[a1] = 0x82; + case LINK_CONSTANT_UNK_2: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_2; break; - case 26: - sUnknown_03000E10[a1] = 0x80; - if (a3->b) + case LINK_CONSTANT_UNK_4: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_IDLE; + if (trainer->b) c1_link_related_func_set(sub_80870B0); break; - case 29: - if (sUnknown_03000E10[a1] == 0x82) - sUnknown_03000E10[a1] = 0x81; + case LINK_CONSTANT_UNK_7: + if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_UNK_2) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; break; } } -static void sub_8086F38(u16 *a1, s32 a2) +static void sub_8086F38(u16 *keys, s32 guestId) { - struct UnkStruct_8054FF8 st; + struct TradeRoomTrainer trainer; s32 i; for (i = 0; i < 4; i++) { - u8 v5 = a1[i]; + u8 key = keys[i]; u16 v8 = 0; - sub_80872D8(i, a2, &st); - sub_8086D18(i, v5, &st, &v8); - if (sUnknown_03000E10[i] == 0x80) - v8 = sub_8087068(v5); + sub_80872D8(i, guestId, &trainer); + sub_8086D18(i, key, &trainer, &v8); + if (sTrainerTradingStates[i] == TRAINER_TRADING_STATE_IDLE) + v8 = sub_8087068(key); sub_808796C(i, v8); } } static void sub_8086FA0(u16 a1) { - if (a1 >= 17 && a1 < 30) + if (a1 >= LINK_CONSTANT_UNK_1 && a1 < LINK_CONSTANT_UNK_8) gUnknown_03005DA8 = a1; else - gUnknown_03005DA8 = 17; + gUnknown_03005DA8 = LINK_CONSTANT_UNK_1; if (gWirelessCommType != 0 - && sub_8087690() > 1 + && GetLinkEventQueueLength() > 1 && is_c1_link_related_active() == TRUE && sub_8009F3C() == TRUE) { switch (a1) { - case 17: - case 18: - case 19: - case 20: - case 21: - case 24: - case 25: + case LINK_CONSTANT_UNK_1: + case LINK_CONSTANT_DPAD_DOWN: + case LINK_CONSTANT_DPAD_UP: + case LINK_CONSTANT_DPAD_LEFT: + case LINK_CONSTANT_DPAD_RIGHT: + case LINK_CONSTANT_START_BUTTON: + case LINK_CONSTANT_A_BUTTON: gUnknown_03005DA8 = 0; break; } @@ -2429,52 +2454,53 @@ static void sub_8086FA0(u16 a1) static u16 sub_808700C(u32 a1) { if (gMain.heldKeys & DPAD_UP) - return 19; + return LINK_CONSTANT_DPAD_UP; else if (gMain.heldKeys & DPAD_DOWN) - return 18; + return LINK_CONSTANT_DPAD_DOWN; else if (gMain.heldKeys & DPAD_LEFT) - return 20; + return LINK_CONSTANT_DPAD_LEFT; else if (gMain.heldKeys & DPAD_RIGHT) - return 21; + return LINK_CONSTANT_DPAD_RIGHT; else if (gMain.newKeys & START_BUTTON) - return 24; + return LINK_CONSTANT_START_BUTTON; else if (gMain.newKeys & A_BUTTON) - return 25; + return LINK_CONSTANT_A_BUTTON; else - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_8087068(u16 a1) { switch (a1) { - case 21: + case LINK_CONSTANT_DPAD_RIGHT: return 4; - case 20: + case LINK_CONSTANT_DPAD_LEFT: return 3; - case 19: + case LINK_CONSTANT_DPAD_UP: return 1; - case 18: + case LINK_CONSTANT_DPAD_DOWN: return 2; default: return 0; } } -static void sub_808709C(u16 *a1) +// Overwrites the keys with 0x11 +static void guess_ResetLinkKeys(u16 *keys) { s32 i; for (i = 0; i < 4; i++) - a1[i] = 17; + keys[i] = LINK_CONSTANT_UNK_1; } static u16 sub_80870B0(u32 a1) { if (ScriptContext2_IsEnabled() == 1) - return 17; + return LINK_CONSTANT_UNK_1; if (sub_800B4DC() > 4) return 27; - if (sub_8087690() <= 4) + if (GetLinkEventQueueLength() <= 4) return sub_808700C(a1); return 28; } @@ -2482,7 +2508,7 @@ static u16 sub_80870B0(u32 a1) static u16 sub_80870EC(u32 a1) { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80870F8(u32 a1) @@ -2490,7 +2516,7 @@ static u16 sub_80870F8(u32 a1) u16 retVal; if (ScriptContext2_IsEnabled() == TRUE) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2505,7 +2531,7 @@ static u16 sub_808711C(u32 a1) u16 retVal; if (sub_800B4DC() > 2) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2519,9 +2545,9 @@ static u16 sub_808711C(u32 a1) static u16 sub_8087140(u32 a1) { u16 retVal; - if (sub_8087690() > 2) + if (GetLinkEventQueueLength() > 2) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2535,12 +2561,12 @@ static u16 sub_8087140(u32 a1) static u16 sub_8087164(u32 a1) { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_8087170(u32 linkPlayerId) { - if (sUnknown_03000E10[linkPlayerId] == 0x82) + if (sTrainerTradingStates[linkPlayerId] == TRAINER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { @@ -2549,13 +2575,13 @@ static u16 sub_8087170(u32 linkPlayerId) } else { - return 17; + return LINK_CONSTANT_UNK_1; } } else { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } } @@ -2567,19 +2593,19 @@ static u16 sub_80871AC(u32 a1) static u16 sub_80871C0(u32 a1) { - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80871C4(u32 a1) { - if (sUnknown_03000E10[a1] != 0x83) + if (sTrainerTradingStates[a1] != TRAINER_TRADING_STATE_UNK_3) sub_8086C64(); - if (sub_8086CA8(0x83) == TRUE) + if (sub_8086CA8(TRAINER_TRADING_STATE_UNK_3) == TRUE) { ScriptContext1_SetupScript(EventScript_277513); c1_link_related_func_set(sub_80871C0); } - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80871FC(u32 a1) @@ -2590,16 +2616,16 @@ static u16 sub_80871FC(u32 a1) static u16 sub_8087210(u32 a1) { - return 17; + return LINK_CONSTANT_UNK_1; } u32 sub_8087214(void) { if (sub_8086CE0(0x83) == TRUE) return 2; - if (sUnknown_03000E14 == sub_8087170 && sUnknown_03000E10[gUnknown_03005DB4] != 0x82) + if (sguess_PlayerKeyCallback == sub_8087170 && sTrainerTradingStates[gLinkGuestPlayerId] != TRAINER_TRADING_STATE_UNK_2) return 0; - if (sUnknown_03000E14 == sub_8087164 && sUnknown_03000E10[gUnknown_03005DB4] == 0x81) + if (sguess_PlayerKeyCallback == sub_8087164 && sTrainerTradingStates[gLinkGuestPlayerId] == TRAINER_TRADING_STATE_UNK_1) return 2; if (sub_8086CA8(0x82) != 0) return 1; @@ -2635,14 +2661,14 @@ u16 sub_80872C4(void) return 0; } -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3) +static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3) { s16 x, y; a3->a = linkPlayerId; a3->b = (linkPlayerId == a2) ? 1 : 0; a3->c = gLinkPlayerEventObjects[linkPlayerId].mode; - a3->d = sub_80878A0(linkPlayerId); + a3->facing = sub_80878A0(linkPlayerId); sub_8087878(linkPlayerId, &x, &y); a3->sub.x = x; a3->sub.y = y; @@ -2650,7 +2676,7 @@ static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3) a3->field_C = MapGridGetMetatileBehaviorAt(x, y); } -static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087340(struct TradeRoomTrainer *a1) { u8 v1 = a1->c; if (v1 == 2 || v1 == 0) @@ -2659,7 +2685,7 @@ static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1) return FALSE; } -static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087358(struct TradeRoomTrainer *a1) { u8 v1 = a1->c; if (v1 == 2 || v1 == 0) @@ -2668,26 +2694,26 @@ static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1) return FALSE; } -static u8 *sub_8087370(struct UnkStruct_8054FF8 *a1) +static u8 *sub_8087370(struct TradeRoomTrainer *a1) { if (a1->c != 2) return 0; return GetCoordEventScriptAtMapPosition(&a1->sub); } -static bool32 sub_8087388(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087388(struct TradeRoomTrainer *a1) { if (a1->c != 2 && a1->c != 0) return FALSE; else if (!MetatileBehavior_IsSouthArrowWarp(a1->field_C)) return FALSE; - else if (a1->d != 1) + else if (a1->facing != 1) return FALSE; else return TRUE; } -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) { struct MapPosition unkStruct; u8 linkPlayerId; @@ -2696,8 +2722,8 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) return 0; unkStruct = a1->sub; - unkStruct.x += gDirectionToVectors[a1->d].x; - unkStruct.y += gDirectionToVectors[a1->d].y; + unkStruct.x += gDirectionToVectors[a1->facing].x; + unkStruct.y += gDirectionToVectors[a1->facing].y; unkStruct.height = 0; linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); @@ -2705,15 +2731,15 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) { if (!a1->b) return EventScript_TradeRoom_TooBusyToNotice; - else if (sUnknown_03000E10[linkPlayerId] != 0x80) + else if (sTrainerTradingStates[linkPlayerId] != TRAINER_TRADING_STATE_IDLE) return EventScript_TradeRoom_TooBusyToNotice; - else if (!sub_80B39D4(linkPlayerId)) - return EventScript_TradeRoom_ReadTrainerCard1; + else if (!GetLinkTrainerCardColor(linkPlayerId)) + return EventScript_TradeRoom_ReadTrainerCard_NoColor; else - return EventScript_TradeRoom_ReadTrainerCard2; + return EventScript_TradeRoom_ReadTrainerCard_Normal; } - return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->d); + return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->facing); } static u16 sub_8087480(const u8 *script) @@ -2806,9 +2832,9 @@ bool32 sub_80875C8(void) return FALSE; else if (sub_8009F3C() != TRUE) return FALSE; - else if (sUnknown_03000E14 == sub_808711C) + else if (sguess_PlayerKeyCallback == sub_808711C) return TRUE; - else if (sUnknown_03000E14 != sub_80870F8) + else if (sguess_PlayerKeyCallback != sub_80870F8) return FALSE; temp = sUnknown_03000E18; @@ -2824,13 +2850,13 @@ bool32 sub_80875C8(void) bool32 sub_8087634(void) { - if (sub_8087690() < 2) + if (GetLinkEventQueueLength() < 2) return FALSE; else if (is_c1_link_related_active() != TRUE) return FALSE; else if (sub_8009F3C() != TRUE) return FALSE; - else if (sUnknown_03000E14 == sub_8087140) + else if (sguess_PlayerKeyCallback == sub_8087140) return TRUE; else return FALSE; @@ -2846,7 +2872,7 @@ bool32 sub_808766C(void) return TRUE; } -static u32 sub_8087690(void) +static u32 GetLinkEventQueueLength(void) { if (gWirelessCommType != 0) return gUnknown_03005000.unk_9e8.unk_232; @@ -2923,7 +2949,8 @@ static void sub_808780C(u8 linkPlayerId) eventObj->active = 0; } -static u8 sub_8087858(u8 linkPlayerId) +// Returns the spriteId corresponding to this player. +static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -2986,7 +3013,7 @@ static void sub_808796C(u8 linkPlayerId, u8 a2) if (a2 > 10) eventObj->triggerGroundEffectsOnMove = 1; else - gUnknown_08339E00[gUnknown_08339DC8[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); + gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); } } diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 9bdd86167..c409d5d32 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gUnknown_03005DB4; +extern u8 gLinkGuestPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/start_menu.c b/src/start_menu.c index d5eec76d2..a1c9fc9ad 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gUnknown_03005DB4; +extern u8 gLinkGuestPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLinkGuestPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } diff --git a/src/trainer_card.c b/src/trainer_card.c index 49a62284f..be2e95ab3 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1536,7 +1536,7 @@ static void sub_80C48C8(void) } } -u8 sub_80C4904(u8 cardId) +u8 GetTrainerCardStars(u8 cardId) { struct TrainerCard* trainerCards = gTrainerCards; return trainerCards[cardId].stars; -- cgit v1.2.3 From f2f1b1978ba3423a519df66d4f382dd68ac8b185 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 03:54:50 -0500 Subject: Done documenting link code in overworld.c --- src/cable_club.c | 8 +- src/easy_chat.c | 2 +- src/field_screen_effect.c | 2 +- src/link.c | 18 +- src/link_rfu.c | 18 +- src/menu_helpers.c | 4 +- src/overworld.c | 604 ++++++++++++++++++++++++---------------------- src/rom_8011DC0.c | 4 +- src/scrcmd.c | 6 +- src/start_menu.c | 10 +- src/trade.c | 4 +- 11 files changed, 351 insertions(+), 329 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index a778ff559..c76de7a6a 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gLinkGuestPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLinkSelfPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -993,7 +993,7 @@ void sub_80B360C(void) } else { - gMain.savedCallback = c2_8056854; + gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer; } SetMainCallback2(sub_80A0514); diff --git a/src/easy_chat.c b/src/easy_chat.c index c84895df5..2dce4de0d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -146,7 +146,7 @@ static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) static void sub_811A2C0(u8 taskId) { - if (!is_c1_link_related_active()) + if (!IsUpdateLinkStateCBActive()) { while (sub_811A428(taskId)); } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 93017f125..ee9b49732 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -255,7 +255,7 @@ void sub_80AF2B4(u8 taskId) break; case 2: sub_8009F18(); - sub_8086C2C(); + ResetAllMultiplayerState(); ScriptContext2_Disable(); DestroyTask(taskId); break; diff --git a/src/link.c b/src/link.c index bec9dddc6..1550d8783 100644 --- a/src/link.c +++ b/src/link.c @@ -28,7 +28,7 @@ #include "link.h" #include "link_rfu.h" -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; // Static type declarations @@ -695,12 +695,12 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_0x5566; break; case LINKCMD_SEND_HELD_KEYS_2: - if (gUnknown_03005DA8 == 0 || gLinkTransferringData) + if (gHeldKeyCodeToSend == 0 || gLinkTransferringData) { break; } gSendCmd[0] = LINKCMD_SEND_HELD_KEYS_2; - gSendCmd[1] = gUnknown_03005DA8; + gSendCmd[1] = gHeldKeyCodeToSend; break; } } @@ -714,11 +714,11 @@ void sub_8009F18(void) gLinkCallback = sub_8009F70; } -bool32 sub_8009F3C(void) +bool32 IsSendingKeysToLink(void) { if (gWirelessCommType) { - return sub_800F7E4(); + return IsSendingKeysToRfu(); } if (gLinkCallback == sub_8009F70) { @@ -1849,7 +1849,7 @@ bool8 HandleLinkConnection(void) r5 = sub_8010F1C(); if (sub_808766C() == TRUE) { - if (r4 == TRUE || sub_800F0B8() || r5) + if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5) { return TRUE; } @@ -1882,18 +1882,18 @@ void sub_800B4C0(void) } } -u32 sub_800B4DC(void) +u32 GetLinkRecvQueueLength(void) { if (gWirelessCommType != 0) { - return sub_80124D4(); + return GetRfuRecvQueueLength(); } return gLink.recvQueue.count; } bool8 sub_800B504(void) { - if (sub_800B4DC() > 2) + if (GetLinkRecvQueueLength() > 2) { return TRUE; } diff --git a/src/link_rfu.c b/src/link_rfu.c index ebfc802e0..859d741b1 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -17,7 +17,7 @@ #include "text.h" #include "constants/species.h" -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; extern void nullsub_89(u8 taskId); struct UnkRfuStruct_1 gUnknown_03004140; @@ -2978,7 +2978,7 @@ static void sub_800F048(void) } } -bool32 sub_800F0B8(void) +bool32 IsRfuRecvQueueEmpty(void) { s32 i; s32 j; @@ -3199,7 +3199,7 @@ bool32 sub_800F4F0(void) for (i = 0; i < CMD_LENGTH - 1; i++) gSendCmd[i] = 0; } - return sub_800F0B8(); + return IsRfuRecvQueueEmpty(); } void sub_800F638(u8 unused, u32 flags) @@ -3259,10 +3259,12 @@ u8 sub_800F74C(const u8 *a0) void rfu_func_080F97B8(void) { - if (gReceivedRemoteLinkPlayers && gUnknown_03005DA8 && gLinkTransferringData != 1) + if (gReceivedRemoteLinkPlayers + && gHeldKeyCodeToSend != LINK_KEY_CODE_NULL + && gLinkTransferringData != TRUE) { gUnknown_03000D78[0]++; - gUnknown_03005DA8 |= (gUnknown_03000D78[0] << 8); + gHeldKeyCodeToSend |= (gUnknown_03000D78[0] << 8); sub_800FD14(0xbe00); } } @@ -3272,7 +3274,7 @@ struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void) return &gUnknown_02022B14; } -bool32 sub_800F7E4(void) +bool32 IsSendingKeysToRfu(void) { return gUnknown_03005000.unk_00 == rfu_func_080F97B8; } @@ -3496,7 +3498,7 @@ void sub_800FD14(u16 command) gSendCmd[1 + i] = gUnknown_03005000.unk_f2[i]; break; case 0xbe00: - gSendCmd[1] = gUnknown_03005DA8; + gSendCmd[1] = gHeldKeyCodeToSend; break; case 0xee00: break; @@ -5150,7 +5152,7 @@ u32 sub_80124C0(void) return gUnknown_03005000.unk_9e8.unk_232; } -u32 sub_80124D4(void) +u32 GetRfuRecvQueueLength(void) { return gUnknown_03005000.unk_124.unk_8c2; } diff --git a/src/menu_helpers.c b/src/menu_helpers.c index e6547b300..846c23b6b 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -293,7 +293,7 @@ bool8 sub_8122148(u16 itemId) bool8 itemid_80BF6D8_mail_related(u16 itemId) { - if (is_c1_link_related_active() != TRUE && InUnionRoom() != TRUE) + if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE) return TRUE; else if (ItemIsMail(itemId) != TRUE) return TRUE; @@ -303,7 +303,7 @@ bool8 itemid_80BF6D8_mail_related(u16 itemId) bool8 sub_81221AC(void) { - if (is_c1_link_related_active() == TRUE || gReceivedRemoteLinkPlayers == 1) + if (IsUpdateLinkStateCBActive() == TRUE || gReceivedRemoteLinkPlayers == 1) return TRUE; else return FALSE; diff --git a/src/overworld.c b/src/overworld.c index a9dfa4280..ca588a072 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,25 +66,21 @@ #include "constants/species.h" #include "constants/weather.h" -#define LINK_CONSTANT_UNK_1 0x11 -#define LINK_CONSTANT_DPAD_DOWN 0x12 -#define LINK_CONSTANT_DPAD_UP 0x13 -#define LINK_CONSTANT_DPAD_LEFT 0x14 -#define LINK_CONSTANT_DPAD_RIGHT 0x15 -#define LINK_CONSTANT_UNK_2 0x16 -#define LINK_CONSTANT_UNK_3 0x17 -#define LINK_CONSTANT_START_BUTTON 0x18 -#define LINK_CONSTANT_A_BUTTON 0x19 -#define LINK_CONSTANT_UNK_4 0x1A // I'd guess this is the B button? -#define LINK_CONSTANT_UNK_5 0x1B -#define LINK_CONSTANT_UNK_6 0x1C -#define LINK_CONSTANT_UNK_7 0x1D -#define LINK_CONSTANT_UNK_8 0x1E - -#define TRAINER_TRADING_STATE_IDLE 0x80 -#define TRAINER_TRADING_STATE_UNK_1 0x81 -#define TRAINER_TRADING_STATE_UNK_2 0x82 -#define TRAINER_TRADING_STATE_UNK_3 0x83 +// These two are a hack to stop user input until link stuff can be +// resolved. +#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B +#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C +#define LINK_KEY_CODE_UNK_7 0x1D +#define LINK_KEY_CODE_UNK_8 0x1E + +#define PLAYER_TRADING_STATE_IDLE 0x80 +#define PLAYER_TRADING_STATE_BUSY 0x81 +#define PLAYER_TRADING_STATE_UNK_2 0x82 +#define PLAYER_TRADING_STATE_UNK_3 0x83 + +#define EVENT_SCRIPT_NONE 0 +#define EVENT_SCRIPT_ID_9 9 +#define EVENT_SCRIPT_ID_10 10 // event scripts extern const u8 EventScript_WhiteOut[]; @@ -105,7 +101,7 @@ extern const u8 gUnknown_08277374[]; extern const u8 gUnknown_0827737E[]; extern const u8 gUnknown_082773FF[]; extern const u8 gUnknown_082773F5[]; -extern const u8 gUnknown_082774EF[]; +extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; extern const u8 gUnknown_08277509[]; extern const struct MapLayout *const gMapLayouts[]; @@ -139,20 +135,20 @@ static void sub_8086A80(void); static void sub_8086A68(void); static void sub_8086860(void); static void SetCameraToTrackGuestPlayer_2(void); -static void sub_8086B9C(void); -static void guess_ResetHeldKeys(void); -static void sub_8086C90(void); -static void sub_8086FA0(u16); -static void sub_8086F38(u16*, s32); +static void CreateLinkPlayerSprites(void); +static void ClearAllPlayerKeys(void); +static void ResetAllTradingStates(void); +static void UpdateHeldKeyCode(u16); +static void UpdateAllLinkPlayers(u16*, s32); static u8 npc_something3(u8 a1, u8 a2); static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y); static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion); -static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y); -static u8 sub_80878A0(u8 linkPlayerId); -static u8 sub_80878C0(u8 linkPlayerId); +static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y); +static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId); +static u8 GetLinkPlayerElevation(u8 linkPlayerId); static s32 sub_80878E4(u8 linkPlayerId); static u8 GetLinkPlayerIdAt(s16 x, s16 y); -static void sub_808796C(u8 linkPlayerId, u8 a2); +static void RunPlayerEventScript(u8 linkPlayerId, u8 a2); static void ZeroEventObject(struct EventObject *eventObj); static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); @@ -160,29 +156,29 @@ static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); static void sub_8087584(void); -static u32 GetLinkEventQueueLength(void); +static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); -static u16 sub_8087480(const u8 *script); +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); +static u16 GetTypeForTileEventScript(const u8 *script); static void sub_8087510(void); -static void sub_808751C(void); +static void InitLinkRoomStartMenuScript(void); static void sub_8087530(const u8 *script); -static void sub_808754C(void); -static void sub_8087568(const u8 *script); -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3); -static bool32 sub_8087340(struct TradeRoomTrainer *a1); -static bool32 sub_8087358(struct TradeRoomTrainer *a1); -static u8 *sub_8087370(struct TradeRoomTrainer *a1); -static bool32 sub_8087388(struct TradeRoomTrainer *a1); -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); -static u16 sub_808711C(u32); -static u16 sub_8087140(u32); -static void guess_ResetLinkKeys(u16 *a1); -static u16 sub_80870B0(u32 a1); -static u16 sub_80870F8(u32 a1); +static void CreateConfirmLeaveTradeRoomPrompt(void); +static void InitMenuBasedScript(const u8 *script); +static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 a2, struct TradeRoomPlayer *a3); +static bool32 sub_8087340(struct TradeRoomPlayer *a1); +static bool32 sub_8087340_2(struct TradeRoomPlayer *a1); +static u8 *TryGetTileEventScript(struct TradeRoomPlayer *a1); +static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *a1); +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); +static u16 KeyInterCB_DeferToRecvQueue(u32); +static u16 KeyInterCB_DeferToSendQueue(u32); +static void ResetPlayerHeldKeys(u16 *a1); +static u16 KeyInterCB_SelfIdle(u32 a1); +static u16 KeyInterCB_DeferToEventScript(u32 a1); static u16 sub_8087068(u16 a1); -static void c1_link_related(void); -static void c1_link_related_func_set(u16 (*func)(u32)); +static void CB1_UpdateLinkState(void); +static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); static void sub_8085810(void); @@ -192,20 +188,23 @@ static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars IWRAM_DATA static void *sUnknown_03000E0C; -IWRAM_DATA static u8 sTrainerTradingStates[4]; -IWRAM_DATA static u16 (*sguess_PlayerKeyCallback)(u32); -IWRAM_DATA static u8 sUnknown_03000E18; -IWRAM_DATA static u8 sUnknown_03000E19; +IWRAM_DATA static u8 sPlayerTradingStates[4]; +// This callback is called with a player's key code. It then returns an +// adjusted key code, effectively intercepting the input before anything +// can process it. +IWRAM_DATA static u16 (*sPlayerKeyInterceptCallback)(u32); +IWRAM_DATA static bool8 sUnknown_03000E18; +IWRAM_DATA static u8 sRfuKeepAliveTimer; IWRAM_DATA static u32 sUnusedVar; // IWRAM common u16 *gBGTilemapBuffers1; u16 *gBGTilemapBuffers2; u16 *gBGTilemapBuffers3; -u16 gUnknown_03005DA8; +u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gLinkGuestPlayerId; +u8 gLinkSelfPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -1120,7 +1119,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < LINK_CONSTANT_START_BUTTON) + if (gSaveBlock1Ptr->pos.x < LINK_KEY_CODE_START_BUTTON) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1263,7 +1262,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % LINK_CONSTANT_UNK_8) + 50; + volume = (Random() % LINK_KEY_CODE_UNK_8) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1427,9 +1426,9 @@ static void ResetSafariZoneFlag_(void) ResetSafariZoneFlag(); } -bool32 is_c1_link_related_active(void) +bool32 IsUpdateLinkStateCBActive(void) { - if (gMain.callback1 == c1_link_related) + if (gMain.callback1 == CB1_UpdateLinkState) return TRUE; else return FALSE; @@ -1615,15 +1614,15 @@ static void c2_80567AC(void) if (map_loading_iteration_3(&gMain.state)) { SetFieldVBlankCallback(); - SetMainCallback1(c1_link_related); - sub_8086C2C(); + SetMainCallback1(CB1_UpdateLinkState); + ResetAllMultiplayerState(); SetMainCallback2(CB2_Overworld); } } void CB2_ReturnToField(void) { - if (is_c1_link_related_active() == TRUE) + if (IsUpdateLinkStateCBActive() == TRUE) { SetMainCallback2(CB2_ReturnToFieldLink); } @@ -1649,12 +1648,12 @@ void CB2_ReturnToFieldLink(void) SetMainCallback2(CB2_Overworld); } -void c2_8056854(void) +void CB2_ReturnToFieldFromMultiplayer(void) { FieldClearVBlankHBlankCallbacks(); StopMapMusic(); - SetMainCallback1(c1_link_related); - sub_8086C2C(); + SetMainCallback1(CB1_UpdateLinkState); + ResetAllMultiplayerState(); if (gWirelessCommType != 0) gFieldCallback = sub_80AF314; @@ -2000,7 +1999,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 2: - sub_8086B9C(); + CreateLinkPlayerSprites(); sub_8086A68(); SetCameraToTrackGuestPlayer_2(); (*state)++; @@ -2191,13 +2190,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); } static void sub_8086AE4(void) @@ -2207,7 +2206,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + gLinkGuestPlayerId, y); + sub_8088B3C(x + gLinkSelfPlayerId, y); } static void sub_8086B14(void) @@ -2216,7 +2215,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gLinkGuestPlayerId; + x -= gLinkSelfPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2224,103 +2223,118 @@ static void sub_8086B14(void) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } - guess_ResetHeldKeys(); + ClearAllPlayerKeys(); } -static void sub_8086B9C(void) +static void CreateLinkPlayerSprites(void) { u16 i; for (i = 0; i < gFieldLinkPlayerCount; i++) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } -static void c1_link_related(void) + +static void CB1_UpdateLinkState(void) { - if (gWirelessCommType == 0 || !sub_800F0B8() || !sub_8009F3C()) + if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 guestId = gLinkGuestPlayerId; - sub_8086F38(gLinkPartnersHeldKeys, guestId); - sub_8086FA0(sguess_PlayerKeyCallback(guestId)); - guess_ResetHeldKeys(); + u8 selfId = gLinkSelfPlayerId; + UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); + + // Note: Because guestId is between 0 and 4, while the smallest key code is + // LINK_KEY_CODE_EMPTY, this is functionally equivalent to `sPlayerKeyInterceptCallback(0)`. + // It is expecting the callback to be KeyInterCB_SelfIdle, and that will + // completely ignore any input parameters. + // + // UpdateHeldKeyCode performs a sanity check on its input; if + // sPlayerKeyInterceptCallback echoes back the argument, which is selfId, then + // it'll use LINK_KEY_CODE_EMPTY instead. + UpdateHeldKeyCode(sPlayerKeyInterceptCallback(selfId)); + ClearAllPlayerKeys(); } } -void sub_8086C2C(void) +void ResetAllMultiplayerState(void) { - sub_8086C90(); - c1_link_related_func_set(sub_80870B0); + ResetAllTradingStates(); + SetKeyInterceptCallback(KeyInterCB_SelfIdle); } -static void guess_ResetHeldKeys(void) +static void ClearAllPlayerKeys(void) { - guess_ResetLinkKeys(gLinkPartnersHeldKeys); + ResetPlayerHeldKeys(gLinkPartnersHeldKeys); } -static void c1_link_related_func_set(u16 (*func)(u32)) +static void SetKeyInterceptCallback(u16 (*func)(u32)) { - sUnknown_03000E19 = 0; - sguess_PlayerKeyCallback = func; + sRfuKeepAliveTimer = 0; + sPlayerKeyInterceptCallback = func; } -static void sub_8086C64(void) +// Once every ~60 frames, if the link state hasn't changed (timer reset by calls +// to SetKeyInterceptCallback), it does a bunch of sanity checks on the connection. +// I'm not sure if sRfuKeepAliveTimer is reset in the process, though; rfu stuff is +// still undocumented. +static void CheckRfuKeepAliveTimer(void) { - if (gWirelessCommType != 0 && ++sUnknown_03000E19 > 60) + if (gWirelessCommType != 0 && ++sRfuKeepAliveTimer > 60) sub_8010198(); } -static void sub_8086C90(void) +static void ResetAllTradingStates(void) { s32 i; for (i = 0; i < 4; i++) - sTrainerTradingStates[i] = TRAINER_TRADING_STATE_IDLE; + sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE; } -static bool32 sub_8086CA8(u16 a1) +// Returns true if all connected players are in tradingState. +static bool32 AreAllPlayersInState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sTrainerTradingStates[i] != a1) + if (sPlayerTradingStates[i] != tradingState) return FALSE; return TRUE; } -static bool32 sub_8086CE0(u16 a1) +static bool32 AreAnyPlayersInState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sTrainerTradingStates[i] == a1) + if (sPlayerTradingStates[i] == tradingState) return TRUE; return FALSE; } -static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, u16 *a4) +static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *eventScriptType) { const u8 *script; - if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_IDLE) + if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_IDLE) { - script = sub_8087370(trainer); + script = TryGetTileEventScript(trainer); if (script) { - *a4 = sub_8087480(script); - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + *eventScriptType = GetTypeForTileEventScript(script); + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087530(script); } return; } - if (sub_8086CE0(0x83) == 1) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087584(); } return; @@ -2328,58 +2342,58 @@ static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, switch (key) { - case LINK_CONSTANT_START_BUTTON: - if (sub_8087358(trainer)) + case LINK_KEY_CODE_START_BUTTON: + if (sub_8087340_2(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_808751C(); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + InitLinkRoomStartMenuScript(); } } break; - case LINK_CONSTANT_DPAD_DOWN: - if (sub_8087388(trainer) == TRUE) + case LINK_KEY_CODE_DPAD_DOWN: + if (PlayerIsAtSouthExit(trainer) == TRUE) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_808754C(); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + CreateConfirmLeaveTradeRoomPrompt(); } } break; - case LINK_CONSTANT_A_BUTTON: - script = sub_80873B4(trainer); + case LINK_KEY_CODE_A_BUTTON: + script = TryInteractWithPlayer(trainer); if (script) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_8087568(script); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + InitMenuBasedScript(script); } } break; - case LINK_CONSTANT_UNK_5: + case LINK_KEY_CODE_HANDLE_RECV_QUEUE: if (sub_8087340(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_808711C); + SetKeyInterceptCallback(KeyInterCB_DeferToRecvQueue); sub_8087510(); } } break; - case LINK_CONSTANT_UNK_6: + case LINK_KEY_CODE_HANDLE_SEND_QUEUE: if (sub_8087340(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_8087140); + SetKeyInterceptCallback(KeyInterCB_DeferToSendQueue); sub_8087510(); } } @@ -2389,97 +2403,97 @@ static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, switch (key) { - case LINK_CONSTANT_UNK_3: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_3; + case LINK_KEY_CODE_UNK_3: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_3; break; - case LINK_CONSTANT_UNK_2: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_2; + case LINK_KEY_CODE_UNK_2: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_2; break; - case LINK_CONSTANT_UNK_4: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_IDLE; - if (trainer->b) - c1_link_related_func_set(sub_80870B0); + case LINK_KEY_CODE_UNK_4: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_IDLE; + if (trainer->isSelf) + SetKeyInterceptCallback(KeyInterCB_SelfIdle); break; - case LINK_CONSTANT_UNK_7: - if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_UNK_2) - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + case LINK_KEY_CODE_UNK_7: + if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_UNK_2) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; break; } } -static void sub_8086F38(u16 *keys, s32 guestId) +static void UpdateAllLinkPlayers(u16 *keys, s32 selfId) { - struct TradeRoomTrainer trainer; + struct TradeRoomPlayer trainer; s32 i; for (i = 0; i < 4; i++) { u8 key = keys[i]; - u16 v8 = 0; - sub_80872D8(i, guestId, &trainer); - sub_8086D18(i, key, &trainer, &v8); - if (sTrainerTradingStates[i] == TRAINER_TRADING_STATE_IDLE) - v8 = sub_8087068(key); - sub_808796C(i, v8); + u16 eventScriptType = EVENT_SCRIPT_NONE; + LoadTradeRoomPlayer(i, selfId, &trainer); + HandleLinkPlayerKeyInput(i, key, &trainer, &eventScriptType); + if (sPlayerTradingStates[i] == PLAYER_TRADING_STATE_IDLE) + eventScriptType = sub_8087068(key); + RunPlayerEventScript(i, eventScriptType); } } -static void sub_8086FA0(u16 a1) +static void UpdateHeldKeyCode(u16 key) { - if (a1 >= LINK_CONSTANT_UNK_1 && a1 < LINK_CONSTANT_UNK_8) - gUnknown_03005DA8 = a1; + if (key >= LINK_KEY_CODE_EMPTY && key < LINK_KEY_CODE_UNK_8) + gHeldKeyCodeToSend = key; else - gUnknown_03005DA8 = LINK_CONSTANT_UNK_1; + gHeldKeyCodeToSend = LINK_KEY_CODE_EMPTY; if (gWirelessCommType != 0 - && GetLinkEventQueueLength() > 1 - && is_c1_link_related_active() == TRUE - && sub_8009F3C() == TRUE) + && GetLinkSendQueueLength() > 1 + && IsUpdateLinkStateCBActive() == TRUE + && IsSendingKeysToLink() == TRUE) { - switch (a1) + switch (key) { - case LINK_CONSTANT_UNK_1: - case LINK_CONSTANT_DPAD_DOWN: - case LINK_CONSTANT_DPAD_UP: - case LINK_CONSTANT_DPAD_LEFT: - case LINK_CONSTANT_DPAD_RIGHT: - case LINK_CONSTANT_START_BUTTON: - case LINK_CONSTANT_A_BUTTON: - gUnknown_03005DA8 = 0; + case LINK_KEY_CODE_EMPTY: + case LINK_KEY_CODE_DPAD_DOWN: + case LINK_KEY_CODE_DPAD_UP: + case LINK_KEY_CODE_DPAD_LEFT: + case LINK_KEY_CODE_DPAD_RIGHT: + case LINK_KEY_CODE_START_BUTTON: + case LINK_KEY_CODE_A_BUTTON: + gHeldKeyCodeToSend = LINK_KEY_CODE_NULL; break; } } } -static u16 sub_808700C(u32 a1) +static u16 KeyInterCB_ReadButtons(u32 key) { if (gMain.heldKeys & DPAD_UP) - return LINK_CONSTANT_DPAD_UP; + return LINK_KEY_CODE_DPAD_UP; else if (gMain.heldKeys & DPAD_DOWN) - return LINK_CONSTANT_DPAD_DOWN; + return LINK_KEY_CODE_DPAD_DOWN; else if (gMain.heldKeys & DPAD_LEFT) - return LINK_CONSTANT_DPAD_LEFT; + return LINK_KEY_CODE_DPAD_LEFT; else if (gMain.heldKeys & DPAD_RIGHT) - return LINK_CONSTANT_DPAD_RIGHT; + return LINK_KEY_CODE_DPAD_RIGHT; else if (gMain.newKeys & START_BUTTON) - return LINK_CONSTANT_START_BUTTON; + return LINK_KEY_CODE_START_BUTTON; else if (gMain.newKeys & A_BUTTON) - return LINK_CONSTANT_A_BUTTON; + return LINK_KEY_CODE_A_BUTTON; else - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_8087068(u16 a1) { switch (a1) { - case LINK_CONSTANT_DPAD_RIGHT: + case LINK_KEY_CODE_DPAD_RIGHT: return 4; - case LINK_CONSTANT_DPAD_LEFT: + case LINK_KEY_CODE_DPAD_LEFT: return 3; - case LINK_CONSTANT_DPAD_UP: + case LINK_KEY_CODE_DPAD_UP: return 1; - case LINK_CONSTANT_DPAD_DOWN: + case LINK_KEY_CODE_DPAD_DOWN: return 2; default: return 0; @@ -2487,251 +2501,257 @@ static u16 sub_8087068(u16 a1) } // Overwrites the keys with 0x11 -static void guess_ResetLinkKeys(u16 *keys) +static void ResetPlayerHeldKeys(u16 *keys) { s32 i; for (i = 0; i < 4; i++) - keys[i] = LINK_CONSTANT_UNK_1; + keys[i] = LINK_KEY_CODE_EMPTY; } -static u16 sub_80870B0(u32 a1) + +static u16 KeyInterCB_SelfIdle(u32 key) { - if (ScriptContext2_IsEnabled() == 1) - return LINK_CONSTANT_UNK_1; - if (sub_800B4DC() > 4) - return 27; - if (GetLinkEventQueueLength() <= 4) - return sub_808700C(a1); - return 28; + if (ScriptContext2_IsEnabled() == TRUE) + return LINK_KEY_CODE_EMPTY; + if (GetLinkRecvQueueLength() > 4) + return LINK_KEY_CODE_HANDLE_RECV_QUEUE; + if (GetLinkSendQueueLength() <= 4) + return KeyInterCB_ReadButtons(key); + return LINK_KEY_CODE_HANDLE_SEND_QUEUE; } -static u16 sub_80870EC(u32 a1) +static u16 sub_80870EC(u32 key) { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } -static u16 sub_80870F8(u32 a1) +// Ignore the player's inputs as long as there is an event script +// in ScriptContext2. +static u16 KeyInterCB_DeferToEventScript(u32 key) { u16 retVal; if (ScriptContext2_IsEnabled() == TRUE) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; - c1_link_related_func_set(sub_80870EC); + retVal = LINK_KEY_CODE_UNK_4; + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_808711C(u32 a1) +// Ignore the player's inputs as long as there are events being recived. +static u16 KeyInterCB_DeferToRecvQueue(u32 key) { u16 retVal; - if (sub_800B4DC() > 2) + if (GetLinkRecvQueueLength() > 2) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; + retVal = LINK_KEY_CODE_UNK_4; ScriptContext2_Disable(); - c1_link_related_func_set(sub_80870EC); + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_8087140(u32 a1) +// Ignore the player's inputs as long as there are events being sent. +static u16 KeyInterCB_DeferToSendQueue(u32 key) { u16 retVal; - if (GetLinkEventQueueLength() > 2) + if (GetLinkSendQueueLength() > 2) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; + retVal = LINK_KEY_CODE_UNK_4; ScriptContext2_Disable(); - c1_link_related_func_set(sub_80870EC); + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_8087164(u32 a1) +static u16 sub_8087164(u32 key) { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } static u16 sub_8087170(u32 linkPlayerId) { - if (sTrainerTradingStates[linkPlayerId] == TRAINER_TRADING_STATE_UNK_2) + if (sPlayerTradingStates[linkPlayerId] == PLAYER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { - c1_link_related_func_set(sub_8087164); - return 29; + SetKeyInterceptCallback(sub_8087164); + return LINK_KEY_CODE_UNK_7; } else { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } } else { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } } static u16 sub_80871AC(u32 a1) { - c1_link_related_func_set(sub_8087170); - return 22; + SetKeyInterceptCallback(sub_8087170); + return LINK_KEY_CODE_UNK_2; } static u16 sub_80871C0(u32 a1) { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_80871C4(u32 a1) { - if (sTrainerTradingStates[a1] != TRAINER_TRADING_STATE_UNK_3) - sub_8086C64(); - if (sub_8086CA8(TRAINER_TRADING_STATE_UNK_3) == TRUE) + if (sPlayerTradingStates[a1] != PLAYER_TRADING_STATE_UNK_3) + CheckRfuKeepAliveTimer(); + if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) { ScriptContext1_SetupScript(EventScript_277513); - c1_link_related_func_set(sub_80871C0); + SetKeyInterceptCallback(sub_80871C0); } - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_80871FC(u32 a1) { - c1_link_related_func_set(sub_80871C4); + SetKeyInterceptCallback(sub_80871C4); return 23; } static u16 sub_8087210(u32 a1) { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } u32 sub_8087214(void) { - if (sub_8086CE0(0x83) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) return 2; - if (sguess_PlayerKeyCallback == sub_8087170 && sTrainerTradingStates[gLinkGuestPlayerId] != TRAINER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sguess_PlayerKeyCallback == sub_8087164 && sTrainerTradingStates[gLinkGuestPlayerId] == TRAINER_TRADING_STATE_UNK_1) + if (sPlayerKeyInterceptCallback == sub_8087164 && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; - if (sub_8086CA8(0x82) != 0) + if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; return 0; } bool32 sub_808727C(void) { - return sub_8086CE0(0x83); + return AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3); } u16 sub_8087288(void) { - c1_link_related_func_set(sub_80871AC); + SetKeyInterceptCallback(sub_80871AC); return 0; } u16 sub_808729C(void) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); return 0; } u16 sub_80872B0(void) { - c1_link_related_func_set(sub_80871FC); + SetKeyInterceptCallback(sub_80871FC); return 0; } u16 sub_80872C4(void) { - c1_link_related_func_set(sub_8087210); + SetKeyInterceptCallback(sub_8087210); return 0; } -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3) +static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRoomPlayer *trainer) { s16 x, y; - a3->a = linkPlayerId; - a3->b = (linkPlayerId == a2) ? 1 : 0; - a3->c = gLinkPlayerEventObjects[linkPlayerId].mode; - a3->facing = sub_80878A0(linkPlayerId); - sub_8087878(linkPlayerId, &x, &y); - a3->sub.x = x; - a3->sub.y = y; - a3->sub.height = sub_80878C0(linkPlayerId); - a3->field_C = MapGridGetMetatileBehaviorAt(x, y); + trainer->playerId = linkPlayerId; + trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; + trainer->c = gLinkPlayerEventObjects[linkPlayerId].mode; + trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); + GetLinkPlayerCoords(linkPlayerId, &x, &y); + trainer->pos.x = x; + trainer->pos.y = y; + trainer->pos.height = GetLinkPlayerElevation(linkPlayerId); + trainer->field_C = MapGridGetMetatileBehaviorAt(x, y); } -static bool32 sub_8087340(struct TradeRoomTrainer *a1) +static bool32 sub_8087340(struct TradeRoomPlayer *player) { - u8 v1 = a1->c; + u8 v1 = player->c; if (v1 == 2 || v1 == 0) return TRUE; else return FALSE; } -static bool32 sub_8087358(struct TradeRoomTrainer *a1) +// Duplicate function. +static bool32 sub_8087340_2(struct TradeRoomPlayer *player) { - u8 v1 = a1->c; + u8 v1 = player->c; if (v1 == 2 || v1 == 0) return TRUE; else return FALSE; } -static u8 *sub_8087370(struct TradeRoomTrainer *a1) +static u8 *TryGetTileEventScript(struct TradeRoomPlayer *player) { - if (a1->c != 2) + if (player->c != 2) return 0; - return GetCoordEventScriptAtMapPosition(&a1->sub); + return GetCoordEventScriptAtMapPosition(&player->pos); } -static bool32 sub_8087388(struct TradeRoomTrainer *a1) +static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) { - if (a1->c != 2 && a1->c != 0) + if (player->c != 2 && player->c != 0) return FALSE; - else if (!MetatileBehavior_IsSouthArrowWarp(a1->field_C)) + else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) return FALSE; - else if (a1->facing != 1) + else if (player->facing != 1) return FALSE; else return TRUE; } -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) { - struct MapPosition unkStruct; + struct MapPosition otherPlayerPos; u8 linkPlayerId; - if (a1->c && a1->c != 2) + if (player->c && player->c != 2) return 0; - unkStruct = a1->sub; - unkStruct.x += gDirectionToVectors[a1->facing].x; - unkStruct.y += gDirectionToVectors[a1->facing].y; - unkStruct.height = 0; - linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); + otherPlayerPos = player->pos; + otherPlayerPos.x += gDirectionToVectors[player->facing].x; + otherPlayerPos.y += gDirectionToVectors[player->facing].y; + otherPlayerPos.height = 0; + linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); if (linkPlayerId != 4) { - if (!a1->b) + if (!player->isSelf) return EventScript_TradeRoom_TooBusyToNotice; - else if (sTrainerTradingStates[linkPlayerId] != TRAINER_TRADING_STATE_IDLE) + else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) return EventScript_TradeRoom_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) return EventScript_TradeRoom_ReadTrainerCard_NoColor; @@ -2739,10 +2759,10 @@ static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) return EventScript_TradeRoom_ReadTrainerCard_Normal; } - return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->facing); + return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); } -static u16 sub_8087480(const u8 *script) +static u16 GetTypeForTileEventScript(const u8 *script) { if (script == gUnknown_08277388) return 10; @@ -2777,7 +2797,7 @@ static void sub_8087510(void) ScriptContext2_Enable(); } -static void sub_808751C(void) +static void InitLinkRoomStartMenuScript(void) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); @@ -2791,14 +2811,14 @@ static void sub_8087530(const u8 *script) ScriptContext2_Enable(); } -static void sub_808754C(void) +static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(gUnknown_082774EF); + ScriptContext1_SetupScript(gEventScript_ConfirmLeaveTradeRoom); ScriptContext2_Enable(); } -static void sub_8087568(const u8 *script) +static void InitMenuBasedScript(const u8 *script) { PlaySE(SE_SELECT); ScriptContext1_SetupScript(script); @@ -2813,12 +2833,12 @@ static void sub_8087584(void) bool32 sub_8087598(void) { - if (!is_c1_link_related_active()) - return 0; - if (sub_800B4DC() >= 3) - sUnknown_03000E18 = 1; + if (!IsUpdateLinkStateCBActive()) + return FALSE; + if (GetLinkRecvQueueLength() >= 3) + sUnknown_03000E18 = TRUE; else - sUnknown_03000E18 = 0; + sUnknown_03000E18 = FALSE; return sUnknown_03000E18; } @@ -2826,19 +2846,19 @@ bool32 sub_80875C8(void) { u8 temp; - if (sub_800B4DC() < 2) + if (GetLinkRecvQueueLength() < 2) return FALSE; - else if (is_c1_link_related_active() != TRUE) + else if (IsUpdateLinkStateCBActive() != TRUE) return FALSE; - else if (sub_8009F3C() != TRUE) + else if (IsSendingKeysToLink() != TRUE) return FALSE; - else if (sguess_PlayerKeyCallback == sub_808711C) + else if (sPlayerKeyInterceptCallback == KeyInterCB_DeferToRecvQueue) return TRUE; - else if (sguess_PlayerKeyCallback != sub_80870F8) + else if (sPlayerKeyInterceptCallback != KeyInterCB_DeferToEventScript) return FALSE; temp = sUnknown_03000E18; - sUnknown_03000E18 = 0; + sUnknown_03000E18 = FALSE; if (temp == TRUE) return TRUE; @@ -2850,13 +2870,13 @@ bool32 sub_80875C8(void) bool32 sub_8087634(void) { - if (GetLinkEventQueueLength() < 2) + if (GetLinkSendQueueLength() < 2) return FALSE; - else if (is_c1_link_related_active() != TRUE) + else if (IsUpdateLinkStateCBActive() != TRUE) return FALSE; - else if (sub_8009F3C() != TRUE) + else if (IsSendingKeysToLink() != TRUE) return FALSE; - else if (sguess_PlayerKeyCallback == sub_8087140) + else if (sPlayerKeyInterceptCallback == KeyInterCB_DeferToSendQueue) return TRUE; else return FALSE; @@ -2866,13 +2886,13 @@ bool32 sub_808766C(void) { if (gWirelessCommType != 0) return FALSE; - else if (!sub_8009F3C()) + else if (!IsSendingKeysToLink()) return FALSE; else return TRUE; } -static u32 GetLinkEventQueueLength(void) +static u32 GetLinkSendQueueLength(void) { if (gWirelessCommType != 0) return gUnknown_03005000.unk_9e8.unk_232; @@ -2957,7 +2977,7 @@ static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId) return eventObj->spriteId; } -static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y) +static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -2965,14 +2985,14 @@ static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y) *y = eventObj->currentCoords.y; } -static u8 sub_80878A0(u8 linkPlayerId) +static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; return eventObj->range.as_byte; } -static u8 sub_80878C0(u8 linkPlayerId) +static u8 GetLinkPlayerElevation(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -3002,7 +3022,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) return 4; } -static void sub_808796C(u8 linkPlayerId, u8 a2) +static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) { struct LinkPlayerEventObject *linkPlayerEventObj = &gLinkPlayerEventObjects[linkPlayerId]; u8 eventObjId = linkPlayerEventObj->eventObjId; @@ -3010,10 +3030,10 @@ static void sub_808796C(u8 linkPlayerId, u8 a2) if (linkPlayerEventObj->active) { - if (a2 > 10) + if (eventScriptType > 10) eventObj->triggerGroundEffectsOnMove = 1; else - gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); + gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, eventScriptType)](linkPlayerEventObj, eventObj); } } diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index c409d5d32..57fb2c898 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gLinkGuestPlayerId; +extern u8 gLinkSelfPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/scrcmd.c b/src/scrcmd.c index 837259a7f..e681a9135 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1203,7 +1203,7 @@ bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) bool8 ScrCmd_lockall(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } @@ -1217,7 +1217,7 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx) bool8 ScrCmd_lock(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } @@ -2182,7 +2182,7 @@ bool8 ScrCmd_cmdD8(struct ScriptContext *ctx) bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } diff --git a/src/start_menu.c b/src/start_menu.c index a1c9fc9ad..4b41933ae 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gLinkGuestPlayerId; +extern u8 gLinkSelfPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -244,7 +244,7 @@ static void BuildStartMenuActions(void) { sNumStartMenuActions = 0; - if (is_c1_link_related_active() == TRUE) + if (IsUpdateLinkStateCBActive() == TRUE) { BuildLinkModeStartMenu(); } @@ -547,7 +547,7 @@ void sub_809FA34(u8 taskId) // Referenced in field_screen.s and rom_8011DC0.s void ShowStartMenu(void) // Called from overworld.c and field_control_avatar.s { - if (!is_c1_link_related_active()) + if (!IsUpdateLinkStateCBActive()) { FreezeEventObjects(); sub_808B864(); @@ -672,7 +672,7 @@ static bool8 StartMenuPlayerNameCallback(void) RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); - if (is_c1_link_related_active() || InUnionRoom()) + if (IsUpdateLinkStateCBActive() || InUnionRoom()) ShowPlayerTrainerCard(CB2_ReturnToFieldWithOpenMenu); // Display trainer card else if (FlagGet(FLAG_SYS_FRONTIER_PASS)) ShowFrontierPass(CB2_ReturnToFieldWithOpenMenu); // Display frontier pass @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gLinkGuestPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLinkSelfPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } diff --git a/src/trade.c b/src/trade.c index 70b57fbc7..2cd7cf2d9 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2762,7 +2762,7 @@ static void sub_80794CC(void) Free(gUnknown_0203229C); FreeAllWindowBuffers(); sub_800E084(); - SetMainCallback2(c2_8056854); + SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } else @@ -2772,7 +2772,7 @@ static void sub_80794CC(void) Free(gUnknown_02032184); Free(gUnknown_0203229C); FreeAllWindowBuffers(); - SetMainCallback2(c2_8056854); + SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } } -- cgit v1.2.3 From e75f45dbcfcd65901035fbc7e3793332670eb306 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 20:42:50 -0500 Subject: Reverse engineered many of the multiplayer events Some corrections to the way events are handled and identified. --- src/battle_controllers.c | 2 +- src/berry_blender.c | 8 +- src/cable_club.c | 31 +-- src/field_screen_effect.c | 4 +- src/link.c | 10 +- src/link_rfu.c | 4 +- src/mystery_event_menu.c | 2 +- src/overworld.c | 407 ++++++++++++++++++++------------------ src/party_menu.c | 2 +- src/record_mixing.c | 50 +++-- src/rom_8011DC0.c | 2 +- src/save.c | 4 +- src/script_pokemon_util_80F87D8.c | 21 +- src/start_menu.c | 4 +- src/trade.c | 8 +- 15 files changed, 303 insertions(+), 256 deletions(-) (limited to 'src') diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 70a53f332..29272c19a 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -767,7 +767,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) { if (IsLinkMaster()) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].data[11]++; } else diff --git a/src/berry_blender.c b/src/berry_blender.c index f2e3c7d14..cfcd81f73 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -146,8 +146,8 @@ extern void sub_81AABF0(void (*callback)(void)); extern void sub_800B4C0(void); extern void ClearLinkCallback(void); extern void sub_8009F8C(void); -extern void sub_8153430(void); -extern bool8 sub_8153474(void); +extern void FullSaveGame(void); +extern bool8 CheckSaveFile(void); extern void sub_80EECEC(void); // this file's functions @@ -2600,7 +2600,7 @@ static bool8 LinkPlayAgainHandleSaving(void) } break; case 2: - sub_8153430(); + FullSaveGame(); sBerryBlenderData->field_1A0++; sBerryBlenderData->framesToWait = 0; break; @@ -2614,7 +2614,7 @@ static bool8 LinkPlayAgainHandleSaving(void) case 4: if (IsLinkTaskFinished()) { - if (sub_8153474()) + if (CheckSaveFile()) { sBerryBlenderData->field_1A0 = 5; } diff --git a/src/cable_club.c b/src/cable_club.c index c76de7a6a..05c19c9ae 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -282,7 +282,7 @@ static void sub_80B2804(u8 taskId) if (GetFieldMessageBoxMode() == FIELD_MESSAGE_BOX_HIDDEN) { - if (sub_800AA48() != GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() != GetLinkPlayerCount_2()) { ShowFieldAutoScrollMessage(gText_ConfirmLinkWhenPlayersReady); gTasks[taskId].func = sub_80B270C; @@ -295,7 +295,7 @@ static void sub_80B2804(u8 taskId) else if (gMain.heldKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].func = sub_80B28A8; } } @@ -310,7 +310,7 @@ static void sub_80B28A8(u8 taskId) || sub_80B2D6C(taskId) == TRUE) return; - if (GetLinkPlayerCount_2() != sub_800AA48()) + if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) { gTasks[taskId].func = sub_80B2D2C; } @@ -764,9 +764,9 @@ static void sub_80B3194(u8 taskId) static void sub_80B31E8(u8 taskId) { - if (sub_800AA48() == GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].func = sub_80B3220; } } @@ -999,7 +999,7 @@ void sub_80B360C(void) SetMainCallback2(sub_80A0514); } -void sub_80B36EC(void) +void EventScript_CleanupLinkRoomState(void) { if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9) { @@ -1009,11 +1009,13 @@ void sub_80B36EC(void) SetWarpDestinationToDynamicWarp(0x7F); } -void sub_80B371C(void) +void EventScript_ExitLinkRoom(void) { - sub_80872B0(); + QueueExitLinkRoomKey(); } +// I can't find anything that would set data[0] to a value before this +// stask starts. Is it a bug? static void sub_80B3728(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -1028,7 +1030,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - sub_8009628(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; @@ -1130,7 +1132,8 @@ static void sub_80B3894(u8 taskId) } } -void sub_80B3924(void) +// Note: VAR_0x8005 is set to the ID of the trade seat. +void EventScript_PlayerEnteredTradeSeat(void) { if (gWirelessCommType != 0) { @@ -1152,7 +1155,8 @@ void nullsub_37(void) } -void sub_80B3968(void) +// Note: VAR_0x8005 is set to the ID of the player spot. +void EventScript_ColosseumPlayerSpotTriggered(void) { gLinkType = 0x2211; @@ -1166,6 +1170,7 @@ void sub_80B3968(void) } } +// This function is never called. static void sub_80B39A4(void) { u8 taskId = CreateTask(sub_80B3728, 80); @@ -1265,13 +1270,13 @@ void sub_80B3AF8(u8 taskId) } break; case 2: - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (IsLinkMaster()) { if (++data[1] > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); data[0]++; } } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index ee9b49732..b8427c7de 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -621,7 +621,7 @@ void sub_80AF948(void) CreateTask(sub_80AF8E0, 10); } -static void sub_80AF96C(u8 taskId) +static void Task_ReturnToWorldFromLinkRoom(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -654,7 +654,7 @@ static void sub_80AF96C(u8 taskId) void sub_80AF9F8(void) { - CreateTask(sub_80AF96C, 10); + CreateTask(Task_ReturnToWorldFromLinkRoom, 10); } static void sub_80AFA0C(u8 taskId) diff --git a/src/link.c b/src/link.c index 1550d8783..72ac3e878 100644 --- a/src/link.c +++ b/src/link.c @@ -302,9 +302,9 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void sub_8009628(u8 a0) +void SetLocalLinkPlayerId(u8 playerId) { - gLocalLinkPlayer.id = a0; + gLocalLinkPlayer.id = playerId; } static void InitLocalLinkPlayer(void) @@ -1142,7 +1142,7 @@ void ResetBlockReceivedFlag(u8 who) } } -void sub_800A620(void) +void CheckShouldAdvanceLinkState(void) { if ((gLinkStatus & LINK_STAT_MASTER) && EXTRACT_PLAYER_COUNT(gLinkStatus) > 1) { @@ -1327,7 +1327,9 @@ void sub_800AA04(u8 a0) } } -u8 sub_800AA48(void) +// The number of players when trading began. This is frequently compared against the +// current number of connected players to check if anyone dropped out. +u8 GetSavedPlayerCount(void) { return gSavedLinkPlayerCount; } diff --git a/src/link_rfu.c b/src/link_rfu.c index 859d741b1..f13d15337 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -3788,10 +3788,10 @@ bool32 sub_8010454(u32 a0) u8 sub_801048C(bool32 a0) { - if (a0 == 0) + if (a0 == FALSE) return sub_800D550(0, 0); sub_800D550(1, 0x258); - return FALSE; + return 0; } void sub_80104B0(void) diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 0de4675d9..2058bb81f 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -179,7 +179,7 @@ static void CB2_MysteryEventMenu(void) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_800A620(); + CheckShouldAdvanceLinkState(); SetWindowBorderStyle(1, 1, 1, 0xD); PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0); PutWindowTilemap(1); diff --git a/src/overworld.c b/src/overworld.c index ca588a072..671d3412f 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,48 +66,47 @@ #include "constants/species.h" #include "constants/weather.h" -// These two are a hack to stop user input until link stuff can be -// resolved. -#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B -#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C -#define LINK_KEY_CODE_UNK_7 0x1D -#define LINK_KEY_CODE_UNK_8 0x1E - #define PLAYER_TRADING_STATE_IDLE 0x80 #define PLAYER_TRADING_STATE_BUSY 0x81 #define PLAYER_TRADING_STATE_UNK_2 0x82 -#define PLAYER_TRADING_STATE_UNK_3 0x83 - -#define EVENT_SCRIPT_NONE 0 -#define EVENT_SCRIPT_ID_9 9 -#define EVENT_SCRIPT_ID_10 10 +#define PLAYER_TRADING_STATE_EXITING_ROOM 0x83 + +#define FACING_NONE 0 +#define FACING_UP 1 +#define FACING_DOWN 2 +#define FACING_LEFT 3 +#define FACING_RIGHT 4 +#define FACING_FORCED_UP 7 +#define FACING_FORCED_DOWN 8 +#define FACING_FORCED_LEFT 9 +#define FACING_FORCED_RIGHT 10 // event scripts -extern const u8 EventScript_WhiteOut[]; -extern const u8 EventScript_271862[]; -extern const u8 EventScript_277513[]; -extern const u8 EventScript_TradeRoom_TooBusyToNotice[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard_NoColor[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard_Normal[]; -extern const u8 gUnknown_08277388[]; -extern const u8 gUnknown_082773A3[]; -extern const u8 gUnknown_082773BE[]; -extern const u8 gUnknown_082773D9[]; -extern const u8 gUnknown_0827741D[]; -extern const u8 gUnknown_08277432[]; -extern const u8 gUnknown_08277447[]; -extern const u8 gUnknown_0827745C[]; -extern const u8 gUnknown_08277374[]; -extern const u8 gUnknown_0827737E[]; -extern const u8 gUnknown_082773FF[]; -extern const u8 gUnknown_082773F5[]; +extern const u8 gEventScript_WhiteOut[]; +extern const u8 gEventScript_ResetMrBriney[]; +extern const u8 gEventScript_DoLinkRoomExit[]; +extern const u8 gEventScript_TradeRoom_TooBusyToNotice[]; +extern const u8 gEventScript_TradeRoom_ReadTrainerCard_NoColor[]; +extern const u8 gEventScript_TradeRoom_ReadTrainerCard_Normal[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot0[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot1[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot2[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot3[]; +extern const u8 gEventScript_RecordCenter_Spot0[]; +extern const u8 gEventScript_RecordCenter_Spot1[]; +extern const u8 gEventScript_RecordCenter_Spot2[]; +extern const u8 gEventScript_RecordCenter_Spot3[]; +extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot0[]; +extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot1[]; +extern const u8 gEventScript_TradeCenter_Chair1[]; +extern const u8 gEventScript_TradeCenter_Chair0[]; extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; -extern const u8 gUnknown_08277509[]; +extern const u8 gEventScript_TerminateLink[]; extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; extern const int gMaxFlashLevel; -extern const u16 gUnknown_82EC7C4[]; +extern const u16 gOverworldBackgroundLayerFlags[]; static void Overworld_ResetStateAfterWhiteOut(void); static void c2_80567AC(void); @@ -123,7 +122,7 @@ static bool32 map_loading_iteration_2_link(u8 *state); static void mli4_mapscripts_and_other(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); -static u16 sub_80871C0(u32 a1); +static u16 KeyInterCB_SendNothing(u32 a1); static void sub_80867C8(void); static void sub_80867D8(void); static void sub_8086AE4(void); @@ -140,7 +139,7 @@ static void ClearAllPlayerKeys(void); static void ResetAllTradingStates(void); static void UpdateHeldKeyCode(u16); static void UpdateAllLinkPlayers(u16*, s32); -static u8 npc_something3(u8 a1, u8 a2); +static u8 FlipVerticalAndClearForced(u8 a1, u8 a2); static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y); static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion); static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y); @@ -148,7 +147,7 @@ static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId); static u8 GetLinkPlayerElevation(u8 linkPlayerId); static s32 sub_80878E4(u8 linkPlayerId); static u8 GetLinkPlayerIdAt(s16 x, s16 y); -static void RunPlayerEventScript(u8 linkPlayerId, u8 a2); +static void SetPlayerFacingDirection(u8 linkPlayerId, u8 a2); static void ZeroEventObject(struct EventObject *eventObj); static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); @@ -159,7 +158,7 @@ static void sub_8087584(void); static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); -static u16 GetTypeForTileEventScript(const u8 *script); +static u16 GetDirectionForEventScript(const u8 *script); static void sub_8087510(void); static void InitLinkRoomStartMenuScript(void); static void sub_8087530(const u8 *script); @@ -176,7 +175,7 @@ static u16 KeyInterCB_DeferToSendQueue(u32); static void ResetPlayerHeldKeys(u16 *a1); static u16 KeyInterCB_SelfIdle(u32 a1); static u16 KeyInterCB_DeferToEventScript(u32 a1); -static u16 sub_8087068(u16 a1); +static u16 GetDirectionForDpadKey(u16 a1); static void CB1_UpdateLinkState(void); static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); @@ -187,7 +186,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars -IWRAM_DATA static void *sUnknown_03000E0C; +IWRAM_DATA static void *sUnusedCallback; IWRAM_DATA static u8 sPlayerTradingStates[4]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything @@ -338,49 +337,53 @@ static const struct ScanlineEffectParams sFlashEffectParams = 0, }; -static u8 sub_80879D8(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_80879F8(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_80879FC(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Normal(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Ignored(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Normal_2(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 (*const gLinkPlayerEventModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +static u8 (*const gLinkPlayerMovementModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = { - sub_80879D8, - sub_80879F8, - sub_80879FC, + MovementEventModeCB_Normal, // MOVEMENT_MODE_FREE + MovementEventModeCB_Ignored, // MOVEMENT_MODE_FROZEN + MovementEventModeCB_Normal_2, // MOVEMENT_MODE_SCRIPTED }; -static u8 sub_8087A1C(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_8087A20(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_8087A88(struct LinkPlayerEventObject *, struct EventObject *, u8); - -static u8 (*const gUnknown_08339DD4[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = -{ - sub_8087A1C, - sub_8087A20, - sub_8087A20, - sub_8087A20, - sub_8087A20, - sub_8087A1C, - sub_8087A1C, - sub_8087A88, - sub_8087A88, - sub_8087A88, - sub_8087A88, +static u8 FacingHandler_DoNothing(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 FacingHandler_DpadMovement(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 FacingHandler_ForcedFacingChange(struct LinkPlayerEventObject *, struct EventObject *, u8); + +// These handlers return TRUE if the movement was scripted and successful, and FALSE otherwise. +static bool8 (*const gLinkPlayerFacingHandlers[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +{ + FacingHandler_DoNothing, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DoNothing, + FacingHandler_DoNothing, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, }; -static void sub_8087AA0(struct LinkPlayerEventObject *, struct EventObject *); -static void sub_8087AA8(struct LinkPlayerEventObject *, struct EventObject *); +static void MovementStatusHandler_EnterFreeMode(struct LinkPlayerEventObject *, struct EventObject *); +static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject *, struct EventObject *); -static void (*const gUnknown_08339E00[])(struct LinkPlayerEventObject *, struct EventObject *) = +// These handlers are run after an attempted movement. +static void (*const gMovementStatusHandler[])(struct LinkPlayerEventObject *, struct EventObject *) = { - sub_8087AA0, - sub_8087AA8, + // FALSE: + MovementStatusHandler_EnterFreeMode, + // TRUE: + MovementStatusHandler_TryAdvanceScript, }; // code void DoWhiteOut(void) { - ScriptContext2_RunNewScript(EventScript_WhiteOut); + ScriptContext2_RunNewScript(gEventScript_WhiteOut); SetMoney(&gSaveBlock1Ptr->money, GetMoney(&gSaveBlock1Ptr->money) / 2); HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); @@ -406,7 +409,7 @@ void Overworld_ResetStateAfterTeleport(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - ScriptContext2_RunNewScript(EventScript_271862); + ScriptContext2_RunNewScript(gEventScript_ResetMrBriney); } void Overworld_ResetStateAfterDigEscRope(void) @@ -1495,9 +1498,10 @@ void SetMainCallback1(MainCallback cb) gMain.callback1 = cb; } -void sub_8085E94(void *a0) +// This function is never called. +void SetUnusedCallback(void *func) { - sUnknown_03000E0C = a0; + sUnusedCallback = func; } static bool8 map_post_load_hook_exec(void) @@ -2102,7 +2106,7 @@ static void InitOverworldGraphicsRegisters(void) SetGpuReg(REG_OFFSET_WIN0V, 0xFF); SetGpuReg(REG_OFFSET_WIN1H, 0xFFFF); SetGpuReg(REG_OFFSET_WIN1V, 0xFFFF); - SetGpuReg(REG_OFFSET_BLDCNT, gUnknown_82EC7C4[1] | gUnknown_82EC7C4[2] | gUnknown_82EC7C4[3] + SetGpuReg(REG_OFFSET_BLDCNT, gOverworldBackgroundLayerFlags[1] | gOverworldBackgroundLayerFlags[2] | gOverworldBackgroundLayerFlags[3] | BLDCNT_TGT2_OBJ | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(13, 7)); InitOverworldBgs(); @@ -2249,6 +2253,9 @@ static void CB1_UpdateLinkState(void) // UpdateHeldKeyCode performs a sanity check on its input; if // sPlayerKeyInterceptCallback echoes back the argument, which is selfId, then // it'll use LINK_KEY_CODE_EMPTY instead. + // + // Note 2: There are some key intercept callbacks that treat the key as a player + // ID. It's so hacky. UpdateHeldKeyCode(sPlayerKeyInterceptCallback(selfId)); ClearAllPlayerKeys(); } @@ -2311,7 +2318,7 @@ static bool32 AreAnyPlayersInState(u16 tradingState) return FALSE; } -static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *eventScriptType) +static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *forceFacing) { const u8 *script; @@ -2320,7 +2327,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay script = TryGetTileEventScript(trainer); if (script) { - *eventScriptType = GetTypeForTileEventScript(script); + *forceFacing = GetDirectionForEventScript(script); sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isSelf) { @@ -2329,7 +2336,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay } return; } - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isSelf) @@ -2403,8 +2410,8 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay switch (key) { - case LINK_KEY_CODE_UNK_3: - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_3; + case LINK_KEY_CODE_EXIT_ROOM: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_EXITING_ROOM; break; case LINK_KEY_CODE_UNK_2: sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_2; @@ -2429,12 +2436,12 @@ static void UpdateAllLinkPlayers(u16 *keys, s32 selfId) for (i = 0; i < 4; i++) { u8 key = keys[i]; - u16 eventScriptType = EVENT_SCRIPT_NONE; + u16 setFacing = FACING_NONE; LoadTradeRoomPlayer(i, selfId, &trainer); - HandleLinkPlayerKeyInput(i, key, &trainer, &eventScriptType); + HandleLinkPlayerKeyInput(i, key, &trainer, &setFacing); if (sPlayerTradingStates[i] == PLAYER_TRADING_STATE_IDLE) - eventScriptType = sub_8087068(key); - RunPlayerEventScript(i, eventScriptType); + setFacing = GetDirectionForDpadKey(key); + SetPlayerFacingDirection(i, setFacing); } } @@ -2483,20 +2490,20 @@ static u16 KeyInterCB_ReadButtons(u32 key) return LINK_KEY_CODE_EMPTY; } -static u16 sub_8087068(u16 a1) +static u16 GetDirectionForDpadKey(u16 a1) { switch (a1) { case LINK_KEY_CODE_DPAD_RIGHT: - return 4; + return FACING_RIGHT; case LINK_KEY_CODE_DPAD_LEFT: - return 3; + return FACING_LEFT; case LINK_KEY_CODE_DPAD_UP: - return 1; + return FACING_UP; case LINK_KEY_CODE_DPAD_DOWN: - return 2; + return FACING_DOWN; default: - return 0; + return FACING_NONE; } } @@ -2577,19 +2584,19 @@ static u16 KeyInterCB_DeferToSendQueue(u32 key) return retVal; } -static u16 sub_8087164(u32 key) +static u16 KeyInterCB_DoNothingAndKeepAlive(u32 key) { CheckRfuKeepAliveTimer(); return LINK_KEY_CODE_EMPTY; } -static u16 sub_8087170(u32 linkPlayerId) +static u16 sub_8087170(u32 keyOrPlayerId) { - if (sPlayerTradingStates[linkPlayerId] == PLAYER_TRADING_STATE_UNK_2) + if (sPlayerTradingStates[keyOrPlayerId] == PLAYER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { - SetKeyInterceptCallback(sub_8087164); + SetKeyInterceptCallback(KeyInterCB_DoNothingAndKeepAlive); return LINK_KEY_CODE_UNK_7; } else @@ -2610,41 +2617,45 @@ static u16 sub_80871AC(u32 a1) return LINK_KEY_CODE_UNK_2; } -static u16 sub_80871C0(u32 a1) +static u16 KeyInterCB_SendNothing(u32 key) { return LINK_KEY_CODE_EMPTY; } -static u16 sub_80871C4(u32 a1) +static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) { - if (sPlayerTradingStates[a1] != PLAYER_TRADING_STATE_UNK_3) + // keyOrPlayerId could be any keycode. This callback does no sanity checking + // on the size of the key. It's assuming that it is being called from + // CB1_UpdateLinkState. + if (sPlayerTradingStates[keyOrPlayerId] != PLAYER_TRADING_STATE_EXITING_ROOM) CheckRfuKeepAliveTimer(); - if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(EventScript_277513); - SetKeyInterceptCallback(sub_80871C0); + ScriptContext1_SetupScript(gEventScript_DoLinkRoomExit); + SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; } -static u16 sub_80871FC(u32 a1) +static u16 KeyInterCB_SendExitRoomKey(u32 key) { - SetKeyInterceptCallback(sub_80871C4); - return 23; + SetKeyInterceptCallback(KeyInterCB_WaitForPlayersToExit); + return LINK_KEY_CODE_EXIT_ROOM; } -static u16 sub_8087210(u32 a1) +// Duplicate function. +static u16 KeyInterCB_SendNothing_2(u32 key) { return LINK_KEY_CODE_EMPTY; } u32 sub_8087214(void) { - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == sub_8087164 && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; @@ -2653,7 +2664,7 @@ u32 sub_8087214(void) bool32 sub_808727C(void) { - return AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3); + return AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) @@ -2668,15 +2679,17 @@ u16 sub_808729C(void) return 0; } -u16 sub_80872B0(void) +// The exit room key will be sent at the next opportunity. +// The return value is meaningless. +u16 QueueExitLinkRoomKey(void) { - SetKeyInterceptCallback(sub_80871FC); + SetKeyInterceptCallback(KeyInterCB_SendExitRoomKey); return 0; } u16 sub_80872C4(void) { - SetKeyInterceptCallback(sub_8087210); + SetKeyInterceptCallback(KeyInterCB_SendNothing_2); return 0; } @@ -2686,7 +2699,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo trainer->playerId = linkPlayerId; trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; - trainer->c = gLinkPlayerEventObjects[linkPlayerId].mode; + trainer->c = gLinkPlayerEventObjects[linkPlayerId].movementMode; trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); GetLinkPlayerCoords(linkPlayerId, &x, &y); trainer->pos.x = x; @@ -2698,7 +2711,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo static bool32 sub_8087340(struct TradeRoomPlayer *player) { u8 v1 = player->c; - if (v1 == 2 || v1 == 0) + if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; @@ -2708,7 +2721,7 @@ static bool32 sub_8087340(struct TradeRoomPlayer *player) static bool32 sub_8087340_2(struct TradeRoomPlayer *player) { u8 v1 = player->c; - if (v1 == 2 || v1 == 0) + if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; @@ -2716,14 +2729,14 @@ static bool32 sub_8087340_2(struct TradeRoomPlayer *player) static u8 *TryGetTileEventScript(struct TradeRoomPlayer *player) { - if (player->c != 2) - return 0; + if (player->c != MOVEMENT_MODE_SCRIPTED) + return FACING_NONE; return GetCoordEventScriptAtMapPosition(&player->pos); } static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) { - if (player->c != 2 && player->c != 0) + if (player->c != MOVEMENT_MODE_SCRIPTED && player->c != MOVEMENT_MODE_FREE) return FALSE; else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) return FALSE; @@ -2738,8 +2751,8 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) struct MapPosition otherPlayerPos; u8 linkPlayerId; - if (player->c && player->c != 2) - return 0; + if (player->c != MOVEMENT_MODE_FREE && player->c != MOVEMENT_MODE_SCRIPTED) + return FACING_NONE; otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; @@ -2750,46 +2763,48 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) if (linkPlayerId != 4) { if (!player->isSelf) - return EventScript_TradeRoom_TooBusyToNotice; + return gEventScript_TradeRoom_TooBusyToNotice; else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) - return EventScript_TradeRoom_TooBusyToNotice; + return gEventScript_TradeRoom_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) - return EventScript_TradeRoom_ReadTrainerCard_NoColor; + return gEventScript_TradeRoom_ReadTrainerCard_NoColor; else - return EventScript_TradeRoom_ReadTrainerCard_Normal; + return gEventScript_TradeRoom_ReadTrainerCard_Normal; } return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); } -static u16 GetTypeForTileEventScript(const u8 *script) -{ - if (script == gUnknown_08277388) - return 10; - else if (script == gUnknown_082773A3) - return 9; - else if (script == gUnknown_082773BE) - return 10; - else if (script == gUnknown_082773D9) - return 9; - else if (script == gUnknown_0827741D) - return 10; - else if (script == gUnknown_08277432) - return 9; - else if (script == gUnknown_08277447) - return 10; - else if (script == gUnknown_0827745C) - return 9; - else if (script == gUnknown_08277374) - return 10; - else if (script == gUnknown_0827737E) - return 9; - else if (script == gUnknown_082773F5) - return 10; - else if (script == gUnknown_082773FF) - return 9; +// This returns which direction to force the player to look when one of +// these event scripts runs. +static u16 GetDirectionForEventScript(const u8 *script) +{ + if (script == gEventScript_DoubleBattleColosseum_PlayerSpot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot2) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot3) + return FACING_FORCED_LEFT; + else if (script == gEventScript_RecordCenter_Spot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_RecordCenter_Spot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_RecordCenter_Spot2) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_RecordCenter_Spot3) + return FACING_FORCED_LEFT; + else if (script == gEventScript_SingleBattleColosseum_PlayerSpot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_SingleBattleColosseum_PlayerSpot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_TradeCenter_Chair0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_TradeCenter_Chair1) + return FACING_FORCED_LEFT; else - return 0; + return FACING_NONE; } static void sub_8087510(void) @@ -2827,7 +2842,7 @@ static void InitMenuBasedScript(const u8 *script) static void sub_8087584(void) { - ScriptContext1_SetupScript(gUnknown_08277509); + ScriptContext1_SetupScript(gEventScript_TerminateLink); ScriptContext2_Enable(); } @@ -2927,7 +2942,7 @@ static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4) linkPlayerEventObj->active = 1; linkPlayerEventObj->linkPlayerId = linkPlayerId; linkPlayerEventObj->eventObjId = eventObjId; - linkPlayerEventObj->mode = 0; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FREE; eventObj->active = 1; eventObj->singleMovementActive = a4; @@ -3012,7 +3027,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) for (i = 0; i < 4; i++) { if (gLinkPlayerEventObjects[i].active - && (gLinkPlayerEventObjects[i].mode == 0 || gLinkPlayerEventObjects[i].mode == 2)) + && (gLinkPlayerEventObjects[i].movementMode == 0 || gLinkPlayerEventObjects[i].movementMode == 2)) { struct EventObject *eventObj = &gEventObjects[gLinkPlayerEventObjects[i].eventObjId]; if (eventObj->currentCoords.x == x && eventObj->currentCoords.y == y) @@ -3022,7 +3037,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) return 4; } -static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) +static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) { struct LinkPlayerEventObject *linkPlayerEventObj = &gLinkPlayerEventObjects[linkPlayerId]; u8 eventObjId = linkPlayerEventObj->eventObjId; @@ -3030,94 +3045,108 @@ static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) if (linkPlayerEventObj->active) { - if (eventScriptType > 10) + if (facing > FACING_FORCED_RIGHT) eventObj->triggerGroundEffectsOnMove = 1; - else - gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, eventScriptType)](linkPlayerEventObj, eventObj); + else { + // This is a hack to split this code onto two separate lines, without declaring a local variable. + // C++ style inline variables would be nice here. + #define TEMP gLinkPlayerMovementModes[linkPlayerEventObj->movementMode](linkPlayerEventObj, eventObj, facing) + + gMovementStatusHandler[TEMP](linkPlayerEventObj, eventObj); + + // Clean up the hack. + #undef TEMP + } } } -static u8 sub_80879D8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) + +static u8 MovementEventModeCB_Normal(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return gUnknown_08339DD4[a3](linkPlayerEventObj, eventObj, a3); + return gLinkPlayerFacingHandlers[a3](linkPlayerEventObj, eventObj, a3); } -static u8 sub_80879F8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static u8 MovementEventModeCB_Ignored(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return 1; + return FACING_UP; } -static u8 sub_80879FC(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +// Duplicate Function +static u8 MovementEventModeCB_Normal_2(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return gUnknown_08339DD4[a3](linkPlayerEventObj, eventObj, a3); + return gLinkPlayerFacingHandlers[a3](linkPlayerEventObj, eventObj, a3); } -static u8 sub_8087A1C(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_DoNothing(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return 0; + return FALSE; } -static u8 sub_8087A20(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_DpadMovement(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { s16 x, y; - eventObj->range.as_byte = npc_something3(a3, eventObj->range.as_byte); + eventObj->range.as_byte = FlipVerticalAndClearForced(a3, eventObj->range.as_byte); EventObjectMoveDestCoords(eventObj, eventObj->range.as_byte, &x, &y); if (LinkPlayerDetectCollision(linkPlayerEventObj->eventObjId, eventObj->range.as_byte, x, y)) { - return 0; + return FALSE; } else { eventObj->directionSequenceIndex = 16; ShiftEventObjectCoords(eventObj, x, y); EventObjectUpdateZCoord(eventObj); - return 1; + return TRUE; } } -static u8 sub_8087A88(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_ForcedFacingChange(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - eventObj->range.as_byte = npc_something3(a3, eventObj->range.as_byte); - return 0; + eventObj->range.as_byte = FlipVerticalAndClearForced(a3, eventObj->range.as_byte); + return FALSE; } -static void sub_8087AA0(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) +// This is called every time a free movement happens. Most of the time it's a No-Op. +static void MovementStatusHandler_EnterFreeMode(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) { - linkPlayerEventObj->mode = 0; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FREE; } -static void sub_8087AA8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) +static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) { eventObj->directionSequenceIndex--; - linkPlayerEventObj->mode = 1; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FROZEN; MoveCoords(eventObj->range.as_byte, &eventObj->initialCoords.x, &eventObj->initialCoords.y); if (!eventObj->directionSequenceIndex) { ShiftStillEventObjectCoords(eventObj); - linkPlayerEventObj->mode = 2; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_SCRIPTED; } } -static u8 npc_something3(u8 a1, u8 a2) +// Flip Up/Down facing codes. If newFacing doesn't specify a direction, default +// to oldFacing. Note that this clears also the "FORCED" part of the facing code, +// even for Left/Right codes. +static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { - switch (a1 - 1) + switch (newFacing - 1) { - case 0: - case 6: - return 2; - case 1: - case 7: - return 1; - case 2: - case 8: - return 3; - case 3: - case 9: - return 4; + case (FACING_UP - 1): + case (FACING_FORCED_UP - 1): + return FACING_DOWN; + case (FACING_DOWN - 1): + case (FACING_FORCED_DOWN - 1): + return FACING_UP; + case (FACING_LEFT - 1): + case (FACING_FORCED_LEFT - 1): + return FACING_LEFT; + case (FACING_RIGHT - 1): + case (FACING_FORCED_RIGHT - 1): + return FACING_RIGHT; } - return a2; + return oldFacing; } static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y) @@ -3177,7 +3206,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(eventObj->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(eventObj->previousElevation); - if (!linkPlayerEventObj->mode) + if (!linkPlayerEventObj->movementMode != MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(eventObj->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(eventObj->range.as_byte)); diff --git a/src/party_menu.c b/src/party_menu.c index 15b5d24d8..7cf2303d4 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6513,7 +6513,7 @@ static void sub_81B8474(u8 taskId) gTasks[taskId].func = sub_81B8104; } -void sub_81B8518(u8 unused) +void InitChooseHalfPartyForBattle(u8 unused) { sub_81B8558(); InitPartyMenu(4, 0, 0, 0, 0, sub_81B1370, gMain.savedCallback); diff --git a/src/record_mixing.c b/src/record_mixing.c index 189033685..4c0ada830 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -106,7 +106,7 @@ static EWRAM_DATA union PlayerRecords *sSentRecord = NULL; // Static ROM declarations static void Task_RecordMixing_Main(u8 taskId); -static void sub_80E7324(u8 taskId); +static void Task_MixingRecordsRecv(u8 taskId); static void Task_SendPacket(u8 taskId); static void Task_CopyReceiveBuffer(u8 taskId); static void Task_SendPacket_SwitchToReceive(u8 taskId); @@ -120,7 +120,7 @@ static void ReceiveLilycoveLadyData(LilycoveLady *, size_t, u8); static void sub_80E7B2C(const u8 *); static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *); static void ReceiveGiftItem(u16 *item, u8 which); -static void sub_80E7FF8(u8 taskId); +static void Task_DoRecordMixing(u8 taskId); static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1); static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2); static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2); @@ -170,7 +170,8 @@ static const u8 gUnknown_0858CFBE[3][4] = #define BUFFER_CHUNK_SIZE 200 -void sub_80E6BE8(void) +// Note: VAR_0x8005 contains the spotId. +void EventScript_RecordMixingPlayerSpotTriggered(void) { sub_80B37D4(Task_RecordMixing_Main); } @@ -313,6 +314,7 @@ static void Task_RecordMixing_SoundEffect(u8 taskId) #define tState data[0] #define tSndEffTaskId data[15] +// Note: Currently, special var 8005 contains the player's spot id. static void Task_RecordMixing_Main(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -322,16 +324,16 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - sub_8009628(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); CreateRecordMixingSprite(); tState = 1; - data[10] = CreateTask(sub_80E7324, 80); + data[10] = CreateTask(Task_MixingRecordsRecv, 80); tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 81); break; - case 1: // wait for sub_80E7324 + case 1: // wait for Task_MixingRecordsRecv if (!gTasks[data[10]].isActive) { tState = 2; @@ -341,11 +343,11 @@ static void Task_RecordMixing_Main(u8 taskId) } break; case 2: - data[10] = CreateTask(sub_80E7FF8, 10); + data[10] = CreateTask(Task_DoRecordMixing, 10); tState = 3; PlaySE(SE_W226); break; - case 3: // wait for sub_80E7FF8 + case 3: // wait for Task_DoRecordMixing if (!gTasks[data[10]].isActive) { tState = 4; @@ -381,7 +383,7 @@ static void Task_RecordMixing_Main(u8 taskId) #undef tState #undef tSndEffTaskId -static void sub_80E7324(u8 taskId) +static void Task_MixingRecordsRecv(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -405,7 +407,7 @@ static void sub_80E7324(u8 taskId) u8 players = GetLinkPlayerCount_2(); if (IsLinkMaster() == TRUE) { - if (players == sub_800AA48()) + if (players == GetSavedPlayerCount()) { PlaySE(SE_PIN); task->data[0] = 201; @@ -420,14 +422,15 @@ static void sub_80E7324(u8 taskId) } break; case 201: - if (sub_800AA48() == GetLinkPlayerCount_2() && ++task->data[12] > (GetLinkPlayerCount_2() * 30)) + // We're the link master. Delay for 30 frames per connected player. + if (GetSavedPlayerCount() == GetLinkPlayerCount_2() && ++task->data[12] > (GetLinkPlayerCount_2() * 30)) { - sub_800A620(); + CheckShouldAdvanceLinkState(); task->data[0] = 1; } break; case 301: - if (sub_800AA48() == GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) task->data[0] = 1; break; case 400: // wait 20 frames @@ -470,6 +473,7 @@ static void sub_80E7324(u8 taskId) StorePtrInTaskData(sReceivedRecords, (u16 *)&gTasks[subTaskId].data[5]); sRecordStructSize = sizeof(struct PlayerRecordsEmerald); } + // Note: This task is destroyed by Task_CopyReceiveBuffer when it's done. } break; case 5: // wait 60 frames @@ -938,7 +942,7 @@ static void ReceiveGiftItem(u16 *item, u8 which) } } -static void sub_80E7FF8(u8 taskId) +static void Task_DoRecordMixing(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -953,20 +957,22 @@ static void sub_80E7FF8(u8 taskId) else task->data[0] = 6; break; + + // Mixing Ruby/Sapphire records. case 2: SetContinueGameWarpStatusToDynamicWarp(); - sub_8153430(); + FullSaveGame(); task->data[0] ++; break; case 3: - if (sub_8153474()) + if (CheckSaveFile()) { ClearContinueGameWarpStatus2(); task->data[0] = 4; task->data[1] = 0; } break; - case 4: + case 4: // Wait 10 frames if (++task->data[1] > 10) { sub_800AC34(); @@ -974,22 +980,24 @@ static void sub_80E7FF8(u8 taskId) } break; case 5: - if (gReceivedRemoteLinkPlayers == 0) + if (gReceivedRemoteLinkPlayers == FALSE) DestroyTask(taskId); break; + + // Mixing Emerald/FireRed/LeafGreen records. case 6: - if (!sub_801048C(0)) + if (!sub_801048C(FALSE)) { CreateTask(sub_8153688, 5); task->data[0] ++; } break; - case 7: + case 7: // wait for sub_8153688 to finish. if (!FuncIsActiveTask(sub_8153688)) { if (gWirelessCommType) { - sub_801048C(1); + sub_801048C(TRUE); task->data[0] = 8; } else diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 57fb2c898..8f95e6719 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1697,7 +1697,7 @@ void sub_801440C(u8 taskId) case 81: CleanupOverworldWindowsAndTilemaps(); gMain.savedCallback = sub_801AC54; - sub_81B8518(3); + InitChooseHalfPartyForBattle(3); break; case 1: CleanupOverworldWindowsAndTilemaps(); diff --git a/src/save.c b/src/save.c index a22e20f0b..d07e59766 100644 --- a/src/save.c +++ b/src/save.c @@ -768,7 +768,7 @@ u8 sub_8153408(void) // trade.s save return 0; } -u8 sub_8153430(void) +u8 FullSaveGame(void) { if (gFlashMemoryPresent != TRUE) return 1; @@ -780,7 +780,7 @@ u8 sub_8153430(void) return 0; } -bool8 sub_8153474(void) +bool8 CheckSaveFile(void) { u8 retVal = FALSE; u16 val = ++gUnknown_03006208; diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index cade00b50..f971d8487 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -29,6 +29,7 @@ #include "constants/items.h" #include "constants/species.h" #include "constants/vars.h" +#include "constants/battle_frontier.h" extern const u16 gEventObjectPalette8[]; extern const u16 gEventObjectPalette17[]; @@ -40,7 +41,7 @@ static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; static void sub_80F8EE8(u8 taskId); static void sub_80F9088(u8 taskId); -static void sub_80F9460(void); +static void CB2_ReturnFromChooseHalfParty(void); static void sub_80F94B8(void); void SetContestTrainerGfxIds(void) @@ -640,22 +641,24 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); } -void sub_80F9438(void) +// Note: When control returns to the event script, gSpecialVar_Result be +// TRUE if the party selection was successful. +void EventScript_ChooseHalfPartyForBattle(void) { - gMain.savedCallback = sub_80F9460; - VarSet(VAR_FRONTIER_FACILITY, 9); // this isn't a valid frontier facility id (??) - sub_81B8518(0); + gMain.savedCallback = CB2_ReturnFromChooseHalfParty; + VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM); + InitChooseHalfPartyForBattle(0); } -static void sub_80F9460(void) +static void CB2_ReturnFromChooseHalfParty(void) { switch (gSelectedOrderFromParty[0]) { case 0: - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; break; default: - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; break; } @@ -665,7 +668,7 @@ static void sub_80F9460(void) void sub_80F9490(void) { gMain.savedCallback = sub_80F94B8; - sub_81B8518(gSpecialVar_0x8004 + 1); + InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); } static void sub_80F94B8(void) diff --git a/src/start_menu.c b/src/start_menu.c index 4b41933ae..dfe3b08be 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1265,11 +1265,11 @@ static void sub_80A0550(u8 taskId) break; case 1: SetContinueGameWarpStatusToDynamicWarp(); - sub_8153430(); + FullSaveGame(); *step = 2; break; case 2: - if (sub_8153474()) + if (CheckSaveFile()) { ClearContinueGameWarpStatus2(); *step = 3; diff --git a/src/trade.c b/src/trade.c index 2cd7cf2d9..db5e6a1a3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1507,13 +1507,13 @@ static void sub_80773D0(void) } break; case 3: - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (IsLinkMaster()) { if (++gUnknown_0203229C->unk_A8 > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gMain.state++; } } @@ -4099,11 +4099,11 @@ void sub_807AE50(void) case 3: if (IsLinkMaster()) { - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (++gUnknown_020322A0->timer > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gMain.state++; } } -- cgit v1.2.3 From 327de0283df467efbd819e192c54e6224684cb38 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 21:16:12 -0500 Subject: Adjust constants returned by FlipVerticalAndClearForced --- src/overworld.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/overworld.c b/src/overworld.c index 671d3412f..b5b1b04a6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3135,16 +3135,16 @@ static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { case (FACING_UP - 1): case (FACING_FORCED_UP - 1): - return FACING_DOWN; + return DIR_NORTH; case (FACING_DOWN - 1): case (FACING_FORCED_DOWN - 1): - return FACING_UP; + return DIR_SOUTH; case (FACING_LEFT - 1): case (FACING_FORCED_LEFT - 1): - return FACING_LEFT; + return DIR_WEST; case (FACING_RIGHT - 1): case (FACING_FORCED_RIGHT - 1): - return FACING_RIGHT; + return DIR_EAST; } return oldFacing; } -- cgit v1.2.3 From d979ac3bf3924051de8bb4154e8398083535eabb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Feb 2019 00:05:20 -0500 Subject: Document main_menu state machine, name window constants The new names for the constants (and newly named functions) give a much better understanding of what the window system is trying to do. --- src/battle_controller_link_partner.c | 10 +- src/battle_controller_recorded_opponent.c | 6 +- src/battle_controller_safari.c | 8 +- src/battle_controller_wally.c | 8 +- src/battle_dome.c | 2 +- src/battle_factory_screen.c | 48 ++++---- src/battle_pyramid_bag.c | 18 +-- src/battle_records.c | 6 +- src/battle_tower.c | 6 +- src/berry_blender.c | 4 +- src/berry_fix_program.c | 4 +- src/berry_tag_screen.c | 14 +-- src/cable_club.c | 4 +- src/clear_save_data_screen.c | 4 +- src/coins.c | 4 +- src/contest.c | 14 +-- src/contest_link_80F57C4.c | 2 +- src/contest_painting.c | 2 +- src/credits.c | 2 +- src/daycare.c | 4 +- src/decoration.c | 30 ++--- src/diploma.c | 2 +- src/egg_hatch.c | 4 +- src/field_message_box.c | 2 +- src/field_player_avatar.c | 10 +- src/field_region_map.c | 4 +- src/field_specials.c | 4 +- src/frontier_pass.c | 8 +- src/frontier_util.c | 20 ++-- src/hall_of_fame.c | 10 +- src/item_menu.c | 28 ++--- src/item_use.c | 4 +- src/learn_move.c | 6 +- src/list_menu.c | 4 +- src/mail.c | 4 +- src/main_menu.c | 189 +++++++++++++++++++++++++----- src/map_name_popup.c | 4 +- src/menu.c | 51 ++++---- src/money.c | 2 +- src/mystery_event_menu.c | 2 +- src/naming_screen.c | 8 +- src/option_menu.c | 4 +- src/party_menu.c | 6 +- src/player_pc.c | 10 +- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 2 +- src/pokedex.c | 8 +- src/pokemon_storage_system.c | 26 ++-- src/pokemon_summary_screen.c | 16 +-- src/record_mixing.c | 2 +- src/region_map.c | 4 +- src/rom_8011DC0.c | 12 +- src/roulette.c | 8 +- src/save_failed_screen.c | 16 +-- src/scrcmd.c | 4 +- src/script_menu.c | 12 +- src/secret_base.c | 14 +-- src/shop.c | 4 +- src/slot_machine.c | 14 +-- src/start_menu.c | 12 +- src/starter_choose.c | 6 +- src/trade.c | 18 +-- src/trainer_card.c | 8 +- src/trainer_hill.c | 2 +- src/window.c | 8 +- 65 files changed, 462 insertions(+), 324 deletions(-) (limited to 'src') diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 19d39609f..4eb122d05 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -90,7 +90,7 @@ static void LinkPartnerHandleBattleAnimation(void); static void LinkPartnerHandleLinkStandbyMsg(void); static void LinkPartnerHandleResetActionMoveSelection(void); static void LinkPartnerHandleCmd55(void); -static void nullsub_113(void); +static void SpriteCB_Null3(void); static void LinkPartnerBufferRunCommand(void); static void LinkPartnerBufferExecCompleted(void); @@ -161,10 +161,10 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandleLinkStandbyMsg, LinkPartnerHandleResetActionMoveSelection, LinkPartnerHandleCmd55, - nullsub_113 + SpriteCB_Null3 }; -static void nullsub_112(void) +static void SpriteCB_Null2(void) { } @@ -1564,7 +1564,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; gBattleSpritesDataPtr->animationData->field_9_x1 = 1; - gBattlerControllerFuncs[gActiveBattler] = nullsub_112; + gBattlerControllerFuncs[gActiveBattler] = SpriteCB_Null2; } static void sub_814DCCC(u8 taskId) @@ -1687,6 +1687,6 @@ static void LinkPartnerHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_113(void) +static void SpriteCB_Null3(void) { } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 911eb6ce5..25e59172d 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -93,7 +93,7 @@ static void RecordedOpponentHandleBattleAnimation(void); static void RecordedOpponentHandleLinkStandbyMsg(void); static void RecordedOpponentHandleResetActionMoveSelection(void); static void RecordedOpponentHandleCmd55(void); -static void nullsub_119(void); +static void SpriteCB_Null9(void); static void RecordedOpponentBufferRunCommand(void); static void RecordedOpponentBufferExecCompleted(void); @@ -165,7 +165,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandleLinkStandbyMsg, RecordedOpponentHandleResetActionMoveSelection, RecordedOpponentHandleCmd55, - nullsub_119 + SpriteCB_Null9 }; static void nullsub_70(void) @@ -1791,6 +1791,6 @@ static void RecordedOpponentHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_119(void) +static void SpriteCB_Null9(void) { } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 54ba04ab4..b7223844f 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -84,7 +84,7 @@ static void SafariHandleBattleAnimation(void); static void SafariHandleLinkStandbyMsg(void); static void SafariHandleResetActionMoveSelection(void); static void SafariHandleCmd55(void); -static void nullsub_115(void); +static void SpriteCB_Null5(void); static void SafariBufferRunCommand(void); static void SafariBufferExecCompleted(void); @@ -148,10 +148,10 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandleLinkStandbyMsg, SafariHandleResetActionMoveSelection, SafariHandleCmd55, - nullsub_115 + SpriteCB_Null5 }; -static void nullsub_114(void) +static void SpriteCB_Null4(void) { } @@ -688,6 +688,6 @@ static void SafariHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_81595E4; } -static void nullsub_115(void) +static void SpriteCB_Null5(void) { } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index d891b96b6..a196f8a44 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -92,7 +92,7 @@ static void WallyHandleBattleAnimation(void); static void WallyHandleLinkStandbyMsg(void); static void WallyHandleResetActionMoveSelection(void); static void WallyHandleCmd55(void); -static void nullsub_118(void); +static void SpriteCB_Null8(void); static void WallyBufferRunCommand(void); static void WallyBufferExecCompleted(void); @@ -161,10 +161,10 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandleLinkStandbyMsg, WallyHandleResetActionMoveSelection, WallyHandleCmd55, - nullsub_118 + SpriteCB_Null8 }; -static void nullsub_117(void) +static void SpriteCB_Null7(void) { } @@ -1559,6 +1559,6 @@ static void WallyHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_118(void) +static void SpriteCB_Null8(void) { } diff --git a/src/battle_dome.c b/src/battle_dome.c index bfede1b28..2ec9f8f3d 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -3794,7 +3794,7 @@ static void sub_8190CD4(u8 taskId) for (i = windowId; i < windowId + 9; i++) { CopyWindowToVram(i, 2); - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } gTasks[taskId].data[0] = 3; break; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index bb9fe8e28..6d7ec3c45 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1786,14 +1786,14 @@ static void sub_819B958(u8 windowId) { gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } static void Select_PrintRentalPkmnString(void) { - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -1804,7 +1804,7 @@ static void Select_PrintMonSpecies(void) u8 x; u8 monId = sFactorySelectScreen->cursorPos; - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); @@ -1816,7 +1816,7 @@ static void Select_PrintSelectMonString(void) { const u8 *str = NULL; - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; else if (sFactorySelectScreen->selectingMonsState == 2) @@ -1832,7 +1832,7 @@ static void Select_PrintSelectMonString(void) static void Select_PrintCantSelectSameMon(void) { - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -1842,7 +1842,7 @@ static void Select_PrintMenuOptions(void) u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; PutWindowTilemap(3); - FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary); if (selectedId != 0) AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect); @@ -1856,7 +1856,7 @@ static void Select_PrintMenuOptions(void) static void Select_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, 0); + FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2); CopyWindowToVram(4, 3); @@ -1924,7 +1924,7 @@ static void Select_PrintMonCategory(void) if (monId < SELECTABLE_MONS_COUNT) { PutWindowTilemap(5); - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); @@ -2873,7 +2873,7 @@ static void sub_819D588(u8 taskId) case 3: if (!gPaletteFade.active) { - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(5, 2); if (sFactorySwapScreen->inEnemyScreen == TRUE) { @@ -3002,7 +3002,7 @@ static void sub_819D770(u8 taskId) gTasks[taskId].data[0]++; break; case 6: - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; break; @@ -3546,7 +3546,7 @@ static void sub_819EA64(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } @@ -3554,14 +3554,14 @@ static void sub_819EA64(u8 windowId) static void sub_819EAC0(void) { PutWindowTilemap(1); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(1, 2); } static void sub_819EADC(void) { PutWindowTilemap(7); - FillWindowPixelBuffer(7, 0); + FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(7, 2); } @@ -3569,13 +3569,13 @@ static void sub_819EAF8(void) { sub_819EAC0(); PutWindowTilemap(5); - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(5, 2); } static void Swap_PrintPkmnSwap(void) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -3585,7 +3585,7 @@ static void Swap_PrintMonSpecies(void) u16 species; u8 x; - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(1, 2); @@ -3606,7 +3606,7 @@ static void Swap_PrintMonSpecies(void) static void Swap_PrintOnInfoWindow(const u8 *str) { - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -3614,7 +3614,7 @@ static void Swap_PrintOnInfoWindow(const u8 *str) static void Swap_PrintMenuOptions(void) { PutWindowTilemap(3); - FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2); AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap); AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose); @@ -3624,7 +3624,7 @@ static void Swap_PrintMenuOptions(void) static void Swap_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, 0); + FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3); CopyWindowToVram(4, 3); @@ -3638,7 +3638,7 @@ static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) static void Swap_PrintActionStrings(void) { - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3652,7 +3652,7 @@ static void Swap_PrintActionStrings(void) static void Swap_PrintActionStrings2(void) { - FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3693,7 +3693,7 @@ static void Swap_PrintMonSpecies2(void) LoadPalette(pal, 0xF0, 0xA); PutWindowTilemap(7); - FillWindowPixelBuffer(7, 0); + FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(7, 3); @@ -3745,7 +3745,7 @@ static void Swap_PrintMonCategory(void) u8 x; u8 monId = sFactorySwapScreen->cursorPos; - FillWindowPixelBuffer(8, 0); + FillWindowPixelBuffer(8, PIXEL_BUFFER_TRANSPARENT); if (monId > 2) { CopyWindowToVram(8, 2); @@ -3940,7 +3940,7 @@ static void Task_SwapCantHaveSameMons(u8 taskId) case 2: if (sFactorySwapScreen->unk30 != TRUE) { - FillWindowPixelBuffer(5, 0); + FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; } diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 1f0672dcb..3601c5ad2 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -651,7 +651,7 @@ static void PrintItemDescription(s32 listMenuId) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); desc = gStringVar4; } - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); } @@ -911,7 +911,7 @@ static void sub_81C5D20(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); if (gPyramidBagResources->menuActionsCount == 1) sub_81C5EAC(sub_81C6D24(0)); @@ -1048,7 +1048,7 @@ static void BagAction_UseOnField(u8 taskId) else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) { sub_81C61A8(); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); schedule_bg_copy_tilemap_to_vram(0); ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); } @@ -1086,7 +1086,7 @@ static void BagAction_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6404(); gTasks[taskId].func = sub_81C64B4; @@ -1100,7 +1100,7 @@ static void sub_81C6350(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6DAC(taskId, &sYesNoTossFuncions); } @@ -1168,7 +1168,7 @@ static void TossItem(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); gTasks[taskId].func = sub_81C65CC; } @@ -1265,7 +1265,7 @@ static void Task_BeginItemSwap(u8 taskId) ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C5A98(data[0], 1); sub_81C704C(data[1]); @@ -1395,7 +1395,7 @@ static void sub_81C6BD8(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); PutWindowTilemap(1); @@ -1456,7 +1456,7 @@ static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable) void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)) { - FillWindowPixelBuffer(2, 0x11); + FillWindowPixelBuffer(2, PIXEL_BUFFER_WHITE); DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } diff --git a/src/battle_records.c b/src/battle_records.c index f9c40d8de..2ec0ee91e 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -321,7 +321,7 @@ void ShowLinkBattleRecords(void) gRecordsWindowId = AddWindow(&sLinkBattleRecordsWindow); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -342,7 +342,7 @@ void ShowLinkBattleRecords(void) void RemoveRecordsWindow(void) { - sub_819746C(gRecordsWindowId, FALSE); + ClearWindowAndBorder(gRecordsWindowId, FALSE); RemoveWindow(gRecordsWindowId); } @@ -383,7 +383,7 @@ static void Task_ExitTrainerHillRecords(u8 taskId) static void RemoveTrainerHillRecordsWindow(u8 windowId) { - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(windowId); CopyWindowToVram(windowId, 2); RemoveWindow(windowId); diff --git a/src/battle_tower.c b/src/battle_tower.c index fbb77789e..35c72f613 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -51,7 +51,7 @@ static void AwardBattleTowerRibbons(void); static void SaveBattleTowerProgress(void); static void sub_8163914(void); static void nullsub_61(void); -static void nullsub_116(void); +static void SpriteCB_Null6(void); static void sub_81642A0(void); static void sub_8164828(void); static void sub_8164B74(void); @@ -1061,7 +1061,7 @@ static void (* const gUnknown_085DF96C[])(void) = SaveBattleTowerProgress, sub_8163914, nullsub_61, - nullsub_116, + SpriteCB_Null6, sub_81642A0, sub_8164828, sub_8164B74, @@ -2437,7 +2437,7 @@ static void nullsub_61(void) } -static void nullsub_116(void) +static void SpriteCB_Null6(void) { } diff --git a/src/berry_blender.c b/src/berry_blender.c index f2e3c7d14..3075cc935 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -945,7 +945,7 @@ static void InitBerryBlenderWindows(void) DeactivateAllTextPrinters(); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); sub_81978B0(0xE0); @@ -3538,7 +3538,7 @@ void ShowBerryBlenderRecordWindow(void) winTemplate = sBlenderRecordWindowTemplate; gRecordsWindowId = AddWindow(&winTemplate); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, 0); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 3631c083a..7e72a9f3b 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -226,8 +226,8 @@ static void berry_fix_gpu_set(void) DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); - FillWindowPixelBuffer(2, 0); - FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); FillWindowPixelBuffer(0, 0xAA); width = GetStringWidth(0, sUnknown_08617E9B, 0); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 6e968fc0a..6c08611ad 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -381,7 +381,7 @@ static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s static void AddBerryTagTextToBg0(void) { memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); - FillWindowPixelBuffer(WIN_BERRY_TAG, 0xFF); + FillWindowPixelBuffer(WIN_BERRY_TAG, PIXEL_BUFFER_UNKNOWN); PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); PutWindowTilemap(WIN_BERRY_TAG); schedule_bg_copy_tilemap_to_vram(0); @@ -598,7 +598,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); break; case 0x40: PrintBerryNumberAndName(); @@ -608,7 +608,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0x60: - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); break; case 0x70: PrintBerrySize(); @@ -620,7 +620,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0xA0: - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); break; case 0xB0: PrintBerryDescription1(); @@ -635,7 +635,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); break; case 0x40: PrintBerryDescription2(); @@ -647,7 +647,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0x70: - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); break; case 0x80: PrintBerryFirmness(); @@ -660,7 +660,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0xB0: - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); break; case 0xC0: PrintBerryNumberAndName(); diff --git a/src/cable_club.c b/src/cable_club.c index 303b0d016..f8137fd8f 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -92,7 +92,9 @@ static void sub_80B23B0(u16 windowId, u32 value) static void sub_80B241C(u16 windowId) { - sub_819746C(windowId, FALSE); + // Following this call with a copy-to-vram with mode 3 is identical to + // calling ClearWindowAndBorder(windowId, TRUE). + ClearWindowAndBorder(windowId, FALSE); CopyWindowToVram(windowId, 3); } diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 72d0daf55..6a89a0533 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - FillWindowPixelBuffer(0, 17); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0); gTasks[taskId].func = Task_ClearSaveData; break; @@ -203,7 +203,7 @@ static void InitClearSaveDataScreenWindows(void) { InitWindows(sClearSaveTextWindow); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); LoadWindowGfx(0, 0, 2, 224); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); } diff --git a/src/coins.c b/src/coins.c index 967eb92ac..6ad80f80c 100644 --- a/src/coins.c +++ b/src/coins.c @@ -27,7 +27,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) struct WindowTemplate template; SetWindowTemplateFields(&template, 0, x, y, 8, 2, 0xF, 0x141); sCoinsWindowId = AddWindow(&template); - FillWindowPixelBuffer(sCoinsWindowId, 0); + FillWindowPixelBuffer(sCoinsWindowId, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(sCoinsWindowId); SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x214, 0xE); PrintCoinsString(coinAmount); @@ -35,7 +35,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) void HideCoinsWindow(void) { - sub_819746C(sCoinsWindowId, TRUE); + ClearWindowAndBorder(sCoinsWindowId, TRUE); RemoveWindow(sCoinsWindowId); } diff --git a/src/contest.c b/src/contest.c index cf084e35e..179961298 100644 --- a/src/contest.c +++ b/src/contest.c @@ -819,7 +819,7 @@ static void sub_80D8490(u8 taskId) } r5 = StringCopy(r5, gMoveNames[move]); - FillWindowPixelBuffer(i + 5, 0); + FillWindowPixelBuffer(i + 5, PIXEL_BUFFER_TRANSPARENT); Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7); } @@ -941,7 +941,7 @@ static void sub_80D895C(u8 taskId) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(5 + i, 0); + FillWindowPixelBuffer(5 + i, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(5 + i); CopyWindowToVram(5 + i, 2); } @@ -2258,7 +2258,7 @@ static void sub_80DAEA4(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(gUnknown_02039F26[i], 0); + FillWindowPixelBuffer(gUnknown_02039F26[i], PIXEL_BUFFER_TRANSPARENT); sub_80DAF04(i); sub_80DAF88(i); } @@ -2478,7 +2478,7 @@ static void prints_contest_move_description(u16 a) ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); - FillWindowPixelBuffer(10, 0); + FillWindowPixelBuffer(10, PIXEL_BUFFER_TRANSPARENT); Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); Contest_PrintTextToBg0WindowStd(9, gText_Slash); } @@ -2621,7 +2621,7 @@ static void sub_80DB884(void) static void sub_80DB89C(void) { - FillWindowPixelBuffer(4, 0); + FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(4, 2); Contest_SetBgCopyFlags(0); } @@ -3456,7 +3456,7 @@ static void sub_80DCD48(void) break; default: for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); for (i = 0; i < 4; i++) { value = sContestantStatus[i].unk4; @@ -5038,7 +5038,7 @@ static void sub_80DF750(void) return; for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); if (gHeap[0x1A000] == 2) { diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 381fb34fa..50d844b93 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -904,7 +904,7 @@ static void sub_80F6AE8(void) // windowTemplate.width = 30; // windowTemplate.height = 2; // windowId = AddWindow(&windowTemplate); -// FillWindowPixelBuffer(windowId, 0x11); +// FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); // origWidth = GetStringWidth(1, text, 0) + 9; // strWidth = origWidth; // if (strWidth < 0) diff --git a/src/contest_painting.c b/src/contest_painting.c index 71a110aa8..429d553aa 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -279,7 +279,7 @@ static void InitContestPaintingWindow(void) SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE)); gContestPaintingWindowId = AddWindow(&gUnknown_085B07EC); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(gContestPaintingWindowId, 0); + FillWindowPixelBuffer(gContestPaintingWindowId, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(gContestPaintingWindowId); CopyWindowToVram(gContestPaintingWindowId, 3); ShowBg(1); diff --git a/src/credits.c b/src/credits.c index 3639d36e4..747d63f09 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1592,7 +1592,7 @@ static void sub_8175DA0(u8 taskIdB) case 5: if (!gPaletteFade.active) { - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(0, 2); gTasks[taskIdB].data[TDB_0] = 2; } diff --git a/src/daycare.c b/src/daycare.c index b75fab292..14120f20b 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1259,7 +1259,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) break; } DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); - sub_819746C(gTasks[taskId].tWindowId, TRUE); + ClearWindowAndBorder(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); @@ -1268,7 +1268,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) { gSpecialVar_Result = 2; DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); - sub_819746C(gTasks[taskId].tWindowId, TRUE); + ClearWindowAndBorder(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); diff --git a/src/decoration.c b/src/decoration.c index 2ac49b98c..afbb4ad40 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -543,7 +543,7 @@ void sub_8126B80(u8 taskId) void sub_8126C08(void) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); } @@ -572,7 +572,7 @@ void SecretBasePC_PutAway(u8 taskId) else { sub_8126A58(0); - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8129ABC; @@ -617,7 +617,7 @@ void sub_8126DA4(u8 taskId) void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) { LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_8126A58(0); sub_8126DFC(taskId); } @@ -634,7 +634,7 @@ void sub_8126DFC(u8 taskId) void sub_8126E44(u8 taskId) { - FillWindowPixelBuffer(sDecorMenuWindowIndices[1], 0x11); + FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PIXEL_BUFFER_WHITE); sub_8126E8C(taskId); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory); gTasks[taskId].func = sub_8127088; @@ -751,7 +751,7 @@ void sub_81270E8(u8 taskId) void sub_8127180(u8 taskId) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_8126DFC(taskId); } @@ -779,7 +779,7 @@ void sub_81271CC(u8 taskId) void sub_8127208(u8 taskId) { LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); gTasks[taskId].data[11] = 2; sCurDecorationCategory = DECORCAT_DESK; sub_8126DFC(taskId); @@ -968,7 +968,7 @@ void sub_8127744(u32 a0) const u8 *txt; winidx = sDecorMenuWindowIndices[3]; - FillWindowPixelBuffer(winidx, 0x11); + FillWindowPixelBuffer(winidx, PIXEL_BUFFER_WHITE); if (a0 >= sCurDecorCatCount) { txt = gText_GoBackPrevMenu; @@ -1095,7 +1095,7 @@ void sub_8127A14(u8 taskId) void sub_8127A30(u8 taskId) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); gTasks[taskId].func = sub_8127A14; } @@ -1103,7 +1103,7 @@ void sub_8127A5C(u8 taskId) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_81269D4(1); sub_8127620(taskId); } @@ -1634,7 +1634,7 @@ void sub_81289D0(u8 taskId) void sub_81289F0(u8 taskId) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_8128AAC(taskId); if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SOLID_MAT) { @@ -1699,7 +1699,7 @@ void sub_8128B80(u8 taskId) void sub_8128BA0(u8 taskId) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_8128BBC(taskId); } @@ -1887,7 +1887,7 @@ void sub_8128E18(u8 taskId) void sub_8128FD8(u8 taskId) { - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gTasks[taskId].data[10] = 0; gTasks[taskId].func = sub_8128E18; @@ -2251,7 +2251,7 @@ void sub_81298EC(u8 taskId) if (!gPaletteFade.active) { DrawWholeMapView(); ScriptContext1_SetupScript(EventScript_275D2E); - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); gTasks[taskId].data[2] = 2; } break; @@ -2343,7 +2343,7 @@ void sub_8129ABC(u8 taskId) void sub_8129B34(u8 taskId) { - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C; @@ -2607,7 +2607,7 @@ void sub_812A1F0(u8 taskId) void sub_812A210(u8 taskId) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); sub_812A22C(taskId); } diff --git a/src/diploma.c b/src/diploma.c index b3d5a48fa..9194af710 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -197,7 +197,7 @@ static void InitDiplomaWindow(void) InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index e1d94889a..f52f66a2a 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -606,7 +606,7 @@ static void CB2_EggHatch_1(void) case 1: if (!gPaletteFade.active) { - FillWindowPixelBuffer(sEggHatchData->windowId, 0); + FillWindowPixelBuffer(sEggHatchData->windowId, PIXEL_BUFFER_TRANSPARENT); sEggHatchData->CB2_PalCounter = 0; sEggHatchData->CB2_state++; } @@ -857,7 +857,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) { - FillWindowPixelBuffer(windowId, 0xFF); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_UNKNOWN); sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[1] = 5; sEggHatchData->textColor[2] = 6; diff --git a/src/field_message_box.c b/src/field_message_box.c index 299aafaf2..111807240 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -127,7 +127,7 @@ static void textbox_auto_and_task_add(void) void HideFieldMessageBox(void) { task_del_textbox(); - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); sFieldMessageBoxMode = 0; } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b1291f0ce..dff010d13 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1918,7 +1918,7 @@ static bool8 Fishing9(struct Task *task) static bool8 Fishing10(struct Task *task) { AlignFishingAnimationFrames(); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_PokemonOnHook, 1, 0, 2, 1, 3); task->tStep++; task->tFrameCounter = 0; @@ -1944,7 +1944,7 @@ static bool8 Fishing11(struct Task *task) sub_8155604(gEventObjects[gPlayerAvatar.eventObjectId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); task->tFrameCounter++; return FALSE; } @@ -1966,7 +1966,7 @@ static bool8 Fishing12(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_NotEvenANibble, 1, 0, 2, 1, 3); task->tStep = FISHING_SHOW_RESULT; return TRUE; @@ -1977,7 +1977,7 @@ static bool8 Fishing13(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_ItGotAway, 1, 0, 2, 1, 3); task->tStep++; return TRUE; @@ -2017,7 +2017,7 @@ static bool8 Fishing16(struct Task *task) gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); UnfreezeEventObjects(); - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sub_80ED950(0); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } diff --git a/src/field_region_map.c b/src/field_region_map.c index d49ce3a4e..6814b26bd 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -196,13 +196,13 @@ static void PrintRegionMapSecName(void) { if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } else { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); CopyWindowToVram(0, 3); } } diff --git a/src/field_specials.c b/src/field_specials.c index 3c26085dd..9390eab87 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2645,7 +2645,7 @@ static void sub_813A570(u8 taskId) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); sub_8198070(task->data[13], 1); - FillWindowPixelBuffer(task->data[13], 0); + FillWindowPixelBuffer(task->data[13], PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); DestroyTask(taskId); @@ -3226,7 +3226,7 @@ void sub_813AF48(void) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); sub_8198070(task->data[13], TRUE); - FillWindowPixelBuffer(task->data[13], 0); + FillWindowPixelBuffer(task->data[13], PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 0db546c4d..39442dcfd 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1090,7 +1090,7 @@ static void ShowAndPrintWindows(void) for (i = 0; i < WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } x = GetStringCenterAlignXOffset(1, gText_SymbolsEarned, 96); @@ -1116,7 +1116,7 @@ static void ShowAndPrintWindows(void) static void PrintAreaDescription(u8 cursorArea) { - FillWindowPixelBuffer(WINDOW_DESCRIPTION, 0); + FillWindowPixelBuffer(WINDOW_DESCRIPTION, PIXEL_BUFFER_TRANSPARENT); if (cursorArea == CURSOR_AREA_RECORD && !sPassData->hasBattleRecord) AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[0]); else if (cursorArea != CURSOR_AREA_NOTHING) @@ -1656,7 +1656,7 @@ static void PrintOnFrontierMap(void) for (i = 0; i < MAP_WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) @@ -1698,7 +1698,7 @@ static void HandleFrontierMapCursorMove(u8 direction) StartSpriteAnim(sMapData->mapIndicatorSprite, sMapLandmarks[sMapData->cursorPos].animNum); sMapData->mapIndicatorSprite->pos1.x = sMapLandmarks[sMapData->cursorPos].x; sMapData->mapIndicatorSprite->pos1.y = sMapLandmarks[sMapData->cursorPos].y; - FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, 0); + FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PIXEL_BUFFER_TRANSPARENT); AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, 1, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description); for (i = 0; i < 3; i++) diff --git a/src/frontier_util.c b/src/frontier_util.c index e6954c356..071eece0c 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1045,7 +1045,7 @@ static void ShowTowerResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleRoomResults); else if (battleMode == FRONTIER_MODE_DOUBLES) @@ -1116,7 +1116,7 @@ static void ShowDomeResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleTourneyResults); else @@ -1192,7 +1192,7 @@ static void ShowPalaceResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleHallResults); else @@ -1248,7 +1248,7 @@ static void ShowPikeResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); PrintAligned(gStringVar4, 0); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL); @@ -1310,7 +1310,7 @@ static void ShowArenaResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); PrintHyphens(10); StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults); PrintAligned(gStringVar4, 2); @@ -1396,7 +1396,7 @@ static void ShowFactoryResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_BattleSwapSingleResults); else @@ -1461,7 +1461,7 @@ static void ShowPyramidResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); PrintAligned(gStringVar4, 2); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 49, TEXT_SPEED_FF, NULL); @@ -1484,7 +1484,7 @@ static void ShowLinkContestResultsWindow(void) gRecordsWindowId = AddWindow(&gUnknown_08611C7C); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); StringExpandPlaceholders(gStringVar4, gText_LinkContestResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -2354,7 +2354,7 @@ void ShowRankingHallRecordsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C84); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); PutWindowTilemap(gRecordsWindowId); CopyWindowToVram(gRecordsWindowId, 3); @@ -2362,7 +2362,7 @@ void ShowRankingHallRecordsWindow(void) void ScrollRankingHallRecordsWindow(void) { - FillWindowPixelBuffer(gRecordsWindowId, 0x11); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_OPEN); CopyWindowToVram(gRecordsWindowId, 2); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 3f217b782..b064c991b 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -570,7 +570,7 @@ static void Task_Hof_DisplayMon(u8 taskId) gSprites[spriteId].tSpecies = currMon->species; gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate; gTasks[taskId].tMonSpriteId(currMonId) = spriteId; - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); gTasks[taskId].func = Task_Hof_PrintMonInfoAfterAnimating; } @@ -649,7 +649,7 @@ static void sub_8173DC0(u8 taskId) gSprites[gTasks[taskId].tMonSpriteId(i)].oam.priority = 1; } BeginNormalPaletteFade(sUnknown_0203BCD4, 0, 12, 12, RGB(16, 29, 24)); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); CopyWindowToVram(0, 3); gTasks[taskId].tFrameCount = 7; gTasks[taskId].func = sub_8173EA4; @@ -1086,7 +1086,7 @@ static void Task_HofPC_ExitOnButtonPress(u8 taskId) static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2) { - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); CopyWindowToVram(0, 3); @@ -1099,7 +1099,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u s32 dexNumber; s32 width; - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); // dex number @@ -1180,7 +1180,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) u32 width; u16 trainerId; - FillWindowPixelBuffer(1, 0x11); + FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); PutWindowTilemap(1); SetWindowBorderStyle(1, FALSE, 0x21D, 0xD); AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); diff --git a/src/item_menu.c b/src/item_menu.c index 43f2afce3..db16a887e 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -884,7 +884,7 @@ void bag_menu_print_description_box_text(int a) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); str = gStringVar4; } - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, str, 3, 1, 0, 0, 0, 0); } @@ -1028,7 +1028,7 @@ void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u s16* data = gTasks[taskId].data; data[10] = AddItemMessageWindow(4); - FillWindowPixelBuffer(data[10], 17); + FillWindowPixelBuffer(data[10], PIXEL_BUFFER_WHITE); DisplayMessageAndContinueTask(taskId, data[10], 10, 13, fontId, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } @@ -1293,7 +1293,7 @@ void bag_menu_swap_items(u8 taskId) gUnknown_0203CE54->unk81A = data[1]; CopyItemName(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, data[1]), gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_80D4FEC(data[1]); sub_81AB89C(); @@ -1505,7 +1505,7 @@ void sub_81AC644(u8 unused) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); } if (gUnknown_0203CE54->unk828 == 1) @@ -1646,7 +1646,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId) bag_menu_print_there_is_no_pokemon(taskId); else { - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); schedule_bg_copy_tilemap_to_vram(0); if (gUnknown_0203CE58.pocket != BERRIES_POCKET) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); @@ -1670,7 +1670,7 @@ void ItemMenu_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = Task_ChooseHowManyToToss; @@ -1684,7 +1684,7 @@ void BagMenuConfirmToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); bag_menu_yes_no(taskId, 5, &gUnknown_08614084); } @@ -1727,7 +1727,7 @@ void BagMenuActuallyToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); gTasks[taskId].func = Task_ActuallyToss; } @@ -2043,7 +2043,7 @@ void display_deposit_item_ask_str(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_DepositHowManyVar1); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = sub_81ADA7C; @@ -2078,7 +2078,7 @@ void sub_81ADB14(u8 taskId) { s16* data = gTasks[taskId].data; - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); if (ItemId_GetImportance(gSpecialVar_ItemId)) { bag_menu_print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); @@ -2244,7 +2244,7 @@ void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2) window.width = 16; window.height = 2; windowId = AddWindow(&window); - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); offset = GetStringCenterAlignXOffset(1, pocketName1, 0x40); bag_menu_print(windowId, 1, pocketName1, offset, 1, 0, 0, -1, 1); if (pocketName2) @@ -2283,7 +2283,7 @@ void setup_bag_menu_textboxes(void) LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 3; i++) { - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(i); } schedule_bg_copy_tilemap_to_vram(0); @@ -2366,7 +2366,7 @@ void bag_menu_remove_money_window(void) void bag_menu_prepare_tmhm_move_window(void) { - FillWindowPixelBuffer(3, 0); + FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); blit_move_info_icon(3, 19, 0, 0); blit_move_info_icon(3, 20, 0, 12); blit_move_info_icon(3, 21, 0, 24); @@ -2380,7 +2380,7 @@ void PrintTMHMMoveData(u16 itemId) u16 moveId; const u8* text; - FillWindowPixelBuffer(4, 0); + FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); if (itemId == ITEM_NONE) { for (i = 0; i < 4; i++) diff --git a/src/item_use.c b/src/item_use.c index 97d6292c4..81f4b7b54 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -188,7 +188,7 @@ void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemO void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId) { - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); DestroyTask(taskId); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); @@ -350,7 +350,7 @@ void sub_80FD504(u8 taskId) void sub_80FD5CC(u8 taskId) { - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); DestroyTask(taskId); diff --git a/src/learn_move.c b/src/learn_move.c index 7a6916013..d9ebe3f3b 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -498,7 +498,7 @@ static void LearnMoveMain(void) case 27: if (!sub_81D2C3C()) { - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; @@ -631,7 +631,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) if (!a) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } @@ -695,7 +695,7 @@ static void ShowTeachMoveText(bool8 showContest) if (showContest == FALSE) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } diff --git a/src/list_menu.c b/src/list_menu.c index 7a9547661..6442debba 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -355,11 +355,11 @@ s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenu switch (arg2) { case 0: // can never be reached, because of the if statement above - sub_819746C(sMysteryGiftLinkMenu.windowId, FALSE); + ClearWindowAndBorder(sMysteryGiftLinkMenu.windowId, FALSE); break; case 2: case 1: - sub_819746C(sMysteryGiftLinkMenu.windowId, FALSE); + ClearWindowAndBorder(sMysteryGiftLinkMenu.windowId, FALSE); break; } } diff --git a/src/mail.c b/src/mail.c index 45e96e85e..6d9c98350 100644 --- a/src/mail.c +++ b/src/mail.c @@ -477,8 +477,8 @@ static void sub_8121B1C(void) y = 0; PutWindowTilemap(0); PutWindowTilemap(1); - FillWindowPixelBuffer(0, 0); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); for (i = 0; i < sMailRead->layout->numSubStructs; i ++) { if (sMailRead->strbuf[i][0] == EOS || sMailRead->strbuf[i][0] == CHAR_SPACE) diff --git a/src/main_menu.c b/src/main_menu.c index 4cd5c8e14..9a320bcea 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -39,6 +39,135 @@ #include "title_screen.h" #include "window.h" +/* + * Main menu state machine + * ----------------------- + * + * Entry point: CB2_InitMainMenu + * + * Note: States advance sequentially unless otherwise stated. + * + * CB2_InitMainMenu / CB2_ReinitMainMenu + * - Both of these states call InitMainMenu, which does all the work. + * - In the Reinit case, the init code will check if the user came from + * the options screen. If they did, then the options menu item is + * pre-selected. + * + * Task_MainMenuCheckSaveFile + * - Determines how many menu options to show based on whether + * the save file is Ok, empty, corrupted, etc. + * - If there was an error loading the save file, advance to + * Task_WaitForSaveFileErrorWindow. + * - If there were no errors, advance to Task_MainMenuCheckBattery. + * - Note that the check to enable Mystery Events would normally happen + * here, but this version of Emerald has them disabled. + * + * Task_WaitForSaveFileErrorWindow + * - Wait for the text to finish printing and then for the A button + * to be pressed. + * + * Task_MainMenuCheckBattery + * - If the battery is OK, advance to Task_DisplayMainMenu. + * - If the battery is dry, advance to Task_WaitForBatteryDryErrorWindow. + * + * Task_WaitForBatteryDryErrorWindow + * - Wait for the text to finish printing and then for the A button + * to be pressed. + * + * Task_DisplayMainWindow + * - Display the buttons to the user. If the menu is in HAS_MYSTERY_EVENTS + * mode, there are too many buttons for one screen and a scrollbar is added, + * and the scrollbar task is spawned (Task_ScrollIndicatorArrowPairOnMainMenu). + * + * Task_HighlightSelectedMainMenuItem + * - Update the UI to match the currently selected item. + * + * Task_HandleMainMenuInput + * - If A is pressed, advance to Task_HandleMainMenuAPressed. + * - If B is pressed, return to the title screen via CB2_InitTitleScreen. + * - If Up or Down is pressed, handle scrolling if there is a scroll bar, change + * the selection, then go back to Task_HighlightSelectedMainMenuItem. + * + * Task_HandleMainMenuAPressed + * - If the user selected New Game, advance to Task_NewGameBirchSpeech_Init. + * - If the user selected Continue, advance to CB2_ContinueSavedGame. + * - If the user selected the Options menu, advance to CB2_InitOptionMenu. + * - If the user selected Mystery Gift, advance to CB2_MysteryGift. However, + * if the wireless adapter was removed, instead advance to + * Task_DisplayMainMenuInvalidActionError. + * - Code to start a Mystery Event is present here, but is unreachable in this + * version. + * + * Task_HandleMainMenuBPressed + * - Clean up the main menu and go back to CB2_InitTitleScreen. + * + * Task_DisplayMainMenuInvalidActionError + * - Print one of three different error messages, wait for the text to stop + * printing, and then wait for A or B to be pressed. + * - Then advance to Task_HandleMainMenuBPressed. + * + * Task_NewGameBirchSpeechInit + * - Load the sprites for the intro speech, start playing music + * Task_NewGameBirchSpeech_WaitToShowBirch + * - Spawn Task_NewGameBirchSpeech_FadeInTarget1OutTarget2 + * - Spawn Task_NewGameBirchSpeech_FadePlatformOut + * - Both of these tasks destroy themselves when done. + * Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome + * Task_NewGameBirchSpeech_ThisIsAPokemon + * - When the text is done printing, spawns Task_NewGameBirchSpeechSub_InitPokeball + * Task_NewGameBirchSpeech_MainSpeech + * Task_NewGameBirchSpeech_AndYouAre + * Task_NewGameBirchSpeech_StartBirchLotadPlatformFade + * Task_NewGameBirchSpeech_StartBirchLotadPlatformFade + * Task_NewGameBirchSpeech_SlidePlatformAway + * Task_NewGameBirchSpeech_StartPlayerFadeIn + * Task_NewGameBirchSpeech_WaitForPlayerFadeIn + * Task_NewGameBirchSpeech_BoyOrGirl + * Task_NewGameBirchSpeech_WaitToShowGenderMenu + * Task_NewGameBirchSpeech_ChooseGender + * - Animates by advancing to Task_NewGameBirchSpeech_SlideOutOldGenderSprite + * whenever the player's selection changes. + * - Advances to Task_NewGameBirchSpeech_WhatsYourName when done. + * + * Task_NewGameBirchSpeech_SlideOutOldGenderSprite + * Task_NewGameBirchSpeech_SlideInNewGenderSprite + * - Returns back to Task_NewGameBirchSpeech_ChooseGender. + * + * Task_NewGameBirchSpeech_WhatsYourName + * Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint + * Task_NewGameBirchSpeech_WaitPressBeforeNameChoice + * Task_NewGameBirchSpeech_StartNamingScreen + * C2_NamingScreen + * - Returns to CB2_NewGameBirchSpeech_ReturnFromNamingScreen when done + * CB2_NewGameBirchSpeech_ReturnFromNamingScreen + * Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox + * Task_NewGameBirchSpeech_SoItsPlayerName + * Task_NewGameBirchSpeech_CreateNameYesNo + * Task_NewGameBirchSpeech_ProcessNameYesNoMenu + * - If confirmed, advance to Task_NewGameBirchSpeech_SlidePlatformAway2. + * - Otherwise, return to Task_NewGameBirchSpeech_BoyOrGirl. + * + * Task_NewGameBirchSpeech_SlidePlatformAway2 + * Task_NewGameBirchSpeech_ReshowBirchLotad + * Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter + * Task_NewGameBirchSpeech_AreYouReady + * Task_NewGameBirchSpeech_ShrinkPlayer + * Task_NewGameBirchSpeech_WaitForPlayerShrink + * Task_NewGameBirchSpeech_FadePlayerToWhite + * Task_NewGameBirchSpeech_Cleanup + * - Advances to CB2_NewGame. + * + * Task_NewGameBirchSpeechSub_InitPokeball + * - Advances to Task_NewGameBirchSpeechSub_WaitForLotad + * Task_NewGameBirchSpeechSub_WaitForLotad + * - Destroys itself when done. + */ + +// These two defines are used with the sCurrItemAndOptionsMenuCheck, +// to distinguish between its two parts. +#define OPTION_MENU_FLAG 0x8000 +#define CURRENT_ITEM_MASK 0x7FFF + // Static type declarations // Static RAM declarations @@ -112,7 +241,7 @@ static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite*); static void Task_NewGameBirchSpeech_WaitForPlayerShrink(u8); static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8); static void Task_NewGameBirchSpeech_Cleanup(u8); -static void nullsub_11(); +static void SpriteCB_Null(); static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8); static void MainMenu_FormatSavegamePlayer(void); static void MainMenu_FormatSavegamePokedex(void); @@ -247,7 +376,7 @@ static const struct WindowTemplate sWindowTemplates_MainMenu[] = DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_082FF080[] = +static const struct WindowTemplate gNewGameBirchSpeechTextWindows[] = { { .bg = 0, @@ -542,7 +671,7 @@ static void Task_MainMenuCheckSaveFile(u8 taskId) gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; break; } - if (sCurrItemAndOptionMenuCheck & 0x8000) // are we returning from the options menu? + if (sCurrItemAndOptionMenuCheck & OPTION_MENU_FLAG) // are we returning from the options menu? { switch (tMenuType) // if so, highlight the OPTIONS item { @@ -558,7 +687,7 @@ static void Task_MainMenuCheckSaveFile(u8 taskId) break; } } - sCurrItemAndOptionMenuCheck &= 0x7FFF; // turn off the "returning from options menu" flag + sCurrItemAndOptionMenuCheck &= CURRENT_ITEM_MASK; // turn off the "returning from options menu" flag tCurrItem = sCurrItemAndOptionMenuCheck; tItemCount = tMenuType + 2; } @@ -637,6 +766,8 @@ static void Task_DisplayMainMenu(u8 taskId) palette = RGB(26, 26, 25); LoadPalette(&palette, 252, 2); + // Note: If there is no save file, the save block is zeroed out, + // so the default gender is MALE. if (gSaveBlock2Ptr->playerGender == MALE) { palette = RGB(4, 16, 31); @@ -813,14 +944,14 @@ static void Task_HandleMainMenuAPressed(u8 taskId) { if (gTasks[taskId].tMenuType == HAS_MYSTERY_EVENTS) RemoveScrollIndicatorArrowPair(gTasks[taskId].tScrollArrowTaskId); - sub_819746C(0, 1); - sub_819746C(1, 1); - sub_819746C(2, 1); - sub_819746C(3, 1); - sub_819746C(4, 1); - sub_819746C(5, 1); - sub_819746C(6, 1); - sub_819746C(7, 1); + ClearWindowAndBorder(0, TRUE); + ClearWindowAndBorder(1, TRUE); + ClearWindowAndBorder(2, TRUE); + ClearWindowAndBorder(3, TRUE); + ClearWindowAndBorder(4, TRUE); + ClearWindowAndBorder(5, TRUE); + ClearWindowAndBorder(6, TRUE); + ClearWindowAndBorder(7, TRUE); wirelessAdapterConnected = IsWirelessAdapterConnected(); switch (gTasks[taskId].tMenuType) { @@ -973,7 +1104,7 @@ static void Task_HandleMainMenuAPressed(u8 taskId) if (action != ACTION_OPTION) sCurrItemAndOptionMenuCheck = 0; else - sCurrItemAndOptionMenuCheck |= 0x8000; // entering the options menu + sCurrItemAndOptionMenuCheck |= OPTION_MENU_FLAG; // entering the options menu } } @@ -981,7 +1112,7 @@ static void Task_HandleMainMenuBPressed(u8 taskId) { if (!gPaletteFade.active) { - if (gTasks[taskId].tMenuType == 3) + if (gTasks[taskId].tMenuType == HAS_MYSTERY_EVENTS) RemoveScrollIndicatorArrowPair(gTasks[taskId].tScrollArrowTaskId); sCurrItemAndOptionMenuCheck = 0; FreeAllWindowBuffers(); @@ -1199,7 +1330,7 @@ static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) } else { - InitWindows(gUnknown_082FF080); + InitWindows(gNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); LoadMessageBoxGfx(0, 0xFC, 0xF0); NewGameBirchSpeech_ShowDialogueWindow(0, 1); @@ -1642,7 +1773,7 @@ static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8 taskId) if (!gPaletteFade.active) { spriteId = gTasks[taskId].tPlayerSpriteId; - gSprites[spriteId].callback = nullsub_11; + gSprites[spriteId].callback = SpriteCB_Null; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); BeginNormalPaletteFade(0xFFFF0000, 0, 0, 16, RGB_WHITEALPHA); gTasks[taskId].func = Task_NewGameBirchSpeech_Cleanup; @@ -1730,14 +1861,14 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) REG_IME = savedIme; SetVBlankCallback(VBlankCB_MainMenu); SetMainCallback2(CB2_MainMenu); - InitWindows(gUnknown_082FF080); + InitWindows(gNewGameBirchSpeechTextWindows); LoadMainMenuWindowFrameTiles(0, 0xF3); LoadMessageBoxGfx(0, 0xFC, 0xF0); PutWindowTilemap(0); CopyWindowToVram(0, 3); } -static void nullsub_11(struct Sprite *sprite) +static void SpriteCB_Null(struct Sprite *sprite) { } @@ -1763,22 +1894,22 @@ static void AddBirchSpeechObjects(u8 taskId) u8 maySpriteId; birchSpriteId = AddNewGameBirchObject(0x88, 0x3C, 1); - gSprites[birchSpriteId].callback = nullsub_11; + gSprites[birchSpriteId].callback = SpriteCB_Null; gSprites[birchSpriteId].oam.priority = 0; gSprites[birchSpriteId].invisible = TRUE; gTasks[taskId].tBirchSpriteId = birchSpriteId; lotadSpriteId = NewGameBirchSpeech_CreateLotadSprite(100, 0x4B); - gSprites[lotadSpriteId].callback = nullsub_11; + gSprites[lotadSpriteId].callback = SpriteCB_Null; gSprites[lotadSpriteId].oam.priority = 0; gSprites[lotadSpriteId].invisible = TRUE; gTasks[taskId].tLotadSpriteId = lotadSpriteId; brendanSpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_BRENDAN), 120, 60, 0, &gDecompressionBuffer[0]); - gSprites[brendanSpriteId].callback = nullsub_11; + gSprites[brendanSpriteId].callback = SpriteCB_Null; gSprites[brendanSpriteId].invisible = TRUE; gSprites[brendanSpriteId].oam.priority = 0; gTasks[taskId].tBrendanSpriteId = brendanSpriteId; maySpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_MAY), 120, 60, 0, &gDecompressionBuffer[0x800]); - gSprites[maySpriteId].callback = nullsub_11; + gSprites[maySpriteId].callback = SpriteCB_Null; gSprites[maySpriteId].invisible = TRUE; gSprites[maySpriteId].oam.priority = 0; gTasks[taskId].tMaySpriteId = maySpriteId; @@ -1966,8 +2097,8 @@ static void NewGameBirchSpeech_StartFadePlatformOut(u8 taskId, u8 delay) static void NewGameBirchSpeech_ShowGenderMenu(void) { - DrawMainMenuWindowBorder(&gUnknown_082FF080[1], 0xF3); - FillWindowPixelBuffer(1, 17); + DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3); + FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); PrintMenuTable(1, 2, sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -1995,7 +2126,7 @@ static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) static void CreateMainMenuErrorWindow(const u8* str) { - FillWindowPixelBuffer(7, 17); + FillWindowPixelBuffer(7, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); @@ -2105,12 +2236,12 @@ static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 a, u8 b, u8 c, u8 d, FillBgTilemapBufferRect(a, 0, b + 0xFF, c + 0xFF, d + 2, e + 2, 2); } -static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, u8 a) +static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_ClearGenderWindowTilemap); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); ClearWindowTilemap(windowId); - if (a == 1) + if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } @@ -2146,7 +2277,7 @@ void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_CreateDialogueWindowBorder); - FillWindowPixelBuffer(windowId, 17); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index cdb4c3330..30b04c21d 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -276,7 +276,7 @@ static void Task_MapNamePopUpWindow(u8 taskId) } break; case 4: - sub_819746C(GetMapNamePopUpWindowId(), TRUE); + ClearWindowAndBorder(GetMapNamePopUpWindowId(), TRUE); task->data[0] = 5; break; case 5: @@ -290,7 +290,7 @@ void HideMapNamePopUpWindow(void) { if (FuncIsActiveTask(Task_MapNamePopUpWindow)) { - sub_819746C(GetMapNamePopUpWindowId(), TRUE); + ClearWindowAndBorder(GetMapNamePopUpWindowId(), TRUE); RemoveMapNamePopUpWindow(); SetGpuReg_ForcedBlank(REG_OFFSET_BG0VOFS, 0); DestroyTask(sPopupTaskId); diff --git a/src/menu.c b/src/menu.c index ae589dff4..9a9cec9dd 100644 --- a/src/menu.c +++ b/src/menu.c @@ -126,8 +126,8 @@ const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] = extern void sub_81973A4(void); extern void DrawStandardFrame(u8, u8, u8, u8, u8, u8); extern void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); -extern void sub_81977BC(u8, u8, u8, u8, u8, u8); -extern void sub_8197804(u8, u8, u8, u8, u8, u8); +extern void ClearWindowAndBorderTilemap(u8, u8, u8, u8, u8, u8); +extern void ClearWindowAndWideBorderTilemap(u8, u8, u8, u8, u8, u8); extern void sub_8197BB4(u8, u8, u8, u8, u8, u8); extern void sub_8197E30(u8, u8, u8, u8, u8, u8); extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); @@ -213,7 +213,7 @@ void sub_81973A4(void) void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, DrawDialogueFrame); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -222,25 +222,25 @@ void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, DrawStandardFrame); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8197434(u8 windowId, bool8 copyToVram) +void ClearWindowAndWideBorder(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, sub_8197804); - FillWindowPixelBuffer(windowId, 0x11); + CallWindowFunction(windowId, ClearWindowAndWideBorderTilemap); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_819746C(u8 windowId, bool8 copyToVram) +void ClearWindowAndBorder(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, sub_81977BC); - FillWindowPixelBuffer(windowId, 0x11); + CallWindowFunction(windowId, ClearWindowAndBorderTilemap); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -408,14 +408,17 @@ void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height DLG_WINDOW_PALETTE_NUM); } -void sub_81977BC(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +// Clears the given window, and a 1-tile border around the window, to transparent tiles. +void ClearWindowAndBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, TRANSPARENT_TILE_NUMBER, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); } -void sub_8197804(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +// Clears the given window, and a 1-tile border the top and bottom, plus a 3-tile border on the left and right. +// Tiles are set to a transparent tile. +void ClearWindowAndWideBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, TRANSPARENT_TILE_NUMBER, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM); } void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram) @@ -554,7 +557,7 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum) sTileNum = tileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, sub_8197BB4); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -565,7 +568,7 @@ void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum) sTileNum = tileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, sub_8197BB4); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -669,7 +672,7 @@ void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p void sub_8197DF8(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, sub_8197E30); - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -685,7 +688,7 @@ void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 pal sTileNum = baseTileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, DrawWindowBorder); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -696,7 +699,7 @@ void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum) sTileNum = baseTileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, DrawWindowBorder); - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -765,7 +768,7 @@ void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, void sub_8198070(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, sub_81980A8); - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -811,7 +814,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) if (sWindowId != 0xFF) { PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, 0xFF); + FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); width = GetStringWidth(0, string, 0); AddTextPrinterParameterized3(sWindowId, 0, @@ -845,7 +848,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo color[2] = 2; } PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, 0xFF); + FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); if (string2 != NULL) { width = GetStringWidth(0, string2, 0); @@ -873,7 +876,7 @@ void sub_81982F0(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, 0xFF); + FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); CopyWindowToVram(sWindowId, 3); } } @@ -882,7 +885,7 @@ void sub_8198314(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, 0); + FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(sWindowId); CopyWindowToVram(sWindowId, 3); RemoveWindow(sWindowId); diff --git a/src/money.c b/src/money.c index faf830637..33dffdc75 100644 --- a/src/money.c +++ b/src/money.c @@ -169,7 +169,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) SetWindowTemplateFields(&template, 0, x + 1, y + 1, 10, 2, 15, 8); sMoneyBoxWindowId = AddWindow(&template); - FillWindowPixelBuffer(sMoneyBoxWindowId, 0); + FillWindowPixelBuffer(sMoneyBoxWindowId, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(sMoneyBoxWindowId); CopyWindowToVram(sMoneyBoxWindowId, 1); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x214, 14, amount); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 0de4675d9..c30fb9c1a 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -90,7 +90,7 @@ void CB2_InitMysteryEventMenu(void) DeactivateAllTextPrinters(); for (i = 0; i < 2; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); LoadUserWindowBorderGfx(0, 1u, 0xD0u); diff --git a/src/naming_screen.c b/src/naming_screen.c index c310ceb9f..cb53604df 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1474,7 +1474,7 @@ static void HandleDpadMovement(struct Task *task) static void sub_80E4894(void) { - FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1485,7 +1485,7 @@ static void sub_80E48E8(void) StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); StringAppendN(buffer, gNamingScreenData->template->title, 15); - FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1672,7 +1672,7 @@ static void sub_80E4D10(void) u8 maxChars = gNamingScreenData->template->maxChars; u16 unk = gNamingScreenData->inputCharBaseXPos - 0x40; - FillWindowPixelBuffer(gNamingScreenData->windows[2], 0x11); + FillWindowPixelBuffer(gNamingScreenData->windows[2], PIXEL_BUFFER_WHITE); for (i = 0; i < maxChars; i++) { @@ -1766,7 +1766,7 @@ static void sub_80E4EF0(void) { const u8 color[3] = { 15, 1, 2 }; - FillWindowPixelBuffer(gNamingScreenData->windows[4], 0xFF); + FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_BUFFER_UNKNOWN); AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); PutWindowTilemap(gNamingScreenData->windows[4]); CopyWindowToVram(gNamingScreenData->windows[4], 3); diff --git a/src/option_menu.c b/src/option_menu.c index 122ba8d8a..6ffc4de50 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -620,7 +620,7 @@ static void ButtonMode_DrawChoices(u8 selection) static void DrawTextOption(void) { - FillWindowPixelBuffer(WIN_TEXT_OPTION, 0x11); + FillWindowPixelBuffer(WIN_TEXT_OPTION, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(WIN_TEXT_OPTION, 3); } @@ -629,7 +629,7 @@ static void DrawOptionMenuTexts(void) { u8 i; - FillWindowPixelBuffer(WIN_OPTIONS, 0x11); + FillWindowPixelBuffer(WIN_OPTIONS, PIXEL_BUFFER_WHITE); for (i = 0; i < MENUITEM_COUNT; i++) { AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); diff --git a/src/party_menu.c b/src/party_menu.c index 15b5d24d8..d2a4d09f2 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3108,7 +3108,7 @@ static void sub_81B239C(u8 a) } DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); LoadUserWindowBorderGfx(0, 0x4F, 0xD0); LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); @@ -3126,7 +3126,7 @@ static void sub_81B2428(bool8 a) if (a == TRUE) { firstWindowId = AddWindow(&gUnknown_08615918); - FillWindowPixelBuffer(firstWindowId, 0); + FillWindowPixelBuffer(firstWindowId, PIXEL_BUFFER_TRANSPARENT); mainOffset = GetStringCenterAlignXOffset(0, gMenuText_Confirm, 48); AddTextPrinterParameterized4(firstWindowId, 0, mainOffset, 1, 0, 0, gUnknown_086157FC[0], -1, gMenuText_Confirm); PutWindowTilemap(firstWindowId); @@ -3139,7 +3139,7 @@ static void sub_81B2428(bool8 a) windowId = AddWindow(&gUnknown_08615908); offset = 3; } - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); if (gUnknown_0203CEC8.unk8_0 != 10) { mainOffset = GetStringCenterAlignXOffset(0, gText_Cancel, 48); diff --git a/src/player_pc.c b/src/player_pc.c index 0d08a5e7b..9d1b2f788 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -403,7 +403,7 @@ static void PlayerPC_Mailbox(u8 taskId) ItemStorage_SetItemAndMailCount(taskId); if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) { - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); Mailbox_DrawMailboxMenu(taskId); gTasks[taskId].func = Mailbox_ProcessInput; } @@ -560,7 +560,7 @@ static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) FreeAndReserveObjectSpritePalettes(); LoadListMenuArrowsGfx(); sub_8122344(gUnknown_0203BCC4->spriteIds, 7); - sub_8197434(0,0); + ClearWindowAndWideBorder(0,0); gTasks[taskId].func = ItemStorage_ProcessWithdrawTossInput; } @@ -863,7 +863,7 @@ static void Mailbox_NoPokemonForMail(u8 taskId) static void Mailbox_Cancel(u8 taskId) { sub_81D1D04(2); - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); Mailbox_DrawMailboxMenu(taskId); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].func = Mailbox_ProcessInput; @@ -977,7 +977,7 @@ static void sub_816BEF0(s32 id) description = (u8 *)ItemId_GetDescription(gSaveBlock1Ptr->pcItems[id].itemId); else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); - FillWindowPixelBuffer(windowId, 17); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } @@ -1123,7 +1123,7 @@ static const u8* ItemStorage_GetItemPcResponse(u16 itemId) static void ItemStorage_PrintItemPcResponse(const u8 *string) { u8 windowId = gUnknown_0203BCC4->windowIds[1]; - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); StringExpandPlaceholders(gStringVar4, string); AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } diff --git a/src/pokeblock.c b/src/pokeblock.c index 3fd4f34df..31eaf3540 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -665,7 +665,7 @@ static void HandleInitWindows(void) for (i = 0; i < ARRAY_COUNT(sWindowTemplatesForPokeblockMenu) - 1; i++) { - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } schedule_bg_copy_tilemap_to_vram(0); @@ -749,7 +749,7 @@ static void sub_8135FCC(s32 pkblId) struct Pokeblock *pokeblock; u16 rectTilemapSrc[2]; - FillWindowPixelBuffer(7, 0); + FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); if (pkblId != LIST_B_PRESSED) { diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index b1f182b66..1ad0920d3 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -704,7 +704,7 @@ static void HandleInitWindows(void) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); } diff --git a/src/pokedex.c b/src/pokedex.c index c47ada5b8..3067771f2 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2926,7 +2926,7 @@ void sub_80BEA24(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, sPokedexListItem->dexNum); @@ -3221,7 +3221,7 @@ void sub_80BF250(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, &gPokedexTilemap_CryScreen, 0, 0); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); PutWindowTilemap(3); PutWindowTilemap(2); @@ -3415,7 +3415,7 @@ void sub_80BF82C(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_SizeScreen, 0, 0); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); gMain.state++; break; @@ -3762,7 +3762,7 @@ void sub_80BFE38(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, gTasks[taskId].data[1]); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c0aec4ddd..12f41d4d0 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1218,7 +1218,7 @@ static const u16 gWallpaperPalettes_Plain[][16] = static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); -// 12×18 tilemap +// 12�18 tilemap static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); static const u16 gUnknown_08577574[][2] = @@ -1737,7 +1737,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) CreatePCMenu(task->data[1], &task->data[15]); sub_81973A4(); NewMenuHelpers_DrawDialogueFrame(0, 0); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); CopyWindowToVram(task->data[15], 3); @@ -1763,13 +1763,13 @@ static void Task_PokemonStorageSystemPC(u8 taskId) if (task->data[1] != task->data[3]) { task->data[1] = task->data[3]; - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; case MENU_B_PRESSED: case 4: - sub_819746C(task->data[15], TRUE); + ClearWindowAndBorder(task->data[15], TRUE); ScriptContext2_Disable(); EnableBothScriptContexts(); RemoveWindow(task->data[15]); @@ -1778,13 +1778,13 @@ static void Task_PokemonStorageSystemPC(u8 taskId) default: if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); task->data[0] = 3; } else if (task->data[2] == 1 && CountPartyMons() == 1) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); task->data[0] = 3; } @@ -1799,7 +1799,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) case 3: if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1809,7 +1809,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 4; Menu_MoveCursor(-1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1819,7 +1819,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 0; Menu_MoveCursor(1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -4107,7 +4107,7 @@ static void LoadCursorMonGfx(u16 species, u32 pid) static void PrintCursorMonInfo(void) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) { AddTextPrinterParameterized(0, 1, sPSSData->cursorMonNickText, 6, 0, TEXT_SPEED_FF, NULL); @@ -4416,7 +4416,7 @@ static void PrintStorageActionText(u8 id) } DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); - FillWindowPixelBuffer(1, 0x11); + FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(1, 2, 14); PutWindowTilemap(1); @@ -8835,7 +8835,7 @@ static bool8 sub_80D0164(void) sPSSData->field_2200 = AddWindow8Bit(&gUnknown_0857BB1C); if (sPSSData->field_2200 != 0xFF) { - FillWindowPixelBuffer(sPSSData->field_2200, 0); + FillWindowPixelBuffer(sPSSData->field_2200, PIXEL_BUFFER_TRANSPARENT); return TRUE; } } @@ -9911,7 +9911,7 @@ static void PrintItemDescription(void) else description = ItemId_GetDescription(sPSSData->cursorMonItem); - FillWindowPixelBuffer(2, 0x11); + FillWindowPixelBuffer(2, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized5(2, 1, description, 4, 0, 0, NULL, 0, 1); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 46bdc9ef3..7985a1964 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2631,7 +2631,7 @@ static void ResetWindows(void) for (i = 0; i < 20; i++) { - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { @@ -2646,9 +2646,9 @@ static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, static void sub_81C25E8(void) { - FillWindowPixelBuffer(17, 0); - FillWindowPixelBuffer(18, 0); - FillWindowPixelBuffer(19, 0); + FillWindowPixelBuffer(17, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(18, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(19, PIXEL_BUFFER_TRANSPARENT); if (!pssData->summary.isEgg) sub_81C2628(); else @@ -2899,7 +2899,7 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); - FillWindowPixelBuffer(*windowIdPtr, 0); + FillWindowPixelBuffer(*windowIdPtr, PIXEL_BUFFER_TRANSPARENT); } return *windowIdPtr; } @@ -2921,7 +2921,7 @@ static void PrintPageSpecificText(u8 pageIndex) for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { if (pssData->windowIds[i] != 0xFF) - FillWindowPixelBuffer(pssData->windowIds[i], 0); + FillWindowPixelBuffer(pssData->windowIds[i], PIXEL_BUFFER_TRANSPARENT); } sTextPrinterFunctions[pageIndex](); } @@ -3568,7 +3568,7 @@ static void PrintContestMoveDescription(u8 moveSlot) static void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); if (move != MOVE_NONE) { if (pssData->currPageIndex == 2) @@ -3642,7 +3642,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); - FillWindowPixelBuffer(windowId, 0); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } diff --git a/src/record_mixing.c b/src/record_mixing.c index 189033685..5b106a184 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -370,7 +370,7 @@ static void Task_RecordMixing_Main(u8 taskId) { CreateTask(sub_80AF2B4, 10); } - sub_8197434(0, 1); + ClearWindowAndWideBorder(0, 1); DestroyTask(taskId); EnableBothScriptContexts(); } diff --git a/src/region_map.c b/src/region_map.c index ff0c19167..e69889584 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1707,7 +1707,7 @@ static void sub_8124904(void) } else { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); } AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); @@ -1721,7 +1721,7 @@ static void sub_8124904(void) sub_8198070(1, FALSE); SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); } - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); CopyWindowToVram(0, 2); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 9bdd86167..e3003b22e 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -387,7 +387,7 @@ void nullsub_89(void) void sub_80124EC(u8 windowId, u8 arg1, u8 stringId) { - FillWindowPixelBuffer(windowId, 0x11); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); switch (arg1 << 8) { case 0x200: @@ -786,10 +786,10 @@ void sub_8012780(u8 taskId) void sub_8012F64(struct UnkStruct_Leader *data) { ClearWindowTilemap(data->field_11); - sub_819746C(data->field_11, FALSE); + ClearWindowAndBorder(data->field_11, FALSE); DestroyListMenuTask(data->listTaskId, 0, 0); ClearWindowTilemap(data->field_10); - sub_819746C(data->listWindowId, FALSE); + ClearWindowAndBorder(data->listWindowId, FALSE); CopyBgTilemapBufferToVram(0); RemoveWindow(data->field_11); RemoveWindow(data->listWindowId); @@ -1254,10 +1254,10 @@ void sub_80134E8(u8 taskId) case 18: case 20: ClearWindowTilemap(data->field_D); - sub_819746C(data->field_D, FALSE); + ClearWindowAndBorder(data->field_D, FALSE); DestroyListMenuTask(data->listTaskId, 0, 0); ClearWindowTilemap(data->field_C); - sub_819746C(data->listWindowId, FALSE); + ClearWindowAndBorder(data->listWindowId, FALSE); CopyBgTilemapBufferToVram(0); RemoveWindow(data->field_D); RemoveWindow(data->listWindowId); @@ -2155,7 +2155,7 @@ void sub_8014F48(u8 taskId) data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); sub_8018784(data->field_D); - FillWindowPixelBuffer(data->field_D, 0x11); + FillWindowPixelBuffer(data->field_D, PIXEL_BUFFER_WHITE); PutWindowTilemap(data->field_D); sub_80125BC(data->field_D); CopyWindowToVram(data->field_D, 2); diff --git a/src/roulette.c b/src/roulette.c index a6a020f39..7826c1353 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1052,7 +1052,7 @@ static void sub_8140914(u8 taskId) static void sub_8140968(u8 taskId) { - sub_819746C(0, TRUE); + ClearWindowAndBorder(0, TRUE); gTasks[taskId].func = sub_8140BD0; } @@ -3272,7 +3272,7 @@ static void sub_81428E4(u8 taskId) static void sub_8142918(u8 taskId) { - sub_819746C(0, TRUE); + ClearWindowAndBorder(0, TRUE); HideCoinsWindow(); FreeAllWindowBuffers(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); @@ -3283,7 +3283,7 @@ static void sub_8142918(u8 taskId) static void sub_814297C(u8 taskId) { - sub_819746C(0, FALSE); + ClearWindowAndBorder(0, FALSE); HideCoinsWindow(); ScriptContext2_Disable(); DestroyTask(taskId); @@ -3296,7 +3296,7 @@ static void sub_81429A0(u8 taskId) { gSpecialVar_0x8004 = 1; HideCoinsWindow(); - sub_819746C(0, TRUE); + ClearWindowAndBorder(0, TRUE); ScriptContext2_Disable(); DestroyTask(taskId); } diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index c668c1db0..4cd4cd4bf 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -231,8 +231,8 @@ static void CB2_SaveFailedScreen(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); SetWindowBorderStyle(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); SetWindowBorderStyle(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); - FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], 0x11); // backwards? - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PIXEL_BUFFER_WHITE); // backwards? + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again? CopyWindowToVram(gSaveFailedWindowIds[TEXT_WIN_ID], 1); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); @@ -265,19 +265,19 @@ static void CB2_WipeSave(void) { if (WipeSectors(gDamagedSaveSectors) != FALSE) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); SetMainCallback2(CB2_GameplayCannotBeContinued); return; } - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); SaveFailedScreenTextPrint(gText_CheckCompleted, 1, 0); HandleSavingData(gSaveFailedType); if (gDamagedSaveSectors != 0) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); } @@ -286,12 +286,12 @@ static void CB2_WipeSave(void) if (wipeTries == 3) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); } else { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); if (gGameContinueCallback == NULL) SaveFailedScreenTextPrint(gText_SaveCompleteGameCannotContinue, 1, 0); @@ -308,7 +308,7 @@ static void CB2_GameplayCannotBeContinued(void) if (gMain.newKeys & A_BUTTON) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], 0x11); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); SaveFailedScreenTextPrint(gText_GamePlayCannotBeContinued, 1, 0); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_FadeAndReturnToTitleScreen); diff --git a/src/scrcmd.c b/src/scrcmd.c index 837259a7f..4cc8df82e 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1519,7 +1519,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); - FillWindowPixelBuffer(gUnknown_03000F30, 0x11); + FillWindowPixelBuffer(gUnknown_03000F30, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; @@ -2254,7 +2254,7 @@ bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx) void sub_809BDB4(void) { - sub_819746C(gUnknown_03000F30, 1); + ClearWindowAndBorder(gUnknown_03000F30, 1); RemoveWindow(gUnknown_03000F30); } diff --git a/src/script_menu.c b/src/script_menu.c index 7180bfc60..98761fe34 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1639,27 +1639,27 @@ static void sub_80E2A94(u8 multichoiceId) switch (multichoiceId) { case 77: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 76: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 78: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 79: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 75: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 74: - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; } diff --git a/src/secret_base.c b/src/secret_base.c index adcab9cbc..74d9ac9b0 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -871,7 +871,7 @@ void sub_80E9C9C(u8 taskId) { data[1] = 0; data[2] = 0; - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); gUnknown_0203A020 = calloc(1, sizeof(struct SecretBaseListMenuBuffer)); data[6] = AddWindow(&gUnknown_0858D06C[0]); game_continue(taskId); @@ -963,7 +963,7 @@ void sub_80E9E90(u8 taskId) PlaySE(SE_SELECT); DestroyListMenuTask(data[5], NULL, NULL); RemoveScrollIndicatorArrowPair(data[8]); - sub_819746C(data[6], 0); + ClearWindowAndBorder(data[6], 0); ClearWindowTilemap(data[6]); RemoveWindow(data[6]); schedule_bg_copy_tilemap_to_vram(0); @@ -1020,8 +1020,8 @@ void sub_80E9FFC(u8 taskId) s16 *data; data = gTasks[taskId].data; - sub_819746C(data[6], FALSE); - sub_819746C(data[7], FALSE); + ClearWindowAndBorder(data[6], FALSE); + ClearWindowAndBorder(data[7], FALSE); ClearWindowTilemap(data[6]); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); @@ -1042,7 +1042,7 @@ void sub_80EA08C(u8 taskId) s16 *data; data = gTasks[taskId].data; - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); gSaveBlock1Ptr->secretBases[data[4]].sbr_field_1_6 = 0; game_continue(taskId); @@ -1061,7 +1061,7 @@ void sub_80EA13C(u8 taskId) s16 *data; data = gTasks[taskId].data; - sub_8197434(0, 0); + ClearWindowAndWideBorder(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); sub_80E9E00(taskId); gTasks[taskId].func = sub_80E9E90; @@ -1073,7 +1073,7 @@ void sub_80EA18C(u8 taskId) data = gTasks[taskId].data; sub_80E9E44(taskId); - sub_819746C(data[7], 0); + ClearWindowAndBorder(data[7], 0); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); schedule_bg_copy_tilemap_to_vram(0); diff --git a/src/shop.c b/src/shop.c index 8eefd5e97..9c7c30fed 100755 --- a/src/shop.c +++ b/src/shop.c @@ -545,7 +545,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, s description = gText_QuitShopping; } - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); BuyMenuPrint(2, description, 3, 1, 0, 0); } @@ -1144,7 +1144,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) { s16 *data = gTasks[taskId].data; - FillWindowPixelBuffer(4, 0x11); + FillWindowPixelBuffer(4, PIXEL_BUFFER_WHITE); PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF); ConvertIntToDecimalStringN(gStringVar1, tItemCount, 2, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); diff --git a/src/slot_machine.c b/src/slot_machine.c index 0871506cd..bf26de437 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1026,7 +1026,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1269,7 +1269,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); @@ -1278,7 +1278,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } else if (input == 1 || input == -1) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1297,7 +1297,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1316,7 +1316,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); sSlotMachine->state = 27; } return FALSE; @@ -3036,7 +3036,7 @@ s16 sub_8102D5C(s16 a0) sub_81065DC(); AddWindow(&gUnknown_085A7444); PutWindowTilemap(1); - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); task->data[0]++; } @@ -3052,7 +3052,7 @@ s16 sub_8102D5C(s16 a0) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(1); CopyWindowToVram(1, 1); RemoveWindow(1); diff --git a/src/start_menu.c b/src/start_menu.c index d5eec76d2..4231db7cc 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -897,7 +897,7 @@ static void SaveGameTask(u8 taskId) static void sub_80A0014(void) { - sub_8197434(0, TRUE); + ClearWindowAndWideBorder(0, TRUE); } static void HideSaveInfoWindow(void) @@ -943,7 +943,7 @@ static bool8 SaveErrorTimer(void) static u8 SaveConfirmSaveCallback(void) { - sub_819746C(GetStartMenuWindowId(), FALSE); + ClearWindowAndBorder(GetStartMenuWindowId(), FALSE); RemoveStartMenuWindow(); ShowSaveInfoWindow(); @@ -1135,7 +1135,7 @@ static void InitBattlePyramidRetire(void) static u8 BattlePyramidConfirmRetireCallback(void) { - sub_819746C(GetStartMenuWindowId(), FALSE); + ClearWindowAndBorder(GetStartMenuWindowId(), FALSE); RemoveStartMenuWindow(); ShowSaveMessage(gText_BattlePyramidConfirmRetire, BattlePyramidRetireYesNoCallback); @@ -1232,7 +1232,7 @@ static void sub_80A0550(u8 taskId) switch (*step) { case 0: - FillWindowPixelBuffer(0, 17); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, @@ -1364,7 +1364,7 @@ static void ShowSaveInfoWindow(void) static void RemoveSaveInfoWindow(void) { - sub_819746C(sSaveInfoWindowId, FALSE); + ClearWindowAndBorder(sSaveInfoWindowId, FALSE); RemoveWindow(sSaveInfoWindowId); } @@ -1386,7 +1386,7 @@ void sub_80A08CC(void) // Referenced in data/specials.inc and data/scripts/maps/ static void HideStartMenuWindow(void) { - sub_819746C(GetStartMenuWindowId(), TRUE); + ClearWindowAndBorder(GetStartMenuWindowId(), TRUE); RemoveStartMenuWindow(); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); diff --git a/src/starter_choose.c b/src/starter_choose.c index 2d4a1b1e1..f4067b382 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -523,7 +523,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0); @@ -579,7 +579,7 @@ static void CreateStarterPokemonLabel(u8 selection) winTemplate.tilemapTop = gStarterChoose_LabelCoords[selection][1]; sStarterChooseWindowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(sStarterChooseWindowId, 0); + FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_BUFFER_TRANSPARENT); width = GetStringCenterAlignXOffset(7, text, 0x68); AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); @@ -600,7 +600,7 @@ static void CreateStarterPokemonLabel(u8 selection) static void sub_8134604(void) { - FillWindowPixelBuffer(sStarterChooseWindowId, 0); + FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_BUFFER_TRANSPARENT); ClearWindowTilemap(sStarterChooseWindowId); RemoveWindow(sStarterChooseWindowId); sStarterChooseWindowId = 0xFF; diff --git a/src/trade.c b/src/trade.c index 70b57fbc7..148ad2e26 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1418,7 +1418,7 @@ static void sub_80772A4(void) for (i = 0; i < 18; i++) { ClearWindowTilemap(i); - FillWindowPixelBuffer(i, 0); + FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); } FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 15); @@ -2461,7 +2461,7 @@ static void sub_8078DBC(void) if (gUnknown_0203229C->tradeMenuCursorPosition < 6) { sub_8098858(1, 1, 14); - FillWindowPixelBuffer(1, 0x11); + FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); PrintMenuTable(1, 2, gUnknown_0832DEAC); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -2724,7 +2724,7 @@ static void sub_8079408(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(i + 14, 0); + FillWindowPixelBuffer(i + 14, PIXEL_BUFFER_TRANSPARENT); rbox_fill_rectangle(i + 14); } @@ -3256,7 +3256,7 @@ static void sub_807A0C4(void) static void sub_807A19C(u8 a0) { - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(0, 20, 12); PutWindowTilemap(0); @@ -4185,7 +4185,7 @@ void sub_807B140(void) void sub_807B154(void) { - FillWindowPixelBuffer(0, 0xFF); + FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); PutWindowTilemap(0); CopyWindowToVram(0, 3); } @@ -4263,7 +4263,7 @@ static void sub_807B270(void) break; case 8: sub_807ACFC(1, 1); - FillWindowPixelBuffer(0, 0xFF); + FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); PutWindowTilemap(0); CopyWindowToVram(0, 3); gMain.state++; @@ -4654,7 +4654,7 @@ static bool8 sub_807BBEC(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, 0xFF); + FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -5146,7 +5146,7 @@ static bool8 sub_807CFC8(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, 0xFF); + FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -6085,7 +6085,7 @@ void sub_807F19C(void) void sub_807F1A8(u8 windowId, const u8 *str, u8 speed) { - FillWindowPixelBuffer(windowId, 0xFF); + FillWindowPixelBuffer(windowId, PIXEL_BUFFER_UNKNOWN); gUnknown_020322A0->unk_F6[0] = 15; gUnknown_020322A0->unk_F6[1] = 1; gUnknown_020322A0->unk_F6[2] = 6; diff --git a/src/trainer_card.c b/src/trainer_card.c index 49a62284f..d6d3b3152 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -350,7 +350,7 @@ static void sub_80C2760(u8 taskId) case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); sData->var_0++; } break; @@ -363,7 +363,7 @@ static void sub_80C2760(u8 taskId) sData->var_0++; break; case 3: - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); sub_80C4FF0(); sub_80C438C(2); sData->var_0++; @@ -1634,7 +1634,7 @@ static bool8 sub_80C4B08(struct Task* task) switch (sData->var_4) { case 0: - FillWindowPixelBuffer(1, 0); + FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); break; case 1: @@ -1659,7 +1659,7 @@ static bool8 sub_80C4B08(struct Task* task) if (!sData->var_8) sub_80C474C(); else - FillWindowPixelBuffer(2, 0); + FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); break; case 4: if (sData->var_8) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index efe11b0c7..5f351554e 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -609,7 +609,7 @@ void PrintOnTrainerHillRecordsWindow(void) u32 total, minutes, secondsWhole, secondsFraction; SetUpDataStruct(); - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); x = GetStringCenterAlignXOffset(1, gText_TimeBoard, 0xD0); AddTextPrinterParameterized3(0, 1, x, 2, sRecordWinColors, TEXT_SPEED_FF, gText_TimeBoard); diff --git a/src/window.c b/src/window.c index 3da529178..1daf4b5fc 100644 --- a/src/window.c +++ b/src/window.c @@ -6,7 +6,7 @@ u32 filler_03002F58; u32 filler_03002F5C; -u8 gUnknown_03002F60; +u8 gTransparentTileNumber; u32 filler_03002F64; void *gUnknown_03002F70[4]; extern u32 gUnneededFireRedVariable; @@ -106,7 +106,7 @@ bool16 InitWindows(const struct WindowTemplate *templates) } } - gUnknown_03002F60 = 0; + gTransparentTileNumber = TRANSPARENT_TILE_NUMBER; return TRUE; } @@ -359,13 +359,14 @@ void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 h } } +// Fills a window with transparent tiles. void ClearWindowTilemap(u8 windowId) { struct Window windowLocal = gWindows[windowId]; FillBgTilemapBufferRect( windowLocal.window.bg, - gUnknown_03002F60, + gTransparentTileNumber, windowLocal.window.tilemapLeft, windowLocal.window.tilemapTop, windowLocal.window.width, @@ -451,6 +452,7 @@ void CopyToWindowPixelBuffer(u8 windowId, const void *src, u16 size, u16 tileOff LZ77UnCompWram(src, gWindows[windowId].tileData + (0x20 * tileOffset)); } +// Sets all pixels within the window to the fillValue color. void FillWindowPixelBuffer(u8 windowId, u8 fillValue) { int fillSize = gWindows[windowId].window.width * gWindows[windowId].window.height; -- cgit v1.2.3 From 449fb25f2372c8d51fc156d0eeeffa4023ec38b8 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 12 Feb 2019 00:40:34 -0600 Subject: Clear up misnamed time-based flags and functions --- src/clock.c | 2 +- src/event_data.c | 7 +++---- src/scrcmd.c | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/clock.c b/src/clock.c index d52fde22e..1e7c5f83e 100644 --- a/src/clock.c +++ b/src/clock.c @@ -41,7 +41,7 @@ static void UpdatePerDay(struct Time *localTime) if (*days != localTime->days && *days <= localTime->days) { daysSince = localTime->days - *days; - ClearUpperFlags(); + ClearDailyFlags(); UpdateDewfordTrendPerDay(daysSince); UpdateTVShowsPerDay(daysSince); UpdateWeatherPerDay(daysSince); diff --git a/src/event_data.c b/src/event_data.c index df289c538..a9da142e5 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -3,7 +3,7 @@ #include "pokedex.h" #define TEMP_FLAGS_SIZE 0x4 -#define TEMP_UPPER_FLAGS_SIZE 0x8 +#define DAILY_FLAGS_SIZE 0x8 #define TEMP_VARS_SIZE 0x20 EWRAM_DATA u16 gSpecialVar_0x8000 = 0; @@ -48,10 +48,9 @@ void ClearTempFieldEventData(void) FlagClear(FLAG_NURSE_UNION_ROOM_REMINDER); } -// Probably had different flag splits at one point. -void ClearUpperFlags(void) +void ClearDailyFlags(void) { - memset(gSaveBlock1Ptr->flags + 0x124, 0, TEMP_UPPER_FLAGS_SIZE); + memset(gSaveBlock1Ptr->flags + 0x124, 0, DAILY_FLAGS_SIZE); } void DisableNationalPokedex(void) diff --git a/src/scrcmd.c b/src/scrcmd.c index 837259a7f..51d96ff2e 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -690,7 +690,7 @@ bool8 ScrCmd_initclock(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx) +bool8 ScrCmd_dotimebasedevents(struct ScriptContext *ctx) { DoTimeBasedEvents(); return FALSE; -- cgit v1.2.3 From e7d02681436900d901d4667e525d5d5a99ad2ba1 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 21:41:28 -0500 Subject: Fix spelling of Rayquaza --- src/intro.c | 64 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/intro.c b/src/intro.c index 728811e82..4f76faf87 100644 --- a/src/intro.c +++ b/src/intro.c @@ -79,10 +79,10 @@ * Task_IntroLoadClouds3 * Task_IntroCloudsScene * Task_IntroLoadRayquazaLightningScene - * Task_IntroRaquazaLightningScene - * Task_IntroLoadRaquazaGlowScene - * Task_IntroRaquazaGlowScene_0 - * - Runs concurrently with Task_IntroRaquazaGlowScene_1 + * Task_IntroRayquazaLightningScene + * Task_IntroLoadRayquazaGlowScene + * Task_IntroRayquazaGlowScene_0 + * - Runs concurrently with Task_IntroRayquazaGlowScene_1 * Task_EndIntroMovie * MainCB2_EndIntro * - Advances to CB2_InitTitleScreen @@ -389,7 +389,7 @@ static const union AnimCmd *const gUnknown_085E4C40[] = gUnknown_085E4C28, gUnknown_085E4C34, }; -static void SpriteCB_IntroRaquazaLightning(struct Sprite *sprite); +static void SpriteCB_IntroRayquazaLightning(struct Sprite *sprite); static const struct SpriteTemplate gIntroLightningSprite = { .tileTag = 1503, @@ -398,7 +398,7 @@ static const struct SpriteTemplate gIntroLightningSprite = .anims = gUnknown_085E4C40, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_IntroRaquazaLightning, + .callback = SpriteCB_IntroRayquazaLightning, }; static const s16 gIntroGroudonRockData[][3] = { @@ -875,8 +875,8 @@ static const union AnimCmd *const gUnknown_085E502C[] = { gUnknown_085E5024, }; -static void SpriteCB_IntroRaquazaHyperbeam(struct Sprite *sprite); -static const struct SpriteTemplate gIntroRaquazaHyperbeamSprite = +static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite); +static const struct SpriteTemplate gIntroRayquazaHyperbeamSprite = { .tileTag = 2003, .paletteTag = 2003, @@ -884,14 +884,14 @@ static const struct SpriteTemplate gIntroRaquazaHyperbeamSprite = .anims = gUnknown_085E502C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_IntroRaquazaHyperbeam, + .callback = SpriteCB_IntroRayquazaHyperbeam, }; -static const struct CompressedSpriteSheet gIntroRaquazaGlowSpriteSheet[] = +static const struct CompressedSpriteSheet gIntroRayquazaGlowSpriteSheet[] = { {gIntro3MiscTiles, 0xA00, 2003}, {NULL}, }; -static const struct SpritePalette gIntroRaquazaGlowPalette[] = +static const struct SpritePalette gIntroRayquazaGlowPalette[] = { {gIntro3Misc1Palette, 2003}, {NULL}, @@ -928,16 +928,16 @@ static void Task_IntroLoadClouds1(u8); static void Task_IntroLoadClouds2(u8); static void Task_IntroLoadClouds3(u8); static void Task_IntroCloudScene(u8); -static void Task_IntroLoadRaquazaLightningScene(u8); -static void Task_IntroRaquazaLightningScene(u8); -static void Task_IntroLoadRaquazaGlowScene(u8); -static void Task_IntroRaquazaGlowScene_0(u8); +static void Task_IntroLoadRayquazaLightningScene(u8); +static void Task_IntroRayquazaLightningScene(u8); +static void Task_IntroLoadRayquazaGlowScene(u8); +static void Task_IntroRayquazaGlowScene_0(u8); static void Task_EndIntroMovie(u8); static void CreateGroudonRockSprites(u8); static void SpriteCB_IntroGroudonRocks(struct Sprite *); static void CreateKyogreBubbleSprites_0(u8); static void CreateKyogreBubbleSprites_1(void); -static void Task_IntroRaquazaGlowScene_1(u8); +static void Task_IntroRayquazaGlowScene_1(u8); static void sub_816F46C(struct Sprite *); static void sub_816F5B4(struct Sprite *); static void sub_816F660(struct Sprite *); @@ -2133,12 +2133,12 @@ static void Task_IntroCloudScene(u8 taskId) if (data[6] != 0) data[6] -= 0x80; else if (!gPaletteFade.active) - gTasks[taskId].func = Task_IntroLoadRaquazaLightningScene; + gTasks[taskId].func = Task_IntroLoadRayquazaLightningScene; break; } } -static void Task_IntroLoadRaquazaLightningScene(u8 taskId) +static void Task_IntroLoadRayquazaLightningScene(u8 taskId) { LZDecompressVram(gIntro3RayquazaTilemap, (void *)(VRAM + 0xE000)); LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(VRAM + 0xC000)); @@ -2150,7 +2150,7 @@ static void Task_IntroLoadRaquazaLightningScene(u8 taskId) | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroRaquazaLightningScene; + gTasks[taskId].func = Task_IntroRayquazaLightningScene; gTasks[taskId].data[0] = 0; gTasks[taskId].data[6] = 1; gTasks[taskId].data[7] = 0; @@ -2158,7 +2158,7 @@ static void Task_IntroLoadRaquazaLightningScene(u8 taskId) LoadSpritePalettes(gIntroRayquazaLightningPalette); } -static void Task_IntroRaquazaLightningScene(u8 taskId) +static void Task_IntroRayquazaLightningScene(u8 taskId) { s16 *data = gTasks[taskId].data; u8 spriteId; @@ -2191,12 +2191,12 @@ static void Task_IntroRaquazaLightningScene(u8 taskId) break; case 2: if (--data[6] == 0) - gTasks[taskId].func = Task_IntroLoadRaquazaGlowScene; + gTasks[taskId].func = Task_IntroLoadRayquazaGlowScene; break; } } -static void SpriteCB_IntroRaquazaLightning(struct Sprite *sprite) +static void SpriteCB_IntroRayquazaLightning(struct Sprite *sprite) { if (sprite->animEnded) sprite->invisible = TRUE; @@ -2227,30 +2227,30 @@ static void SpriteCB_IntroRaquazaLightning(struct Sprite *sprite) } } -static void Task_IntroLoadRaquazaGlowScene(u8 taskId) +static void Task_IntroLoadRayquazaGlowScene(u8 taskId) { u8 newTaskId; - LoadCompressedSpriteSheet(gIntroRaquazaGlowSpriteSheet); - LoadSpritePalettes(gIntroRaquazaGlowPalette); + LoadCompressedSpriteSheet(gIntroRayquazaGlowSpriteSheet); + LoadSpritePalettes(gIntroRayquazaGlowPalette); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); - gTasks[taskId].func = Task_IntroRaquazaGlowScene_0; + gTasks[taskId].func = Task_IntroRayquazaGlowScene_0; BeginNormalPaletteFade(0x0000FFDE, 0, 16, 0, RGB(9, 10, 10)); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0xA8; gTasks[taskId].data[2] = -0x10; gTasks[taskId].data[3] = -0x88; gTasks[taskId].data[4] = -0x10; - newTaskId = CreateTask(Task_IntroRaquazaGlowScene_1, 0); + newTaskId = CreateTask(Task_IntroRayquazaGlowScene_1, 0); gTasks[newTaskId].data[4] = taskId; } -static void Task_IntroRaquazaGlowScene_0(u8 taskId) +static void Task_IntroRayquazaGlowScene_0(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2303,9 +2303,9 @@ static void Task_EndIntroMovie(u8 taskId) SetMainCallback2(MainCB2_EndIntro); } -static void Task_IntroRaquazaGlowScene_1(u8 taskId) +static void Task_IntroRayquazaGlowScene_1(u8 taskId) { - // Note: data[4] contains the taskId of Task_IntroRaquazaGlowScene_0 + // Note: data[4] contains the taskId of Task_IntroRayquazaGlowScene_0 u8 spriteId; s16 *data = gTasks[taskId].data; data[2]++; @@ -2354,7 +2354,7 @@ static void Task_IntroRaquazaGlowScene_1(u8 taskId) } if (data[1] == 6) { - spriteId = CreateSprite(&gIntroRaquazaHyperbeamSprite, 120, 88, 15); + spriteId = CreateSprite(&gIntroRayquazaHyperbeamSprite, 120, 88, 15); PlaySE(SE_OP_BASYU); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[3] = data[4]; @@ -3043,7 +3043,7 @@ static void sub_816FEDC(struct Sprite *sprite) } } -static void SpriteCB_IntroRaquazaHyperbeam(struct Sprite *sprite) +static void SpriteCB_IntroRayquazaHyperbeam(struct Sprite *sprite) { u16 foo; -- cgit v1.2.3 From 0a3912c95d4eaa5c8869a38a92c8873e9752e53a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 01:28:28 -0500 Subject: Add comments explaining asm in pokedex.c I added comments to each of the asm functions explaining why they won't match with the C. I also got one of the functions much closer to matching. --- src/pokedex.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/pokedex.c b/src/pokedex.c index c47ada5b8..ac38bdc98 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -3539,8 +3539,9 @@ void sub_80BFCF4(u16 a) { CopyToBgTilemapBuffer(1, gPokedexTilemap_ScreenSelectBar2, 0, 0); } - #ifdef NONMATCHING +// This doesn't match because gcc flips the naming of the r3 and r4 +// registers. void sub_80BFD0C(u8 a, u16 unused) { u8 i; @@ -3629,6 +3630,8 @@ _080BFD3E:\n\ #endif #ifdef NONMATCHING +// This doesn't match because gcc flips the naming of the r3 and r4 +// registers. void sub_80BFD7C(u8 a, u16 b) { u8 i; @@ -3959,6 +3962,8 @@ void sub_80C0354(u16 height, u8 left, u8 top) } #ifdef NONMATCHING +// This doesn't match because gcc manages to avoid using the stack +// to store local variables. void sub_80C0460(u16 weight, u8 left, u8 top) { u8 buffer[16]; @@ -5205,18 +5210,24 @@ void sub_80C1D70(u8 taskId) } #ifdef NONMATCHING +// This doesn't match because gcc flips the naming of the r7 and r6 +// registers. It also does one of the additions backwards. void sub_80C1D98(u8 a, u8 b, u8 c, u8 d) { u16 i; u16* ptr = GetBgTilemapBuffer(3); + u16* temp; for (i = 0; i < d; i++) { - ptr[b + i + (c << 6)] %= 0x1000; - ptr[b + i + (c << 6)] |= a * 4096; + // This addition is supposed to be done in this order; however, + // gcc will always do it in ptr + (c << 5) order. + temp = (c << 5) + ptr; + temp[b + i] %= 0x1000; + temp[b + i] |= a * 4096; - ptr[b + i + (c << 6) + 32] %= 0x1000; - ptr[b + i + (c << 6) + 32] |= a * 4096; + temp[b + i + 32] %= 0x1000; + temp[b + i + 32] |= a * 4096; } } #else -- cgit v1.2.3 From 986d3d8b2fc03bc3e384da15e5d1be4af8507e7b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 03:40:57 -0500 Subject: Finish and polish new_game.c Only one function is left undocumented. I tried to go into the assembly to at least name it, but it clears fields in the save block that aren't even documented yet. --- src/easy_chat.c | 2 +- src/event_data.c | 4 +--- src/frontier_util.c | 12 +++++----- src/link_rfu.c | 63 ++++++++++++++++++++++++++++++++--------------------- src/new_game.c | 46 +++++++++++++++++--------------------- src/pokedex.c | 7 +++--- src/record_mixing.c | 2 +- src/rom_8011DC0.c | 6 ++--- src/save_location.c | 14 ++++++------ 9 files changed, 81 insertions(+), 75 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index c84895df5..7158253d1 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -359,7 +359,7 @@ void easy_chat_input_maybe(void) words = gSaveBlock2Ptr->apprentices[0].easyChatWords; break; case 20: - words = sub_801B058(); + words = GetSaveBlock1Field3564(); break; default: return; diff --git a/src/event_data.c b/src/event_data.c index a9da142e5..e75c37773 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -28,8 +28,6 @@ EWRAM_DATA static u8 gUnknown_020375FC[16] = {0}; extern u16 *const gSpecialVars[]; -extern void sub_80BB358(void); - void InitEventData(void) { memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); @@ -69,7 +67,7 @@ void EnableNationalPokedex(void) FlagSet(FLAG_SYS_NATIONAL_DEX); gSaveBlock2Ptr->pokedex.mode = DEX_MODE_NATIONAL; gSaveBlock2Ptr->pokedex.order = 0; - sub_80BB358(); + ResetPokedexScrollPositions(); } bool32 IsNationalPokedexEnabled(void) diff --git a/src/frontier_util.c b/src/frontier_util.c index e6954c356..6fcbd4ffb 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1528,7 +1528,7 @@ static void ShowLinkContestResultsWindow(void) static void sub_81A31FC(void) { - u8 text[32]; + u8 name[32]; s32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; s32 facility = VarGet(VAR_FRONTIER_FACILITY); s32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -1541,9 +1541,9 @@ static void sub_81A31FC(void) gSaveBlock2Ptr->frontier.towerRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode]; if (battleMode == FRONTIER_MODE_LINK_MULTIS) { - StringCopy(text, gLinkPlayers[gBattleScripting.multiplayerId ^ 1].name); - StripExtCtrlCodes(text); - StringCopy(gSaveBlock2Ptr->frontier.field_EE1[lvlMode], text); + StringCopy(name, gLinkPlayers[gBattleScripting.multiplayerId ^ 1].name); + StripExtCtrlCodes(name); + StringCopy(gSaveBlock2Ptr->frontier.opponentName[lvlMode], name); SetTrainerId(gLinkPlayers[gBattleScripting.multiplayerId ^ 1].trainerId, gSaveBlock2Ptr->frontier.field_EF1[lvlMode]); } if (gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] > 1 @@ -2336,8 +2336,8 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) AddTextPrinterParameterized(gRecordsWindowId, 1, gLevelModeText[lvlMode], x, 1, TEXT_SPEED_FF, NULL); if (hallFacilityId == HALL_FACILITIES_COUNT) { - gSaveBlock2Ptr->frontier.field_EE1[0][PLAYER_NAME_LENGTH] = EOS; - gSaveBlock2Ptr->frontier.field_EE1[1][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentName[0][PLAYER_NAME_LENGTH] = EOS; + gSaveBlock2Ptr->frontier.opponentName[1][PLAYER_NAME_LENGTH] = EOS; Fill2PRecords(records2P, lvlMode); for (i = 0; i < 3; i++) Print2PRecord(i, 1, 4, &records2P[i]); diff --git a/src/link_rfu.c b/src/link_rfu.c index ebfc802e0..122ffd243 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -16,6 +16,7 @@ #include "task.h" #include "text.h" #include "constants/species.h" +#include "save.h" extern u16 gUnknown_03005DA8; extern void nullsub_89(u8 taskId); @@ -2347,17 +2348,17 @@ void sub_800E174(void) } } -void sub_800E378(struct UnkSaveSubstruct_3b98 *dest, u32 trainerId, const u8 *name) +void CopyTrainerRecord(struct TrainerNameRecord *dest, u32 trainerId, const u8 *name) { dest->trainerId = trainerId; StringCopy(dest->trainerName, name); } -bool32 sub_800E388(const u8 *name) +bool32 NameIsNotEmpty(const u8 *name) { s32 i; - for (i = 0; i < 8; i++) + for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) { if (name[i] != 0) { @@ -2367,52 +2368,64 @@ bool32 sub_800E388(const u8 *name) return FALSE; } -void sub_800E3A8(void) +// Save the currently connected players into the trainer records, shifting all previous records down. +void RecordMixTrainerNames(void) { if (gWirelessCommType != 0) { s32 i; s32 j; - s32 cnt; - s32 sp0[5]; - struct UnkSaveSubstruct_3b98 *sp14 = calloc(20, sizeof(struct UnkSaveSubstruct_3b98)); + s32 nextSpace; + s32 connectedTrainerRecordIndecies[5]; + struct TrainerNameRecord *newRecords = calloc(20, sizeof(struct TrainerNameRecord)); + + // Check if we already have a record saved for connected trainers. for (i = 0; i < GetLinkPlayerCount(); i++) { - sp0[i] = -1; + connectedTrainerRecordIndecies[i] = -1; for (j = 0; j < 20; j++) { - if ((u16)gLinkPlayers[i].trainerId == gSaveBlock1Ptr->unk_3B98[j].trainerId && StringCompare(gLinkPlayers[i].name, gSaveBlock1Ptr->unk_3B98[j].trainerName) == 0) + if ((u16)gLinkPlayers[i].trainerId == gSaveBlock1Ptr->trainerNameRecords[j].trainerId && StringCompare(gLinkPlayers[i].name, gSaveBlock1Ptr->trainerNameRecords[j].trainerName) == 0) { - sp0[i] = j; + connectedTrainerRecordIndecies[i] = j; } } } - cnt = 0; + + // Save the connected trainers first, at the top of the list. + nextSpace = 0; for (i = 0; i < GetLinkPlayerCount(); i++) { if (i != GetMultiplayerId() && gLinkPlayers[i].language != LANGUAGE_JAPANESE) { - sub_800E378(&sp14[cnt], (u16)gLinkPlayers[i].trainerId, gLinkPlayers[i].name); - if (sp0[i] >= 0) + CopyTrainerRecord(&newRecords[nextSpace], (u16)gLinkPlayers[i].trainerId, gLinkPlayers[i].name); + + // If we already had a record for this trainer, wipe it so that the next step doesn't duplicate it. + if (connectedTrainerRecordIndecies[i] >= 0) { - memset(gSaveBlock1Ptr->unk_3B98[sp0[i]].trainerName, 0, 8); + memset(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndecies[i]].trainerName, 0, 8); } - cnt++; + nextSpace++; } } + + // Copy all non-empty records to the new list, in the order they appear on the old list. If the list is full, + // the last (oldest) records will be dropped. for (i = 0; i < 20; i++) { - if (sub_800E388(gSaveBlock1Ptr->unk_3B98[i].trainerName)) + if (NameIsNotEmpty(gSaveBlock1Ptr->trainerNameRecords[i].trainerName)) { - sub_800E378(&sp14[cnt], gSaveBlock1Ptr->unk_3B98[i].trainerId, gSaveBlock1Ptr->unk_3B98[i].trainerName); - if (++cnt >= 20) + CopyTrainerRecord(&newRecords[nextSpace], gSaveBlock1Ptr->trainerNameRecords[i].trainerId, gSaveBlock1Ptr->trainerNameRecords[i].trainerName); + if (++nextSpace >= 20) { break; } } } - memcpy(gSaveBlock1Ptr->unk_3B98, sp14, 20 * sizeof(struct UnkSaveSubstruct_3b98)); - free(sp14); + + // Finalize the new list, and clean up. + memcpy(gSaveBlock1Ptr->trainerNameRecords, newRecords, 20 * sizeof(struct TrainerNameRecord)); + free(newRecords); } } @@ -2422,11 +2435,11 @@ bool32 sub_800E540(u16 id, u8 *name) for (i = 0; i < 20; i++) { - if (StringCompare(gSaveBlock1Ptr->unk_3B98[i].trainerName, name) == 0 && gSaveBlock1Ptr->unk_3B98[i].trainerId == id) + if (StringCompare(gSaveBlock1Ptr->trainerNameRecords[i].trainerName, name) == 0 && gSaveBlock1Ptr->trainerNameRecords[i].trainerId == id) { return TRUE; } - if (!sub_800E388(gSaveBlock1Ptr->unk_3B98[i].trainerName)) + if (!NameIsNotEmpty(gSaveBlock1Ptr->trainerNameRecords[i].trainerName)) { return FALSE; } @@ -2434,14 +2447,14 @@ bool32 sub_800E540(u16 id, u8 *name) return FALSE; } -void sub_800E5AC(void) +void WipeTrainerNameRecords(void) { s32 i; for (i = 0; i < 20; i++) { - gSaveBlock1Ptr->unk_3B98[i].trainerId = 0; - CpuFill16(0, gSaveBlock1Ptr->unk_3B98[i].trainerName, 8); + gSaveBlock1Ptr->trainerNameRecords[i].trainerId = 0; + CpuFill16(0, gSaveBlock1Ptr->trainerNameRecords[i].trainerName, 8); } } diff --git a/src/new_game.c b/src/new_game.c index a4bf2951f..be84445bf 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -30,31 +30,25 @@ #include "apprentice.h" #include "frontier_util.h" #include "constants/maps.h" +#include "pokedex.h" +#include "save.h" +#include "link_rfu.h" +#include "main.h" +#include "contest.h" +#include "item_menu.h" +#include "pokemon_storage_system.h" +#include "decoration_inventory.h" +#include "secret_base.h" +#include "player_pc.h" +#include "field_specials.h" + -extern u16 gSaveFileStatus; -extern u8 gUnknown_030060B0; - -// TODO: replace those declarations with file headers -extern u16 GetGeneratedTrainerIdLower(void); -extern void ClearContestWinnerPicsInContestHall(void); -extern void sub_80BB358(void); -extern void ResetBagScrollPositions(void); -extern void ResetGabbyAndTy(void); -extern void ResetSecretBases(void); -extern void ResetLinkContestBoolean(void); -extern void sub_8052DA8(void); -extern void ResetPokemonStorageSystem(void); -extern void NewGameInitPCItems(void); -extern void ClearDecorationInventories(void); -extern void ResetFanClub(void); extern void copy_strings_to_sav1(void); extern void sub_801AFD8(void); -extern void sub_800E5AC(void); -extern void ResetContestLinkResults(void); extern void ResetPokeJumpResults(void); extern void SetBerryPowder(u32* powder, u32 newValue); -extern const u8 EventScript_2715DE[]; +extern const u8 EventScript_ResetAllMapFlags[]; // this file's functions static void ClearFrontierRecord(void); @@ -112,7 +106,7 @@ static void SetDefaultOptions(void) static void ClearPokedexFlags(void) { - gUnknown_030060B0 = 0; + gUnusedU8 = 0; memset(&gSaveBlock2Ptr->pokedex.owned, 0, sizeof(gSaveBlock2Ptr->pokedex.owned)); memset(&gSaveBlock2Ptr->pokedex.seen, 0, sizeof(gSaveBlock2Ptr->pokedex.seen)); } @@ -130,8 +124,8 @@ static void ClearFrontierRecord(void) { CpuFill32(0, &gSaveBlock2Ptr->frontier, sizeof(gSaveBlock2Ptr->frontier)); - gSaveBlock2Ptr->frontier.field_EE1[0][0] = EOS; - gSaveBlock2Ptr->frontier.field_EE1[1][0] = EOS; + gSaveBlock2Ptr->frontier.opponentName[0][0] = EOS; + gSaveBlock2Ptr->frontier.opponentName[1][0] = EOS; } static void WarpToTruck(void) @@ -149,7 +143,7 @@ void Sav2_ClearSetDefault(void) void ResetMenuAndMonGlobals(void) { gDifferentSaveFile = 0; - sub_80BB358(); + ResetPokedexScrollPositions(); ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); ResetBagScrollPositions(); @@ -170,7 +164,7 @@ void NewGameInitData(void) ClearSav1(); ClearMailData(); gSaveBlock2Ptr->specialSaveWarpFlags = 0; - gSaveBlock2Ptr->field_A8 = 0; + gSaveBlock2Ptr->unusedFlagField = 0; InitPlayerTrainerId(); PlayTimeCounter_Reset(); ClearPokedexFlags(); @@ -203,7 +197,7 @@ void NewGameInitData(void) ResetFanClub(); ResetLotteryCorner(); WarpToTruck(); - ScriptContext2_RunNewScript(EventScript_2715DE); + ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags); ResetMiniGamesResults(); copy_strings_to_sav1(); SetLilycoveLady(); @@ -211,7 +205,7 @@ void NewGameInitData(void) ClearRankingHallRecords(); InitMatchCallCounters(); sub_801AFD8(); - sub_800E5AC(); + WipeTrainerNameRecords(); ResetTrainerHillResults(); ResetContestLinkResults(); } diff --git a/src/pokedex.c b/src/pokedex.c index c47ada5b8..b2eba6836 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -37,7 +37,8 @@ static EWRAM_DATA u8 gUnknown_02039B52 = 0; static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL; // IWRAM common -u8 gUnknown_030060B0; +// This is written to, but never read. +u8 gUnusedU8; void (*gUnknown_030060B4)(void); struct PokedexOption @@ -1225,7 +1226,7 @@ void ResetPokedex(void) gUnknown_02039B50 = 0; gUnknown_02039B52 = 64; - gUnknown_030060B0 = 0; + gUnusedU8 = 0; gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; gSaveBlock2Ptr->pokedex.order = 0; gSaveBlock2Ptr->pokedex.nationalMagic = 0; @@ -1243,7 +1244,7 @@ void ResetPokedex(void) } } -void sub_80BB358(void) +void ResetPokedexScrollPositions(void) { gUnknown_02039B50 = 0; gUnknown_02039B52 = 64; diff --git a/src/record_mixing.c b/src/record_mixing.c index 189033685..c0ca5f19c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1087,7 +1087,7 @@ void GetPlayerHallRecords(struct PlayerHallRecords *dst) CopyTrainerId(dst->twoPlayers[j].id1, gSaveBlock2Ptr->playerTrainerId); CopyTrainerId(dst->twoPlayers[j].id2, gSaveBlock2Ptr->frontier.field_EF1[j]); StringCopy(dst->twoPlayers[j].name1, gSaveBlock2Ptr->playerName); - StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.field_EE1[j]); + StringCopy(dst->twoPlayers[j].name2, gSaveBlock2Ptr->frontier.opponentName[j]); } for (i = 0; i < 2; i++) diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 9bdd86167..baed26cf8 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1687,7 +1687,7 @@ void sub_801440C(u8 taskId) case 9 ... 11: case 13: case 15: - sub_800E3A8(); + RecordMixTrainerNames(); break; } @@ -1800,12 +1800,12 @@ void sub_8014790(u8 taskId) sendBuff[1] = GetMonData(&gPlayerParty[gSelectedOrderFromParty[1] - 1], MON_DATA_SPECIES, NULL); gMain.savedCallback = NULL; data[0] = 4; - sub_800E3A8(); + RecordMixTrainerNames(); ResetBlockReceivedFlags(); break; case 16: case 23 ... 27: - sub_800E3A8(); + RecordMixTrainerNames(); DestroyTask(taskId); default: EnableBothScriptContexts(); diff --git a/src/save_location.c b/src/save_location.c index 2443b3161..20972873c 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -120,13 +120,13 @@ void TrySetMapSaveWarpStatus(void) void sub_81AFDA0(void) { - gSaveBlock2Ptr->field_A8 |= 0x8000; - gSaveBlock2Ptr->field_A8 |= 0x1; - gSaveBlock2Ptr->field_A8 |= 0x2; - gSaveBlock2Ptr->field_A8 |= 0x4; - gSaveBlock2Ptr->field_A8 |= 0x10; - gSaveBlock2Ptr->field_A8 |= 0x20; - gSaveBlock2Ptr->field_A8 |= 0x8; + gSaveBlock2Ptr->unusedFlagField |= 0x8000; + gSaveBlock2Ptr->unusedFlagField |= 0x1; + gSaveBlock2Ptr->unusedFlagField |= 0x2; + gSaveBlock2Ptr->unusedFlagField |= 0x4; + gSaveBlock2Ptr->unusedFlagField |= 0x10; + gSaveBlock2Ptr->unusedFlagField |= 0x20; + gSaveBlock2Ptr->unusedFlagField |= 0x8; } void sub_81AFDD0(void) -- cgit v1.2.3 From e90e3458cb0836a5a027b4ed59fd05f34f904bcf Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 18:24:55 -0500 Subject: Document the regi* code more Fixed some confusing naming, named some unknown symbols, and fixed the names of some flags. --- src/braille_puzzles.c | 125 +++++++++++++++++++++++++------------------------ src/fldeff_flash.c | 6 ++- src/fldeff_rocksmash.c | 6 ++- 3 files changed, 72 insertions(+), 65 deletions(-) (limited to 'src') diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 6be8ba4a4..449c1dfea 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -10,21 +10,20 @@ #include "constants/maps.h" #include "constants/songs.h" #include "constants/species.h" - -extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); // fieldmap -extern u8 GetCursorSelectionMonId(void); -extern u8 oei_task_add(void); +#include "fieldmap.h" +#include "party_menu.h" +#include "fldeff.h" // why do this, GF? enum { - STRENGTH_PUZZLE, - FLY_PUZZLE + REGIROCK_PUZZLE, + REGISTEEL_PUZZLE }; EWRAM_DATA static u8 sBraillePuzzleCallbackFlag = 0; -static const u8 gUnknown_085EFE74[][2] = +static const u8 gRegicePathCoords[][2] = { {0x04, 0x15}, {0x05, 0x15}, @@ -65,8 +64,8 @@ static const u8 gUnknown_085EFE74[][2] = }; void SealedChamberShakingEffect(u8); -void sub_8179860(void); -void sub_8179944(void); +void DoBrailleRegirockEffect(void); +void DoBrailleRegisteelEffect(void); bool8 ShouldDoBrailleDigEffect(void) { @@ -115,10 +114,10 @@ bool8 CheckRelicanthWailord(void) // THEORY: this was caused by block commenting out all of the older R/S braille functions but leaving the call to it itself, which creates the nullsub. // the code is shown below to show what this might look like. -void ShouldDoBrailleStrengthEffectOld(void) +void ShouldDoBrailleRegirockEffectOld(void) { /* - if (!FlagGet(FLAG_SYS_BRAILLE_STRENGTH) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) + if (!FlagGet(FLAG_SYS_BRAILLE_REGIROCK_HM) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) { if (gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 23) return TRUE; @@ -131,7 +130,7 @@ void ShouldDoBrailleStrengthEffectOld(void) return FALSE; } -void DoBrailleStrengthEffect(void) +void DoBrailleRegirockEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); MapGridSetMetatileIdAt(14, 26, 554); @@ -142,13 +141,13 @@ void DoBrailleStrengthEffect(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_STRENGTH); + FlagSet(FLAG_SYS_BRAILLE_REGIROCK_HM); ScriptContext2_Disable(); } -bool8 ShouldDoBrailleFlyEffect(void) +bool8 ShouldDoBrailleRegisteelEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_FLY) && (gSaveBlock1.location.mapGroup == MAP_GROUP_ANCIENT_TOMB && gSaveBlock1.location.mapNum == MAP_ID_ANCIENT_TOMB)) + if (!FlagGet(FLAG_SYS_BRAILLE_REGISTEEL_HM) && (gSaveBlock1.location.mapGroup == MAP_GROUP_ANCIENT_TOMB && gSaveBlock1.location.mapNum == MAP_ID_ANCIENT_TOMB)) { if (gSaveBlock1.pos.x == 8 && gSaveBlock1.pos.y == 25) return TRUE; @@ -157,24 +156,24 @@ bool8 ShouldDoBrailleFlyEffect(void) return FALSE; } -void DoBrailleFlyEffect(void) +void DoBrailleRegisteelEffect(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB); + FieldEffectStart(FLDEFF_USE_TOMB_PUZZLE_EFFECT); } bool8 FldEff_UseFlyAncientTomb(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)UseFlyAncientTomb_Callback >> 16; - gTasks[taskId].data[9] = (u32)UseFlyAncientTomb_Callback; + gTasks[taskId].data[8] = (u32)UseRegisteelHm_Callback >> 16; + gTasks[taskId].data[9] = (u32)UseRegisteelHm_Callback; return FALSE; } -void UseFlyAncientTomb_Callback(void) +void UseRegisteelHm_Callback(void) { - FieldEffectActiveListRemove(FLDEFF_USE_FLY_ANCIENT_TOMB); + FieldEffectActiveListRemove(FLDEFF_USE_TOMB_PUZZLE_EFFECT); UseFlyAncientTomb_Finish(); } @@ -188,7 +187,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_FLY); + FlagSet(FLAG_SYS_BRAILLE_REGISTEEL_HM); ScriptContext2_Disable(); } */ @@ -240,25 +239,25 @@ void SealedChamberShakingEffect(u8 taskId) } // moved later in the function because it was rewritten. -bool8 ShouldDoBrailleStrengthEffect(void) +bool8 ShouldDoBrailleRegirockEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_STRENGTH) + if (!FlagGet(FLAG_SYS_BRAILLE_REGIROCK_HM) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(DESERT_RUINS) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(DESERT_RUINS)) { if (gSaveBlock1Ptr->pos.x == 6 && gSaveBlock1Ptr->pos.y == 23) { - sBraillePuzzleCallbackFlag = STRENGTH_PUZZLE; + sBraillePuzzleCallbackFlag = REGIROCK_PUZZLE; return TRUE; } else if (gSaveBlock1Ptr->pos.x == 5 && gSaveBlock1Ptr->pos.y == 23) { - sBraillePuzzleCallbackFlag = STRENGTH_PUZZLE; + sBraillePuzzleCallbackFlag = REGIROCK_PUZZLE; return TRUE; } else if (gSaveBlock1Ptr->pos.x == 7 && gSaveBlock1Ptr->pos.y == 23) { - sBraillePuzzleCallbackFlag = STRENGTH_PUZZLE; + sBraillePuzzleCallbackFlag = REGIROCK_PUZZLE; return TRUE; } } @@ -266,19 +265,19 @@ bool8 ShouldDoBrailleStrengthEffect(void) return FALSE; } -void sub_8179834(void) +void SetUpPuzzleEffectRegirock(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB); + FieldEffectStart(FLDEFF_USE_TOMB_PUZZLE_EFFECT); } -void UseStrengthDesertRuins_Callback(void) +void UseRegirockHm_Callback(void) { - FieldEffectActiveListRemove(FLDEFF_USE_FLY_ANCIENT_TOMB); - sub_8179860(); + FieldEffectActiveListRemove(FLDEFF_USE_TOMB_PUZZLE_EFFECT); + DoBrailleRegirockEffect(); } -void sub_8179860(void) +void DoBrailleRegirockEffect(void) { MapGridSetMetatileIdAt(14, 26, 554); MapGridSetMetatileIdAt(15, 26, 555); @@ -288,33 +287,36 @@ void sub_8179860(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_STRENGTH); + FlagSet(FLAG_SYS_BRAILLE_REGIROCK_HM); ScriptContext2_Disable(); } -bool8 ShouldDoBrailleFlyEffect(void) +bool8 ShouldDoBrailleRegisteelEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_FLY) && (gSaveBlock1Ptr->location.mapGroup == 0x18 && gSaveBlock1Ptr->location.mapNum == 0x44)) + if (!FlagGet(FLAG_SYS_BRAILLE_REGISTEEL_HM) && (gSaveBlock1Ptr->location.mapGroup == 0x18 && gSaveBlock1Ptr->location.mapNum == 0x44)) { if (gSaveBlock1Ptr->pos.x == 8 && gSaveBlock1Ptr->pos.y == 25) - { sBraillePuzzleCallbackFlag = FLY_PUZZLE; return TRUE; } + { + sBraillePuzzleCallbackFlag = REGISTEEL_PUZZLE; + return TRUE; + } } return FALSE; } -void sub_8179918(void) +void SetUpPuzzleEffectRegisteel(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB); + FieldEffectStart(FLDEFF_USE_TOMB_PUZZLE_EFFECT); } -void UseFlyAncientTomb_Callback(void) +void UseRegisteelHm_Callback(void) { - FieldEffectActiveListRemove(FLDEFF_USE_FLY_ANCIENT_TOMB); - sub_8179944(); + FieldEffectActiveListRemove(FLDEFF_USE_TOMB_PUZZLE_EFFECT); + DoBrailleRegisteelEffect(); } -void sub_8179944(void) +void DoBrailleRegisteelEffect(void) { MapGridSetMetatileIdAt(14, 26, 554); MapGridSetMetatileIdAt(15, 26, 555); @@ -324,7 +326,7 @@ void sub_8179944(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_FLY); + FlagSet(FLAG_SYS_BRAILLE_REGISTEEL_HM); ScriptContext2_Disable(); } @@ -332,7 +334,7 @@ void sub_8179944(void) void DoBrailleWait(void) { /* - if (!FlagGet(FLAG_SYS_BRAILLE_WAIT)) + if (!FlagGet(FLAG_SYS_BRAILLE_REGICE_PUZZLE)) CreateTask(Task_BrailleWait, 0x50); } @@ -410,15 +412,15 @@ bool8 FldEff_UsePuzzleEffect(void) { u8 taskId = oei_task_add(); - if (sBraillePuzzleCallbackFlag == FLY_PUZZLE) + if (sBraillePuzzleCallbackFlag == REGISTEEL_PUZZLE) { - gTasks[taskId].data[8] = (u32)UseFlyAncientTomb_Callback >> 16; - gTasks[taskId].data[9] = (u32)UseFlyAncientTomb_Callback; + gTasks[taskId].data[8] = (u32)UseRegisteelHm_Callback >> 16; + gTasks[taskId].data[9] = (u32)UseRegisteelHm_Callback; } else { - gTasks[taskId].data[8] = (u32)UseStrengthDesertRuins_Callback >> 16; - gTasks[taskId].data[9] = (u32)UseStrengthDesertRuins_Callback; + gTasks[taskId].data[8] = (u32)UseRegirockHm_Callback >> 16; + gTasks[taskId].data[9] = (u32)UseRegirockHm_Callback; } return FALSE; } @@ -430,7 +432,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void) if (gSaveBlock1Ptr->location.mapGroup == 0x18 && gSaveBlock1Ptr->location.mapNum == 0x43) { - if (FlagGet(FLAG_SYS_BRAILLE_WAIT) != FALSE) + if (FlagGet(FLAG_SYS_BRAILLE_REGICE_PUZZLE)) return FALSE; if (FlagGet(FLAG_TEMP_2) == FALSE) return FALSE; @@ -439,35 +441,36 @@ bool8 ShouldDoBrailleRegicePuzzle(void) for (i = 0; i < 36; i++) { - u8 xPos = gUnknown_085EFE74[i][0]; - u8 yPos = gUnknown_085EFE74[i][1]; + u8 xPos = gRegicePathCoords[i][0]; + u8 yPos = gRegicePathCoords[i][1]; if (gSaveBlock1Ptr->pos.x == xPos && gSaveBlock1Ptr->pos.y == yPos) { u16 varValue; if (i < 16) { - u16 val = VarGet(VAR_0x403B); + u16 val = VarGet(VAR_REGICE_STEPS_1); val |= 1 << i; - VarSet(VAR_0x403B, val); + VarSet(VAR_REGICE_STEPS_1, val); } else if (i < 32) { - u16 val = VarGet(VAR_0x403C); + u16 val = VarGet(VAR_REGICE_STEPS_2); val |= 1 << (i - 16); - VarSet(VAR_0x403C, val); + VarSet(VAR_REGICE_STEPS_2, val); } else { - u16 val = VarGet(VAR_0x403D); + u16 val = VarGet(VAR_REGICE_STEPS_3); val |= 1 << (i - 32); - VarSet(VAR_0x403D, val); + VarSet(VAR_REGICE_STEPS_3, val); } - varValue = VarGet(VAR_0x403B); - if (varValue != 0xFFFF || VarGet(VAR_0x403C) != varValue || VarGet(VAR_0x403D) != 0xF) + varValue = VarGet(VAR_REGICE_STEPS_1); + if (varValue != 0xFFFF || VarGet(VAR_REGICE_STEPS_2) != varValue || VarGet(VAR_REGICE_STEPS_3) != 0xF) return FALSE; + // This final check is redundant. if (gSaveBlock1Ptr->pos.x == 8 && gSaveBlock1Ptr->pos.y == 21) return TRUE; else diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index f3bd76cbf..c002f700f 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -74,11 +74,13 @@ static const u32 gCaveTransitionTiles[] = INCBIN_U32("graphics/misc/cave_transit // text bool8 SetUpFieldMove_Flash(void) { - if (ShouldDoBrailleFlyEffect()) + // In Ruby and Sapphire, Registeel's tomb is opened by using Fly. In Emerald, + // Flash is used instead. + if (ShouldDoBrailleRegisteelEffect()) { gSpecialVar_Result = GetCursorSelectionMonId(); gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_8179918; + gPostMenuFieldCallback = SetUpPuzzleEffectRegisteel; return TRUE; } else if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH)) diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 9181b5532..86df8e943 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -119,11 +119,13 @@ static void sub_813561C(u8 taskId) bool8 SetUpFieldMove_RockSmash(void) { - if (ShouldDoBrailleStrengthEffect()) + // In Ruby and Sapphire, Regirock's tomb is opened by using Strength. In Emerald, + // it is opened by using Rock Smash. + if (ShouldDoBrailleRegirockEffect()) { gSpecialVar_Result = GetCursorSelectionMonId(); gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_8179834; + gPostMenuFieldCallback = SetUpPuzzleEffectRegirock; return TRUE; } else if (CheckObjectGraphicsInFrontOfPlayer(EVENT_OBJ_GFX_BREAKABLE_ROCK) == TRUE) -- cgit v1.2.3 From 35575b57a01bbd5447fbcee3b30050d8d8c3d02e Mon Sep 17 00:00:00 2001 From: garak Date: Sat, 16 Feb 2019 23:51:06 -0500 Subject: use BG_CHAR_ADDR define --- src/battle_anim.c | 6 ++-- src/battle_bg.c | 76 ++++++++++++++++++++++---------------------- src/battle_gfx_sfx_util.c | 2 +- src/contest.c | 16 +++++----- src/field_effect.c | 4 +-- src/intro.c | 18 +++++------ src/intro_credits_graphics.c | 8 ++--- src/title_screen.c | 4 +-- 8 files changed, 67 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index f086b1c33..8a03f03b3 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1933,12 +1933,12 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) if (IsContest() == TRUE) { - RequestDma3Fill(0, (void*)(VRAM + 0x8000), 0x2000, 1); + RequestDma3Fill(0, (void*)(BG_CHAR_ADDR(2)), 0x2000, 1); RequestDma3Fill(0xFF, (void*)(VRAM + 0xF000), 0x1000, 0); } else { - RequestDma3Fill(0, (void*)(VRAM + 0x4000), 0x2000, 1); + RequestDma3Fill(0, (void*)(BG_CHAR_ADDR(1)), 0x2000, 1); RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0); } @@ -2460,7 +2460,7 @@ static void LoadMoveBg(u16 bgId) else { LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000)); - LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x8000)); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2))); LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); } } diff --git a/src/battle_bg.c b/src/battle_bg.c index 61a914fc9..79618a151 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -720,25 +720,25 @@ void DrawMainBattleBackground(void) { if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { - LZDecompressVram(gBattleTerrainTiles_Water, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { - LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); } @@ -749,14 +749,14 @@ void DrawMainBattleBackground(void) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); return; @@ -767,47 +767,47 @@ void DrawMainBattleBackground(void) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); break; @@ -1089,8 +1089,8 @@ void DrawBattleEntryBackground(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - LZDecompressVram(gUnknown_08D778F0, (void*)(VRAM + 0x4000)); - LZDecompressVram(gUnknown_08D77B0C, (void*)(VRAM + 0x10000)); + LZDecompressVram(gUnknown_08D778F0, (void*)(BG_CHAR_ADDR(1))); + LZDecompressVram(gUnknown_08D77B0C, (void*)(BG_SCREEN_ADDR(2)0)); LoadCompressedPalette(gUnknown_08D77AE4, 0x60, 0x20); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04); @@ -1108,7 +1108,7 @@ void DrawBattleEntryBackground(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); } else @@ -1123,17 +1123,17 @@ void DrawBattleEntryBackground(void) } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { - LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(VRAM + 0xE000)); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { - LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(VRAM + 0xE000)); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { - LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(VRAM + 0xE000)); } else @@ -1143,13 +1143,13 @@ void DrawBattleEntryBackground(void) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); return; } @@ -1157,12 +1157,12 @@ void DrawBattleEntryBackground(void) if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) { - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(VRAM + 0xE000)); } else { - LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(VRAM + 0x4000)); + LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); } } @@ -1187,11 +1187,11 @@ bool8 LoadChosenBattleElement(u8 caseId) case 3: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { - LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); } else { @@ -1200,12 +1200,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; } } @@ -1214,31 +1214,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTiles_Building, (void*)(VRAM + 0x8000)); + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); break; } } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 7c6b74304..668bbf663 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -923,7 +923,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform } src = gMonSpritesGfxPtr->sprites[position]; - dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); + dst = (void *)(BG_SCREEN_ADDR(2)0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); DmaCopy32(3, src, dst, 0x800); paletteOffset = 0x100 + battlerAtk * 16; lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); diff --git a/src/contest.c b/src/contest.c index cf084e35e..5fb3f4dd5 100644 --- a/src/contest.c +++ b/src/contest.c @@ -589,8 +589,8 @@ static u8 sub_80D7E44(u8 *a) case 0: gPaletteFade.bufferTransferDisabled = TRUE; RequestDma3Fill(0, (void *)VRAM, 0x8000, 1); - RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1); - RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1); + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(2), 0x8000, 1); + RequestDma3Fill(0, (void *)BG_SCREEN_ADDR(2)0, 0x8000, 1); break; case 1: LZDecompressVram(gContestMiscGfx, (void *)VRAM); @@ -3340,12 +3340,12 @@ static u8 sub_80DC9EC(u8 a) CpuFill32(0, gContestResources->field_38 + 0x500, 0x300); RequestDma3Copy(gContestResources->field_34, - (u8 *)(VRAM + 0x10000 + gSprites[spriteId1].oam.tileNum * 32), + (u8 *)(BG_SCREEN_ADDR(2)0 + gSprites[spriteId1].oam.tileNum * 32), 0x800, 1); RequestDma3Copy(gContestResources->field_38, - (u8 *)(VRAM + 0x10000 + gSprites[spriteId2].oam.tileNum * 32), + (u8 *)(BG_SCREEN_ADDR(2)0 + gSprites[spriteId2].oam.tileNum * 32), 0x800, 1); @@ -3870,8 +3870,8 @@ static void sub_80DD940(void) src = gContestApplauseMeterGfx + 64; else src = gContestApplauseMeterGfx; - CpuCopy32(src, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i) * 32), 32); - CpuCopy32(src + 32, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 25 + i) * 32), 32); + CpuCopy32(src, (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i) * 32), 32); + CpuCopy32(src + 32, (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 25 + i) * 32), 32); if (sContest.applauseLevel > 4) sub_80DDA20(); @@ -4120,7 +4120,7 @@ static void sub_80DE008(bool8 a) { if (sContestantStatus[i].turnOrderMod != 0 && a) { - CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); + CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); gSprites[gContestResources->field_14[i].unk1].pos1.y = gUnknown_08587A70[gUnknown_02039F26[i]]; gSprites[gContestResources->field_14[i].unk1].invisible = FALSE; } @@ -4212,7 +4212,7 @@ static void sub_80DE350(void) s32 i; u16 bg1Cnt; - RequestDma3Fill(0,(void *)(VRAM + 0x8000), 0x2000, 0x1); + RequestDma3Fill(0,(void *)(BG_CHAR_ADDR(2)), 0x2000, 0x1); CpuFill32(0, gContestResources->field_24[1], 0x1000); Contest_SetBgCopyFlags(1); bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT); diff --git a/src/field_effect.c b/src/field_effect.c index badf57b16..69c6a1b7d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2960,8 +2960,8 @@ u8 sub_80B8F98(void) { for (i = 0; i < 8; i++) { - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; - *(u16*)(VRAM + 0x8000 + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4) = (gUnknown_0855B630[k * 32 + i * 4 + 1] << 8) + gUnknown_0855B630[k * 32 + i * 4]; + *(u16*)(BG_CHAR_ADDR(2) + (k + 1) * 32 + i * 4 + 2) = (gUnknown_0855B630[k * 32 + i * 4 + 3] << 8) + gUnknown_0855B630[k * 32 + i * 4 + 2]; } } return spriteId; diff --git a/src/intro.c b/src/intro.c index 4f76faf87..13ceced75 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1092,7 +1092,7 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) SetGpuReg(REG_OFFSET_BG1VOFS, 0x18); SetGpuReg(REG_OFFSET_BG0VOFS, 0x28); LZ77UnCompVram(gIntro1BGLeavesGfx, (void *)VRAM); - LZ77UnCompVram(gIntro1BG0_Tilemap, (void *)(VRAM + 0x8000)); + LZ77UnCompVram(gIntro1BG0_Tilemap, (void *)(BG_CHAR_ADDR(2))); DmaClear16(3, VRAM + 0x8800, 0x800); LZ77UnCompVram(gIntro1BG1_Tilemap, (void *)(VRAM + 0x9000)); DmaClear16(3, VRAM + 0x9800, 0x800); @@ -1549,7 +1549,7 @@ static void Task_IntroLoadPart3Graphics(u8 taskId) { intro_reset_and_hide_bgs(); LZ77UnCompVram(gIntro3Pokeball_Gfx, (void *)VRAM); - LZ77UnCompVram(gIntro3Pokeball_Tilemap, (void *)(VRAM + 0x4000)); + LZ77UnCompVram(gIntro3Pokeball_Tilemap, (void *)(BG_CHAR_ADDR(1))); LoadPalette(gIntro3PokeballPal, 0, 0x200); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; @@ -1601,8 +1601,8 @@ static void Task_IntroLoadGroudonScene(u8 taskId) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; LZDecompressVram(gIntro3GroudonGfx, (void *)VRAM); - LZDecompressVram(gIntro3GroudonTilemap, (void *)(VRAM + 0xC000)); - LZDecompressVram(gIntro3LegendBgGfx, (void *)(VRAM + 0x4000)); + LZDecompressVram(gIntro3GroudonTilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntro3LegendBgGfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gIntro3GroudonBgTilemap, (void *)(VRAM + 0xE000)); LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); @@ -1824,7 +1824,7 @@ static void Task_IntroLoadKyogreScene(u8 taskId) { ResetSpriteData(); LZDecompressVram(gIntro3KyogreGfx, (void *)VRAM); - LZDecompressVram(gIntro3KyogreTilemap, (void *)(VRAM + 0xC000)); + LZDecompressVram(gIntro3KyogreTilemap, (void *)(BG_CHAR_ADDR(3))); LZDecompressVram(gIntro3KyogreBgTilemap, (void *)(VRAM + 0xE000)); LoadCompressedSpriteSheet(gUnknown_085E4C88); LoadSpritePalette(gUnknown_085E4C98); @@ -2087,14 +2087,14 @@ static void Task_IntroLoadClouds1(u8 taskId) SetGpuReg(REG_OFFSET_BG2HOFS, 0); SetGpuReg(REG_OFFSET_BG2VOFS, 0); LZDecompressVram(gIntro3CloudsGfx, (void *)VRAM); - LZDecompressVram(gIntro3CloudsGfx, (void *)(VRAM + 0x4000)); + LZDecompressVram(gIntro3CloudsGfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gIntro3Clouds3Tilemap, (void *)(VRAM + 0xE000)); gTasks[taskId].func = Task_IntroLoadClouds2; } static void Task_IntroLoadClouds2(u8 taskId) { - LZDecompressVram(gIntro3Clouds1Tilemap, (void *)(VRAM + 0xC000)); + LZDecompressVram(gIntro3Clouds1Tilemap, (void *)(BG_CHAR_ADDR(3))); LZDecompressVram(gIntro3Clouds2Tilemap, (void *)(VRAM + 0xD000)); gTasks[taskId].func = Task_IntroLoadClouds3; } @@ -2141,8 +2141,8 @@ static void Task_IntroCloudScene(u8 taskId) static void Task_IntroLoadRayquazaLightningScene(u8 taskId) { LZDecompressVram(gIntro3RayquazaTilemap, (void *)(VRAM + 0xE000)); - LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(VRAM + 0xC000)); - LZDecompressVram(gIntro3RayquazaGfx, (void *)(VRAM + 0x4000)); + LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(BG_CHAR_ADDR(3))); + LZDecompressVram(gIntro3RayquazaGfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gIntro3Clouds2Gfx, (void *)VRAM); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index ba1f56158..4489b64c3 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -331,7 +331,7 @@ static void sub_817B458(u8); void load_intro_part2_graphics(u8 a) { - LZ77UnCompVram(gUnknown_085F0740, (void *)(VRAM + 0x4000)); + LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); LZ77UnCompVram(gUnknown_085F0BC0, (void *)(VRAM + 0x7800)); LoadPalette(&gUnknown_085F06E0, 240, 32); switch (a) @@ -438,7 +438,7 @@ void sub_817B150(u8 a) void sub_817B1C8(u8 a) { - LZ77UnCompVram(gUnknown_085F0740, (void *)(VRAM + 0x4000)); + LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); LZ77UnCompVram(gUnknown_085F0BC0, (void *)(VRAM + 0x7800)); switch (a) { @@ -449,7 +449,7 @@ void sub_817B1C8(u8 a) LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_085F0CFC, 0, 96); LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000)); + LZ77UnCompVram(gUnknown_085F16A8, (void *)(BG_SCREEN_ADDR(2)0)); LoadPalette(&gUnknown_085F1668, 256, 32); sub_817B76C(); break; @@ -459,7 +459,7 @@ void sub_817B1C8(u8 a) LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_085F0D5C, 0, 96); LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000)); + LZ77UnCompVram(gUnknown_085F16A8, (void *)(BG_SCREEN_ADDR(2)0)); LoadPalette(&gUnknown_085F1688, 256, 32); sub_817B76C(); break; diff --git a/src/title_screen.c b/src/title_screen.c index 06bb066bb..6e3ba45cf 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -509,9 +509,9 @@ void CB2_InitTitleScreen(void) LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)VRAM); LZ77UnCompVram(gUnknown_08DE0644, (void *)(VRAM + 0x4800)); LoadPalette(gTitleScreenBgPalettes, 0, 0x1E0); - LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(VRAM + 0x8000)); + LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(BG_CHAR_ADDR(2))); LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(VRAM + 0xD000)); - LZ77UnCompVram(sTitleScreenCloudsGfx, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(sTitleScreenCloudsGfx, (void *)(BG_CHAR_ADDR(3))); LZ77UnCompVram(gUnknown_08DDE458, (void *)(VRAM + 0xD800)); ScanlineEffect_Stop(); ResetTasks(); -- cgit v1.2.3 From 22657c708753df14e84d4bdae4afac0072803447 Mon Sep 17 00:00:00 2001 From: garak Date: Sun, 17 Feb 2019 00:25:48 -0500 Subject: use BG_SCREEN_ADDR macro for tilemap addresses --- src/battle_anim.c | 18 +++++------ src/battle_bg.c | 76 ++++++++++++++++++++++---------------------- src/battle_gfx_sfx_util.c | 2 +- src/berry_blender.c | 2 +- src/clear_save_data_screen.c | 2 +- src/contest.c | 28 ++++++++-------- src/contest_painting.c | 14 ++++---- src/credits.c | 2 +- src/field_effect.c | 2 +- src/field_effect_helpers.c | 4 +-- src/intro.c | 24 +++++++------- src/intro_credits_graphics.c | 20 ++++++------ src/main_menu.c | 4 +-- src/pokemon_storage_system.c | 2 +- src/save_failed_screen.c | 4 +-- src/starter_choose.c | 4 +-- src/title_screen.c | 6 ++-- 17 files changed, 107 insertions(+), 107 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index 8a03f03b3..f1cff1de2 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1933,13 +1933,13 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) if (IsContest() == TRUE) { - RequestDma3Fill(0, (void*)(BG_CHAR_ADDR(2)), 0x2000, 1); - RequestDma3Fill(0xFF, (void*)(VRAM + 0xF000), 0x1000, 0); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(16)), 0x2000, 1); + RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 0); } else { - RequestDma3Fill(0, (void*)(BG_CHAR_ADDR(1)), 0x2000, 1); - RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1); + RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 0); } sub_80A6B30(&animBg); @@ -1978,8 +1978,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) } else { - RequestDma3Fill(0, (void*)(VRAM + 0x6000), 0x2000, 1); - RequestDma3Fill(0, (void*)(VRAM + 0xF000), 0x1000, 1); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1); + RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1); sub_80A6B90(&animBg, 2); CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000); CpuFill16(0, animBg.bgTilemap + 0x400, 0x800); @@ -2452,14 +2452,14 @@ static void LoadMoveBg(u16 bgId) LZDecompressWram(tilemap, gDecompressionBuffer); sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0); dmaSrc = gDecompressionBuffer; - dmaDest = (void *)(VRAM + 0xD000); + dmaDest = (void *)(BG_SCREEN_ADDR(26)); DmaCopy32(3, dmaSrc, dmaDest, 0x800); - LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000)); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_SCREEN_ADDR(4))); LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32); } else { - LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000)); + LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26))); LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2))); LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 79618a151..9ca0f8b84 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -721,25 +721,25 @@ void DrawMainBattleBackground(void) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000)) { LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); } else @@ -750,14 +750,14 @@ void DrawMainBattleBackground(void) if (trainerClass == TRAINER_CLASS_LEADER) { LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); return; } @@ -768,47 +768,47 @@ void DrawMainBattleBackground(void) default: case MAP_BATTLE_SCENE_NORMAL: LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GYM: LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); break; case MAP_BATTLE_SCENE_MAGMA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); break; case MAP_BATTLE_SCENE_AQUA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); break; case MAP_BATTLE_SCENE_SIDNEY: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); break; case MAP_BATTLE_SCENE_PHOEBE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); break; case MAP_BATTLE_SCENE_GLACIA: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); break; case MAP_BATTLE_SCENE_DRAKE: LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); break; case MAP_BATTLE_SCENE_FRONTIER: LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); break; } @@ -1090,7 +1090,7 @@ void DrawBattleEntryBackground(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { LZDecompressVram(gUnknown_08D778F0, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gUnknown_08D77B0C, (void*)(BG_SCREEN_ADDR(2)0)); + LZDecompressVram(gUnknown_08D77B0C, (void*)(VRAM + 0x10000)); LoadCompressedPalette(gUnknown_08D77AE4, 0x60, 0x20); SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1); SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04); @@ -1109,7 +1109,7 @@ void DrawBattleEntryBackground(void) if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER) { LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28))); } else { @@ -1124,17 +1124,17 @@ void DrawBattleEntryBackground(void) else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON) { LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(BG_SCREEN_ADDR(28))); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE) { LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(BG_SCREEN_ADDR(28))); } else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA) { LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(28))); } else { @@ -1144,13 +1144,13 @@ void DrawBattleEntryBackground(void) if (trainerClass == TRAINER_CLASS_LEADER) { LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28))); return; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28))); return; } } @@ -1158,12 +1158,12 @@ void DrawBattleEntryBackground(void) if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL) { LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(BG_SCREEN_ADDR(28))); } else { LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1))); - LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(VRAM + 0xE000)); + LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28))); } } } @@ -1246,14 +1246,14 @@ bool8 LoadChosenBattleElement(u8 caseId) case 4: if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_EREADER_TRAINER)) { - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) { if (gGameVersion == VERSION_RUBY) - LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); else - LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); } else { @@ -1262,12 +1262,12 @@ bool8 LoadChosenBattleElement(u8 caseId) u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; if (trainerClass == TRAINER_CLASS_LEADER) { - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); break; } else if (trainerClass == TRAINER_CLASS_CHAMPION) { - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; } } @@ -1276,31 +1276,31 @@ bool8 LoadChosenBattleElement(u8 caseId) { default: case MAP_BATTLE_SCENE_NORMAL: - LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_GYM: - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_MAGMA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_AQUA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_SIDNEY: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_PHOEBE: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_GLACIA: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_DRAKE: - LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); break; case MAP_BATTLE_SCENE_FRONTIER: - LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(VRAM + 0xD000)); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); break; } } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 668bbf663..7c6b74304 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -923,7 +923,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform } src = gMonSpritesGfxPtr->sprites[position]; - dst = (void *)(BG_SCREEN_ADDR(2)0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); + dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32); DmaCopy32(3, src, dst, 0x800); paletteOffset = 0x100 + battlerAtk * 16; lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue); diff --git a/src/berry_blender.c b/src/berry_blender.c index f2e3c7d14..c85d0e827 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -3104,7 +3104,7 @@ static void sub_8083170(u16 a0, u16 a1) s32 var1, var2, var3, var4; u16 *vram; - vram = (u16*)(VRAM + 0x6000); + vram = (u16*)(BG_SCREEN_ADDR(12)); var1 = (a0 * 64) / a1; var2 = var1 / 8; for (var4 = 0; var4 < var2; var4++) diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 72d0daf55..5ec90e10c 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -153,7 +153,7 @@ static bool8 SetupClearSaveDataScreen(void) ((u16 *)(VRAM + 0x20))[i] = 0x1111; for (i = 0; i < 0x400; i++) - ((u16 *)(VRAM + 0xF000))[i] = 0x0001; + ((u16 *)(BG_SCREEN_ADDR(30)))[i] = 0x0001; ResetTasks(); ResetSpriteData(); ResetBgsAndClearDma3BusyFlags(0); diff --git a/src/contest.c b/src/contest.c index 5fb3f4dd5..7be4aa23b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -318,7 +318,7 @@ void LoadContestBgAfterMoveAnim(void) s32 i; LZDecompressVram(gContestMiscGfx, (void *)VRAM); - LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000)); + LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4))); CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0); CopyBgTilemapBufferToVram(3); LoadCompressedPalette(gUnknown_08C16E90, 0, 0x200); @@ -589,15 +589,15 @@ static u8 sub_80D7E44(u8 *a) case 0: gPaletteFade.bufferTransferDisabled = TRUE; RequestDma3Fill(0, (void *)VRAM, 0x8000, 1); - RequestDma3Fill(0, (void *)BG_CHAR_ADDR(2), 0x8000, 1); - RequestDma3Fill(0, (void *)BG_SCREEN_ADDR(2)0, 0x8000, 1); + RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1); + RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1); break; case 1: LZDecompressVram(gContestMiscGfx, (void *)VRAM); break; case 2: - LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000)); - DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000); + LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4))); + DmaCopyLarge32(3, (void *)(BG_SCREEN_ADDR(4)), shared15800, 0x2000, 0x1000); break; case 3: CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0); @@ -3328,24 +3328,24 @@ static u8 sub_80DC9EC(u8 a) CopySpriteTiles(0, 3, (void *)VRAM, - (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x26), + (u16 *)(BG_SCREEN_ADDR(28) + gUnknown_02039F26[a] * 5 * 64 + 0x26), gContestResources->field_34); CopySpriteTiles(0, 3, (void *)VRAM, - (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x36), + (u16 *)(BG_SCREEN_ADDR(28) + gUnknown_02039F26[a] * 5 * 64 + 0x36), gContestResources->field_38); CpuFill32(0, gContestResources->field_34 + 0x500, 0x300); CpuFill32(0, gContestResources->field_38 + 0x500, 0x300); RequestDma3Copy(gContestResources->field_34, - (u8 *)(BG_SCREEN_ADDR(2)0 + gSprites[spriteId1].oam.tileNum * 32), + (u8 *)(VRAM + 0x10000 + gSprites[spriteId1].oam.tileNum * 32), 0x800, 1); RequestDma3Copy(gContestResources->field_38, - (u8 *)(BG_SCREEN_ADDR(2)0 + gSprites[spriteId2].oam.tileNum * 32), + (u8 *)(VRAM + 0x10000 + gSprites[spriteId2].oam.tileNum * 32), 0x800, 1); @@ -3870,8 +3870,8 @@ static void sub_80DD940(void) src = gContestApplauseMeterGfx + 64; else src = gContestApplauseMeterGfx; - CpuCopy32(src, (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i) * 32), 32); - CpuCopy32(src + 32, (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 25 + i) * 32), 32); + CpuCopy32(src, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i) * 32), 32); + CpuCopy32(src + 32, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 25 + i) * 32), 32); if (sContest.applauseLevel > 4) sub_80DDA20(); @@ -4027,11 +4027,11 @@ static void sub_80DDE30(u8 taskId) gTasks[taskId].data[10] = 0; if (gTasks[taskId].data[11] == 0) { - RequestDma3Copy(shared16800, (void *)(VRAM + 0x2000), 0x1000, 1); + RequestDma3Copy(shared16800, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); } else { - RequestDma3Copy(shared15800, (void *)(VRAM + 0x2000), 0x1000, 1); + RequestDma3Copy(shared15800, (void *)(BG_SCREEN_ADDR(4)), 0x1000, 1); gTasks[taskId].data[12]++; } @@ -4120,7 +4120,7 @@ static void sub_80DE008(bool8 a) { if (sContestantStatus[i].turnOrderMod != 0 && a) { - CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(BG_SCREEN_ADDR(2)0 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); + CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].unk1].oam.tileNum + 6) * 32), 32); gSprites[gContestResources->field_14[i].unk1].pos1.y = gUnknown_08587A70[gUnknown_02039F26[i]]; gSprites[gContestResources->field_14[i].unk1].invisible = FALSE; } diff --git a/src/contest_painting.c b/src/contest_painting.c index 71a110aa8..2f0c97764 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -554,7 +554,7 @@ static void sub_8130430(u8 arg0, u8 arg1) break; } -#define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)]) +#define VRAM_PICTURE_DATA(x, y) (((u16 *)(BG_SCREEN_ADDR(12)))[(y) * 32 + (x)]) // Set the background for (y = 0; y < 20; y++) @@ -579,7 +579,7 @@ static void sub_8130430(u8 arg0, u8 arg1) else if (arg0 < 8) { RLUnCompVram(gPictureFrameTiles_5, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_5, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_5, (void *)(BG_SCREEN_ADDR(12))); } else { @@ -587,23 +587,23 @@ static void sub_8130430(u8 arg0, u8 arg1) { case CONTEST_CATEGORY_COOL: RLUnCompVram(gPictureFrameTiles_0, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_0, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_0, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_BEAUTY: RLUnCompVram(gPictureFrameTiles_1, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_1, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_1, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_CUTE: RLUnCompVram(gPictureFrameTiles_2, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_2, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_2, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_SMART: RLUnCompVram(gPictureFrameTiles_3, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_3, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_3, (void *)(BG_SCREEN_ADDR(12))); break; case CONTEST_CATEGORY_TOUGH: RLUnCompVram(gPictureFrameTiles_4, (void *)VRAM); - RLUnCompVram(gPictureFrameTilemap_4, (void *)(VRAM + 0x6000)); + RLUnCompVram(gPictureFrameTilemap_4, (void *)(BG_SCREEN_ADDR(12))); break; } } diff --git a/src/credits.c b/src/credits.c index c96c6b4a1..aee5332f5 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1343,7 +1343,7 @@ static void sub_81758E4(u8 taskIdA) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); - LZ77UnCompVram(gBirchGrassTilemap, (void *)(VRAM + 0x3800)); + LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2); for (i = 0; i < 0x800; i++) diff --git a/src/field_effect.c b/src/field_effect.c index 69c6a1b7d..e7c0b39b9 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2953,7 +2953,7 @@ u8 sub_80B8F98(void) { for (j = 12; j < 18; j++) { - ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1; + ((u16*)(BG_SCREEN_ADDR(31)))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1; } } for (k = 0; k < 90; k++) diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 53fd87e61..651b2baca 100755 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1418,7 +1418,7 @@ void sub_8155F80(struct Sprite *sprite) { for (j = 12; j < 18; j++) { - ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1; + ((u16*)(BG_SCREEN_ADDR(31)))[i * 32 + j] = 0xBFF4 + i * 6 + j + 1; } } } @@ -1504,7 +1504,7 @@ void sub_8155F80(struct Sprite *sprite) { for (j = 12; j < 18; j++) { - ((u16*)(VRAM + 0xF800))[i * 32 + j] = 0; + ((u16*)(BG_SCREEN_ADDR(31)))[i * 32 + j] = 0; } } SetGpuReg(REG_OFFSET_BG0VOFS, 0); diff --git a/src/intro.c b/src/intro.c index 13ceced75..23457f370 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1093,13 +1093,13 @@ static void Task_IntroLoadPart1Graphics(u8 taskId) SetGpuReg(REG_OFFSET_BG0VOFS, 0x28); LZ77UnCompVram(gIntro1BGLeavesGfx, (void *)VRAM); LZ77UnCompVram(gIntro1BG0_Tilemap, (void *)(BG_CHAR_ADDR(2))); - DmaClear16(3, VRAM + 0x8800, 0x800); - LZ77UnCompVram(gIntro1BG1_Tilemap, (void *)(VRAM + 0x9000)); - DmaClear16(3, VRAM + 0x9800, 0x800); - LZ77UnCompVram(gIntro1BG2_Tilemap, (void *)(VRAM + 0xA000)); - DmaClear16(3, VRAM + 0xA800, 0x800); - LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(VRAM + 0xB000)); - DmaClear16(3, VRAM + 0xB800, 0x800); + DmaClear16(3, BG_SCREEN_ADDR(17), 0x800); + LZ77UnCompVram(gIntro1BG1_Tilemap, (void *)(BG_SCREEN_ADDR(18))); + DmaClear16(3, BG_SCREEN_ADDR(19), 0x800); + LZ77UnCompVram(gIntro1BG2_Tilemap, (void *)(BG_SCREEN_ADDR(20))); + DmaClear16(3, BG_SCREEN_ADDR(21), 0x800); + LZ77UnCompVram(gIntro1BG3_Tilemap, (void *)(BG_SCREEN_ADDR(22))); + DmaClear16(3, BG_SCREEN_ADDR(23), 0x800); LoadPalette(gIntro1BGPals, 0, sizeof(gIntro1BGPals)); SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(22) | BGCNT_16COLOR | BGCNT_TXT256x512); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(20) | BGCNT_16COLOR | BGCNT_TXT256x512); @@ -1603,7 +1603,7 @@ static void Task_IntroLoadGroudonScene(u8 taskId) LZDecompressVram(gIntro3GroudonGfx, (void *)VRAM); LZDecompressVram(gIntro3GroudonTilemap, (void *)(BG_CHAR_ADDR(3))); LZDecompressVram(gIntro3LegendBgGfx, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gIntro3GroudonBgTilemap, (void *)(VRAM + 0xE000)); + LZDecompressVram(gIntro3GroudonBgTilemap, (void *)(BG_SCREEN_ADDR(28))); LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_ROCKS)]); CpuCopy16(gIntro3BgPal, gPlttBufferUnfaded, sizeof(gIntro3BgPal)); @@ -1825,7 +1825,7 @@ static void Task_IntroLoadKyogreScene(u8 taskId) ResetSpriteData(); LZDecompressVram(gIntro3KyogreGfx, (void *)VRAM); LZDecompressVram(gIntro3KyogreTilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3KyogreBgTilemap, (void *)(VRAM + 0xE000)); + LZDecompressVram(gIntro3KyogreBgTilemap, (void *)(BG_SCREEN_ADDR(28))); LoadCompressedSpriteSheet(gUnknown_085E4C88); LoadSpritePalette(gUnknown_085E4C98); BeginNormalPaletteFade(0xFFFFFFFE, 0, 0x10, 0, RGB_WHITEALPHA); @@ -2088,14 +2088,14 @@ static void Task_IntroLoadClouds1(u8 taskId) SetGpuReg(REG_OFFSET_BG2VOFS, 0); LZDecompressVram(gIntro3CloudsGfx, (void *)VRAM); LZDecompressVram(gIntro3CloudsGfx, (void *)(BG_CHAR_ADDR(1))); - LZDecompressVram(gIntro3Clouds3Tilemap, (void *)(VRAM + 0xE000)); + LZDecompressVram(gIntro3Clouds3Tilemap, (void *)(BG_SCREEN_ADDR(28))); gTasks[taskId].func = Task_IntroLoadClouds2; } static void Task_IntroLoadClouds2(u8 taskId) { LZDecompressVram(gIntro3Clouds1Tilemap, (void *)(BG_CHAR_ADDR(3))); - LZDecompressVram(gIntro3Clouds2Tilemap, (void *)(VRAM + 0xD000)); + LZDecompressVram(gIntro3Clouds2Tilemap, (void *)(BG_SCREEN_ADDR(26))); gTasks[taskId].func = Task_IntroLoadClouds3; } @@ -2140,7 +2140,7 @@ static void Task_IntroCloudScene(u8 taskId) static void Task_IntroLoadRayquazaLightningScene(u8 taskId) { - LZDecompressVram(gIntro3RayquazaTilemap, (void *)(VRAM + 0xE000)); + LZDecompressVram(gIntro3RayquazaTilemap, (void *)(BG_SCREEN_ADDR(28))); LZDecompressVram(gIntro3Clouds4Tilemap, (void *)(BG_CHAR_ADDR(3))); LZDecompressVram(gIntro3RayquazaGfx, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gIntro3Clouds2Gfx, (void *)VRAM); diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 4489b64c3..b98708324 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -332,14 +332,14 @@ static void sub_817B458(u8); void load_intro_part2_graphics(u8 a) { LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); - LZ77UnCompVram(gUnknown_085F0BC0, (void *)(VRAM + 0x7800)); + LZ77UnCompVram(gUnknown_085F0BC0, (void *)(BG_SCREEN_ADDR(15))); LoadPalette(&gUnknown_085F06E0, 240, 32); switch (a) { case 0: default: LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F0CFC, 0, 96); LoadCompressedSpriteSheet(gUnknown_085F5064); LoadPalette(&gUnknown_085F1668, 256, 32); @@ -347,7 +347,7 @@ void load_intro_part2_graphics(u8 a) break; case 1: LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1EAC, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F1EAC, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F17E4, 0, 32); LoadCompressedSpriteSheet(gUnknown_085F50EC); LoadPalette(&gUnknown_085F21B0, 256, 32); @@ -439,27 +439,27 @@ void sub_817B150(u8 a) void sub_817B1C8(u8 a) { LZ77UnCompVram(gUnknown_085F0740, (void *)(BG_CHAR_ADDR(1))); - LZ77UnCompVram(gUnknown_085F0BC0, (void *)(VRAM + 0x7800)); + LZ77UnCompVram(gUnknown_085F0BC0, (void *)(BG_SCREEN_ADDR(15))); switch (a) { case 0: default: LoadPalette(&gUnknown_085F06E0, 240, 32); LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F0CFC, 0, 96); LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(BG_SCREEN_ADDR(2)0)); + LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000)); LoadPalette(&gUnknown_085F1668, 256, 32); sub_817B76C(); break; case 1: LoadPalette(&gUnknown_085F0700, 240, 32); LZ77UnCompVram(gUnknown_085F0DBC, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1398, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F1398, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F0D5C, 0, 96); LoadCompressedSpriteSheet(gUnknown_085F5064); - LZ77UnCompVram(gUnknown_085F16A8, (void *)(BG_SCREEN_ADDR(2)0)); + LZ77UnCompVram(gUnknown_085F16A8, (void *)(VRAM + 0x10000)); LoadPalette(&gUnknown_085F1688, 256, 32); sub_817B76C(); break; @@ -467,7 +467,7 @@ void sub_817B1C8(u8 a) case 3: LoadPalette(&gUnknown_085F0700, 240, 32); LZ77UnCompVram(gUnknown_085F1824, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F1EAC, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F1EAC, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F1804, 0, 32); LoadCompressedSpriteSheet(gUnknown_085F50EC); LoadPalette(&gUnknown_085F1804, 256, 32); @@ -476,7 +476,7 @@ void sub_817B1C8(u8 a) case 4: LoadPalette(&gUnknown_085F0720, 240, 32); LZ77UnCompVram(gUnknown_085F235C, (void *)(VRAM)); - LZ77UnCompVram(gUnknown_085F2568, (void *)(VRAM + 0x3000)); + LZ77UnCompVram(gUnknown_085F2568, (void *)(BG_SCREEN_ADDR(6))); LoadPalette(&gUnknown_085F231C, 0, 64); LoadCompressedSpriteSheet(gUnknown_085F5180); LoadPalette(&gUnknown_085F2548, 256, 32); diff --git a/src/main_menu.c b/src/main_menu.c index 4cd5c8e14..82a30aa59 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1147,7 +1147,7 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) SetGpuReg(REG_OFFSET_BLDY, 0); LZ77UnCompVram(sBirchSpeechShadowGfx, (void*)VRAM); - LZ77UnCompVram(sBirchSpeechBgMap, (void*)(VRAM + 0x3800)); + LZ77UnCompVram(sBirchSpeechBgMap, (void*)(BG_SCREEN_ADDR(7))); LoadPalette(sBirchSpeechBgPals, 0, 64); LoadPalette(sBirchSpeechPlatformBlackPal, 1, 16); ScanlineEffect_Stop(); @@ -1687,7 +1687,7 @@ static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) DmaFill16(3, 0, PLTT, PLTT_SIZE); ResetPaletteFade(); LZ77UnCompVram(sBirchSpeechShadowGfx, (u8*)VRAM); - LZ77UnCompVram(sBirchSpeechBgMap, (u8*)(VRAM + 0x3800)); + LZ77UnCompVram(sBirchSpeechBgMap, (u8*)(BG_SCREEN_ADDR(7))); LoadPalette(sBirchSpeechBgPals, 0, 64); LoadPalette(&sBirchSpeechBgGradientPal[1], 1, 16); ResetTasks(); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c0aec4ddd..c1ebe91b4 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -3927,7 +3927,7 @@ static void SetScrollingBackground(void) { SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); DecompressAndLoadBgGfxUsingHeap(3, gPokemonStorageScrollingBGTileset, 0, 0, 0); - LZ77UnCompVram(gPokemonStorageScrollingBGTilemap, (void *)VRAM + 0xF800); + LZ77UnCompVram(gPokemonStorageScrollingBGTilemap, (void *)BG_SCREEN_ADDR(31)); } static void ScrollBackground(void) diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index c668c1db0..2478ebbec 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -208,8 +208,8 @@ static void CB2_SaveFailedScreen(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); - LZ77UnCompVram(gBirchBagTilemap, (void *)(VRAM + 0x7000)); - LZ77UnCompVram(gBirchGrassTilemap, (void *)(VRAM + 0x7800)); + LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(14))); + LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(15))); LZ77UnCompVram(sSaveFailedClockGfx, (void *)(VRAM + 0x10020)); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_085EFD88, 3); diff --git a/src/starter_choose.c b/src/starter_choose.c index 2d4a1b1e1..5a8de3b4a 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -393,8 +393,8 @@ void CB2_ChooseStarter(void) DmaFill16(3, 0, PLTT, PLTT_SIZE); LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM); - LZ77UnCompVram(gBirchBagTilemap, (void *)(VRAM + 0x3000)); - LZ77UnCompVram(gBirchGrassTilemap, (void *)(VRAM + 0x3800)); + LZ77UnCompVram(gBirchBagTilemap, (void *)(BG_SCREEN_ADDR(6))); + LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7))); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_085B1E00, ARRAY_COUNT(gUnknown_085B1E00)); diff --git a/src/title_screen.c b/src/title_screen.c index 6e3ba45cf..ca34f90f8 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -507,12 +507,12 @@ void CB2_InitTitleScreen(void) break; case 1: LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)VRAM); - LZ77UnCompVram(gUnknown_08DE0644, (void *)(VRAM + 0x4800)); + LZ77UnCompVram(gUnknown_08DE0644, (void *)(BG_SCREEN_ADDR(9))); LoadPalette(gTitleScreenBgPalettes, 0, 0x1E0); LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(BG_CHAR_ADDR(2))); - LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(VRAM + 0xD000)); + LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(BG_SCREEN_ADDR(26))); LZ77UnCompVram(sTitleScreenCloudsGfx, (void *)(BG_CHAR_ADDR(3))); - LZ77UnCompVram(gUnknown_08DDE458, (void *)(VRAM + 0xD800)); + LZ77UnCompVram(gUnknown_08DDE458, (void *)(BG_SCREEN_ADDR(27))); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); -- cgit v1.2.3 From 698c2879e4d29d78b10f47718fcf99de1b0c2ee4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Feb 2019 14:59:44 -0500 Subject: Decompiled sub_81C7078 --- src/pokenav_main.c | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 src/pokenav_main.c (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c new file mode 100644 index 000000000..fd8e51318 --- /dev/null +++ b/src/pokenav_main.c @@ -0,0 +1,134 @@ +#include "global.h" +#include "alloc.h" +#include "task.h" +#include "main.h" +#include "overworld.h" + +/* + + thumb_func_start CB2_PokeNav +CB2_PokeNav: @ 81C7250 + push {r4,lr} + ldr r4, =gUnknown_0203CF40 + movs r0, 0x5C + bl Alloc + str r0, [r4] + cmp r0, 0 + bne _081C7270 + ldr r0, =CB2_ReturnToFieldWithOpenMenu + bl SetMainCallback2 + b _081C7292 + .pool +_081C7270: + bl sub_81C7360 + bl ResetTasks + movs r0, 0 + bl SetVBlankCallback + ldr r0, =sub_81C742C + movs r1, 0 + bl CreateTask + ldr r0, =sub_81C7400 + bl SetMainCallback2 + ldr r0, =sub_81C7418 + bl SetVBlankCallback +_081C7292: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end CB2_PokeNav + +*/ + +extern u8* gUnknown_0203CF40; +extern void sub_81C7360(void); +extern void sub_81C742C(u8 taskId); +extern void sub_81C7400(void); +extern void sub_81C7418(void); + +/* +void CB2_PokeNav(void) +{ + gUnknown_0203CF40 = Alloc(0x5C); + if (gUnknown_0203CF40 == NULL) { + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } else { + sub_81C7360(); + ResetTasks(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } +}*/ + +/* +thumb_func_start sub_81C7078 +sub_81C7078: @ 81C7078 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl is_c1_link_related_active + cmp r0, 0 + bne _081C7090 + ldr r0, =sub_81C7170 + b _081C7092 + .pool +_081C7090: + ldr r0, =sub_81C71E4 +_081C7092: + lsls r1, r4, 24 + lsrs r1, 24 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r5, 0 + bl SetWordTaskArg + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, =gUnknown_0203CF3C + ldrb r1, [r2] + strh r1, [r0, 0xE] + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 8 + orrs r0, r4 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81C7078 + */ + +extern u8 gUnknown_0203CF3C; +extern void sub_81C7170(u8 a0); +extern void sub_81C71E4(u8 a0); + +u32 sub_81C7078(s32 a0, u32 a1) +{ + u16 taskId; + u32 old; + + if (is_c1_link_related_active() == FALSE) + taskId = CreateTask(sub_81C7170, a1); + else + taskId = CreateTask(sub_81C71E4, a1); + + //taskId = CreateTask(temp, a1); + + SetWordTaskArg(taskId, 1, a0); + + gTasks[taskId].data[3] = gUnknown_0203CF3C; + //old = gUnknown_0203CF3C; + //gUnknown_0203CF3C = old + 1; + return ((gUnknown_0203CF3C++) << 16) | taskId; +} + +// nonce \ No newline at end of file -- cgit v1.2.3 From 052cd4da10355a0b85372c4e6aeaaadc07383d48 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Feb 2019 16:06:46 -0500 Subject: Decompiled sub_81C70D8 --- src/pokenav_main.c | 66 ++++++++++++------------------------------------------ 1 file changed, 14 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index fd8e51318..fc45b9406 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -62,51 +62,6 @@ void CB2_PokeNav(void) } }*/ -/* -thumb_func_start sub_81C7078 -sub_81C7078: @ 81C7078 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl is_c1_link_related_active - cmp r0, 0 - bne _081C7090 - ldr r0, =sub_81C7170 - b _081C7092 - .pool -_081C7090: - ldr r0, =sub_81C71E4 -_081C7092: - lsls r1, r4, 24 - lsrs r1, 24 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, =gUnknown_0203CF3C - ldrb r1, [r2] - strh r1, [r0, 0xE] - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 8 - orrs r0, r4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81C7078 - */ - extern u8 gUnknown_0203CF3C; extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); @@ -114,21 +69,28 @@ extern void sub_81C71E4(u8 a0); u32 sub_81C7078(s32 a0, u32 a1) { u16 taskId; - u32 old; - if (is_c1_link_related_active() == FALSE) + if (!is_c1_link_related_active()) taskId = CreateTask(sub_81C7170, a1); else taskId = CreateTask(sub_81C71E4, a1); - //taskId = CreateTask(temp, a1); - SetWordTaskArg(taskId, 1, a0); gTasks[taskId].data[3] = gUnknown_0203CF3C; - //old = gUnknown_0203CF3C; - //gUnknown_0203CF3C = old + 1; return ((gUnknown_0203CF3C++) << 16) | taskId; } -// nonce \ No newline at end of file +bool32 sub_81C70D8(u32 a0, u32 unused) { + u32 v1 = a0 & 0xFFFF; + u32 v2 = a0 >> 16; + if (gTasks[v1].isActive + && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) + && gTasks[v1].data[3] == v2) { + + return TRUE; + } else { + return FALSE; + } +} + -- cgit v1.2.3 From 6466d0bea8e743f8dbba0b2d0bc2e4bce60ea501 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Feb 2019 16:35:02 -0500 Subject: Decompiled sub_81C7124 --- src/pokenav_main.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index fc45b9406..2d5144a7f 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -81,16 +81,35 @@ u32 sub_81C7078(s32 a0, u32 a1) return ((gUnknown_0203CF3C++) << 16) | taskId; } -bool32 sub_81C70D8(u32 a0, u32 unused) { +bool32 sub_81C70D8(u32 a0, u32 unused) +{ u32 v1 = a0 & 0xFFFF; u32 v2 = a0 >> 16; if (gTasks[v1].isActive && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) - && gTasks[v1].data[3] == v2) { + && gTasks[v1].data[3] == v2) + { return TRUE; - } else { + } + else + { return FALSE; } } +bool32 sub_81C7124(u32 a0) +{ + s32 i; + for (i = 0; i < 16; i++) { + if (gTasks[i].isActive + && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) + { + u32 arg = GetWordTaskArg((u8)i, 1); + if (arg == a0) { + return TRUE; + } + } + } + return FALSE; +} \ No newline at end of file -- cgit v1.2.3 From fb705e604743f30983145a184472570fdc42fe35 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 00:51:54 -0500 Subject: Decompiled sub_81C7170. --- src/pokenav_main.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 2d5144a7f..4791cbc25 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -66,7 +66,7 @@ extern u8 gUnknown_0203CF3C; extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); -u32 sub_81C7078(s32 a0, u32 a1) +u32 sub_81C7078(u32 (*a0)(u32), u32 a1) { u16 taskId; @@ -75,7 +75,7 @@ u32 sub_81C7078(s32 a0, u32 a1) else taskId = CreateTask(sub_81C71E4, a1); - SetWordTaskArg(taskId, 1, a0); + SetWordTaskArg(taskId, 1, (u32)a0); gTasks[taskId].data[3] = gUnknown_0203CF3C; return ((gUnknown_0203CF3C++) << 16) | taskId; @@ -112,4 +112,36 @@ bool32 sub_81C7124(u32 a0) } } return FALSE; +} + +void sub_81C7170(u8 taskId) +{ + s16 *dataPtr; + u32 (*func)(u32); + bool32 exitLoop; + + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + dataPtr = gTasks[taskId].data; + exitLoop = FALSE; + while (!exitLoop) { + u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); + switch (v1) { + case 1: + dataPtr[0] = dataPtr[0] + 1; + break; + case 0: + dataPtr[0]++; + return; + case 4: + DestroyTask(taskId); + return; + default: + dataPtr[0] = v1 - 5; + break; + case 3: + break; + case 2: + return; + } + } } \ No newline at end of file -- cgit v1.2.3 From 69b014f7aa9da2e61d158b33806bcdfce1fb95a0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 01:30:39 -0500 Subject: Decompiled sub_81C71E4 --- src/pokenav_main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 4791cbc25..06d599f99 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -144,4 +144,31 @@ void sub_81C7170(u8 taskId) return; } } +} + +void sub_81C71E4(u8 taskId) { + u32 (*func)(u32); + s16 *data; + u32 v1; + + if (sub_8087598()) { + return; + } + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + data = gTasks[taskId].data; + v1 = func(data[0]); + switch (v1) { + case 0: + case 1: + data[0]++; + break; + case 4: + DestroyTask(taskId); + break; + default: + data[0] = v1 - 5; + break; + case 2: + case 3: + } } \ No newline at end of file -- cgit v1.2.3 From cd84c92cfa67fc1afc1e03795fbf390e546a7482 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 01:34:43 -0500 Subject: Decompiled CB2_PokeNav --- src/pokenav_main.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 06d599f99..437ca009f 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -46,21 +46,7 @@ extern void sub_81C742C(u8 taskId); extern void sub_81C7400(void); extern void sub_81C7418(void); -/* -void CB2_PokeNav(void) -{ - gUnknown_0203CF40 = Alloc(0x5C); - if (gUnknown_0203CF40 == NULL) { - SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } else { - sub_81C7360(); - ResetTasks(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } -}*/ + extern u8 gUnknown_0203CF3C; extern void sub_81C7170(u8 a0); @@ -171,4 +157,19 @@ void sub_81C71E4(u8 taskId) { case 2: case 3: } +} + +void CB2_PokeNav(void) +{ + gUnknown_0203CF40 = Alloc(0x5C); + if (gUnknown_0203CF40 == NULL) { + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } else { + sub_81C7360(); + ResetTasks(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } } \ No newline at end of file -- cgit v1.2.3 From 9bda2297e36bd4aa476326310d85ea26c9beeb7c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 01:39:27 -0500 Subject: Decompiled sub_81C72A4 --- src/pokenav_main.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 437ca009f..13b6331a5 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -3,6 +3,7 @@ #include "task.h" #include "main.h" #include "overworld.h" +#include "field_weather.h" /* @@ -172,4 +173,26 @@ void CB2_PokeNav(void) SetMainCallback2(sub_81C7400); SetVBlankCallback(sub_81C7418); } +} + +/* + thumb_func_start sub_81C72A4 +sub_81C72A4: @ 81C72A4 + push {lr} + ldr r0, =sub_81C72BC + bl SetMainCallback2 + movs r0, 0x1 + movs r1, 0 + bl FadeScreen + pop {r0} + bx r0 + .pool + thumb_func_end sub_81C72A4 +*/ + +extern void sub_81C72BC(void); + +void sub_81C72A4() { + SetMainCallback2(sub_81C72BC); + FadeScreen(1, 0); } \ No newline at end of file -- cgit v1.2.3 From d52cbe6bcb7777547ba1dc0c3e58c9d72aff4338 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 02:23:08 -0500 Subject: Decompiled sub_81C72BC --- src/pokenav_main.c | 94 ++++++++++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 13b6331a5..0712b95d5 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -4,55 +4,28 @@ #include "main.h" #include "overworld.h" #include "field_weather.h" +#include "palette.h" + +// Can confirm the size is correct on line 287 of the generated pokenav_main.s +// file. The expected size is 0x5C. +struct UnknownStruct_0203CF40 { + u8 data1[8]; + u16 field_0; + u8 data[0x52]; +}; + +extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; +extern u8 gUnknown_0203CF3C; -/* - - thumb_func_start CB2_PokeNav -CB2_PokeNav: @ 81C7250 - push {r4,lr} - ldr r4, =gUnknown_0203CF40 - movs r0, 0x5C - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _081C7270 - ldr r0, =CB2_ReturnToFieldWithOpenMenu - bl SetMainCallback2 - b _081C7292 - .pool -_081C7270: - bl sub_81C7360 - bl ResetTasks - movs r0, 0 - bl SetVBlankCallback - ldr r0, =sub_81C742C - movs r1, 0 - bl CreateTask - ldr r0, =sub_81C7400 - bl SetMainCallback2 - ldr r0, =sub_81C7418 - bl SetVBlankCallback -_081C7292: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end CB2_PokeNav - -*/ - -extern u8* gUnknown_0203CF40; extern void sub_81C7360(void); extern void sub_81C742C(u8 taskId); extern void sub_81C7400(void); extern void sub_81C7418(void); - - - -extern u8 gUnknown_0203CF3C; extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); +void sub_81C72BC(void); + u32 sub_81C7078(u32 (*a0)(u32), u32 a1) { u16 taskId; @@ -162,7 +135,7 @@ void sub_81C71E4(u8 taskId) { void CB2_PokeNav(void) { - gUnknown_0203CF40 = Alloc(0x5C); + gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); if (gUnknown_0203CF40 == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } else { @@ -175,24 +148,27 @@ void CB2_PokeNav(void) } } -/* - thumb_func_start sub_81C72A4 -sub_81C72A4: @ 81C72A4 - push {lr} - ldr r0, =sub_81C72BC - bl SetMainCallback2 - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - pop {r0} - bx r0 - .pool - thumb_func_end sub_81C72A4 -*/ - -extern void sub_81C72BC(void); - void sub_81C72A4() { SetMainCallback2(sub_81C72BC); FadeScreen(1, 0); +} + +void sub_81C72BC() { + UpdatePaletteFade(); + if (!gPaletteFade.active) { + gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + if (gUnknown_0203CF40 == NULL) { + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } else { + sub_81C7360(); + gUnknown_0203CF40->field_0 = 1; + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } + } } \ No newline at end of file -- cgit v1.2.3 From aa61e105e0053af11826de510e93974d8443831d Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 02:28:46 -0500 Subject: Decompiled sub_81C7334 --- src/pokenav_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 0712b95d5..f1973ea15 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -23,6 +23,7 @@ extern void sub_81C7400(void); extern void sub_81C7418(void); extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); +extern void sub_81C7650(s32 a0); void sub_81C72BC(void); @@ -171,4 +172,15 @@ void sub_81C72BC() { SetVBlankCallback(sub_81C7418); } } +} + +void sub_81C7334() { + s32 i; + for (i = 0; i < 19; i++) { + sub_81C7650(i); + } + + Free(gUnknown_0203CF40); + gUnknown_0203CF40 = NULL; + InitKeys(); } \ No newline at end of file -- cgit v1.2.3 From 5441d80ebc694e56b080d9f280b974ff50eed1fb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 02:59:17 -0500 Subject: Decompiled sub_81C7360 --- src/pokenav_main.c | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index f1973ea15..3f6f8eb5c 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -6,26 +6,28 @@ #include "field_weather.h" #include "palette.h" -// Can confirm the size is correct on line 287 of the generated pokenav_main.s -// file. The expected size is 0x5C. struct UnknownStruct_0203CF40 { - u8 data1[8]; - u16 field_0; - u8 data[0x52]; + u32 field_0; + u32 field_1; + u16 field_2; + u32 field_3; + u32 field_4; + u32 field_5[18]; }; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; -extern void sub_81C7360(void); extern void sub_81C742C(u8 taskId); extern void sub_81C7400(void); extern void sub_81C7418(void); extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); extern void sub_81C7650(s32 a0); +extern u32 sub_81C7388(void); void sub_81C72BC(void); +void sub_81C7360(struct UnknownStruct_0203CF40 *a0); u32 sub_81C7078(u32 (*a0)(u32), u32 a1) { @@ -140,7 +142,7 @@ void CB2_PokeNav(void) if (gUnknown_0203CF40 == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } else { - sub_81C7360(); + sub_81C7360(gUnknown_0203CF40); ResetTasks(); SetVBlankCallback(NULL); CreateTask(sub_81C742C, 0); @@ -161,8 +163,8 @@ void sub_81C72BC() { if (gUnknown_0203CF40 == NULL) { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } else { - sub_81C7360(); - gUnknown_0203CF40->field_0 = 1; + sub_81C7360(gUnknown_0203CF40); + gUnknown_0203CF40->field_2 = 1; ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -183,4 +185,23 @@ void sub_81C7334() { Free(gUnknown_0203CF40); gUnknown_0203CF40 = NULL; InitKeys(); +} + +// Clears UnknownStruct_0203CF40 +void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { + s32 i; + u32 *arrayPtr; + s32 fill; + + fill = 0; + i = 18; + arrayPtr = &(a0->field_5[17]); + for (i; i >= 0; i--) { + *arrayPtr = fill; + arrayPtr -= 1; + } + a0->field_2 = 0; + a0->field_1 = 0; + a0->field_3 = sub_81C7388(); + a0->field_0 = 0; } \ No newline at end of file -- cgit v1.2.3 From 729e7116f2a71d72a7a3ab90d12159130a1d6a16 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 03:48:32 -0500 Subject: Decompiled AnyMonHasRibbon --- src/pokenav_main.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 3f6f8eb5c..125ced646 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -5,6 +5,7 @@ #include "overworld.h" #include "field_weather.h" #include "palette.h" +#include "pokemon_storage_system.h" struct UnknownStruct_0203CF40 { u32 field_0; @@ -24,7 +25,7 @@ extern void sub_81C7418(void); extern void sub_81C7170(u8 a0); extern void sub_81C71E4(u8 a0); extern void sub_81C7650(s32 a0); -extern u32 sub_81C7388(void); +extern u32 AnyMonHasRibbon(void); void sub_81C72BC(void); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); @@ -202,6 +203,32 @@ void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { } a0->field_2 = 0; a0->field_1 = 0; - a0->field_3 = sub_81C7388(); + a0->field_3 = AnyMonHasRibbon(); a0->field_0 = 0; +} + +bool32 AnyMonHasRibbon() { + s32 i; + s32 j; + + for (i = 0; i < 6; i++) { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) + && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + + for (j = 0; j < 14; j++) { + for (i = 0; i < 30; i++) { + if (CheckBoxMonSanityAt(j, i) + && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + } + + return FALSE; } \ No newline at end of file -- cgit v1.2.3 From 323df8ed407f22977053f9b672d661b00c9a63d3 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 03:51:48 -0500 Subject: Decompiled sub_81C7400 --- src/pokenav_main.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 125ced646..b39ab7bb1 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -231,4 +231,11 @@ bool32 AnyMonHasRibbon() { } return FALSE; +} + +void sub_81C7400() { + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); } \ No newline at end of file -- cgit v1.2.3 From cf721879dd2d6f36b02e3ce92220fd95e9da7f45 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 03:54:35 -0500 Subject: Decompiled sub_81C7418 --- src/pokenav_main.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index b39ab7bb1..bd57d6e05 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -238,4 +238,10 @@ void sub_81C7400() { AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); +} + +void sub_81C7418() { + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); } \ No newline at end of file -- cgit v1.2.3 From 3d73f7c48c7c658b0d12fbc89867a44bf9490206 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 20:20:15 -0500 Subject: Decompiled sub_81C742C --- src/pokenav_main.c | 116 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 98 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index bd57d6e05..e75ae38f3 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -8,25 +8,41 @@ #include "pokemon_storage_system.h" struct UnknownStruct_0203CF40 { - u32 field_0; - u32 field_1; - u16 field_2; - u32 field_3; - u32 field_4; - u32 field_5[18]; + u32 field0; + u32 field4; + u16 field8; + u32 fieldC; + u32 field10; + u32 field14[18]; +}; + +struct UnknownStruct_0861F3EC { + void (*data[7])(void); }; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; +extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. -extern void sub_81C742C(u8 taskId); -extern void sub_81C7400(void); -extern void sub_81C7418(void); -extern void sub_81C7170(u8 a0); -extern void sub_81C71E4(u8 a0); extern void sub_81C7650(s32 a0); -extern u32 AnyMonHasRibbon(void); +extern void sub_81C76C4(void); +extern void sub_81C7710(void); +extern void sub_81C7850(u32 a0); +extern void sub_81C9430(void); +extern u32 sub_81C756C(u32 a0); +extern u32 sub_81C76FC(void); +extern u32 sub_81C786C(void); +extern u32 sub_81C75E0(void); +extern u32 sub_81C75D4(void); +extern u32 sub_81C7738(void); +u32 AnyMonHasRibbon(void); +void sub_81C7334(void); +void sub_81C71E4(u8 a0); +void sub_81C7170(u8 a0); +void sub_81C7418(void); +void sub_81C7400(void); +void sub_81C742C(u8 taskId); void sub_81C72BC(void); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); @@ -165,7 +181,7 @@ void sub_81C72BC() { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } else { sub_81C7360(gUnknown_0203CF40); - gUnknown_0203CF40->field_2 = 1; + gUnknown_0203CF40->field8 = 1; ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -196,15 +212,15 @@ void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { fill = 0; i = 18; - arrayPtr = &(a0->field_5[17]); + arrayPtr = &(a0->field14[17]); for (i; i >= 0; i--) { *arrayPtr = fill; arrayPtr -= 1; } - a0->field_2 = 0; - a0->field_1 = 0; - a0->field_3 = AnyMonHasRibbon(); - a0->field_0 = 0; + a0->field8 = 0; + a0->field4 = 0; + a0->fieldC = AnyMonHasRibbon(); + a0->field0 = 0; } bool32 AnyMonHasRibbon() { @@ -244,4 +260,68 @@ void sub_81C7418() { TransferPlttBuffer(); LoadOam(); ProcessSpriteCopyRequests(); +} + +void sub_81C742C(u8 taskId) { + s16* dataPtr; + u32 v1; + bool32 v2; + + dataPtr = gTasks[taskId].data; + + switch (dataPtr[0]) { + case 0: + sub_81C76C4(); + dataPtr[0] = 1; + break; + case 1: + if (sub_81C76FC()) { + break; + } + sub_81C756C(0x186a0); + dataPtr[0] = 4; + break; + case 2: + if (sub_81C786C()) { + break; + } + dataPtr[0] = 3; + case 3: + v1 = sub_81C75E0(); + if (v1 == -1) { + sub_81C7710(); + dataPtr[0] = 5; + } else if (v1 > 0x1869F) { + gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[6](); + gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[5](); + if (sub_81C756C(v1)) { + dataPtr[0] = 4; + } else { + sub_81C7710(); + dataPtr[0] = 5; + } + } else if (v1 != 0) { + sub_81C7850(v1); + if (sub_81C786C()) { + dataPtr[0] = 2; + } + } + break; + case 4: + if (!sub_81C75D4()) { + dataPtr[0] = 3; + } + break; + case 5: + if (!sub_81C7738()) { + v2 = gUnknown_0203CF40->field8 != 0; + sub_81C9430(); + sub_81C7334(); + if (v2) { + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } else { + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } + } + } } \ No newline at end of file -- cgit v1.2.3 From 112fc4701794ba3b1a35882d7995c907448431fe Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 20:57:51 -0500 Subject: Decompiled sub_81C756C Also discovered a constant that may be useful for future decompiling. Comments were added in the asm that references the constant. --- src/pokedex.c | 4 ++-- src/pokenav_main.c | 33 +++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/pokedex.c b/src/pokedex.c index c47ada5b8..22c8286a4 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4036,7 +4036,7 @@ void sub_80C0460(u16 weight, u8 left, u8 top) lsls r2, 24\n\ lsrs r2, 24\n\ str r2, [sp, 0x10]\n\ - ldr r5, =0x000186a0\n\ + ldr r5, =0x000186a0 @ Note to decompiler: See UNKNOWN_OFFSET\n\ muls r0, r5\n\ ldr r1, =0x000011b8\n\ bl __divsi3\n\ @@ -4070,7 +4070,7 @@ _080C04C0:\n\ mov r8, r1\n\ movs r6, 0x1\n\ _080C04C6:\n\ - ldr r1, =0x000186a0\n\ + ldr r1, =0x000186a0 @ Note to decompiler: See UNKNOWN_OFFSET\n\ adds r0, r7, 0\n\ bl __umodsi3\n\ adds r7, r0, 0\n\ diff --git a/src/pokenav_main.c b/src/pokenav_main.c index e75ae38f3..21ee72f30 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -7,8 +7,10 @@ #include "palette.h" #include "pokemon_storage_system.h" +#define UNKNOWN_OFFSET 100000 + struct UnknownStruct_0203CF40 { - u32 field0; + u32 (*field0)(void); u32 field4; u16 field8; u32 fieldC; @@ -17,7 +19,7 @@ struct UnknownStruct_0203CF40 { }; struct UnknownStruct_0861F3EC { - void (*data[7])(void); + u32 (*data[7])(void); }; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; @@ -29,13 +31,15 @@ extern void sub_81C76C4(void); extern void sub_81C7710(void); extern void sub_81C7850(u32 a0); extern void sub_81C9430(void); -extern u32 sub_81C756C(u32 a0); +extern void sub_81C75F4(void); +extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern u32 sub_81C76FC(void); extern u32 sub_81C786C(void); extern u32 sub_81C75E0(void); extern u32 sub_81C75D4(void); extern u32 sub_81C7738(void); +bool32 sub_81C756C(u32 a0); u32 AnyMonHasRibbon(void); void sub_81C7334(void); void sub_81C71E4(u8 a0); @@ -220,7 +224,7 @@ void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { a0->field8 = 0; a0->field4 = 0; a0->fieldC = AnyMonHasRibbon(); - a0->field0 = 0; + a0->field0 = NULL; } bool32 AnyMonHasRibbon() { @@ -278,7 +282,7 @@ void sub_81C742C(u8 taskId) { if (sub_81C76FC()) { break; } - sub_81C756C(0x186a0); + sub_81C756C(UNKNOWN_OFFSET); dataPtr[0] = 4; break; case 2: @@ -291,7 +295,7 @@ void sub_81C742C(u8 taskId) { if (v1 == -1) { sub_81C7710(); dataPtr[0] = 5; - } else if (v1 > 0x1869F) { + } else if (v1 >= UNKNOWN_OFFSET) { gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[6](); gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[5](); if (sub_81C756C(v1)) { @@ -324,4 +328,21 @@ void sub_81C742C(u8 taskId) { } } } +} + +bool32 sub_81C756C(u32 a0) { + u32 index; + + index = a0 - UNKNOWN_OFFSET; + sub_81C75F4(); + if (!gUnknown_0861F3EC[index].data[0]()) { + return FALSE; + } + if (!gUnknown_0861F3EC[index].data[2]()) { + return FALSE; + } + sub_81C7834(gUnknown_0861F3EC[index].data[3], gUnknown_0861F3EC[index].data[4]); + gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index].data[1]; + gUnknown_0203CF40->field4 = index; + return TRUE; } \ No newline at end of file -- cgit v1.2.3 From 13a6765c882e0f3db83b50f37af8667b64a1d47e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 21:33:15 -0500 Subject: Decompiled several trivial functions --- src/pokenav_main.c | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 21ee72f30..b2e0589ce 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -14,8 +14,8 @@ struct UnknownStruct_0203CF40 { u32 field4; u16 field8; u32 fieldC; - u32 field10; - u32 field14[18]; + u32* field10[19]; + //u32* field14[18]; }; struct UnknownStruct_0861F3EC { @@ -31,16 +31,16 @@ extern void sub_81C76C4(void); extern void sub_81C7710(void); extern void sub_81C7850(u32 a0); extern void sub_81C9430(void); -extern void sub_81C75F4(void); extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern u32 sub_81C76FC(void); extern u32 sub_81C786C(void); -extern u32 sub_81C75E0(void); -extern u32 sub_81C75D4(void); extern u32 sub_81C7738(void); bool32 sub_81C756C(u32 a0); u32 AnyMonHasRibbon(void); +u32 sub_81C75E0(void); +u32 sub_81C75D4(void); +void sub_81C75F4(void); void sub_81C7334(void); void sub_81C71E4(u8 a0); void sub_81C7170(u8 a0); @@ -211,12 +211,12 @@ void sub_81C7334() { // Clears UnknownStruct_0203CF40 void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { s32 i; - u32 *arrayPtr; - s32 fill; + u32 **arrayPtr; + s32 *fill; - fill = 0; + fill = NULL; i = 18; - arrayPtr = &(a0->field14[17]); + arrayPtr = &(a0->field10[18]); for (i; i >= 0; i--) { *arrayPtr = fill; arrayPtr -= 1; @@ -345,4 +345,28 @@ bool32 sub_81C756C(u32 a0) { gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index].data[1]; gUnknown_0203CF40->field4 = index; return TRUE; +} + +u32 sub_81C75D4(void) { + return sub_81C786C(); +} + +u32 sub_81C75E0(void) { + return gUnknown_0203CF40->field0(); +} + +void sub_81C75F4(void) { + InitKeys(); +} + +void IndirectSetVBlankCallback(IntrCallback callback) { + SetVBlankCallback(callback); +} + +void sub_81C760C(void) { + SetVBlankCallback(sub_81C7418); +} + +u32* sub_81C761C(u32 a0, u32 a1) { + return gUnknown_0203CF40->field10[a0] = (u32*)Alloc(a1); } \ No newline at end of file -- cgit v1.2.3 From b0385568510c39bbc42d63d59085a1f1ef44cf8d Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 22:18:12 -0500 Subject: Decompiled several setters and getters --- src/pokenav_main.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index b2e0589ce..f35564ee7 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -13,6 +13,7 @@ struct UnknownStruct_0203CF40 { u32 (*field0)(void); u32 field4; u16 field8; + u16 fieldA; u32 fieldC; u32* field10[19]; //u32* field14[18]; @@ -26,12 +27,11 @@ extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. -extern void sub_81C7650(s32 a0); +extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); +extern void sub_81C7850(u32 a0); extern void sub_81C76C4(void); extern void sub_81C7710(void); -extern void sub_81C7850(u32 a0); extern void sub_81C9430(void); -extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern u32 sub_81C76FC(void); extern u32 sub_81C786C(void); extern u32 sub_81C7738(void); @@ -40,15 +40,16 @@ bool32 sub_81C756C(u32 a0); u32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); -void sub_81C75F4(void); -void sub_81C7334(void); +void sub_81C7360(struct UnknownStruct_0203CF40 *a0); +void sub_81C7650(u32 index); void sub_81C71E4(u8 a0); void sub_81C7170(u8 a0); +void sub_81C742C(u8 taskId); +void sub_81C75F4(void); +void sub_81C7334(void); void sub_81C7418(void); void sub_81C7400(void); -void sub_81C742C(u8 taskId); void sub_81C72BC(void); -void sub_81C7360(struct UnknownStruct_0203CF40 *a0); u32 sub_81C7078(u32 (*a0)(u32), u32 a1) { @@ -369,4 +370,42 @@ void sub_81C760C(void) { u32* sub_81C761C(u32 a0, u32 a1) { return gUnknown_0203CF40->field10[a0] = (u32*)Alloc(a1); -} \ No newline at end of file +} + +u32* sub_81C763C(u32 a0) { + return gUnknown_0203CF40->field10[a0]; +} + +void sub_81C7650(u32 index) { + if (gUnknown_0203CF40->field10[index] != NULL) { + Free(gUnknown_0203CF40->field10[index]); + gUnknown_0203CF40->field10[index] = NULL; + } +} + +u16 sub_81C767C(void) { + return gUnknown_0203CF40->field8; +} + +void sub_81C7688(u16 a0) { + gUnknown_0203CF40->field8 = a0; +} + +void sub_81C7694(u32 a0) { + u32 value; + value = a0; + if (a0 > 4) { + value = 0; + } + gUnknown_0203CF40->fieldA = value; +} + +u16 sub_81C76AC(void) { + return gUnknown_0203CF40->fieldA; +} + +u32 sub_81C76B8(void) { + return gUnknown_0203CF40->fieldC; +} + + -- cgit v1.2.3 From 5beb2baa97c0ffdc7be38aad3fbc46e8f3abac37 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Feb 2019 22:35:07 -0500 Subject: Decompiled sub_81C76C4 --- src/pokenav_main.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index f35564ee7..35dcbeb73 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -15,28 +15,33 @@ struct UnknownStruct_0203CF40 { u16 field8; u16 fieldA; u32 fieldC; - u32* field10[19]; - //u32* field14[18]; + void* field10[19]; }; struct UnknownStruct_0861F3EC { u32 (*data[7])(void); }; +struct UnknownStruct_sub_81C76C4 { + u32 data[523]; +}; + extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern void sub_81C7850(u32 a0); -extern void sub_81C76C4(void); extern void sub_81C7710(void); extern void sub_81C9430(void); +extern u32 sub_81C7764(u32 a0); extern u32 sub_81C76FC(void); extern u32 sub_81C786C(void); extern u32 sub_81C7738(void); + bool32 sub_81C756C(u32 a0); +bool32 sub_81C76C4(void); u32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); @@ -212,8 +217,8 @@ void sub_81C7334() { // Clears UnknownStruct_0203CF40 void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { s32 i; - u32 **arrayPtr; - s32 *fill; + void **arrayPtr; + void *fill; fill = NULL; i = 18; @@ -368,12 +373,12 @@ void sub_81C760C(void) { SetVBlankCallback(sub_81C7418); } -u32* sub_81C761C(u32 a0, u32 a1) { - return gUnknown_0203CF40->field10[a0] = (u32*)Alloc(a1); +void* sub_81C761C(u32 index, u32 size) { + return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); } -u32* sub_81C763C(u32 a0) { - return gUnknown_0203CF40->field10[a0]; +void* sub_81C763C(u32 index) { + return gUnknown_0203CF40->field10[index]; } void sub_81C7650(u32 index) { @@ -408,4 +413,16 @@ u32 sub_81C76B8(void) { return gUnknown_0203CF40->fieldC; } +bool32 sub_81C76C4(void) { + struct UnknownStruct_sub_81C76C4 *v1; + v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); + if (v1 == NULL) { + return FALSE; + } else { + ResetSpriteData(); + FreeAllSpritePalettes(); + v1->data[3] = sub_81C7078(sub_81C7764, 1); + return TRUE; + } +} \ No newline at end of file -- cgit v1.2.3 From 7c405e08d0625355395c2da76b877e3b302c3ea0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 00:07:48 -0500 Subject: Decompiled three more small functions --- src/pokenav_main.c | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 35dcbeb73..bda65e7ce 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -6,6 +6,9 @@ #include "field_weather.h" #include "palette.h" #include "pokemon_storage_system.h" +#include "sound.h" +#include "constants/songs.h" +#include "window.h" #define UNKNOWN_OFFSET 100000 @@ -32,12 +35,12 @@ extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at l extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern void sub_81C7850(u32 a0); -extern void sub_81C7710(void); extern void sub_81C9430(void); extern u32 sub_81C7764(u32 a0); -extern u32 sub_81C76FC(void); extern u32 sub_81C786C(void); -extern u32 sub_81C7738(void); +extern void sub_81CAADC(void); +extern void sub_81C99D4(void); +extern void sub_81C7C94(void); bool32 sub_81C756C(u32 a0); @@ -45,11 +48,14 @@ bool32 sub_81C76C4(void); u32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); +u32 sub_81C76FC(void); +bool32 sub_81C7738(void); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); void sub_81C71E4(u8 a0); void sub_81C7170(u8 a0); void sub_81C742C(u8 taskId); +void sub_81C7710(void); void sub_81C75F4(void); void sub_81C7334(void); void sub_81C7418(void); @@ -71,7 +77,7 @@ u32 sub_81C7078(u32 (*a0)(u32), u32 a1) return ((gUnknown_0203CF3C++) << 16) | taskId; } -bool32 sub_81C70D8(u32 a0, u32 unused) +bool32 sub_81C70D8(u32 a0) { u32 v1 = a0 & 0xFFFF; u32 v2 = a0 >> 16; @@ -425,4 +431,28 @@ bool32 sub_81C76C4(void) { v1->data[3] = sub_81C7078(sub_81C7764, 1); return TRUE; } +} + +u32 sub_81C76FC(void) { + // This is a guess. + struct UnknownStruct_sub_81C76C4 *v1; + v1 = sub_81C763C(0); + return sub_81C70D8(v1->data[3]); +} + +void sub_81C7710(void) { + PlaySE(SE_PN_OFF); + sub_81CAADC(); + BeginNormalPaletteFade(-1, -1, 0, 16, 0); +} + +bool32 sub_81C7738(void) { + if (!gPaletteFade.active) { + sub_81C99D4(); + sub_81C7C94(); + FreeAllWindowBuffers(); + return FALSE; + } else { + return TRUE; + } } \ No newline at end of file -- cgit v1.2.3 From 3bb4057bada112943dd1e39c695c3b6ef36c10f4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 02:31:24 -0500 Subject: Decompiled sub_81C7764 --- src/pokenav_main.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index bda65e7ce..21d3e90e8 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -9,6 +9,10 @@ #include "sound.h" #include "constants/songs.h" #include "window.h" +#include "gpu_regs.h" +#include "bg.h" +#include "menu.h" +#include "graphics.h" #define UNKNOWN_OFFSET 100000 @@ -29,6 +33,8 @@ struct UnknownStruct_sub_81C76C4 { u32 data[523]; }; +extern struct BgTemplate gUnknown_0861FA04; + extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. @@ -36,11 +42,15 @@ extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at l extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); extern void sub_81C7850(u32 a0); extern void sub_81C9430(void); -extern u32 sub_81C7764(u32 a0); extern u32 sub_81C786C(void); extern void sub_81CAADC(void); extern void sub_81C99D4(void); extern void sub_81C7C94(void); +extern void sub_8199D98(void); +extern void sub_81C7944(void* palette, u32 a1, u32 a2); +extern void sub_81C7B74(void); +extern void sub_81C7C28(void); +extern void sub_81C7D28(void); bool32 sub_81C756C(u32 a0); @@ -49,6 +59,7 @@ u32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); u32 sub_81C76FC(void); +u32 sub_81C7764(s32 a0); bool32 sub_81C7738(void); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); @@ -62,7 +73,7 @@ void sub_81C7418(void); void sub_81C7400(void); void sub_81C72BC(void); -u32 sub_81C7078(u32 (*a0)(u32), u32 a1) +u32 sub_81C7078(u32 (*a0)(s32), u32 a1) { u16 taskId; @@ -455,4 +466,46 @@ bool32 sub_81C7738(void) { } else { return TRUE; } +} + +u32 sub_81C7764(s32 a0) { + // This is a guess. + struct UnknownStruct_sub_81C76C4 *v1; + + switch (a0) { + case 0: + SetGpuReg(0, 0x82 << 5); + FreeAllWindowBuffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); + sub_8199D98(); + reset_temp_tile_data_buffers(); + return 1; + case 1: + v1 = sub_81C763C(0); + decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); + SetBgTilemapBuffer(0, &v1->data[11]); + CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); + sub_81C7944(&gPokenavHeader_Pal, 0, 0x20); + CopyBgTilemapBufferToVram(0); + return 0; + case 2: + if (free_temp_tile_data_buffers_if_possible()) { + return 2; + } else { + sub_81C7B74(); + return 0; + } + case 3: + if (IsDma3ManagerBusyWithBgCopy()) { + return 2; + } else { + sub_81C7C28(); + sub_81C7D28(); + ShowBg(0); + return 4; + } + default: + return 4; + } } \ No newline at end of file -- cgit v1.2.3 From 34b16e9e78a717331344934abe4ee172ca487692 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 03:19:27 -0500 Subject: Decompiled 5 functions for unknown structs --- src/pokenav_main.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 21d3e90e8..29df2b40f 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -29,6 +29,11 @@ struct UnknownStruct_0861F3EC { u32 (*data[7])(void); }; +struct UnknownStruct_sub_81C7850 { + // Unknown size; at least 3. + void (*data[3])(u32); +}; + struct UnknownStruct_sub_81C76C4 { u32 data[523]; }; @@ -39,10 +44,7 @@ extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. -extern void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); -extern void sub_81C7850(u32 a0); extern void sub_81C9430(void); -extern u32 sub_81C786C(void); extern void sub_81CAADC(void); extern void sub_81C99D4(void); extern void sub_81C7C94(void); @@ -51,6 +53,8 @@ extern void sub_81C7944(void* palette, u32 a1, u32 a2); extern void sub_81C7B74(void); extern void sub_81C7C28(void); extern void sub_81C7D28(void); +extern u32 atk47_cmd47(s32 a0); +extern u32 sub_81C791C(s32 a0); bool32 sub_81C756C(u32 a0); @@ -59,10 +63,13 @@ u32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); u32 sub_81C76FC(void); +u32 sub_81C786C(void); u32 sub_81C7764(s32 a0); bool32 sub_81C7738(void); +void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); +void sub_81C7850(u32 a0); void sub_81C71E4(u8 a0); void sub_81C7170(u8 a0); void sub_81C742C(u8 taskId); @@ -508,4 +515,55 @@ u32 sub_81C7764(s32 a0) { default: return 4; } +} + +void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) { + // This is a guess. + struct UnknownStruct_0861F3EC *v1; + + v1 = sub_81C763C(0); + v1->data[0] = a0; + v1->data[1] = a1; + v1->data[2] = NULL; +} + +void sub_81C7850(u32 a0) { + // This is a guess. + struct UnknownStruct_sub_81C7850 *v1; + + v1 = sub_81C763C(0); + v1->data[2] = NULL; + v1->data[0](a0); +} + +u32 sub_81C786C(void) { + // This is a guess. + struct UnknownStruct_0861F3EC *v1; + + v1 = sub_81C763C(0); + return v1->data[1](); +} + +void sub_81C7880(void) { + // This is a guess. + struct UnknownStruct_0203CF40* v1; + + v1 = sub_81C763C(0); + v1->fieldC = sub_81C7078(atk47_cmd47, 4); +} + +void sub_81C78A0(void) { + // This is a guess. + struct UnknownStruct_0203CF40* v1; + + v1 = sub_81C763C(0); + v1->fieldC = sub_81C7078(sub_81C791C, 4); +} + +bool32 sub_81C78C0(void) { + // This is a guess. + struct UnknownStruct_0203CF40* v1; + + v1 = sub_81C763C(0); + return sub_81C70D8(v1->fieldC); } \ No newline at end of file -- cgit v1.2.3 From a8d920cc45abdef48ca660530d094661557a8451 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 21:37:34 -0500 Subject: Decompiled 2 functions, unable to decompile 1. sub_81C795C could not be decompiled due to register naming issues. However, its structure was correctly matched, so I have left the C code and a comment explaining the issue. --- src/pokenav_main.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 29df2b40f..5610966b7 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -13,9 +13,15 @@ #include "bg.h" #include "menu.h" #include "graphics.h" +#include "gba/macro.h" #define UNKNOWN_OFFSET 100000 +struct PaletteDescriptor { + void *palette; + u16 tag; +}; + struct UnknownStruct_0203CF40 { u32 (*field0)(void); u32 field4; @@ -49,14 +55,12 @@ extern void sub_81CAADC(void); extern void sub_81C99D4(void); extern void sub_81C7C94(void); extern void sub_8199D98(void); -extern void sub_81C7944(void* palette, u32 a1, u32 a2); extern void sub_81C7B74(void); extern void sub_81C7C28(void); extern void sub_81C7D28(void); -extern u32 atk47_cmd47(s32 a0); -extern u32 sub_81C791C(s32 a0); +u32 sub_81C791C(s32 a0); bool32 sub_81C756C(u32 a0); bool32 sub_81C76C4(void); u32 AnyMonHasRibbon(void); @@ -65,7 +69,9 @@ u32 sub_81C75D4(void); u32 sub_81C76FC(void); u32 sub_81C786C(void); u32 sub_81C7764(s32 a0); +u32 atk47_cmd47(s32 a0); bool32 sub_81C7738(void); +void CopyPaletteIntoBufferUnfaded(void *palette, u32 a1, u32 a2); void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); @@ -493,7 +499,7 @@ u32 sub_81C7764(s32 a0) { decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); SetBgTilemapBuffer(0, &v1->data[11]); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - sub_81C7944(&gPokenavHeader_Pal, 0, 0x20); + CopyPaletteIntoBufferUnfaded(&gPokenavHeader_Pal, 0, 0x20); CopyBgTilemapBufferToVram(0); return 0; case 2: @@ -566,4 +572,89 @@ bool32 sub_81C78C0(void) { v1 = sub_81C763C(0); return sub_81C70D8(v1->fieldC); +} + +u32 atk47_cmd47(s32 a0) { + switch (a0) { + default: + return 4; + case 1: + return 0; + case 0: + return 0; + case 2: + if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) { + ChangeBgY(0, 0x2000, 0); + return 4; + } else { + return 2; + } + } +} + +u32 sub_81C791C(s32 a0) { + if (ChangeBgY(0, 384, 2) <= 0) { + ChangeBgY(0, 0, 0); + return 4; + } else { + return 2; + } +} + +void CopyPaletteIntoBufferUnfaded(void *palette, u32 bufferOffset, u32 size) { + CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); +} + +__attribute__((naked)) +void sub_81C795C(struct PaletteDescriptor *palettes) { + // This code matches the assembly almost exactly; however, gcc chooses + // to store `index` in r0 instead of r1. +#ifdef NONMATCHING + struct PaletteDescriptor *current; + u32 offset; + u32 index; + + current = palettes; + for (;;) { + if (current->palette == NULL) { + break; + } + index = AllocSpritePalette(current->tag); + if (index == 0xFF) { + break; + } + offset = (index * 16) + 0x100; + CopyPaletteIntoBufferUnfaded(current->palette, offset, 0x20); + current++; + } +#else // NONMATCHING + asm(".syntax unified\n\ + push {r4,lr}\n\ + adds r4, r0, 0\n\ + b _081C7974\n\ + _081C7962:\n\ + lsls r0, r1, 4\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r1, r0, r2\n\ + ldr r0, [r4]\n\ + movs r2, 0x20\n\ + bl CopyPaletteIntoBufferUnfaded\n\ + adds r4, 0x8\n\ + _081C7974:\n\ + ldr r0, [r4]\n\ + cmp r0, 0\n\ + beq _081C7988\n\ + ldrh r0, [r4, 0x4]\n\ + bl AllocSpritePalette\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0xFF\n\ + bne _081C7962\n\ + _081C7988:\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +#endif // NONMATCHING } \ No newline at end of file -- cgit v1.2.3 From f95eebf47a9fd235f722104d727b0b9da9af4474 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Feb 2019 23:58:49 -0500 Subject: With help, sub_81C795C has been tamed. Thanks to Garak on the discord server. --- src/pokenav_main.c | 65 +++++++++++++----------------------------------------- 1 file changed, 15 insertions(+), 50 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 5610966b7..3e77ba686 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -605,56 +605,21 @@ void CopyPaletteIntoBufferUnfaded(void *palette, u32 bufferOffset, u32 size) { CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } -__attribute__((naked)) void sub_81C795C(struct PaletteDescriptor *palettes) { - // This code matches the assembly almost exactly; however, gcc chooses - // to store `index` in r0 instead of r1. -#ifdef NONMATCHING struct PaletteDescriptor *current; - u32 offset; - u32 index; - - current = palettes; - for (;;) { - if (current->palette == NULL) { - break; - } - index = AllocSpritePalette(current->tag); - if (index == 0xFF) { - break; - } - offset = (index * 16) + 0x100; - CopyPaletteIntoBufferUnfaded(current->palette, offset, 0x20); - current++; - } -#else // NONMATCHING - asm(".syntax unified\n\ - push {r4,lr}\n\ - adds r4, r0, 0\n\ - b _081C7974\n\ - _081C7962:\n\ - lsls r0, r1, 4\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r1, r0, r2\n\ - ldr r0, [r4]\n\ - movs r2, 0x20\n\ - bl CopyPaletteIntoBufferUnfaded\n\ - adds r4, 0x8\n\ - _081C7974:\n\ - ldr r0, [r4]\n\ - cmp r0, 0\n\ - beq _081C7988\n\ - ldrh r0, [r4, 0x4]\n\ - bl AllocSpritePalette\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0xFF\n\ - bne _081C7962\n\ - _081C7988:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -#endif // NONMATCHING + u32 index; + + for (current = palettes; current->palette != NULL; current++) + { + index = AllocSpritePalette(current->tag); + if (index == 0xFF) + { + break; + } + else + { + index = (index * 16) + 0x100; + CopyPaletteIntoBufferUnfaded(current->palette, index, 0x20); + } + } } \ No newline at end of file -- cgit v1.2.3 From d41c597f901383944dbb6689be08beeeb859b9cd Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 11:55:58 -0500 Subject: Decompiled sub_81C7990 --- src/pokenav_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 3e77ba686..67d812912 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -622,4 +622,8 @@ void sub_81C795C(struct PaletteDescriptor *palettes) { CopyPaletteIntoBufferUnfaded(current->palette, index, 0x20); } } -} \ No newline at end of file +} + +void sub_81C7990(u32 a0, u16 a1) { + CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); +} -- cgit v1.2.3 From cb800e4708e08181b9b33296e9ab8c8180518b04 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 16:30:52 -0500 Subject: Decompiled 5 functions Was unable to decompile sub_81C79BC. --- src/pokenav_main.c | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 186 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 67d812912..fe05f288f 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -45,6 +45,7 @@ struct UnknownStruct_sub_81C76C4 { }; extern struct BgTemplate gUnknown_0861FA04; +extern struct WindowTemplate gUnknown_0861FA08; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; @@ -55,9 +56,9 @@ extern void sub_81CAADC(void); extern void sub_81C99D4(void); extern void sub_81C7C94(void); extern void sub_8199D98(void); -extern void sub_81C7B74(void); extern void sub_81C7C28(void); extern void sub_81C7D28(void); +extern void sub_81C7BF8(void); u32 sub_81C791C(s32 a0); @@ -85,6 +86,7 @@ void sub_81C7334(void); void sub_81C7418(void); void sub_81C7400(void); void sub_81C72BC(void); +void sub_81C7B74(void); u32 sub_81C7078(u32 (*a0)(s32), u32 a1) { @@ -627,3 +629,186 @@ void sub_81C795C(struct PaletteDescriptor *palettes) { void sub_81C7990(u32 a0, u16 a1) { CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); } + +__attribute__((naked)) +void sub_81C79BC(u16* a0, u16* a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) { + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + mov r10, r2\n\ + str r3, [sp, 0x8]\n\ + ldr r0, [sp, 0x2C]\n\ + cmp r0, 0\n\ + bne _081C79E4\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp]\n\ + b _081C79F4\n\ + .pool\n\ +_081C79E4:\n\ + ldr r2, [sp, 0x2C]\n\ + ldr r0, [sp, 0x8]\n\ + cmp r2, r0\n\ + blt _081C7A00\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp, 0x4]\n\ +_081C79F4:\n\ + ldr r1, [sp, 0x30]\n\ + bl CpuSet\n\ + b _081C7AAE\n\ + .pool\n\ +_081C7A00:\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + add r10, r2\n\ + b _081C7AA6\n\ +_081C7A08:\n\ + ldr r1, [sp]\n\ + ldrh r0, [r1]\n\ + movs r2, 0x1F\n\ + mov r9, r2\n\ + mov r1, r9\n\ + ands r1, r0\n\ + mov r9, r1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 21\n\ + movs r1, 0x1F\n\ + ands r1, r2\n\ + mov r8, r1\n\ + lsrs r7, r0, 26\n\ + movs r2, 0x1F\n\ + ands r7, r2\n\ + ldr r0, [sp, 0x4]\n\ + ldrh r4, [r0]\n\ + movs r0, 0x1F\n\ + ands r0, r4\n\ + mov r1, r9\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r2, [sp, 0x2C]\n\ + adds r6, r0, 0\n\ + muls r6, r2\n\ + asrs r6, 8\n\ + lsls r4, 16\n\ + lsrs r0, r4, 21\n\ + movs r1, 0x1F\n\ + ands r0, r1\n\ + mov r2, r8\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + adds r5, r0, 0\n\ + muls r5, r1\n\ + asrs r5, 8\n\ + lsrs r4, 26\n\ + movs r2, 0x1F\n\ + ands r4, r2\n\ + subs r4, r7\n\ + lsls r4, 8\n\ + adds r0, r4, 0\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + muls r0, r1\n\ + asrs r0, 8\n\ + add r6, r9\n\ + movs r2, 0x1F\n\ + ands r6, r2\n\ + add r5, r8\n\ + ands r5, r2\n\ + adds r0, r7, r0\n\ + ands r0, r2\n\ + lsls r0, 10\n\ + lsls r5, 5\n\ + orrs r0, r5\n\ + orrs r0, r6\n\ + ldr r1, [sp, 0x30]\n\ + strh r0, [r1]\n\ + ldr r2, [sp]\n\ + adds r2, 0x2\n\ + str r2, [sp]\n\ + ldr r0, [sp, 0x4]\n\ + adds r0, 0x2\n\ + str r0, [sp, 0x4]\n\ + adds r1, 0x2\n\ + str r1, [sp, 0x30]\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + add r10, r1\n\ +_081C7AA6:\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + cmp r10, r0\n\ + bne _081C7A08\n\ +_081C7AAE:\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +void sub_81C7AC0(s32 a0) { + u32 *v1; + v1 = sub_81C763C(0); + switch (a0) { + case 0: + BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); + break; + case 1: + BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); + break; + case 2: + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + break; + case 3: + BeginNormalPaletteFade(-1, -2, 16, 0, 0); + break; + } +} + +bool32 IsPaletteFadeActive(void) { + return gPaletteFade.active; +} + +void sub_81C7B40(void) { + BlendPalettes(0xFFFEFFFE, 16, 0); +} + +void sub_81C7B54(const struct BgTemplate *a0, s32 a1) { + s32 i; + if (a1 <= 0) { + return; + } + for (i = a1; i != 0; i--) { + InitBgFromTemplate(a0++); + } +} + +void sub_81C7B74(void) { + u32 *v1; + + v1 = sub_81C763C(0); + InitWindows(&gUnknown_0861FA08); + v1[4] = 0; + sub_81C7BF8(); + PutWindowTilemap(v1[4]); + CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. +} \ No newline at end of file -- cgit v1.2.3 From 6d929c61c5b445e488b47655437856e6542d0da9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 17:26:34 -0500 Subject: Decompiled 4 more functions --- src/pokenav_main.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index fe05f288f..a75a85a18 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -14,6 +14,7 @@ #include "menu.h" #include "graphics.h" #include "gba/macro.h" +#include "decompress.h" #define UNKNOWN_OFFSET 100000 @@ -44,21 +45,28 @@ struct UnknownStruct_sub_81C76C4 { u32 data[523]; }; +struct UnknownStruct_sub_81C7C28 { + struct CompressedSpriteSheet sheet; + u32 field4; +}; + extern struct BgTemplate gUnknown_0861FA04; extern struct WindowTemplate gUnknown_0861FA08; - extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; +extern u8 gUnknown_0861FA48; extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. +extern const u8 *(gUnknown_0861FA18[]); +extern const struct CompressedSpriteSheet gUnknown_0861FA4C[]; +extern const struct PaletteDescriptor gUnknown_0861FA54; +extern const struct SpriteTemplate gUnknown_0861FB04; extern void sub_81C9430(void); extern void sub_81CAADC(void); extern void sub_81C99D4(void); extern void sub_81C7C94(void); extern void sub_8199D98(void); -extern void sub_81C7C28(void); extern void sub_81C7D28(void); -extern void sub_81C7BF8(void); u32 sub_81C791C(s32 a0); @@ -77,6 +85,7 @@ void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); void sub_81C7850(u32 a0); +void sub_81C7BF8(u32 a0); void sub_81C71E4(u8 a0); void sub_81C7170(u8 a0); void sub_81C742C(u8 taskId); @@ -85,6 +94,7 @@ void sub_81C75F4(void); void sub_81C7334(void); void sub_81C7418(void); void sub_81C7400(void); +void sub_81C7C28(void); void sub_81C72BC(void); void sub_81C7B74(void); @@ -607,8 +617,8 @@ void CopyPaletteIntoBufferUnfaded(void *palette, u32 bufferOffset, u32 size) { CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } -void sub_81C795C(struct PaletteDescriptor *palettes) { - struct PaletteDescriptor *current; +void sub_81C795C(const struct PaletteDescriptor *palettes) { + const struct PaletteDescriptor *current; u32 index; for (current = palettes; current->palette != NULL; current++) @@ -808,7 +818,45 @@ void sub_81C7B74(void) { v1 = sub_81C763C(0); InitWindows(&gUnknown_0861FA08); v1[4] = 0; - sub_81C7BF8(); + sub_81C7BF8(0); PutWindowTilemap(v1[4]); CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. +} + +void sub_81C7BA4(u32 a0) { + u32* v1; + + v1 = sub_81C763C(0); + sub_81C7BF8(v1[4]); + AddTextPrinterParameterized3(v1[4], 1, 0, 1, &gUnknown_0861FA48, 0, gUnknown_0861FA18[a0]); +} + +bool8 sub_81C7BE8(void) { + return IsDma3ManagerBusyWithBgCopy(); +} + +void sub_81C7BF8(u32 a0) { + FillWindowPixelBuffer(a0, 0x44); + FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); +} + +void sub_81C7C28(void) { + u32* v1; + u32 i; + u8 v2; + u32 v3; + u32 v4; + u8 spriteId; + + v1 = sub_81C763C(0); + for (i = 0; i == 0; i++) { + LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); + } + + sub_81C795C(&gUnknown_0861FA54); + v2 = IndexOfSpritePaletteTag(0); + v3 = 0x80 << 9 << v2; + v1[5] = -2 & ~v3; + spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); + v1[6] = (u32)(&gSprites[spriteId]); } \ No newline at end of file -- cgit v1.2.3 From 758b8c7f0eda1df1914f4cd34e81c0a768792d59 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 21:03:52 -0500 Subject: Decompiled three more functions. --- src/pokenav_main.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index a75a85a18..bc19a908b 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -64,7 +64,6 @@ extern const struct SpriteTemplate gUnknown_0861FB04; extern void sub_81C9430(void); extern void sub_81CAADC(void); extern void sub_81C99D4(void); -extern void sub_81C7C94(void); extern void sub_8199D98(void); extern void sub_81C7D28(void); @@ -97,6 +96,7 @@ void sub_81C7400(void); void sub_81C7C28(void); void sub_81C72BC(void); void sub_81C7B74(void); +void sub_81C7C94(void); u32 sub_81C7078(u32 (*a0)(s32), u32 a1) { @@ -859,4 +859,27 @@ void sub_81C7C28(void) { v1[5] = -2 & ~v3; spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); v1[6] = (u32)(&gSprites[spriteId]); +} + +void sub_81C7C94(void) { + void **v1; + v1 = sub_81C763C(0); + DestroySprite(v1[6]); + FreeSpriteTilesByTag(0); + FreeSpritePaletteByTag(0); +} + +void sub_81C7CB4(u16 *a0) { + u32 v1; + v1 = GetBgY(0); + a0[19] = (v1 >> 8) * -1; +} + +struct Sprite* sub_81C7CCC(void) { + struct Sprite **v1; + struct Sprite *v2; + v1 = sub_81C763C(0); + v2 = v1[6]; + v2->callback = SpriteCallbackDummy; + return v2; } \ No newline at end of file -- cgit v1.2.3 From bf4c1a73c0e14c88e61bb74f99385414d9b807a9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 22:18:47 -0500 Subject: Start moving pokenav data into C files The types and usage of many of the globals are now known. --- src/pokenav_main.c | 236 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 217 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index bc19a908b..0b772ffe6 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -18,6 +18,7 @@ #define UNKNOWN_OFFSET 100000 + struct PaletteDescriptor { void *palette; u16 tag; @@ -50,23 +51,69 @@ struct UnknownStruct_sub_81C7C28 { u32 field4; }; -extern struct BgTemplate gUnknown_0861FA04; -extern struct WindowTemplate gUnknown_0861FA08; -extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; -extern u8 gUnknown_0203CF3C; -extern u8 gUnknown_0861FA48; -extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. -extern const u8 *(gUnknown_0861FA18[]); -extern const struct CompressedSpriteSheet gUnknown_0861FA4C[]; -extern const struct PaletteDescriptor gUnknown_0861FA54; -extern const struct SpriteTemplate gUnknown_0861FB04; -extern void sub_81C9430(void); +extern u32 sub_81C9430(void); extern void sub_81CAADC(void); -extern void sub_81C99D4(void); +extern u32 sub_81C99D4(void); extern void sub_8199D98(void); extern void sub_81C7D28(void); - +extern u32 sub_81C9298(void); +extern u32 sub_81C941C(void); +extern u32 sub_81C9924(void); +extern u32 sub_81C99C0(void); +extern u32 sub_81C9990(void); +extern u32 sub_81C9940(void); +extern u32 sub_81C9338(void); +extern u32 sub_81C9368(void); +extern u32 sub_81C92CC(void); +extern u32 sub_81C9304(void); +extern u32 sub_81CC4D4(void); +extern u32 sub_81CC554(void); +extern u32 sub_81CC5F4(void); +extern u32 sub_81CC62C(void); +extern u32 sub_81CC65C(void); +extern u32 sub_81CC524(void); +extern u32 sub_81CC670(void); +extern u32 sub_81CCFD8(void); +extern u32 sub_81CD070(void); +extern u32 sub_81CDDD4(void); +extern u32 sub_81CDE2C(void); +extern u32 sub_81CDE64(void); +extern u32 sub_81CD1C0(void); +extern u32 sub_81CECA0(void); +extern u32 sub_81CEF3C(void); +extern u32 sub_81CEFDC(void); +extern u32 sub_81CF330(void); +extern u32 sub_81CF3A0(void); +extern u32 sub_81CF3D0(void); +extern u32 sub_81CEFF0(void); +extern u32 sub_81CF3F8(void); +extern u32 sub_81CD024(void); +extern u32 sub_81CEF98(void); +extern u32 sub_81CF368(void); +extern u32 sub_81CAAE8(void); +extern u32 sub_81CAB24(void); +extern u32 sub_81CB260(void); +extern u32 sub_81CB29C(void); +extern u32 sub_81CB2CC(void); +extern u32 sub_81CAB38(void); +extern u32 sub_81CB2E0(void); +extern u32 sub_81CF9BC(void); +extern u32 sub_81CFA34(void); +extern u32 sub_81CFDD0(void); +extern u32 sub_81CFE40(void); +extern u32 sub_81CFE70(void); +extern u32 sub_81CFA48(void); +extern u32 sub_81CFE98(void); +extern u32 sub_81D0450(void); +extern u32 sub_81D04A0(void); +extern u32 sub_81D0978(void); +extern u32 sub_81D09B0(void); +extern u32 sub_81D09E0(void); +extern u32 sub_81D04B8(void); +extern u32 sub_81D09F4(void); +extern u32 sub_81CFA04(void); +extern u32 sub_81CFE08(void); u32 sub_81C791C(s32 a0); bool32 sub_81C756C(u32 a0); @@ -98,6 +145,157 @@ void sub_81C72BC(void); void sub_81C7B74(void); void sub_81C7C94(void); + +static u32 (*const gUnknown_0861F3EC[15][7])(void) = +{ + { + (u32 (*)(void))sub_81C9298, + sub_81C941C, + sub_81C9924, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9298, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9338, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9368, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C92CC, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9304, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81CC4D4, + sub_81CC554, + sub_81CC5F4, + sub_81CC62C, + sub_81CC65C, + sub_81CC524, + sub_81CC670, + }, + { + sub_81CCFD8, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF3C, + sub_81CEFDC, + sub_81CF330, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CD024, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF98, + sub_81CEFDC, + sub_81CF368, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CAAE8, + sub_81CAB24, + sub_81CB260, + sub_81CB29C, + sub_81CB2CC, + sub_81CAB38, + sub_81CB2E0, + }, + { + sub_81CF9BC, + sub_81CFA34, + sub_81CFDD0, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, + { + sub_81D0450, + sub_81D04A0, + sub_81D0978, + sub_81D09B0, + sub_81D09E0, + sub_81D04B8, + sub_81D09F4, + }, + { + sub_81CFA04, + sub_81CFA34, + sub_81CFE08, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, +}; + +extern struct BgTemplate gUnknown_0861FA04; +extern struct WindowTemplate gUnknown_0861FA08; +extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; +extern u8 gUnknown_0203CF3C; +extern u8 gUnknown_0861FA48; +//extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. +extern const u8 *(gUnknown_0861FA18[]); +extern const struct CompressedSpriteSheet gUnknown_0861FA4C[]; +extern const struct PaletteDescriptor gUnknown_0861FA54; +extern const struct SpriteTemplate gUnknown_0861FB04; + u32 sub_81C7078(u32 (*a0)(s32), u32 a1) { u16 taskId; @@ -344,8 +542,8 @@ void sub_81C742C(u8 taskId) { sub_81C7710(); dataPtr[0] = 5; } else if (v1 >= UNKNOWN_OFFSET) { - gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[6](); - gUnknown_0861F3EC[gUnknown_0203CF40->field4].data[5](); + gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); + gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); if (sub_81C756C(v1)) { dataPtr[0] = 4; } else { @@ -383,14 +581,14 @@ bool32 sub_81C756C(u32 a0) { index = a0 - UNKNOWN_OFFSET; sub_81C75F4(); - if (!gUnknown_0861F3EC[index].data[0]()) { + if (!gUnknown_0861F3EC[index][0]()) { return FALSE; } - if (!gUnknown_0861F3EC[index].data[2]()) { + if (!gUnknown_0861F3EC[index][2]()) { return FALSE; } - sub_81C7834(gUnknown_0861F3EC[index].data[3], gUnknown_0861F3EC[index].data[4]); - gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index].data[1]; + sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); + gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; gUnknown_0203CF40->field4 = index; return TRUE; } -- cgit v1.2.3 From a4aaf279ac4a2033b511ddf8d49463c024306112 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 14 Feb 2019 23:25:07 -0500 Subject: Move more data into pokenav, name some strings --- src/pokenav_main.c | 96 ++++++++++++++++++++++++++++++++++++++++++------------ src/strings.c | 24 +++++++------- 2 files changed, 87 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 0b772ffe6..2cf370630 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -15,6 +15,7 @@ #include "graphics.h" #include "gba/macro.h" #include "decompress.h" +#include "strings.h" #define UNKNOWN_OFFSET 100000 @@ -33,10 +34,6 @@ struct UnknownStruct_0203CF40 { void* field10[19]; }; -struct UnknownStruct_0861F3EC { - u32 (*data[7])(void); -}; - struct UnknownStruct_sub_81C7850 { // Unknown size; at least 3. void (*data[3])(u32); @@ -146,7 +143,7 @@ void sub_81C7B74(void); void sub_81C7C94(void); -static u32 (*const gUnknown_0861F3EC[15][7])(void) = +u32 (*const gUnknown_0861F3EC[15][7])(void) = { { (u32 (*)(void))sub_81C9298, @@ -285,13 +282,70 @@ static u32 (*const gUnknown_0861F3EC[15][7])(void) = }, }; -extern struct BgTemplate gUnknown_0861FA04; -extern struct WindowTemplate gUnknown_0861FA08; +const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); +const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); +const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); + +const struct BgTemplate gUnknown_0861FA04 = { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, +}; + +const struct WindowTemplate gUnknown_0861FA08[2] = { + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x16, + .width = 0x10, + .height = 0x2, + .paletteNum = 0, + .baseBlock = 0x36, + }, + { + .bg = 0xFF, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 0, + .height = 0, + .paletteNum = 0, + .baseBlock = 0, + }, +}; + +const u8 *const (MenuButtonReminders[12]) = { + gText_Navgear_ClearButtonList, + gText_NavgearMap_ZoomedOutButtons, + gText_NavgearMap_ZoomedInButtons, + gText_NavgearCondition_MonListButtons, + gText_NavgearCondition_MonStatusButtons, + gText_NavgearCondition_MarkingButtons, + gText_NavgearMatchCall_TrainerListButtons, + gText_NavgearMatchCall_CallMenuButtons, + gText_NavgearMatchCall_CheckTrainerButtons, + gText_NavgearRibbons_MonListButtons, + gText_NavgearRibbons_RibbonListButtons, + gText_NavgearRibbons_RibbonCheckButtons, +}; + +const u8 gMenuButtonReminderColor[4] = { + 4, 1, 2, 0 +}; + +const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = { + { + .data = gUnknown_0861F5B0, + .size = 0x1000, + .tag = 0, + } +}; + extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; -extern u8 gUnknown_0861FA48; -//extern struct UnknownStruct_0861F3EC gUnknown_0861F3EC[7]; // Unknown size; at least 7. -extern const u8 *(gUnknown_0861FA18[]); extern const struct CompressedSpriteSheet gUnknown_0861FA4C[]; extern const struct PaletteDescriptor gUnknown_0861FA54; extern const struct SpriteTemplate gUnknown_0861FB04; @@ -735,29 +789,29 @@ u32 sub_81C7764(s32 a0) { void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) { // This is a guess. - struct UnknownStruct_0861F3EC *v1; + u32 (**v1)(void); v1 = sub_81C763C(0); - v1->data[0] = a0; - v1->data[1] = a1; - v1->data[2] = NULL; + v1[0] = a0; + v1[1] = a1; + v1[2] = NULL; } void sub_81C7850(u32 a0) { // This is a guess. - struct UnknownStruct_sub_81C7850 *v1; + void (**v1)(u32); v1 = sub_81C763C(0); - v1->data[2] = NULL; - v1->data[0](a0); + v1[2] = NULL; + v1[0](a0); } u32 sub_81C786C(void) { // This is a guess. - struct UnknownStruct_0861F3EC *v1; + u32 (**v1)(void); v1 = sub_81C763C(0); - return v1->data[1](); + return v1[1](); } void sub_81C7880(void) { @@ -1014,7 +1068,7 @@ void sub_81C7B74(void) { u32 *v1; v1 = sub_81C763C(0); - InitWindows(&gUnknown_0861FA08); + InitWindows(&gUnknown_0861FA08[0]); v1[4] = 0; sub_81C7BF8(0); PutWindowTilemap(v1[4]); @@ -1026,7 +1080,7 @@ void sub_81C7BA4(u32 a0) { v1 = sub_81C763C(0); sub_81C7BF8(v1[4]); - AddTextPrinterParameterized3(v1[4], 1, 0, 1, &gUnknown_0861FA48, 0, gUnknown_0861FA18[a0]); + AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); } bool8 sub_81C7BE8(void) { diff --git a/src/strings.c b/src/strings.c index b0eb048ba..f81a19083 100644 --- a/src/strings.c +++ b/src/strings.c @@ -965,18 +965,18 @@ const u8 gUnknown_085EBE8E[] = _("Can't call opponent here."); const u8 gUnknown_085EBEA8[] = _("STRATEGY"); const u8 gUnknown_085EBEB1[] = _("TRAINER'S POKéMON"); const u8 gUnknown_085EBEC3[] = _("SELF-INTRODUCTION"); -const u8 gUnknown_085EBED5[] = _("{CLEAR 0x80}"); -const u8 gUnknown_085EBED9[] = _("{A_BUTTON}ZOOM {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBEE9[] = _("{A_BUTTON}FULL {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBEF9[] = _("{A_BUTTON}CONDITION {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF0E[] = _("{A_BUTTON}MARKINGS {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF22[] = _("{A_BUTTON}SELECT MARK {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF39[] = _("{A_BUTTON}MENU {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF49[] = _("{A_BUTTON}OK {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF57[] = _("{B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF60[] = _("{A_BUTTON}RIBBONS {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF73[] = _("{A_BUTTON}CHECK {B_BUTTON}CANCEL"); -const u8 gUnknown_085EBF84[] = _("{B_BUTTON}CANCEL"); +const u8 gText_Navgear_ClearButtonList[] = _("{CLEAR 0x80}"); +const u8 gText_NavgearMap_ZoomedOutButtons[] = _("{A_BUTTON}ZOOM {B_BUTTON}CANCEL"); +const u8 gText_NavgearMap_ZoomedInButtons[] = _("{A_BUTTON}FULL {B_BUTTON}CANCEL"); +const u8 gText_NavgearCondition_MonListButtons[] = _("{A_BUTTON}CONDITION {B_BUTTON}CANCEL"); +const u8 gText_NavgearCondition_MonStatusButtons[] = _("{A_BUTTON}MARKINGS {B_BUTTON}CANCEL"); +const u8 gText_NavgearCondition_MarkingButtons[] = _("{A_BUTTON}SELECT MARK {B_BUTTON}CANCEL"); +const u8 gText_NavgearMatchCall_TrainerListButtons[] = _("{A_BUTTON}MENU {B_BUTTON}CANCEL"); +const u8 gText_NavgearMatchCall_CallMenuButtons[] = _("{A_BUTTON}OK {B_BUTTON}CANCEL"); +const u8 gText_NavgearMatchCall_CheckTrainerButtons[] = _("{B_BUTTON}CANCEL"); +const u8 gText_NavgearRibbons_MonListButtons[] = _("{A_BUTTON}RIBBONS {B_BUTTON}CANCEL"); +const u8 gText_NavgearRibbons_RibbonListButtons[] = _("{A_BUTTON}CHECK {B_BUTTON}CANCEL"); +const u8 gText_NavgearRibbons_RibbonCheckButtons[] = _("{B_BUTTON}CANCEL"); const u8 gText_NatureSlash[] = _("NATURE/"); const u8 gText_TrainerCloseBy[] = _("That TRAINER is close by.\nTalk to the TRAINER in person!"); const u8 gText_InParty[] = _("IN PARTY"); -- cgit v1.2.3 From be08a662a8a798f0b630a6ea464568aaec199ad7 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 00:00:01 -0500 Subject: More data moved into C code --- src/pokenav_main.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 2cf370630..f468ffc31 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -19,12 +19,6 @@ #define UNKNOWN_OFFSET 100000 - -struct PaletteDescriptor { - void *palette; - u16 tag; -}; - struct UnknownStruct_0203CF40 { u32 (*field0)(void); u32 field4; @@ -123,7 +117,7 @@ u32 sub_81C786C(void); u32 sub_81C7764(s32 a0); u32 atk47_cmd47(s32 a0); bool32 sub_81C7738(void); -void CopyPaletteIntoBufferUnfaded(void *palette, u32 a1, u32 a2); +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2); void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); void sub_81C7360(struct UnknownStruct_0203CF40 *a0); void sub_81C7650(u32 index); @@ -344,10 +338,25 @@ const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = { } }; +const struct SpritePalette gUnknown_0861FA54[2] = { + { + .data = gUnknown_0861F590, + .tag = 0, + }, + { + .data = NULL, + .tag = 0, + } +}; + +const struct CompressedSpriteSheet gUnknown_0861FA64 = { + .data = gPokenavLeftHeaderHoennMap_Gfx, + .size = 0xC00, + .tag = 2 +}; + extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; -extern const struct CompressedSpriteSheet gUnknown_0861FA4C[]; -extern const struct PaletteDescriptor gUnknown_0861FA54; extern const struct SpriteTemplate gUnknown_0861FB04; u32 sub_81C7078(u32 (*a0)(s32), u32 a1) @@ -763,7 +772,7 @@ u32 sub_81C7764(s32 a0) { decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); SetBgTilemapBuffer(0, &v1->data[11]); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(&gPokenavHeader_Pal, 0, 0x20); + CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); CopyBgTilemapBufferToVram(0); return 0; case 2: @@ -865,15 +874,15 @@ u32 sub_81C791C(s32 a0) { } } -void CopyPaletteIntoBufferUnfaded(void *palette, u32 bufferOffset, u32 size) { +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } -void sub_81C795C(const struct PaletteDescriptor *palettes) { - const struct PaletteDescriptor *current; +void sub_81C795C(const struct SpritePalette *palettes) { + const struct SpritePalette *current; u32 index; - for (current = palettes; current->palette != NULL; current++) + for (current = palettes; current->data != NULL; current++) { index = AllocSpritePalette(current->tag); if (index == 0xFF) @@ -883,7 +892,7 @@ void sub_81C795C(const struct PaletteDescriptor *palettes) { else { index = (index * 16) + 0x100; - CopyPaletteIntoBufferUnfaded(current->palette, index, 0x20); + CopyPaletteIntoBufferUnfaded(current->data, index, 0x20); } } } @@ -1105,7 +1114,7 @@ void sub_81C7C28(void) { LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); } - sub_81C795C(&gUnknown_0861FA54); + sub_81C795C(gUnknown_0861FA54); v2 = IndexOfSpritePaletteTag(0); v3 = 0x80 << 9 << v2; v1[5] = -2 & ~v3; -- cgit v1.2.3 From 197ad274b4036b49cce8003c6458d1f83841735b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 00:07:57 -0500 Subject: Reformat braces --- src/pokenav_main.c | 338 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 203 insertions(+), 135 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index f468ffc31..ecf381bd8 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -19,7 +19,8 @@ #define UNKNOWN_OFFSET 100000 -struct UnknownStruct_0203CF40 { +struct UnknownStruct_0203CF40 +{ u32 (*field0)(void); u32 field4; u16 field8; @@ -28,16 +29,19 @@ struct UnknownStruct_0203CF40 { void* field10[19]; }; -struct UnknownStruct_sub_81C7850 { +struct UnknownStruct_sub_81C7850 +{ // Unknown size; at least 3. void (*data[3])(u32); }; -struct UnknownStruct_sub_81C76C4 { +struct UnknownStruct_sub_81C76C4 +{ u32 data[523]; }; -struct UnknownStruct_sub_81C7C28 { +struct UnknownStruct_sub_81C7C28 +{ struct CompressedSpriteSheet sheet; u32 field4; }; @@ -280,7 +284,8 @@ const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); -const struct BgTemplate gUnknown_0861FA04 = { +const struct BgTemplate gUnknown_0861FA04 = +{ .bg = 0, .charBaseIndex = 0, .mapBaseIndex = 5, @@ -290,7 +295,8 @@ const struct BgTemplate gUnknown_0861FA04 = { .baseTile = 0, }; -const struct WindowTemplate gUnknown_0861FA08[2] = { +const struct WindowTemplate gUnknown_0861FA08[2] = +{ { .bg = 0, .tilemapLeft = 1, @@ -311,7 +317,8 @@ const struct WindowTemplate gUnknown_0861FA08[2] = { }, }; -const u8 *const (MenuButtonReminders[12]) = { +const u8 *const (MenuButtonReminders[12]) = +{ gText_Navgear_ClearButtonList, gText_NavgearMap_ZoomedOutButtons, gText_NavgearMap_ZoomedInButtons, @@ -326,11 +333,13 @@ const u8 *const (MenuButtonReminders[12]) = { gText_NavgearRibbons_RibbonCheckButtons, }; -const u8 gMenuButtonReminderColor[4] = { +const u8 gMenuButtonReminderColor[4] = +{ 4, 1, 2, 0 }; -const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = { +const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = +{ { .data = gUnknown_0861F5B0, .size = 0x1000, @@ -338,7 +347,8 @@ const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = { } }; -const struct SpritePalette gUnknown_0861FA54[2] = { +const struct SpritePalette gUnknown_0861FA54[2] = +{ { .data = gUnknown_0861F590, .tag = 0, @@ -349,7 +359,8 @@ const struct SpritePalette gUnknown_0861FA54[2] = { } }; -const struct CompressedSpriteSheet gUnknown_0861FA64 = { +const struct CompressedSpriteSheet gUnknown_0861FA64 = +{ .data = gPokenavLeftHeaderHoennMap_Gfx, .size = 0xC00, .tag = 2 @@ -386,22 +397,20 @@ bool32 sub_81C70D8(u32 a0) return TRUE; } else - { return FALSE; - } } bool32 sub_81C7124(u32 a0) { s32 i; - for (i = 0; i < 16; i++) { + for (i = 0; i < 16; i++) + { if (gTasks[i].isActive && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) { u32 arg = GetWordTaskArg((u8)i, 1); - if (arg == a0) { + if (arg == a0) return TRUE; - } } } return FALSE; @@ -416,7 +425,8 @@ void sub_81C7170(u8 taskId) func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); dataPtr = gTasks[taskId].data; exitLoop = FALSE; - while (!exitLoop) { + while (!exitLoop) + { u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); switch (v1) { case 1: @@ -439,18 +449,19 @@ void sub_81C7170(u8 taskId) } } -void sub_81C71E4(u8 taskId) { +void sub_81C71E4(u8 taskId) +{ u32 (*func)(u32); s16 *data; u32 v1; - if (sub_8087598()) { + if (sub_8087598()) return; - } func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); data = gTasks[taskId].data; v1 = func(data[0]); - switch (v1) { + switch (v1) + { case 0: case 1: data[0]++; @@ -481,18 +492,22 @@ void CB2_PokeNav(void) } } -void sub_81C72A4() { +void sub_81C72A4() +{ SetMainCallback2(sub_81C72BC); FadeScreen(1, 0); } -void sub_81C72BC() { +void sub_81C72BC() +{ UpdatePaletteFade(); - if (!gPaletteFade.active) { + if (!gPaletteFade.active) + { gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) { + if (gUnknown_0203CF40 == NULL) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - } else { + else + { sub_81C7360(gUnknown_0203CF40); gUnknown_0203CF40->field8 = 1; ResetTasks(); @@ -506,9 +521,11 @@ void sub_81C72BC() { } } -void sub_81C7334() { +void sub_81C7334() +{ s32 i; - for (i = 0; i < 19; i++) { + for (i = 0; i < 19; i++) + { sub_81C7650(i); } @@ -518,7 +535,8 @@ void sub_81C7334() { } // Clears UnknownStruct_0203CF40 -void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { +void sub_81C7360(struct UnknownStruct_0203CF40 *a0) +{ s32 i; void **arrayPtr; void *fill; @@ -526,7 +544,8 @@ void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { fill = NULL; i = 18; arrayPtr = &(a0->field10[18]); - for (i; i >= 0; i--) { + for (i; i >= 0; i--) + { *arrayPtr = fill; arrayPtr -= 1; } @@ -536,11 +555,13 @@ void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { a0->field0 = NULL; } -bool32 AnyMonHasRibbon() { +bool32 AnyMonHasRibbon() +{ s32 i; s32 j; - for (i = 0; i < 6; i++) { + for (i = 0; i < 6; i++) + { if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) @@ -549,8 +570,10 @@ bool32 AnyMonHasRibbon() { } } - for (j = 0; j < 14; j++) { - for (i = 0; i < 30; i++) { + for (j = 0; j < 14; j++) + { + for (i = 0; i < 30; i++) + { if (CheckBoxMonSanityAt(j, i) && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) { @@ -562,167 +585,187 @@ bool32 AnyMonHasRibbon() { return FALSE; } -void sub_81C7400() { +void sub_81C7400() +{ RunTasks(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); } -void sub_81C7418() { +void sub_81C7418() +{ TransferPlttBuffer(); LoadOam(); ProcessSpriteCopyRequests(); } -void sub_81C742C(u8 taskId) { +void sub_81C742C(u8 taskId) +{ s16* dataPtr; u32 v1; bool32 v2; dataPtr = gTasks[taskId].data; - switch (dataPtr[0]) { + switch (dataPtr[0]) + { case 0: sub_81C76C4(); dataPtr[0] = 1; break; case 1: - if (sub_81C76FC()) { + if (sub_81C76FC()) break; - } sub_81C756C(UNKNOWN_OFFSET); dataPtr[0] = 4; break; case 2: - if (sub_81C786C()) { + if (sub_81C786C()) break; - } dataPtr[0] = 3; case 3: v1 = sub_81C75E0(); - if (v1 == -1) { + if (v1 == -1) + { sub_81C7710(); dataPtr[0] = 5; - } else if (v1 >= UNKNOWN_OFFSET) { + } + else if (v1 >= UNKNOWN_OFFSET) + { gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); - if (sub_81C756C(v1)) { + if (sub_81C756C(v1)) dataPtr[0] = 4; - } else { + else + { sub_81C7710(); dataPtr[0] = 5; } - } else if (v1 != 0) { + } + else if (v1 != 0) + { sub_81C7850(v1); - if (sub_81C786C()) { + if (sub_81C786C()) dataPtr[0] = 2; - } } break; case 4: - if (!sub_81C75D4()) { + if (!sub_81C75D4()) dataPtr[0] = 3; - } break; case 5: - if (!sub_81C7738()) { + if (!sub_81C7738()) + { v2 = gUnknown_0203CF40->field8 != 0; sub_81C9430(); sub_81C7334(); - if (v2) { + if (v2) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - } else { + else SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } } } } -bool32 sub_81C756C(u32 a0) { +bool32 sub_81C756C(u32 a0) +{ u32 index; index = a0 - UNKNOWN_OFFSET; sub_81C75F4(); - if (!gUnknown_0861F3EC[index][0]()) { + if (!gUnknown_0861F3EC[index][0]()) return FALSE; - } - if (!gUnknown_0861F3EC[index][2]()) { + if (!gUnknown_0861F3EC[index][2]()) return FALSE; - } sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; gUnknown_0203CF40->field4 = index; return TRUE; } -u32 sub_81C75D4(void) { +u32 sub_81C75D4(void) +{ return sub_81C786C(); } -u32 sub_81C75E0(void) { +u32 sub_81C75E0(void) +{ return gUnknown_0203CF40->field0(); } -void sub_81C75F4(void) { +void sub_81C75F4(void) +{ InitKeys(); } -void IndirectSetVBlankCallback(IntrCallback callback) { +void IndirectSetVBlankCallback(IntrCallback callback) +{ SetVBlankCallback(callback); } -void sub_81C760C(void) { +void sub_81C760C(void) +{ SetVBlankCallback(sub_81C7418); } -void* sub_81C761C(u32 index, u32 size) { +void* sub_81C761C(u32 index, u32 size) +{ return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); } -void* sub_81C763C(u32 index) { +void* sub_81C763C(u32 index) +{ return gUnknown_0203CF40->field10[index]; } -void sub_81C7650(u32 index) { - if (gUnknown_0203CF40->field10[index] != NULL) { +void sub_81C7650(u32 index) +{ + if (gUnknown_0203CF40->field10[index] != NULL) + { Free(gUnknown_0203CF40->field10[index]); gUnknown_0203CF40->field10[index] = NULL; } } -u16 sub_81C767C(void) { +u16 sub_81C767C(void) +{ return gUnknown_0203CF40->field8; } -void sub_81C7688(u16 a0) { +void sub_81C7688(u16 a0) +{ gUnknown_0203CF40->field8 = a0; } -void sub_81C7694(u32 a0) { +void sub_81C7694(u32 a0) +{ u32 value; value = a0; - if (a0 > 4) { + if (a0 > 4) value = 0; - } gUnknown_0203CF40->fieldA = value; } -u16 sub_81C76AC(void) { +u16 sub_81C76AC(void) +{ return gUnknown_0203CF40->fieldA; } -u32 sub_81C76B8(void) { +u32 sub_81C76B8(void) +{ return gUnknown_0203CF40->fieldC; } -bool32 sub_81C76C4(void) { +bool32 sub_81C76C4(void) +{ struct UnknownStruct_sub_81C76C4 *v1; v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); - if (v1 == NULL) { + if (v1 == NULL) return FALSE; - } else { + else + { ResetSpriteData(); FreeAllSpritePalettes(); v1->data[3] = sub_81C7078(sub_81C7764, 1); @@ -730,35 +773,40 @@ bool32 sub_81C76C4(void) { } } -u32 sub_81C76FC(void) { +u32 sub_81C76FC(void) +{ // This is a guess. struct UnknownStruct_sub_81C76C4 *v1; v1 = sub_81C763C(0); return sub_81C70D8(v1->data[3]); } -void sub_81C7710(void) { +void sub_81C7710(void) +{ PlaySE(SE_PN_OFF); sub_81CAADC(); BeginNormalPaletteFade(-1, -1, 0, 16, 0); } -bool32 sub_81C7738(void) { - if (!gPaletteFade.active) { +bool32 sub_81C7738(void) +{ + if (!gPaletteFade.active) + { sub_81C99D4(); sub_81C7C94(); FreeAllWindowBuffers(); return FALSE; - } else { + } else return TRUE; - } } -u32 sub_81C7764(s32 a0) { +u32 sub_81C7764(s32 a0) +{ // This is a guess. struct UnknownStruct_sub_81C76C4 *v1; - switch (a0) { + switch (a0) + { case 0: SetGpuReg(0, 0x82 << 5); FreeAllWindowBuffers(); @@ -776,28 +824,26 @@ u32 sub_81C7764(s32 a0) { CopyBgTilemapBufferToVram(0); return 0; case 2: - if (free_temp_tile_data_buffers_if_possible()) { + if (free_temp_tile_data_buffers_if_possible()) return 2; - } else { - sub_81C7B74(); - return 0; - } + + sub_81C7B74(); + return 0; case 3: - if (IsDma3ManagerBusyWithBgCopy()) { + if (IsDma3ManagerBusyWithBgCopy()) return 2; - } else { - sub_81C7C28(); - sub_81C7D28(); - ShowBg(0); - return 4; - } + + sub_81C7C28(); + sub_81C7D28(); + ShowBg(0); + return 4; default: return 4; } } -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) { - // This is a guess. +void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) +{ u32 (**v1)(void); v1 = sub_81C763C(0); @@ -806,8 +852,8 @@ void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) { v1[2] = NULL; } -void sub_81C7850(u32 a0) { - // This is a guess. +void sub_81C7850(u32 a0) +{ void (**v1)(u32); v1 = sub_81C763C(0); @@ -815,15 +861,16 @@ void sub_81C7850(u32 a0) { v1[0](a0); } -u32 sub_81C786C(void) { - // This is a guess. +u32 sub_81C786C(void) +{ u32 (**v1)(void); v1 = sub_81C763C(0); return v1[1](); } -void sub_81C7880(void) { +void sub_81C7880(void) +{ // This is a guess. struct UnknownStruct_0203CF40* v1; @@ -831,7 +878,8 @@ void sub_81C7880(void) { v1->fieldC = sub_81C7078(atk47_cmd47, 4); } -void sub_81C78A0(void) { +void sub_81C78A0(void) +{ // This is a guess. struct UnknownStruct_0203CF40* v1; @@ -839,7 +887,8 @@ void sub_81C78A0(void) { v1->fieldC = sub_81C7078(sub_81C791C, 4); } -bool32 sub_81C78C0(void) { +bool32 sub_81C78C0(void) +{ // This is a guess. struct UnknownStruct_0203CF40* v1; @@ -847,8 +896,10 @@ bool32 sub_81C78C0(void) { return sub_81C70D8(v1->fieldC); } -u32 atk47_cmd47(s32 a0) { - switch (a0) { +u32 atk47_cmd47(s32 a0) +{ + switch (a0) + { default: return 4; case 1: @@ -856,12 +907,13 @@ u32 atk47_cmd47(s32 a0) { case 0: return 0; case 2: - if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) { + if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) + { ChangeBgY(0, 0x2000, 0); return 4; - } else { - return 2; } + + return 2; } } @@ -869,16 +921,16 @@ u32 sub_81C791C(s32 a0) { if (ChangeBgY(0, 384, 2) <= 0) { ChangeBgY(0, 0, 0); return 4; - } else { - return 2; } + return 2; } void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } -void sub_81C795C(const struct SpritePalette *palettes) { +void sub_81C795C(const struct SpritePalette *palettes) +{ const struct SpritePalette *current; u32 index; @@ -897,12 +949,14 @@ void sub_81C795C(const struct SpritePalette *palettes) { } } -void sub_81C7990(u32 a0, u16 a1) { +void sub_81C7990(u32 a0, u16 a1) +{ CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); } __attribute__((naked)) -void sub_81C79BC(u16* a0, u16* a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) { +void sub_81C79BC(u16* a0, u16* a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) +{ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -1036,10 +1090,12 @@ _081C7AAE:\n\ .syntax divided"); } -void sub_81C7AC0(s32 a0) { +void sub_81C7AC0(s32 a0) +{ u32 *v1; v1 = sub_81C763C(0); - switch (a0) { + switch (a0) + { case 0: BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); break; @@ -1055,25 +1111,29 @@ void sub_81C7AC0(s32 a0) { } } -bool32 IsPaletteFadeActive(void) { +bool32 IsPaletteFadeActive(void) +{ return gPaletteFade.active; } -void sub_81C7B40(void) { +void sub_81C7B40(void) +{ BlendPalettes(0xFFFEFFFE, 16, 0); } -void sub_81C7B54(const struct BgTemplate *a0, s32 a1) { +void sub_81C7B54(const struct BgTemplate *a0, s32 a1) +{ s32 i; - if (a1 <= 0) { + if (a1 <= 0) return; - } - for (i = a1; i != 0; i--) { + for (i = a1; i != 0; i--) + { InitBgFromTemplate(a0++); } } -void sub_81C7B74(void) { +void sub_81C7B74(void) +{ u32 *v1; v1 = sub_81C763C(0); @@ -1084,7 +1144,8 @@ void sub_81C7B74(void) { CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. } -void sub_81C7BA4(u32 a0) { +void sub_81C7BA4(u32 a0) +{ u32* v1; v1 = sub_81C763C(0); @@ -1092,16 +1153,19 @@ void sub_81C7BA4(u32 a0) { AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); } -bool8 sub_81C7BE8(void) { +bool8 sub_81C7BE8(void) +{ return IsDma3ManagerBusyWithBgCopy(); } -void sub_81C7BF8(u32 a0) { +void sub_81C7BF8(u32 a0) +{ FillWindowPixelBuffer(a0, 0x44); FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); } -void sub_81C7C28(void) { +void sub_81C7C28(void) +{ u32* v1; u32 i; u8 v2; @@ -1110,7 +1174,8 @@ void sub_81C7C28(void) { u8 spriteId; v1 = sub_81C763C(0); - for (i = 0; i == 0; i++) { + for (i = 0; i == 0; i++) + { LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); } @@ -1122,7 +1187,8 @@ void sub_81C7C28(void) { v1[6] = (u32)(&gSprites[spriteId]); } -void sub_81C7C94(void) { +void sub_81C7C94(void) +{ void **v1; v1 = sub_81C763C(0); DestroySprite(v1[6]); @@ -1130,13 +1196,15 @@ void sub_81C7C94(void) { FreeSpritePaletteByTag(0); } -void sub_81C7CB4(u16 *a0) { +void sub_81C7CB4(u16 *a0) +{ u32 v1; v1 = GetBgY(0); a0[19] = (v1 >> 8) * -1; } -struct Sprite* sub_81C7CCC(void) { +struct Sprite* sub_81C7CCC(void) +{ struct Sprite **v1; struct Sprite *v2; v1 = sub_81C763C(0); -- cgit v1.2.3 From fbcfb69fe6a0f29a5d28b3ca066d30d8a79602b8 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 00:20:24 -0500 Subject: Remove guess code, fix pointer formatting --- src/pokenav_main.c | 54 ++++++++++++++++++------------------------------------ 1 file changed, 18 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index ecf381bd8..fd86903e7 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -26,13 +26,7 @@ struct UnknownStruct_0203CF40 u16 field8; u16 fieldA; u32 fieldC; - void* field10[19]; -}; - -struct UnknownStruct_sub_81C7850 -{ - // Unknown size; at least 3. - void (*data[3])(u32); + void *field10[19]; }; struct UnknownStruct_sub_81C76C4 @@ -40,13 +34,6 @@ struct UnknownStruct_sub_81C76C4 u32 data[523]; }; -struct UnknownStruct_sub_81C7C28 -{ - struct CompressedSpriteSheet sheet; - u32 field4; -}; - - extern u32 sub_81C9430(void); extern void sub_81CAADC(void); extern u32 sub_81C99D4(void); @@ -602,7 +589,7 @@ void sub_81C7418() void sub_81C742C(u8 taskId) { - s16* dataPtr; + s16 *dataPtr; u32 v1; bool32 v2; @@ -709,12 +696,12 @@ void sub_81C760C(void) SetVBlankCallback(sub_81C7418); } -void* sub_81C761C(u32 index, u32 size) +void *sub_81C761C(u32 index, u32 size) { return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); } -void* sub_81C763C(u32 index) +void *sub_81C763C(u32 index) { return gUnknown_0203CF40->field10[index]; } @@ -775,10 +762,9 @@ bool32 sub_81C76C4(void) u32 sub_81C76FC(void) { - // This is a guess. - struct UnknownStruct_sub_81C76C4 *v1; + u32 *v1; v1 = sub_81C763C(0); - return sub_81C70D8(v1->data[3]); + return sub_81C70D8(v1[3]); } void sub_81C7710(void) @@ -802,8 +788,7 @@ bool32 sub_81C7738(void) u32 sub_81C7764(s32 a0) { - // This is a guess. - struct UnknownStruct_sub_81C76C4 *v1; + u32 *v1; switch (a0) { @@ -818,7 +803,7 @@ u32 sub_81C7764(s32 a0) case 1: v1 = sub_81C763C(0); decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); - SetBgTilemapBuffer(0, &v1->data[11]); + SetBgTilemapBuffer(0, &v1[11]); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); CopyBgTilemapBufferToVram(0); @@ -871,29 +856,26 @@ u32 sub_81C786C(void) void sub_81C7880(void) { - // This is a guess. - struct UnknownStruct_0203CF40* v1; + u32 *v1; v1 = sub_81C763C(0); - v1->fieldC = sub_81C7078(atk47_cmd47, 4); + v1[3] = sub_81C7078(atk47_cmd47, 4); } void sub_81C78A0(void) { - // This is a guess. - struct UnknownStruct_0203CF40* v1; + u32 *v1; v1 = sub_81C763C(0); - v1->fieldC = sub_81C7078(sub_81C791C, 4); + v1[3] = sub_81C7078(sub_81C791C, 4); } bool32 sub_81C78C0(void) { - // This is a guess. - struct UnknownStruct_0203CF40* v1; + u32 *v1; v1 = sub_81C763C(0); - return sub_81C70D8(v1->fieldC); + return sub_81C70D8(v1[3]); } u32 atk47_cmd47(s32 a0) @@ -955,7 +937,7 @@ void sub_81C7990(u32 a0, u16 a1) } __attribute__((naked)) -void sub_81C79BC(u16* a0, u16* a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) +void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1146,7 +1128,7 @@ void sub_81C7B74(void) void sub_81C7BA4(u32 a0) { - u32* v1; + u32 *v1; v1 = sub_81C763C(0); sub_81C7BF8(v1[4]); @@ -1166,7 +1148,7 @@ void sub_81C7BF8(u32 a0) void sub_81C7C28(void) { - u32* v1; + u32 *v1; u32 i; u8 v2; u32 v3; @@ -1203,7 +1185,7 @@ void sub_81C7CB4(u16 *a0) a0[19] = (v1 >> 8) * -1; } -struct Sprite* sub_81C7CCC(void) +struct Sprite *sub_81C7CCC(void) { struct Sprite **v1; struct Sprite *v2; -- cgit v1.2.3 From bfeb7fb32a04ee80481a7cd03a1522764182e2d8 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 15 Feb 2019 00:29:32 -0500 Subject: Tabs converted to spaces. Oops. --- src/pokenav_main.c | 1512 ++++++++++++++++++++++++++-------------------------- 1 file changed, 756 insertions(+), 756 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index fd86903e7..992bca3f0 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -21,17 +21,17 @@ struct UnknownStruct_0203CF40 { - u32 (*field0)(void); - u32 field4; - u16 field8; - u16 fieldA; - u32 fieldC; - void *field10[19]; + u32 (*field0)(void); + u32 field4; + u16 field8; + u16 fieldA; + u32 fieldC; + void *field10[19]; }; struct UnknownStruct_sub_81C76C4 { - u32 data[523]; + u32 data[523]; }; extern u32 sub_81C9430(void); @@ -130,141 +130,141 @@ void sub_81C7C94(void); u32 (*const gUnknown_0861F3EC[15][7])(void) = { - { - (u32 (*)(void))sub_81C9298, - sub_81C941C, - sub_81C9924, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9298, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9338, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9368, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C92CC, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9304, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81CC4D4, - sub_81CC554, - sub_81CC5F4, - sub_81CC62C, - sub_81CC65C, - sub_81CC524, - sub_81CC670, - }, - { - sub_81CCFD8, - sub_81CD070, - sub_81CDDD4, - sub_81CDE2C, - sub_81CDE64, - sub_81CD1C0, - sub_81CECA0, - }, - { - sub_81CEF3C, - sub_81CEFDC, - sub_81CF330, - sub_81CF3A0, - sub_81CF3D0, - sub_81CEFF0, - sub_81CF3F8, - }, - { - sub_81CD024, - sub_81CD070, - sub_81CDDD4, - sub_81CDE2C, - sub_81CDE64, - sub_81CD1C0, - sub_81CECA0, - }, - { - sub_81CEF98, - sub_81CEFDC, - sub_81CF368, - sub_81CF3A0, - sub_81CF3D0, - sub_81CEFF0, - sub_81CF3F8, - }, - { - sub_81CAAE8, - sub_81CAB24, - sub_81CB260, - sub_81CB29C, - sub_81CB2CC, - sub_81CAB38, - sub_81CB2E0, - }, - { - sub_81CF9BC, - sub_81CFA34, - sub_81CFDD0, - sub_81CFE40, - sub_81CFE70, - sub_81CFA48, - sub_81CFE98, - }, - { - sub_81D0450, - sub_81D04A0, - sub_81D0978, - sub_81D09B0, - sub_81D09E0, - sub_81D04B8, - sub_81D09F4, - }, - { - sub_81CFA04, - sub_81CFA34, - sub_81CFE08, - sub_81CFE40, - sub_81CFE70, - sub_81CFA48, - sub_81CFE98, - }, + { + (u32 (*)(void))sub_81C9298, + sub_81C941C, + sub_81C9924, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9298, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9338, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9368, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C92CC, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9304, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81CC4D4, + sub_81CC554, + sub_81CC5F4, + sub_81CC62C, + sub_81CC65C, + sub_81CC524, + sub_81CC670, + }, + { + sub_81CCFD8, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF3C, + sub_81CEFDC, + sub_81CF330, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CD024, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF98, + sub_81CEFDC, + sub_81CF368, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CAAE8, + sub_81CAB24, + sub_81CB260, + sub_81CB29C, + sub_81CB2CC, + sub_81CAB38, + sub_81CB2E0, + }, + { + sub_81CF9BC, + sub_81CFA34, + sub_81CFDD0, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, + { + sub_81D0450, + sub_81D04A0, + sub_81D0978, + sub_81D09B0, + sub_81D09E0, + sub_81D04B8, + sub_81D09F4, + }, + { + sub_81CFA04, + sub_81CFA34, + sub_81CFE08, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, }; const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); @@ -273,84 +273,84 @@ const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.l const struct BgTemplate gUnknown_0861FA04 = { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 5, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, }; const struct WindowTemplate gUnknown_0861FA08[2] = { - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 0x16, - .width = 0x10, - .height = 0x2, - .paletteNum = 0, - .baseBlock = 0x36, - }, - { - .bg = 0xFF, - .tilemapLeft = 0, - .tilemapTop = 0, - .width = 0, - .height = 0, - .paletteNum = 0, - .baseBlock = 0, - }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x16, + .width = 0x10, + .height = 0x2, + .paletteNum = 0, + .baseBlock = 0x36, + }, + { + .bg = 0xFF, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 0, + .height = 0, + .paletteNum = 0, + .baseBlock = 0, + }, }; const u8 *const (MenuButtonReminders[12]) = { - gText_Navgear_ClearButtonList, - gText_NavgearMap_ZoomedOutButtons, - gText_NavgearMap_ZoomedInButtons, - gText_NavgearCondition_MonListButtons, - gText_NavgearCondition_MonStatusButtons, - gText_NavgearCondition_MarkingButtons, - gText_NavgearMatchCall_TrainerListButtons, - gText_NavgearMatchCall_CallMenuButtons, - gText_NavgearMatchCall_CheckTrainerButtons, - gText_NavgearRibbons_MonListButtons, - gText_NavgearRibbons_RibbonListButtons, - gText_NavgearRibbons_RibbonCheckButtons, + gText_Navgear_ClearButtonList, + gText_NavgearMap_ZoomedOutButtons, + gText_NavgearMap_ZoomedInButtons, + gText_NavgearCondition_MonListButtons, + gText_NavgearCondition_MonStatusButtons, + gText_NavgearCondition_MarkingButtons, + gText_NavgearMatchCall_TrainerListButtons, + gText_NavgearMatchCall_CallMenuButtons, + gText_NavgearMatchCall_CheckTrainerButtons, + gText_NavgearRibbons_MonListButtons, + gText_NavgearRibbons_RibbonListButtons, + gText_NavgearRibbons_RibbonCheckButtons, }; const u8 gMenuButtonReminderColor[4] = { - 4, 1, 2, 0 + 4, 1, 2, 0 }; const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = { - { - .data = gUnknown_0861F5B0, - .size = 0x1000, - .tag = 0, - } + { + .data = gUnknown_0861F5B0, + .size = 0x1000, + .tag = 0, + } }; const struct SpritePalette gUnknown_0861FA54[2] = { - { - .data = gUnknown_0861F590, - .tag = 0, - }, - { - .data = NULL, - .tag = 0, - } + { + .data = gUnknown_0861F590, + .tag = 0, + }, + { + .data = NULL, + .tag = 0, + } }; const struct CompressedSpriteSheet gUnknown_0861FA64 = { - .data = gPokenavLeftHeaderHoennMap_Gfx, - .size = 0xC00, - .tag = 2 + .data = gPokenavLeftHeaderHoennMap_Gfx, + .size = 0xC00, + .tag = 2 }; extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; @@ -363,7 +363,7 @@ u32 sub_81C7078(u32 (*a0)(s32), u32 a1) if (!is_c1_link_related_active()) taskId = CreateTask(sub_81C7170, a1); - else + else taskId = CreateTask(sub_81C71E4, a1); SetWordTaskArg(taskId, 1, (u32)a0); @@ -374,94 +374,94 @@ u32 sub_81C7078(u32 (*a0)(s32), u32 a1) bool32 sub_81C70D8(u32 a0) { - u32 v1 = a0 & 0xFFFF; - u32 v2 = a0 >> 16; - if (gTasks[v1].isActive - && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) - && gTasks[v1].data[3] == v2) - { - - return TRUE; - } - else - return FALSE; + u32 v1 = a0 & 0xFFFF; + u32 v2 = a0 >> 16; + if (gTasks[v1].isActive + && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) + && gTasks[v1].data[3] == v2) + { + + return TRUE; + } + else + return FALSE; } bool32 sub_81C7124(u32 a0) { - s32 i; - for (i = 0; i < 16; i++) - { - if (gTasks[i].isActive - && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) - { - u32 arg = GetWordTaskArg((u8)i, 1); - if (arg == a0) - return TRUE; - } - } - return FALSE; + s32 i; + for (i = 0; i < 16; i++) + { + if (gTasks[i].isActive + && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) + { + u32 arg = GetWordTaskArg((u8)i, 1); + if (arg == a0) + return TRUE; + } + } + return FALSE; } void sub_81C7170(u8 taskId) { - s16 *dataPtr; - u32 (*func)(u32); - bool32 exitLoop; - - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - dataPtr = gTasks[taskId].data; - exitLoop = FALSE; - while (!exitLoop) - { - u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); - switch (v1) { - case 1: - dataPtr[0] = dataPtr[0] + 1; - break; - case 0: - dataPtr[0]++; - return; - case 4: - DestroyTask(taskId); - return; - default: - dataPtr[0] = v1 - 5; - break; - case 3: - break; - case 2: - return; - } - } + s16 *dataPtr; + u32 (*func)(u32); + bool32 exitLoop; + + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + dataPtr = gTasks[taskId].data; + exitLoop = FALSE; + while (!exitLoop) + { + u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); + switch (v1) { + case 1: + dataPtr[0] = dataPtr[0] + 1; + break; + case 0: + dataPtr[0]++; + return; + case 4: + DestroyTask(taskId); + return; + default: + dataPtr[0] = v1 - 5; + break; + case 3: + break; + case 2: + return; + } + } } void sub_81C71E4(u8 taskId) { - u32 (*func)(u32); - s16 *data; - u32 v1; - - if (sub_8087598()) - return; - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - data = gTasks[taskId].data; - v1 = func(data[0]); - switch (v1) - { - case 0: - case 1: - data[0]++; - break; - case 4: - DestroyTask(taskId); - break; - default: - data[0] = v1 - 5; - break; - case 2: - case 3: - } + u32 (*func)(u32); + s16 *data; + u32 v1; + + if (sub_8087598()) + return; + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + data = gTasks[taskId].data; + v1 = func(data[0]); + switch (v1) + { + case 0: + case 1: + data[0]++; + break; + case 4: + DestroyTask(taskId); + break; + default: + data[0] = v1 - 5; + break; + case 2: + case 3: + } } void CB2_PokeNav(void) @@ -481,439 +481,439 @@ void CB2_PokeNav(void) void sub_81C72A4() { - SetMainCallback2(sub_81C72BC); - FadeScreen(1, 0); + SetMainCallback2(sub_81C72BC); + FadeScreen(1, 0); } void sub_81C72BC() { - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - else - { - sub_81C7360(gUnknown_0203CF40); - gUnknown_0203CF40->field8 = 1; - ResetTasks(); - ResetSpriteData(); - FreeAllSpritePalettes(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } - } + UpdatePaletteFade(); + if (!gPaletteFade.active) + { + gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + if (gUnknown_0203CF40 == NULL) + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + else + { + sub_81C7360(gUnknown_0203CF40); + gUnknown_0203CF40->field8 = 1; + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } + } } void sub_81C7334() { - s32 i; - for (i = 0; i < 19; i++) - { - sub_81C7650(i); - } + s32 i; + for (i = 0; i < 19; i++) + { + sub_81C7650(i); + } - Free(gUnknown_0203CF40); - gUnknown_0203CF40 = NULL; - InitKeys(); + Free(gUnknown_0203CF40); + gUnknown_0203CF40 = NULL; + InitKeys(); } // Clears UnknownStruct_0203CF40 void sub_81C7360(struct UnknownStruct_0203CF40 *a0) { - s32 i; - void **arrayPtr; - void *fill; - - fill = NULL; - i = 18; - arrayPtr = &(a0->field10[18]); - for (i; i >= 0; i--) - { - *arrayPtr = fill; - arrayPtr -= 1; - } - a0->field8 = 0; - a0->field4 = 0; - a0->fieldC = AnyMonHasRibbon(); - a0->field0 = NULL; + s32 i; + void **arrayPtr; + void *fill; + + fill = NULL; + i = 18; + arrayPtr = &(a0->field10[18]); + for (i; i >= 0; i--) + { + *arrayPtr = fill; + arrayPtr -= 1; + } + a0->field8 = 0; + a0->field4 = 0; + a0->fieldC = AnyMonHasRibbon(); + a0->field0 = NULL; } bool32 AnyMonHasRibbon() { - s32 i; - s32 j; - - for (i = 0; i < 6; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) - && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) - && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) - { - return TRUE; - } - } - - for (j = 0; j < 14; j++) - { - for (i = 0; i < 30; i++) - { - if (CheckBoxMonSanityAt(j, i) - && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) - { - return TRUE; - } - } - } - - return FALSE; + s32 i; + s32 j; + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) + && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + + for (j = 0; j < 14; j++) + { + for (i = 0; i < 30; i++) + { + if (CheckBoxMonSanityAt(j, i) + && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + } + + return FALSE; } void sub_81C7400() { - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - UpdatePaletteFade(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); } void sub_81C7418() { - TransferPlttBuffer(); - LoadOam(); - ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); } void sub_81C742C(u8 taskId) { - s16 *dataPtr; - u32 v1; - bool32 v2; - - dataPtr = gTasks[taskId].data; - - switch (dataPtr[0]) - { - case 0: - sub_81C76C4(); - dataPtr[0] = 1; - break; - case 1: - if (sub_81C76FC()) - break; - sub_81C756C(UNKNOWN_OFFSET); - dataPtr[0] = 4; - break; - case 2: - if (sub_81C786C()) - break; - dataPtr[0] = 3; - case 3: - v1 = sub_81C75E0(); - if (v1 == -1) - { - sub_81C7710(); - dataPtr[0] = 5; - } - else if (v1 >= UNKNOWN_OFFSET) - { - gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); - gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); - if (sub_81C756C(v1)) - dataPtr[0] = 4; - else - { - sub_81C7710(); - dataPtr[0] = 5; - } - } - else if (v1 != 0) - { - sub_81C7850(v1); - if (sub_81C786C()) - dataPtr[0] = 2; - } - break; - case 4: - if (!sub_81C75D4()) - dataPtr[0] = 3; - break; - case 5: - if (!sub_81C7738()) - { - v2 = gUnknown_0203CF40->field8 != 0; - sub_81C9430(); - sub_81C7334(); - if (v2) - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - else - SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } - } + s16 *dataPtr; + u32 v1; + bool32 v2; + + dataPtr = gTasks[taskId].data; + + switch (dataPtr[0]) + { + case 0: + sub_81C76C4(); + dataPtr[0] = 1; + break; + case 1: + if (sub_81C76FC()) + break; + sub_81C756C(UNKNOWN_OFFSET); + dataPtr[0] = 4; + break; + case 2: + if (sub_81C786C()) + break; + dataPtr[0] = 3; + case 3: + v1 = sub_81C75E0(); + if (v1 == -1) + { + sub_81C7710(); + dataPtr[0] = 5; + } + else if (v1 >= UNKNOWN_OFFSET) + { + gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); + gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); + if (sub_81C756C(v1)) + dataPtr[0] = 4; + else + { + sub_81C7710(); + dataPtr[0] = 5; + } + } + else if (v1 != 0) + { + sub_81C7850(v1); + if (sub_81C786C()) + dataPtr[0] = 2; + } + break; + case 4: + if (!sub_81C75D4()) + dataPtr[0] = 3; + break; + case 5: + if (!sub_81C7738()) + { + v2 = gUnknown_0203CF40->field8 != 0; + sub_81C9430(); + sub_81C7334(); + if (v2) + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + else + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } + } } bool32 sub_81C756C(u32 a0) { - u32 index; - - index = a0 - UNKNOWN_OFFSET; - sub_81C75F4(); - if (!gUnknown_0861F3EC[index][0]()) - return FALSE; - if (!gUnknown_0861F3EC[index][2]()) - return FALSE; - sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); - gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; - gUnknown_0203CF40->field4 = index; - return TRUE; + u32 index; + + index = a0 - UNKNOWN_OFFSET; + sub_81C75F4(); + if (!gUnknown_0861F3EC[index][0]()) + return FALSE; + if (!gUnknown_0861F3EC[index][2]()) + return FALSE; + sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); + gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; + gUnknown_0203CF40->field4 = index; + return TRUE; } u32 sub_81C75D4(void) { - return sub_81C786C(); + return sub_81C786C(); } u32 sub_81C75E0(void) { - return gUnknown_0203CF40->field0(); + return gUnknown_0203CF40->field0(); } void sub_81C75F4(void) { - InitKeys(); + InitKeys(); } void IndirectSetVBlankCallback(IntrCallback callback) { - SetVBlankCallback(callback); + SetVBlankCallback(callback); } void sub_81C760C(void) { - SetVBlankCallback(sub_81C7418); + SetVBlankCallback(sub_81C7418); } void *sub_81C761C(u32 index, u32 size) { - return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); + return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); } void *sub_81C763C(u32 index) { - return gUnknown_0203CF40->field10[index]; + return gUnknown_0203CF40->field10[index]; } void sub_81C7650(u32 index) { - if (gUnknown_0203CF40->field10[index] != NULL) - { - Free(gUnknown_0203CF40->field10[index]); - gUnknown_0203CF40->field10[index] = NULL; - } + if (gUnknown_0203CF40->field10[index] != NULL) + { + Free(gUnknown_0203CF40->field10[index]); + gUnknown_0203CF40->field10[index] = NULL; + } } u16 sub_81C767C(void) { - return gUnknown_0203CF40->field8; + return gUnknown_0203CF40->field8; } void sub_81C7688(u16 a0) { - gUnknown_0203CF40->field8 = a0; + gUnknown_0203CF40->field8 = a0; } void sub_81C7694(u32 a0) { - u32 value; - value = a0; - if (a0 > 4) - value = 0; - gUnknown_0203CF40->fieldA = value; + u32 value; + value = a0; + if (a0 > 4) + value = 0; + gUnknown_0203CF40->fieldA = value; } u16 sub_81C76AC(void) { - return gUnknown_0203CF40->fieldA; + return gUnknown_0203CF40->fieldA; } u32 sub_81C76B8(void) { - return gUnknown_0203CF40->fieldC; + return gUnknown_0203CF40->fieldC; } bool32 sub_81C76C4(void) { - struct UnknownStruct_sub_81C76C4 *v1; - - v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); - if (v1 == NULL) - return FALSE; - else - { - ResetSpriteData(); - FreeAllSpritePalettes(); - v1->data[3] = sub_81C7078(sub_81C7764, 1); - return TRUE; - } + struct UnknownStruct_sub_81C76C4 *v1; + + v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); + if (v1 == NULL) + return FALSE; + else + { + ResetSpriteData(); + FreeAllSpritePalettes(); + v1->data[3] = sub_81C7078(sub_81C7764, 1); + return TRUE; + } } u32 sub_81C76FC(void) { - u32 *v1; - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + u32 *v1; + v1 = sub_81C763C(0); + return sub_81C70D8(v1[3]); } void sub_81C7710(void) { - PlaySE(SE_PN_OFF); - sub_81CAADC(); - BeginNormalPaletteFade(-1, -1, 0, 16, 0); + PlaySE(SE_PN_OFF); + sub_81CAADC(); + BeginNormalPaletteFade(-1, -1, 0, 16, 0); } bool32 sub_81C7738(void) { - if (!gPaletteFade.active) - { - sub_81C99D4(); - sub_81C7C94(); - FreeAllWindowBuffers(); - return FALSE; - } else - return TRUE; + if (!gPaletteFade.active) + { + sub_81C99D4(); + sub_81C7C94(); + FreeAllWindowBuffers(); + return FALSE; + } else + return TRUE; } u32 sub_81C7764(s32 a0) { - u32 *v1; - - switch (a0) - { - case 0: - SetGpuReg(0, 0x82 << 5); - FreeAllWindowBuffers(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); - sub_8199D98(); - reset_temp_tile_data_buffers(); - return 1; - case 1: - v1 = sub_81C763C(0); - decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); - SetBgTilemapBuffer(0, &v1[11]); - CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); - CopyBgTilemapBufferToVram(0); - return 0; - case 2: - if (free_temp_tile_data_buffers_if_possible()) - return 2; - - sub_81C7B74(); - return 0; - case 3: - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - - sub_81C7C28(); - sub_81C7D28(); - ShowBg(0); - return 4; - default: - return 4; - } + u32 *v1; + + switch (a0) + { + case 0: + SetGpuReg(0, 0x82 << 5); + FreeAllWindowBuffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); + sub_8199D98(); + reset_temp_tile_data_buffers(); + return 1; + case 1: + v1 = sub_81C763C(0); + decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); + SetBgTilemapBuffer(0, &v1[11]); + CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); + CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); + CopyBgTilemapBufferToVram(0); + return 0; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return 2; + + sub_81C7B74(); + return 0; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return 2; + + sub_81C7C28(); + sub_81C7D28(); + ShowBg(0); + return 4; + default: + return 4; + } } void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) { - u32 (**v1)(void); + u32 (**v1)(void); - v1 = sub_81C763C(0); - v1[0] = a0; - v1[1] = a1; - v1[2] = NULL; + v1 = sub_81C763C(0); + v1[0] = a0; + v1[1] = a1; + v1[2] = NULL; } void sub_81C7850(u32 a0) { - void (**v1)(u32); + void (**v1)(u32); - v1 = sub_81C763C(0); - v1[2] = NULL; - v1[0](a0); + v1 = sub_81C763C(0); + v1[2] = NULL; + v1[0](a0); } u32 sub_81C786C(void) { - u32 (**v1)(void); + u32 (**v1)(void); - v1 = sub_81C763C(0); - return v1[1](); + v1 = sub_81C763C(0); + return v1[1](); } void sub_81C7880(void) { - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(atk47_cmd47, 4); + u32 *v1; + + v1 = sub_81C763C(0); + v1[3] = sub_81C7078(atk47_cmd47, 4); } void sub_81C78A0(void) { - u32 *v1; + u32 *v1; - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(sub_81C791C, 4); + v1 = sub_81C763C(0); + v1[3] = sub_81C7078(sub_81C791C, 4); } bool32 sub_81C78C0(void) { - u32 *v1; + u32 *v1; - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + v1 = sub_81C763C(0); + return sub_81C70D8(v1[3]); } u32 atk47_cmd47(s32 a0) { - switch (a0) - { - default: - return 4; - case 1: - return 0; - case 0: - return 0; - case 2: - if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) - { - ChangeBgY(0, 0x2000, 0); - return 4; - } - - return 2; - } + switch (a0) + { + default: + return 4; + case 1: + return 0; + case 0: + return 0; + case 2: + if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) + { + ChangeBgY(0, 0x2000, 0); + return 4; + } + + return 2; + } } u32 sub_81C791C(s32 a0) { - if (ChangeBgY(0, 384, 2) <= 0) { - ChangeBgY(0, 0, 0); - return 4; - } - return 2; + if (ChangeBgY(0, 384, 2) <= 0) { + ChangeBgY(0, 0, 0); + return 4; + } + return 2; } void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { - CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); + CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } void sub_81C795C(const struct SpritePalette *palettes) { - const struct SpritePalette *current; + const struct SpritePalette *current; u32 index; for (current = palettes; current->data != NULL; current++) @@ -933,264 +933,264 @@ void sub_81C795C(const struct SpritePalette *palettes) void sub_81C7990(u32 a0, u16 a1) { - CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); + CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); } __attribute__((naked)) void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - str r0, [sp]\n\ - str r1, [sp, 0x4]\n\ - mov r10, r2\n\ - str r3, [sp, 0x8]\n\ - ldr r0, [sp, 0x2C]\n\ - cmp r0, 0\n\ - bne _081C79E4\n\ - ldr r2, =0x001fffff\n\ - mov r1, r10\n\ - ands r2, r1\n\ - ldr r0, [sp]\n\ - b _081C79F4\n\ - .pool\n\ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + mov r10, r2\n\ + str r3, [sp, 0x8]\n\ + ldr r0, [sp, 0x2C]\n\ + cmp r0, 0\n\ + bne _081C79E4\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp]\n\ + b _081C79F4\n\ + .pool\n\ _081C79E4:\n\ - ldr r2, [sp, 0x2C]\n\ - ldr r0, [sp, 0x8]\n\ - cmp r2, r0\n\ - blt _081C7A00\n\ - ldr r2, =0x001fffff\n\ - mov r1, r10\n\ - ands r2, r1\n\ - ldr r0, [sp, 0x4]\n\ + ldr r2, [sp, 0x2C]\n\ + ldr r0, [sp, 0x8]\n\ + cmp r2, r0\n\ + blt _081C7A00\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp, 0x4]\n\ _081C79F4:\n\ - ldr r1, [sp, 0x30]\n\ - bl CpuSet\n\ - b _081C7AAE\n\ - .pool\n\ + ldr r1, [sp, 0x30]\n\ + bl CpuSet\n\ + b _081C7AAE\n\ + .pool\n\ _081C7A00:\n\ - movs r2, 0x1\n\ - negs r2, r2\n\ - add r10, r2\n\ - b _081C7AA6\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + add r10, r2\n\ + b _081C7AA6\n\ _081C7A08:\n\ - ldr r1, [sp]\n\ - ldrh r0, [r1]\n\ - movs r2, 0x1F\n\ - mov r9, r2\n\ - mov r1, r9\n\ - ands r1, r0\n\ - mov r9, r1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 21\n\ - movs r1, 0x1F\n\ - ands r1, r2\n\ - mov r8, r1\n\ - lsrs r7, r0, 26\n\ - movs r2, 0x1F\n\ - ands r7, r2\n\ - ldr r0, [sp, 0x4]\n\ - ldrh r4, [r0]\n\ - movs r0, 0x1F\n\ - ands r0, r4\n\ - mov r1, r9\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r2, [sp, 0x2C]\n\ - adds r6, r0, 0\n\ - muls r6, r2\n\ - asrs r6, 8\n\ - lsls r4, 16\n\ - lsrs r0, r4, 21\n\ - movs r1, 0x1F\n\ - ands r0, r1\n\ - mov r2, r8\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r1, [sp, 0x2C]\n\ - adds r5, r0, 0\n\ - muls r5, r1\n\ - asrs r5, 8\n\ - lsrs r4, 26\n\ - movs r2, 0x1F\n\ - ands r4, r2\n\ - subs r4, r7\n\ - lsls r4, 8\n\ - adds r0, r4, 0\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r1, [sp, 0x2C]\n\ - muls r0, r1\n\ - asrs r0, 8\n\ - add r6, r9\n\ - movs r2, 0x1F\n\ - ands r6, r2\n\ - add r5, r8\n\ - ands r5, r2\n\ - adds r0, r7, r0\n\ - ands r0, r2\n\ - lsls r0, 10\n\ - lsls r5, 5\n\ - orrs r0, r5\n\ - orrs r0, r6\n\ - ldr r1, [sp, 0x30]\n\ - strh r0, [r1]\n\ - ldr r2, [sp]\n\ - adds r2, 0x2\n\ - str r2, [sp]\n\ - ldr r0, [sp, 0x4]\n\ - adds r0, 0x2\n\ - str r0, [sp, 0x4]\n\ - adds r1, 0x2\n\ - str r1, [sp, 0x30]\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - add r10, r1\n\ + ldr r1, [sp]\n\ + ldrh r0, [r1]\n\ + movs r2, 0x1F\n\ + mov r9, r2\n\ + mov r1, r9\n\ + ands r1, r0\n\ + mov r9, r1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 21\n\ + movs r1, 0x1F\n\ + ands r1, r2\n\ + mov r8, r1\n\ + lsrs r7, r0, 26\n\ + movs r2, 0x1F\n\ + ands r7, r2\n\ + ldr r0, [sp, 0x4]\n\ + ldrh r4, [r0]\n\ + movs r0, 0x1F\n\ + ands r0, r4\n\ + mov r1, r9\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r2, [sp, 0x2C]\n\ + adds r6, r0, 0\n\ + muls r6, r2\n\ + asrs r6, 8\n\ + lsls r4, 16\n\ + lsrs r0, r4, 21\n\ + movs r1, 0x1F\n\ + ands r0, r1\n\ + mov r2, r8\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + adds r5, r0, 0\n\ + muls r5, r1\n\ + asrs r5, 8\n\ + lsrs r4, 26\n\ + movs r2, 0x1F\n\ + ands r4, r2\n\ + subs r4, r7\n\ + lsls r4, 8\n\ + adds r0, r4, 0\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + muls r0, r1\n\ + asrs r0, 8\n\ + add r6, r9\n\ + movs r2, 0x1F\n\ + ands r6, r2\n\ + add r5, r8\n\ + ands r5, r2\n\ + adds r0, r7, r0\n\ + ands r0, r2\n\ + lsls r0, 10\n\ + lsls r5, 5\n\ + orrs r0, r5\n\ + orrs r0, r6\n\ + ldr r1, [sp, 0x30]\n\ + strh r0, [r1]\n\ + ldr r2, [sp]\n\ + adds r2, 0x2\n\ + str r2, [sp]\n\ + ldr r0, [sp, 0x4]\n\ + adds r0, 0x2\n\ + str r0, [sp, 0x4]\n\ + adds r1, 0x2\n\ + str r1, [sp, 0x30]\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + add r10, r1\n\ _081C7AA6:\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - cmp r10, r0\n\ - bne _081C7A08\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + cmp r10, r0\n\ + bne _081C7A08\n\ _081C7AAE:\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); } void sub_81C7AC0(s32 a0) { - u32 *v1; - v1 = sub_81C763C(0); - switch (a0) - { - case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); - break; - case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); - break; - case 2: - BeginNormalPaletteFade(-1, -2, 0, 16, 0); - break; - case 3: - BeginNormalPaletteFade(-1, -2, 16, 0, 0); - break; - } + u32 *v1; + v1 = sub_81C763C(0); + switch (a0) + { + case 0: + BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); + break; + case 1: + BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); + break; + case 2: + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + break; + case 3: + BeginNormalPaletteFade(-1, -2, 16, 0, 0); + break; + } } bool32 IsPaletteFadeActive(void) { - return gPaletteFade.active; + return gPaletteFade.active; } void sub_81C7B40(void) { - BlendPalettes(0xFFFEFFFE, 16, 0); + BlendPalettes(0xFFFEFFFE, 16, 0); } void sub_81C7B54(const struct BgTemplate *a0, s32 a1) { - s32 i; - if (a1 <= 0) - return; - for (i = a1; i != 0; i--) - { - InitBgFromTemplate(a0++); - } + s32 i; + if (a1 <= 0) + return; + for (i = a1; i != 0; i--) + { + InitBgFromTemplate(a0++); + } } void sub_81C7B74(void) { - u32 *v1; + u32 *v1; - v1 = sub_81C763C(0); - InitWindows(&gUnknown_0861FA08[0]); - v1[4] = 0; - sub_81C7BF8(0); - PutWindowTilemap(v1[4]); - CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. + v1 = sub_81C763C(0); + InitWindows(&gUnknown_0861FA08[0]); + v1[4] = 0; + sub_81C7BF8(0); + PutWindowTilemap(v1[4]); + CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. } void sub_81C7BA4(u32 a0) { - u32 *v1; + u32 *v1; - v1 = sub_81C763C(0); - sub_81C7BF8(v1[4]); - AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); + v1 = sub_81C763C(0); + sub_81C7BF8(v1[4]); + AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); } bool8 sub_81C7BE8(void) { - return IsDma3ManagerBusyWithBgCopy(); + return IsDma3ManagerBusyWithBgCopy(); } void sub_81C7BF8(u32 a0) { - FillWindowPixelBuffer(a0, 0x44); - FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); + FillWindowPixelBuffer(a0, 0x44); + FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); } void sub_81C7C28(void) { - u32 *v1; - u32 i; - u8 v2; - u32 v3; - u32 v4; - u8 spriteId; - - v1 = sub_81C763C(0); - for (i = 0; i == 0; i++) - { - LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); - } - - sub_81C795C(gUnknown_0861FA54); - v2 = IndexOfSpritePaletteTag(0); - v3 = 0x80 << 9 << v2; - v1[5] = -2 & ~v3; - spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); - v1[6] = (u32)(&gSprites[spriteId]); + u32 *v1; + u32 i; + u8 v2; + u32 v3; + u32 v4; + u8 spriteId; + + v1 = sub_81C763C(0); + for (i = 0; i == 0; i++) + { + LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); + } + + sub_81C795C(gUnknown_0861FA54); + v2 = IndexOfSpritePaletteTag(0); + v3 = 0x80 << 9 << v2; + v1[5] = -2 & ~v3; + spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); + v1[6] = (u32)(&gSprites[spriteId]); } void sub_81C7C94(void) { - void **v1; - v1 = sub_81C763C(0); - DestroySprite(v1[6]); - FreeSpriteTilesByTag(0); - FreeSpritePaletteByTag(0); + void **v1; + v1 = sub_81C763C(0); + DestroySprite(v1[6]); + FreeSpriteTilesByTag(0); + FreeSpritePaletteByTag(0); } void sub_81C7CB4(u16 *a0) { - u32 v1; - v1 = GetBgY(0); - a0[19] = (v1 >> 8) * -1; + u32 v1; + v1 = GetBgY(0); + a0[19] = (v1 >> 8) * -1; } struct Sprite *sub_81C7CCC(void) { - struct Sprite **v1; - struct Sprite *v2; - v1 = sub_81C763C(0); - v2 = v1[6]; - v2->callback = SpriteCallbackDummy; - return v2; + struct Sprite **v1; + struct Sprite *v2; + v1 = sub_81C763C(0); + v2 = v1[6]; + v2->callback = SpriteCallbackDummy; + return v2; } \ No newline at end of file -- cgit v1.2.3 From 762640664f19c19f3ddc97428753ce8f92d3372e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 16 Feb 2019 12:09:27 -0500 Subject: Fix formatting --- src/pokenav_main.c | 64 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/pokenav_main.c b/src/pokenav_main.c index 992bca3f0..3a761442e 100644 --- a/src/pokenav_main.c +++ b/src/pokenav_main.c @@ -415,7 +415,8 @@ void sub_81C7170(u8 taskId) while (!exitLoop) { u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); - switch (v1) { + switch (v1) + { case 1: dataPtr[0] = dataPtr[0] + 1; break; @@ -449,27 +450,28 @@ void sub_81C71E4(u8 taskId) v1 = func(data[0]); switch (v1) { - case 0: - case 1: - data[0]++; - break; - case 4: - DestroyTask(taskId); - break; - default: - data[0] = v1 - 5; - break; - case 2: - case 3: + case 0: + case 1: + data[0]++; + break; + case 4: + DestroyTask(taskId); + break; + default: + data[0] = v1 - 5; + break; + case 2: + case 3: } } void CB2_PokeNav(void) { gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) { + if (gUnknown_0203CF40 == NULL) SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } else { + else + { sub_81C7360(gUnknown_0203CF40); ResetTasks(); SetVBlankCallback(NULL); @@ -899,8 +901,10 @@ u32 atk47_cmd47(s32 a0) } } -u32 sub_81C791C(s32 a0) { - if (ChangeBgY(0, 384, 2) <= 0) { +u32 sub_81C791C(s32 a0) +{ + if (ChangeBgY(0, 384, 2) <= 0) + { ChangeBgY(0, 0, 0); return 4; } @@ -920,9 +924,7 @@ void sub_81C795C(const struct SpritePalette *palettes) { index = AllocSpritePalette(current->tag); if (index == 0xFF) - { break; - } else { index = (index * 16) + 0x100; @@ -1078,18 +1080,18 @@ void sub_81C7AC0(s32 a0) v1 = sub_81C763C(0); switch (a0) { - case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); - break; - case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); - break; - case 2: - BeginNormalPaletteFade(-1, -2, 0, 16, 0); - break; - case 3: - BeginNormalPaletteFade(-1, -2, 16, 0, 0); - break; + case 0: + BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); + break; + case 1: + BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); + break; + case 2: + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + break; + case 3: + BeginNormalPaletteFade(-1, -2, 16, 0, 0); + break; } } -- cgit v1.2.3 From f52855258389fb88f06bc0d416cced71bb1fe99b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 16 Feb 2019 16:00:01 -0500 Subject: Rename pokenav file --- src/pokenav.c | 1198 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/pokenav_main.c | 1198 ---------------------------------------------------- 2 files changed, 1198 insertions(+), 1198 deletions(-) create mode 100644 src/pokenav.c delete mode 100644 src/pokenav_main.c (limited to 'src') diff --git a/src/pokenav.c b/src/pokenav.c new file mode 100644 index 000000000..3a761442e --- /dev/null +++ b/src/pokenav.c @@ -0,0 +1,1198 @@ +#include "global.h" +#include "alloc.h" +#include "task.h" +#include "main.h" +#include "overworld.h" +#include "field_weather.h" +#include "palette.h" +#include "pokemon_storage_system.h" +#include "sound.h" +#include "constants/songs.h" +#include "window.h" +#include "gpu_regs.h" +#include "bg.h" +#include "menu.h" +#include "graphics.h" +#include "gba/macro.h" +#include "decompress.h" +#include "strings.h" + +#define UNKNOWN_OFFSET 100000 + +struct UnknownStruct_0203CF40 +{ + u32 (*field0)(void); + u32 field4; + u16 field8; + u16 fieldA; + u32 fieldC; + void *field10[19]; +}; + +struct UnknownStruct_sub_81C76C4 +{ + u32 data[523]; +}; + +extern u32 sub_81C9430(void); +extern void sub_81CAADC(void); +extern u32 sub_81C99D4(void); +extern void sub_8199D98(void); +extern void sub_81C7D28(void); +extern u32 sub_81C9298(void); +extern u32 sub_81C941C(void); +extern u32 sub_81C9924(void); +extern u32 sub_81C99C0(void); +extern u32 sub_81C9990(void); +extern u32 sub_81C9940(void); +extern u32 sub_81C9338(void); +extern u32 sub_81C9368(void); +extern u32 sub_81C92CC(void); +extern u32 sub_81C9304(void); +extern u32 sub_81CC4D4(void); +extern u32 sub_81CC554(void); +extern u32 sub_81CC5F4(void); +extern u32 sub_81CC62C(void); +extern u32 sub_81CC65C(void); +extern u32 sub_81CC524(void); +extern u32 sub_81CC670(void); +extern u32 sub_81CCFD8(void); +extern u32 sub_81CD070(void); +extern u32 sub_81CDDD4(void); +extern u32 sub_81CDE2C(void); +extern u32 sub_81CDE64(void); +extern u32 sub_81CD1C0(void); +extern u32 sub_81CECA0(void); +extern u32 sub_81CEF3C(void); +extern u32 sub_81CEFDC(void); +extern u32 sub_81CF330(void); +extern u32 sub_81CF3A0(void); +extern u32 sub_81CF3D0(void); +extern u32 sub_81CEFF0(void); +extern u32 sub_81CF3F8(void); +extern u32 sub_81CD024(void); +extern u32 sub_81CEF98(void); +extern u32 sub_81CF368(void); +extern u32 sub_81CAAE8(void); +extern u32 sub_81CAB24(void); +extern u32 sub_81CB260(void); +extern u32 sub_81CB29C(void); +extern u32 sub_81CB2CC(void); +extern u32 sub_81CAB38(void); +extern u32 sub_81CB2E0(void); +extern u32 sub_81CF9BC(void); +extern u32 sub_81CFA34(void); +extern u32 sub_81CFDD0(void); +extern u32 sub_81CFE40(void); +extern u32 sub_81CFE70(void); +extern u32 sub_81CFA48(void); +extern u32 sub_81CFE98(void); +extern u32 sub_81D0450(void); +extern u32 sub_81D04A0(void); +extern u32 sub_81D0978(void); +extern u32 sub_81D09B0(void); +extern u32 sub_81D09E0(void); +extern u32 sub_81D04B8(void); +extern u32 sub_81D09F4(void); +extern u32 sub_81CFA04(void); +extern u32 sub_81CFE08(void); + +u32 sub_81C791C(s32 a0); +bool32 sub_81C756C(u32 a0); +bool32 sub_81C76C4(void); +u32 AnyMonHasRibbon(void); +u32 sub_81C75E0(void); +u32 sub_81C75D4(void); +u32 sub_81C76FC(void); +u32 sub_81C786C(void); +u32 sub_81C7764(s32 a0); +u32 atk47_cmd47(s32 a0); +bool32 sub_81C7738(void); +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2); +void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); +void sub_81C7360(struct UnknownStruct_0203CF40 *a0); +void sub_81C7650(u32 index); +void sub_81C7850(u32 a0); +void sub_81C7BF8(u32 a0); +void sub_81C71E4(u8 a0); +void sub_81C7170(u8 a0); +void sub_81C742C(u8 taskId); +void sub_81C7710(void); +void sub_81C75F4(void); +void sub_81C7334(void); +void sub_81C7418(void); +void sub_81C7400(void); +void sub_81C7C28(void); +void sub_81C72BC(void); +void sub_81C7B74(void); +void sub_81C7C94(void); + + +u32 (*const gUnknown_0861F3EC[15][7])(void) = +{ + { + (u32 (*)(void))sub_81C9298, + sub_81C941C, + sub_81C9924, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9298, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9338, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9368, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C92CC, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81C9304, + sub_81C941C, + sub_81C9940, + sub_81C9990, + sub_81C99C0, + sub_81C9430, + sub_81C99D4, + }, + { + sub_81CC4D4, + sub_81CC554, + sub_81CC5F4, + sub_81CC62C, + sub_81CC65C, + sub_81CC524, + sub_81CC670, + }, + { + sub_81CCFD8, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF3C, + sub_81CEFDC, + sub_81CF330, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CD024, + sub_81CD070, + sub_81CDDD4, + sub_81CDE2C, + sub_81CDE64, + sub_81CD1C0, + sub_81CECA0, + }, + { + sub_81CEF98, + sub_81CEFDC, + sub_81CF368, + sub_81CF3A0, + sub_81CF3D0, + sub_81CEFF0, + sub_81CF3F8, + }, + { + sub_81CAAE8, + sub_81CAB24, + sub_81CB260, + sub_81CB29C, + sub_81CB2CC, + sub_81CAB38, + sub_81CB2E0, + }, + { + sub_81CF9BC, + sub_81CFA34, + sub_81CFDD0, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, + { + sub_81D0450, + sub_81D04A0, + sub_81D0978, + sub_81D09B0, + sub_81D09E0, + sub_81D04B8, + sub_81D09F4, + }, + { + sub_81CFA04, + sub_81CFA34, + sub_81CFE08, + sub_81CFE40, + sub_81CFE70, + sub_81CFA48, + sub_81CFE98, + }, +}; + +const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); +const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); +const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); + +const struct BgTemplate gUnknown_0861FA04 = +{ + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, +}; + +const struct WindowTemplate gUnknown_0861FA08[2] = +{ + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x16, + .width = 0x10, + .height = 0x2, + .paletteNum = 0, + .baseBlock = 0x36, + }, + { + .bg = 0xFF, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 0, + .height = 0, + .paletteNum = 0, + .baseBlock = 0, + }, +}; + +const u8 *const (MenuButtonReminders[12]) = +{ + gText_Navgear_ClearButtonList, + gText_NavgearMap_ZoomedOutButtons, + gText_NavgearMap_ZoomedInButtons, + gText_NavgearCondition_MonListButtons, + gText_NavgearCondition_MonStatusButtons, + gText_NavgearCondition_MarkingButtons, + gText_NavgearMatchCall_TrainerListButtons, + gText_NavgearMatchCall_CallMenuButtons, + gText_NavgearMatchCall_CheckTrainerButtons, + gText_NavgearRibbons_MonListButtons, + gText_NavgearRibbons_RibbonListButtons, + gText_NavgearRibbons_RibbonCheckButtons, +}; + +const u8 gMenuButtonReminderColor[4] = +{ + 4, 1, 2, 0 +}; + +const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = +{ + { + .data = gUnknown_0861F5B0, + .size = 0x1000, + .tag = 0, + } +}; + +const struct SpritePalette gUnknown_0861FA54[2] = +{ + { + .data = gUnknown_0861F590, + .tag = 0, + }, + { + .data = NULL, + .tag = 0, + } +}; + +const struct CompressedSpriteSheet gUnknown_0861FA64 = +{ + .data = gPokenavLeftHeaderHoennMap_Gfx, + .size = 0xC00, + .tag = 2 +}; + +extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; +extern u8 gUnknown_0203CF3C; +extern const struct SpriteTemplate gUnknown_0861FB04; + +u32 sub_81C7078(u32 (*a0)(s32), u32 a1) +{ + u16 taskId; + + if (!is_c1_link_related_active()) + taskId = CreateTask(sub_81C7170, a1); + else + taskId = CreateTask(sub_81C71E4, a1); + + SetWordTaskArg(taskId, 1, (u32)a0); + + gTasks[taskId].data[3] = gUnknown_0203CF3C; + return ((gUnknown_0203CF3C++) << 16) | taskId; +} + +bool32 sub_81C70D8(u32 a0) +{ + u32 v1 = a0 & 0xFFFF; + u32 v2 = a0 >> 16; + if (gTasks[v1].isActive + && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) + && gTasks[v1].data[3] == v2) + { + + return TRUE; + } + else + return FALSE; +} + +bool32 sub_81C7124(u32 a0) +{ + s32 i; + for (i = 0; i < 16; i++) + { + if (gTasks[i].isActive + && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) + { + u32 arg = GetWordTaskArg((u8)i, 1); + if (arg == a0) + return TRUE; + } + } + return FALSE; +} + +void sub_81C7170(u8 taskId) +{ + s16 *dataPtr; + u32 (*func)(u32); + bool32 exitLoop; + + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + dataPtr = gTasks[taskId].data; + exitLoop = FALSE; + while (!exitLoop) + { + u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); + switch (v1) + { + case 1: + dataPtr[0] = dataPtr[0] + 1; + break; + case 0: + dataPtr[0]++; + return; + case 4: + DestroyTask(taskId); + return; + default: + dataPtr[0] = v1 - 5; + break; + case 3: + break; + case 2: + return; + } + } +} + +void sub_81C71E4(u8 taskId) +{ + u32 (*func)(u32); + s16 *data; + u32 v1; + + if (sub_8087598()) + return; + func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); + data = gTasks[taskId].data; + v1 = func(data[0]); + switch (v1) + { + case 0: + case 1: + data[0]++; + break; + case 4: + DestroyTask(taskId); + break; + default: + data[0] = v1 - 5; + break; + case 2: + case 3: + } +} + +void CB2_PokeNav(void) +{ + gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + if (gUnknown_0203CF40 == NULL) + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + else + { + sub_81C7360(gUnknown_0203CF40); + ResetTasks(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } +} + +void sub_81C72A4() +{ + SetMainCallback2(sub_81C72BC); + FadeScreen(1, 0); +} + +void sub_81C72BC() +{ + UpdatePaletteFade(); + if (!gPaletteFade.active) + { + gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + if (gUnknown_0203CF40 == NULL) + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + else + { + sub_81C7360(gUnknown_0203CF40); + gUnknown_0203CF40->field8 = 1; + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(sub_81C7400); + SetVBlankCallback(sub_81C7418); + } + } +} + +void sub_81C7334() +{ + s32 i; + for (i = 0; i < 19; i++) + { + sub_81C7650(i); + } + + Free(gUnknown_0203CF40); + gUnknown_0203CF40 = NULL; + InitKeys(); +} + +// Clears UnknownStruct_0203CF40 +void sub_81C7360(struct UnknownStruct_0203CF40 *a0) +{ + s32 i; + void **arrayPtr; + void *fill; + + fill = NULL; + i = 18; + arrayPtr = &(a0->field10[18]); + for (i; i >= 0; i--) + { + *arrayPtr = fill; + arrayPtr -= 1; + } + a0->field8 = 0; + a0->field4 = 0; + a0->fieldC = AnyMonHasRibbon(); + a0->field0 = NULL; +} + +bool32 AnyMonHasRibbon() +{ + s32 i; + s32 j; + + for (i = 0; i < 6; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) + && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + + for (j = 0; j < 14; j++) + { + for (i = 0; i < 30; i++) + { + if (CheckBoxMonSanityAt(j, i) + && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) + { + return TRUE; + } + } + } + + return FALSE; +} + +void sub_81C7400() +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_81C7418() +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); +} + +void sub_81C742C(u8 taskId) +{ + s16 *dataPtr; + u32 v1; + bool32 v2; + + dataPtr = gTasks[taskId].data; + + switch (dataPtr[0]) + { + case 0: + sub_81C76C4(); + dataPtr[0] = 1; + break; + case 1: + if (sub_81C76FC()) + break; + sub_81C756C(UNKNOWN_OFFSET); + dataPtr[0] = 4; + break; + case 2: + if (sub_81C786C()) + break; + dataPtr[0] = 3; + case 3: + v1 = sub_81C75E0(); + if (v1 == -1) + { + sub_81C7710(); + dataPtr[0] = 5; + } + else if (v1 >= UNKNOWN_OFFSET) + { + gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); + gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); + if (sub_81C756C(v1)) + dataPtr[0] = 4; + else + { + sub_81C7710(); + dataPtr[0] = 5; + } + } + else if (v1 != 0) + { + sub_81C7850(v1); + if (sub_81C786C()) + dataPtr[0] = 2; + } + break; + case 4: + if (!sub_81C75D4()) + dataPtr[0] = 3; + break; + case 5: + if (!sub_81C7738()) + { + v2 = gUnknown_0203CF40->field8 != 0; + sub_81C9430(); + sub_81C7334(); + if (v2) + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + else + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } + } +} + +bool32 sub_81C756C(u32 a0) +{ + u32 index; + + index = a0 - UNKNOWN_OFFSET; + sub_81C75F4(); + if (!gUnknown_0861F3EC[index][0]()) + return FALSE; + if (!gUnknown_0861F3EC[index][2]()) + return FALSE; + sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); + gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; + gUnknown_0203CF40->field4 = index; + return TRUE; +} + +u32 sub_81C75D4(void) +{ + return sub_81C786C(); +} + +u32 sub_81C75E0(void) +{ + return gUnknown_0203CF40->field0(); +} + +void sub_81C75F4(void) +{ + InitKeys(); +} + +void IndirectSetVBlankCallback(IntrCallback callback) +{ + SetVBlankCallback(callback); +} + +void sub_81C760C(void) +{ + SetVBlankCallback(sub_81C7418); +} + +void *sub_81C761C(u32 index, u32 size) +{ + return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); +} + +void *sub_81C763C(u32 index) +{ + return gUnknown_0203CF40->field10[index]; +} + +void sub_81C7650(u32 index) +{ + if (gUnknown_0203CF40->field10[index] != NULL) + { + Free(gUnknown_0203CF40->field10[index]); + gUnknown_0203CF40->field10[index] = NULL; + } +} + +u16 sub_81C767C(void) +{ + return gUnknown_0203CF40->field8; +} + +void sub_81C7688(u16 a0) +{ + gUnknown_0203CF40->field8 = a0; +} + +void sub_81C7694(u32 a0) +{ + u32 value; + value = a0; + if (a0 > 4) + value = 0; + gUnknown_0203CF40->fieldA = value; +} + +u16 sub_81C76AC(void) +{ + return gUnknown_0203CF40->fieldA; +} + +u32 sub_81C76B8(void) +{ + return gUnknown_0203CF40->fieldC; +} + +bool32 sub_81C76C4(void) +{ + struct UnknownStruct_sub_81C76C4 *v1; + + v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); + if (v1 == NULL) + return FALSE; + else + { + ResetSpriteData(); + FreeAllSpritePalettes(); + v1->data[3] = sub_81C7078(sub_81C7764, 1); + return TRUE; + } +} + +u32 sub_81C76FC(void) +{ + u32 *v1; + v1 = sub_81C763C(0); + return sub_81C70D8(v1[3]); +} + +void sub_81C7710(void) +{ + PlaySE(SE_PN_OFF); + sub_81CAADC(); + BeginNormalPaletteFade(-1, -1, 0, 16, 0); +} + +bool32 sub_81C7738(void) +{ + if (!gPaletteFade.active) + { + sub_81C99D4(); + sub_81C7C94(); + FreeAllWindowBuffers(); + return FALSE; + } else + return TRUE; +} + +u32 sub_81C7764(s32 a0) +{ + u32 *v1; + + switch (a0) + { + case 0: + SetGpuReg(0, 0x82 << 5); + FreeAllWindowBuffers(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); + sub_8199D98(); + reset_temp_tile_data_buffers(); + return 1; + case 1: + v1 = sub_81C763C(0); + decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); + SetBgTilemapBuffer(0, &v1[11]); + CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); + CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); + CopyBgTilemapBufferToVram(0); + return 0; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return 2; + + sub_81C7B74(); + return 0; + case 3: + if (IsDma3ManagerBusyWithBgCopy()) + return 2; + + sub_81C7C28(); + sub_81C7D28(); + ShowBg(0); + return 4; + default: + return 4; + } +} + +void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) +{ + u32 (**v1)(void); + + v1 = sub_81C763C(0); + v1[0] = a0; + v1[1] = a1; + v1[2] = NULL; +} + +void sub_81C7850(u32 a0) +{ + void (**v1)(u32); + + v1 = sub_81C763C(0); + v1[2] = NULL; + v1[0](a0); +} + +u32 sub_81C786C(void) +{ + u32 (**v1)(void); + + v1 = sub_81C763C(0); + return v1[1](); +} + +void sub_81C7880(void) +{ + u32 *v1; + + v1 = sub_81C763C(0); + v1[3] = sub_81C7078(atk47_cmd47, 4); +} + +void sub_81C78A0(void) +{ + u32 *v1; + + v1 = sub_81C763C(0); + v1[3] = sub_81C7078(sub_81C791C, 4); +} + +bool32 sub_81C78C0(void) +{ + u32 *v1; + + v1 = sub_81C763C(0); + return sub_81C70D8(v1[3]); +} + +u32 atk47_cmd47(s32 a0) +{ + switch (a0) + { + default: + return 4; + case 1: + return 0; + case 0: + return 0; + case 2: + if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) + { + ChangeBgY(0, 0x2000, 0); + return 4; + } + + return 2; + } +} + +u32 sub_81C791C(s32 a0) +{ + if (ChangeBgY(0, 384, 2) <= 0) + { + ChangeBgY(0, 0, 0); + return 4; + } + return 2; +} + +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { + CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); +} + +void sub_81C795C(const struct SpritePalette *palettes) +{ + const struct SpritePalette *current; + u32 index; + + for (current = palettes; current->data != NULL; current++) + { + index = AllocSpritePalette(current->tag); + if (index == 0xFF) + break; + else + { + index = (index * 16) + 0x100; + CopyPaletteIntoBufferUnfaded(current->data, index, 0x20); + } + } +} + +void sub_81C7990(u32 a0, u16 a1) +{ + CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); +} + +__attribute__((naked)) +void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + str r0, [sp]\n\ + str r1, [sp, 0x4]\n\ + mov r10, r2\n\ + str r3, [sp, 0x8]\n\ + ldr r0, [sp, 0x2C]\n\ + cmp r0, 0\n\ + bne _081C79E4\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp]\n\ + b _081C79F4\n\ + .pool\n\ +_081C79E4:\n\ + ldr r2, [sp, 0x2C]\n\ + ldr r0, [sp, 0x8]\n\ + cmp r2, r0\n\ + blt _081C7A00\n\ + ldr r2, =0x001fffff\n\ + mov r1, r10\n\ + ands r2, r1\n\ + ldr r0, [sp, 0x4]\n\ +_081C79F4:\n\ + ldr r1, [sp, 0x30]\n\ + bl CpuSet\n\ + b _081C7AAE\n\ + .pool\n\ +_081C7A00:\n\ + movs r2, 0x1\n\ + negs r2, r2\n\ + add r10, r2\n\ + b _081C7AA6\n\ +_081C7A08:\n\ + ldr r1, [sp]\n\ + ldrh r0, [r1]\n\ + movs r2, 0x1F\n\ + mov r9, r2\n\ + mov r1, r9\n\ + ands r1, r0\n\ + mov r9, r1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 21\n\ + movs r1, 0x1F\n\ + ands r1, r2\n\ + mov r8, r1\n\ + lsrs r7, r0, 26\n\ + movs r2, 0x1F\n\ + ands r7, r2\n\ + ldr r0, [sp, 0x4]\n\ + ldrh r4, [r0]\n\ + movs r0, 0x1F\n\ + ands r0, r4\n\ + mov r1, r9\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r2, [sp, 0x2C]\n\ + adds r6, r0, 0\n\ + muls r6, r2\n\ + asrs r6, 8\n\ + lsls r4, 16\n\ + lsrs r0, r4, 21\n\ + movs r1, 0x1F\n\ + ands r0, r1\n\ + mov r2, r8\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + adds r5, r0, 0\n\ + muls r5, r1\n\ + asrs r5, 8\n\ + lsrs r4, 26\n\ + movs r2, 0x1F\n\ + ands r4, r2\n\ + subs r4, r7\n\ + lsls r4, 8\n\ + adds r0, r4, 0\n\ + ldr r1, [sp, 0x8]\n\ + bl __divsi3\n\ + ldr r1, [sp, 0x2C]\n\ + muls r0, r1\n\ + asrs r0, 8\n\ + add r6, r9\n\ + movs r2, 0x1F\n\ + ands r6, r2\n\ + add r5, r8\n\ + ands r5, r2\n\ + adds r0, r7, r0\n\ + ands r0, r2\n\ + lsls r0, 10\n\ + lsls r5, 5\n\ + orrs r0, r5\n\ + orrs r0, r6\n\ + ldr r1, [sp, 0x30]\n\ + strh r0, [r1]\n\ + ldr r2, [sp]\n\ + adds r2, 0x2\n\ + str r2, [sp]\n\ + ldr r0, [sp, 0x4]\n\ + adds r0, 0x2\n\ + str r0, [sp, 0x4]\n\ + adds r1, 0x2\n\ + str r1, [sp, 0x30]\n\ + movs r1, 0x1\n\ + negs r1, r1\n\ + add r10, r1\n\ +_081C7AA6:\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + cmp r10, r0\n\ + bne _081C7A08\n\ +_081C7AAE:\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +void sub_81C7AC0(s32 a0) +{ + u32 *v1; + v1 = sub_81C763C(0); + switch (a0) + { + case 0: + BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); + break; + case 1: + BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); + break; + case 2: + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + break; + case 3: + BeginNormalPaletteFade(-1, -2, 16, 0, 0); + break; + } +} + +bool32 IsPaletteFadeActive(void) +{ + return gPaletteFade.active; +} + +void sub_81C7B40(void) +{ + BlendPalettes(0xFFFEFFFE, 16, 0); +} + +void sub_81C7B54(const struct BgTemplate *a0, s32 a1) +{ + s32 i; + if (a1 <= 0) + return; + for (i = a1; i != 0; i--) + { + InitBgFromTemplate(a0++); + } +} + +void sub_81C7B74(void) +{ + u32 *v1; + + v1 = sub_81C763C(0); + InitWindows(&gUnknown_0861FA08[0]); + v1[4] = 0; + sub_81C7BF8(0); + PutWindowTilemap(v1[4]); + CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. +} + +void sub_81C7BA4(u32 a0) +{ + u32 *v1; + + v1 = sub_81C763C(0); + sub_81C7BF8(v1[4]); + AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); +} + +bool8 sub_81C7BE8(void) +{ + return IsDma3ManagerBusyWithBgCopy(); +} + +void sub_81C7BF8(u32 a0) +{ + FillWindowPixelBuffer(a0, 0x44); + FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); +} + +void sub_81C7C28(void) +{ + u32 *v1; + u32 i; + u8 v2; + u32 v3; + u32 v4; + u8 spriteId; + + v1 = sub_81C763C(0); + for (i = 0; i == 0; i++) + { + LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); + } + + sub_81C795C(gUnknown_0861FA54); + v2 = IndexOfSpritePaletteTag(0); + v3 = 0x80 << 9 << v2; + v1[5] = -2 & ~v3; + spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); + v1[6] = (u32)(&gSprites[spriteId]); +} + +void sub_81C7C94(void) +{ + void **v1; + v1 = sub_81C763C(0); + DestroySprite(v1[6]); + FreeSpriteTilesByTag(0); + FreeSpritePaletteByTag(0); +} + +void sub_81C7CB4(u16 *a0) +{ + u32 v1; + v1 = GetBgY(0); + a0[19] = (v1 >> 8) * -1; +} + +struct Sprite *sub_81C7CCC(void) +{ + struct Sprite **v1; + struct Sprite *v2; + v1 = sub_81C763C(0); + v2 = v1[6]; + v2->callback = SpriteCallbackDummy; + return v2; +} \ No newline at end of file diff --git a/src/pokenav_main.c b/src/pokenav_main.c deleted file mode 100644 index 3a761442e..000000000 --- a/src/pokenav_main.c +++ /dev/null @@ -1,1198 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "task.h" -#include "main.h" -#include "overworld.h" -#include "field_weather.h" -#include "palette.h" -#include "pokemon_storage_system.h" -#include "sound.h" -#include "constants/songs.h" -#include "window.h" -#include "gpu_regs.h" -#include "bg.h" -#include "menu.h" -#include "graphics.h" -#include "gba/macro.h" -#include "decompress.h" -#include "strings.h" - -#define UNKNOWN_OFFSET 100000 - -struct UnknownStruct_0203CF40 -{ - u32 (*field0)(void); - u32 field4; - u16 field8; - u16 fieldA; - u32 fieldC; - void *field10[19]; -}; - -struct UnknownStruct_sub_81C76C4 -{ - u32 data[523]; -}; - -extern u32 sub_81C9430(void); -extern void sub_81CAADC(void); -extern u32 sub_81C99D4(void); -extern void sub_8199D98(void); -extern void sub_81C7D28(void); -extern u32 sub_81C9298(void); -extern u32 sub_81C941C(void); -extern u32 sub_81C9924(void); -extern u32 sub_81C99C0(void); -extern u32 sub_81C9990(void); -extern u32 sub_81C9940(void); -extern u32 sub_81C9338(void); -extern u32 sub_81C9368(void); -extern u32 sub_81C92CC(void); -extern u32 sub_81C9304(void); -extern u32 sub_81CC4D4(void); -extern u32 sub_81CC554(void); -extern u32 sub_81CC5F4(void); -extern u32 sub_81CC62C(void); -extern u32 sub_81CC65C(void); -extern u32 sub_81CC524(void); -extern u32 sub_81CC670(void); -extern u32 sub_81CCFD8(void); -extern u32 sub_81CD070(void); -extern u32 sub_81CDDD4(void); -extern u32 sub_81CDE2C(void); -extern u32 sub_81CDE64(void); -extern u32 sub_81CD1C0(void); -extern u32 sub_81CECA0(void); -extern u32 sub_81CEF3C(void); -extern u32 sub_81CEFDC(void); -extern u32 sub_81CF330(void); -extern u32 sub_81CF3A0(void); -extern u32 sub_81CF3D0(void); -extern u32 sub_81CEFF0(void); -extern u32 sub_81CF3F8(void); -extern u32 sub_81CD024(void); -extern u32 sub_81CEF98(void); -extern u32 sub_81CF368(void); -extern u32 sub_81CAAE8(void); -extern u32 sub_81CAB24(void); -extern u32 sub_81CB260(void); -extern u32 sub_81CB29C(void); -extern u32 sub_81CB2CC(void); -extern u32 sub_81CAB38(void); -extern u32 sub_81CB2E0(void); -extern u32 sub_81CF9BC(void); -extern u32 sub_81CFA34(void); -extern u32 sub_81CFDD0(void); -extern u32 sub_81CFE40(void); -extern u32 sub_81CFE70(void); -extern u32 sub_81CFA48(void); -extern u32 sub_81CFE98(void); -extern u32 sub_81D0450(void); -extern u32 sub_81D04A0(void); -extern u32 sub_81D0978(void); -extern u32 sub_81D09B0(void); -extern u32 sub_81D09E0(void); -extern u32 sub_81D04B8(void); -extern u32 sub_81D09F4(void); -extern u32 sub_81CFA04(void); -extern u32 sub_81CFE08(void); - -u32 sub_81C791C(s32 a0); -bool32 sub_81C756C(u32 a0); -bool32 sub_81C76C4(void); -u32 AnyMonHasRibbon(void); -u32 sub_81C75E0(void); -u32 sub_81C75D4(void); -u32 sub_81C76FC(void); -u32 sub_81C786C(void); -u32 sub_81C7764(s32 a0); -u32 atk47_cmd47(s32 a0); -bool32 sub_81C7738(void); -void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2); -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); -void sub_81C7360(struct UnknownStruct_0203CF40 *a0); -void sub_81C7650(u32 index); -void sub_81C7850(u32 a0); -void sub_81C7BF8(u32 a0); -void sub_81C71E4(u8 a0); -void sub_81C7170(u8 a0); -void sub_81C742C(u8 taskId); -void sub_81C7710(void); -void sub_81C75F4(void); -void sub_81C7334(void); -void sub_81C7418(void); -void sub_81C7400(void); -void sub_81C7C28(void); -void sub_81C72BC(void); -void sub_81C7B74(void); -void sub_81C7C94(void); - - -u32 (*const gUnknown_0861F3EC[15][7])(void) = -{ - { - (u32 (*)(void))sub_81C9298, - sub_81C941C, - sub_81C9924, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9298, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9338, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9368, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C92CC, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81C9304, - sub_81C941C, - sub_81C9940, - sub_81C9990, - sub_81C99C0, - sub_81C9430, - sub_81C99D4, - }, - { - sub_81CC4D4, - sub_81CC554, - sub_81CC5F4, - sub_81CC62C, - sub_81CC65C, - sub_81CC524, - sub_81CC670, - }, - { - sub_81CCFD8, - sub_81CD070, - sub_81CDDD4, - sub_81CDE2C, - sub_81CDE64, - sub_81CD1C0, - sub_81CECA0, - }, - { - sub_81CEF3C, - sub_81CEFDC, - sub_81CF330, - sub_81CF3A0, - sub_81CF3D0, - sub_81CEFF0, - sub_81CF3F8, - }, - { - sub_81CD024, - sub_81CD070, - sub_81CDDD4, - sub_81CDE2C, - sub_81CDE64, - sub_81CD1C0, - sub_81CECA0, - }, - { - sub_81CEF98, - sub_81CEFDC, - sub_81CF368, - sub_81CF3A0, - sub_81CF3D0, - sub_81CEFF0, - sub_81CF3F8, - }, - { - sub_81CAAE8, - sub_81CAB24, - sub_81CB260, - sub_81CB29C, - sub_81CB2CC, - sub_81CAB38, - sub_81CB2E0, - }, - { - sub_81CF9BC, - sub_81CFA34, - sub_81CFDD0, - sub_81CFE40, - sub_81CFE70, - sub_81CFA48, - sub_81CFE98, - }, - { - sub_81D0450, - sub_81D04A0, - sub_81D0978, - sub_81D09B0, - sub_81D09E0, - sub_81D04B8, - sub_81D09F4, - }, - { - sub_81CFA04, - sub_81CFA34, - sub_81CFE08, - sub_81CFE40, - sub_81CFE70, - sub_81CFA48, - sub_81CFE98, - }, -}; - -const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); -const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); -const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); - -const struct BgTemplate gUnknown_0861FA04 = -{ - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 5, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, -}; - -const struct WindowTemplate gUnknown_0861FA08[2] = -{ - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 0x16, - .width = 0x10, - .height = 0x2, - .paletteNum = 0, - .baseBlock = 0x36, - }, - { - .bg = 0xFF, - .tilemapLeft = 0, - .tilemapTop = 0, - .width = 0, - .height = 0, - .paletteNum = 0, - .baseBlock = 0, - }, -}; - -const u8 *const (MenuButtonReminders[12]) = -{ - gText_Navgear_ClearButtonList, - gText_NavgearMap_ZoomedOutButtons, - gText_NavgearMap_ZoomedInButtons, - gText_NavgearCondition_MonListButtons, - gText_NavgearCondition_MonStatusButtons, - gText_NavgearCondition_MarkingButtons, - gText_NavgearMatchCall_TrainerListButtons, - gText_NavgearMatchCall_CallMenuButtons, - gText_NavgearMatchCall_CheckTrainerButtons, - gText_NavgearRibbons_MonListButtons, - gText_NavgearRibbons_RibbonListButtons, - gText_NavgearRibbons_RibbonCheckButtons, -}; - -const u8 gMenuButtonReminderColor[4] = -{ - 4, 1, 2, 0 -}; - -const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = -{ - { - .data = gUnknown_0861F5B0, - .size = 0x1000, - .tag = 0, - } -}; - -const struct SpritePalette gUnknown_0861FA54[2] = -{ - { - .data = gUnknown_0861F590, - .tag = 0, - }, - { - .data = NULL, - .tag = 0, - } -}; - -const struct CompressedSpriteSheet gUnknown_0861FA64 = -{ - .data = gPokenavLeftHeaderHoennMap_Gfx, - .size = 0xC00, - .tag = 2 -}; - -extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; -extern u8 gUnknown_0203CF3C; -extern const struct SpriteTemplate gUnknown_0861FB04; - -u32 sub_81C7078(u32 (*a0)(s32), u32 a1) -{ - u16 taskId; - - if (!is_c1_link_related_active()) - taskId = CreateTask(sub_81C7170, a1); - else - taskId = CreateTask(sub_81C71E4, a1); - - SetWordTaskArg(taskId, 1, (u32)a0); - - gTasks[taskId].data[3] = gUnknown_0203CF3C; - return ((gUnknown_0203CF3C++) << 16) | taskId; -} - -bool32 sub_81C70D8(u32 a0) -{ - u32 v1 = a0 & 0xFFFF; - u32 v2 = a0 >> 16; - if (gTasks[v1].isActive - && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) - && gTasks[v1].data[3] == v2) - { - - return TRUE; - } - else - return FALSE; -} - -bool32 sub_81C7124(u32 a0) -{ - s32 i; - for (i = 0; i < 16; i++) - { - if (gTasks[i].isActive - && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) - { - u32 arg = GetWordTaskArg((u8)i, 1); - if (arg == a0) - return TRUE; - } - } - return FALSE; -} - -void sub_81C7170(u8 taskId) -{ - s16 *dataPtr; - u32 (*func)(u32); - bool32 exitLoop; - - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - dataPtr = gTasks[taskId].data; - exitLoop = FALSE; - while (!exitLoop) - { - u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); - switch (v1) - { - case 1: - dataPtr[0] = dataPtr[0] + 1; - break; - case 0: - dataPtr[0]++; - return; - case 4: - DestroyTask(taskId); - return; - default: - dataPtr[0] = v1 - 5; - break; - case 3: - break; - case 2: - return; - } - } -} - -void sub_81C71E4(u8 taskId) -{ - u32 (*func)(u32); - s16 *data; - u32 v1; - - if (sub_8087598()) - return; - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - data = gTasks[taskId].data; - v1 = func(data[0]); - switch (v1) - { - case 0: - case 1: - data[0]++; - break; - case 4: - DestroyTask(taskId); - break; - default: - data[0] = v1 - 5; - break; - case 2: - case 3: - } -} - -void CB2_PokeNav(void) -{ - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) - SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - else - { - sub_81C7360(gUnknown_0203CF40); - ResetTasks(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } -} - -void sub_81C72A4() -{ - SetMainCallback2(sub_81C72BC); - FadeScreen(1, 0); -} - -void sub_81C72BC() -{ - UpdatePaletteFade(); - if (!gPaletteFade.active) - { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - else - { - sub_81C7360(gUnknown_0203CF40); - gUnknown_0203CF40->field8 = 1; - ResetTasks(); - ResetSpriteData(); - FreeAllSpritePalettes(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } - } -} - -void sub_81C7334() -{ - s32 i; - for (i = 0; i < 19; i++) - { - sub_81C7650(i); - } - - Free(gUnknown_0203CF40); - gUnknown_0203CF40 = NULL; - InitKeys(); -} - -// Clears UnknownStruct_0203CF40 -void sub_81C7360(struct UnknownStruct_0203CF40 *a0) -{ - s32 i; - void **arrayPtr; - void *fill; - - fill = NULL; - i = 18; - arrayPtr = &(a0->field10[18]); - for (i; i >= 0; i--) - { - *arrayPtr = fill; - arrayPtr -= 1; - } - a0->field8 = 0; - a0->field4 = 0; - a0->fieldC = AnyMonHasRibbon(); - a0->field0 = NULL; -} - -bool32 AnyMonHasRibbon() -{ - s32 i; - s32 j; - - for (i = 0; i < 6; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) - && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) - && GetMonData(&gPlayerParty[i], MON_DATA_RIBBON_COUNT) != 0) - { - return TRUE; - } - } - - for (j = 0; j < 14; j++) - { - for (i = 0; i < 30; i++) - { - if (CheckBoxMonSanityAt(j, i) - && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) - { - return TRUE; - } - } - } - - return FALSE; -} - -void sub_81C7400() -{ - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - UpdatePaletteFade(); -} - -void sub_81C7418() -{ - TransferPlttBuffer(); - LoadOam(); - ProcessSpriteCopyRequests(); -} - -void sub_81C742C(u8 taskId) -{ - s16 *dataPtr; - u32 v1; - bool32 v2; - - dataPtr = gTasks[taskId].data; - - switch (dataPtr[0]) - { - case 0: - sub_81C76C4(); - dataPtr[0] = 1; - break; - case 1: - if (sub_81C76FC()) - break; - sub_81C756C(UNKNOWN_OFFSET); - dataPtr[0] = 4; - break; - case 2: - if (sub_81C786C()) - break; - dataPtr[0] = 3; - case 3: - v1 = sub_81C75E0(); - if (v1 == -1) - { - sub_81C7710(); - dataPtr[0] = 5; - } - else if (v1 >= UNKNOWN_OFFSET) - { - gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); - gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); - if (sub_81C756C(v1)) - dataPtr[0] = 4; - else - { - sub_81C7710(); - dataPtr[0] = 5; - } - } - else if (v1 != 0) - { - sub_81C7850(v1); - if (sub_81C786C()) - dataPtr[0] = 2; - } - break; - case 4: - if (!sub_81C75D4()) - dataPtr[0] = 3; - break; - case 5: - if (!sub_81C7738()) - { - v2 = gUnknown_0203CF40->field8 != 0; - sub_81C9430(); - sub_81C7334(); - if (v2) - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - else - SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - } - } -} - -bool32 sub_81C756C(u32 a0) -{ - u32 index; - - index = a0 - UNKNOWN_OFFSET; - sub_81C75F4(); - if (!gUnknown_0861F3EC[index][0]()) - return FALSE; - if (!gUnknown_0861F3EC[index][2]()) - return FALSE; - sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); - gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; - gUnknown_0203CF40->field4 = index; - return TRUE; -} - -u32 sub_81C75D4(void) -{ - return sub_81C786C(); -} - -u32 sub_81C75E0(void) -{ - return gUnknown_0203CF40->field0(); -} - -void sub_81C75F4(void) -{ - InitKeys(); -} - -void IndirectSetVBlankCallback(IntrCallback callback) -{ - SetVBlankCallback(callback); -} - -void sub_81C760C(void) -{ - SetVBlankCallback(sub_81C7418); -} - -void *sub_81C761C(u32 index, u32 size) -{ - return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); -} - -void *sub_81C763C(u32 index) -{ - return gUnknown_0203CF40->field10[index]; -} - -void sub_81C7650(u32 index) -{ - if (gUnknown_0203CF40->field10[index] != NULL) - { - Free(gUnknown_0203CF40->field10[index]); - gUnknown_0203CF40->field10[index] = NULL; - } -} - -u16 sub_81C767C(void) -{ - return gUnknown_0203CF40->field8; -} - -void sub_81C7688(u16 a0) -{ - gUnknown_0203CF40->field8 = a0; -} - -void sub_81C7694(u32 a0) -{ - u32 value; - value = a0; - if (a0 > 4) - value = 0; - gUnknown_0203CF40->fieldA = value; -} - -u16 sub_81C76AC(void) -{ - return gUnknown_0203CF40->fieldA; -} - -u32 sub_81C76B8(void) -{ - return gUnknown_0203CF40->fieldC; -} - -bool32 sub_81C76C4(void) -{ - struct UnknownStruct_sub_81C76C4 *v1; - - v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); - if (v1 == NULL) - return FALSE; - else - { - ResetSpriteData(); - FreeAllSpritePalettes(); - v1->data[3] = sub_81C7078(sub_81C7764, 1); - return TRUE; - } -} - -u32 sub_81C76FC(void) -{ - u32 *v1; - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); -} - -void sub_81C7710(void) -{ - PlaySE(SE_PN_OFF); - sub_81CAADC(); - BeginNormalPaletteFade(-1, -1, 0, 16, 0); -} - -bool32 sub_81C7738(void) -{ - if (!gPaletteFade.active) - { - sub_81C99D4(); - sub_81C7C94(); - FreeAllWindowBuffers(); - return FALSE; - } else - return TRUE; -} - -u32 sub_81C7764(s32 a0) -{ - u32 *v1; - - switch (a0) - { - case 0: - SetGpuReg(0, 0x82 << 5); - FreeAllWindowBuffers(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); - sub_8199D98(); - reset_temp_tile_data_buffers(); - return 1; - case 1: - v1 = sub_81C763C(0); - decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); - SetBgTilemapBuffer(0, &v1[11]); - CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); - CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); - CopyBgTilemapBufferToVram(0); - return 0; - case 2: - if (free_temp_tile_data_buffers_if_possible()) - return 2; - - sub_81C7B74(); - return 0; - case 3: - if (IsDma3ManagerBusyWithBgCopy()) - return 2; - - sub_81C7C28(); - sub_81C7D28(); - ShowBg(0); - return 4; - default: - return 4; - } -} - -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) -{ - u32 (**v1)(void); - - v1 = sub_81C763C(0); - v1[0] = a0; - v1[1] = a1; - v1[2] = NULL; -} - -void sub_81C7850(u32 a0) -{ - void (**v1)(u32); - - v1 = sub_81C763C(0); - v1[2] = NULL; - v1[0](a0); -} - -u32 sub_81C786C(void) -{ - u32 (**v1)(void); - - v1 = sub_81C763C(0); - return v1[1](); -} - -void sub_81C7880(void) -{ - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(atk47_cmd47, 4); -} - -void sub_81C78A0(void) -{ - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(sub_81C791C, 4); -} - -bool32 sub_81C78C0(void) -{ - u32 *v1; - - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); -} - -u32 atk47_cmd47(s32 a0) -{ - switch (a0) - { - default: - return 4; - case 1: - return 0; - case 0: - return 0; - case 2: - if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) - { - ChangeBgY(0, 0x2000, 0); - return 4; - } - - return 2; - } -} - -u32 sub_81C791C(s32 a0) -{ - if (ChangeBgY(0, 384, 2) <= 0) - { - ChangeBgY(0, 0, 0); - return 4; - } - return 2; -} - -void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { - CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); -} - -void sub_81C795C(const struct SpritePalette *palettes) -{ - const struct SpritePalette *current; - u32 index; - - for (current = palettes; current->data != NULL; current++) - { - index = AllocSpritePalette(current->tag); - if (index == 0xFF) - break; - else - { - index = (index * 16) + 0x100; - CopyPaletteIntoBufferUnfaded(current->data, index, 0x20); - } - } -} - -void sub_81C7990(u32 a0, u16 a1) -{ - CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16)); -} - -__attribute__((naked)) -void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - str r0, [sp]\n\ - str r1, [sp, 0x4]\n\ - mov r10, r2\n\ - str r3, [sp, 0x8]\n\ - ldr r0, [sp, 0x2C]\n\ - cmp r0, 0\n\ - bne _081C79E4\n\ - ldr r2, =0x001fffff\n\ - mov r1, r10\n\ - ands r2, r1\n\ - ldr r0, [sp]\n\ - b _081C79F4\n\ - .pool\n\ -_081C79E4:\n\ - ldr r2, [sp, 0x2C]\n\ - ldr r0, [sp, 0x8]\n\ - cmp r2, r0\n\ - blt _081C7A00\n\ - ldr r2, =0x001fffff\n\ - mov r1, r10\n\ - ands r2, r1\n\ - ldr r0, [sp, 0x4]\n\ -_081C79F4:\n\ - ldr r1, [sp, 0x30]\n\ - bl CpuSet\n\ - b _081C7AAE\n\ - .pool\n\ -_081C7A00:\n\ - movs r2, 0x1\n\ - negs r2, r2\n\ - add r10, r2\n\ - b _081C7AA6\n\ -_081C7A08:\n\ - ldr r1, [sp]\n\ - ldrh r0, [r1]\n\ - movs r2, 0x1F\n\ - mov r9, r2\n\ - mov r1, r9\n\ - ands r1, r0\n\ - mov r9, r1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 21\n\ - movs r1, 0x1F\n\ - ands r1, r2\n\ - mov r8, r1\n\ - lsrs r7, r0, 26\n\ - movs r2, 0x1F\n\ - ands r7, r2\n\ - ldr r0, [sp, 0x4]\n\ - ldrh r4, [r0]\n\ - movs r0, 0x1F\n\ - ands r0, r4\n\ - mov r1, r9\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r2, [sp, 0x2C]\n\ - adds r6, r0, 0\n\ - muls r6, r2\n\ - asrs r6, 8\n\ - lsls r4, 16\n\ - lsrs r0, r4, 21\n\ - movs r1, 0x1F\n\ - ands r0, r1\n\ - mov r2, r8\n\ - subs r0, r2\n\ - lsls r0, 8\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r1, [sp, 0x2C]\n\ - adds r5, r0, 0\n\ - muls r5, r1\n\ - asrs r5, 8\n\ - lsrs r4, 26\n\ - movs r2, 0x1F\n\ - ands r4, r2\n\ - subs r4, r7\n\ - lsls r4, 8\n\ - adds r0, r4, 0\n\ - ldr r1, [sp, 0x8]\n\ - bl __divsi3\n\ - ldr r1, [sp, 0x2C]\n\ - muls r0, r1\n\ - asrs r0, 8\n\ - add r6, r9\n\ - movs r2, 0x1F\n\ - ands r6, r2\n\ - add r5, r8\n\ - ands r5, r2\n\ - adds r0, r7, r0\n\ - ands r0, r2\n\ - lsls r0, 10\n\ - lsls r5, 5\n\ - orrs r0, r5\n\ - orrs r0, r6\n\ - ldr r1, [sp, 0x30]\n\ - strh r0, [r1]\n\ - ldr r2, [sp]\n\ - adds r2, 0x2\n\ - str r2, [sp]\n\ - ldr r0, [sp, 0x4]\n\ - adds r0, 0x2\n\ - str r0, [sp, 0x4]\n\ - adds r1, 0x2\n\ - str r1, [sp, 0x30]\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - add r10, r1\n\ -_081C7AA6:\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - cmp r10, r0\n\ - bne _081C7A08\n\ -_081C7AAE:\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -void sub_81C7AC0(s32 a0) -{ - u32 *v1; - v1 = sub_81C763C(0); - switch (a0) - { - case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); - break; - case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); - break; - case 2: - BeginNormalPaletteFade(-1, -2, 0, 16, 0); - break; - case 3: - BeginNormalPaletteFade(-1, -2, 16, 0, 0); - break; - } -} - -bool32 IsPaletteFadeActive(void) -{ - return gPaletteFade.active; -} - -void sub_81C7B40(void) -{ - BlendPalettes(0xFFFEFFFE, 16, 0); -} - -void sub_81C7B54(const struct BgTemplate *a0, s32 a1) -{ - s32 i; - if (a1 <= 0) - return; - for (i = a1; i != 0; i--) - { - InitBgFromTemplate(a0++); - } -} - -void sub_81C7B74(void) -{ - u32 *v1; - - v1 = sub_81C763C(0); - InitWindows(&gUnknown_0861FA08[0]); - v1[4] = 0; - sub_81C7BF8(0); - PutWindowTilemap(v1[4]); - CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. -} - -void sub_81C7BA4(u32 a0) -{ - u32 *v1; - - v1 = sub_81C763C(0); - sub_81C7BF8(v1[4]); - AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); -} - -bool8 sub_81C7BE8(void) -{ - return IsDma3ManagerBusyWithBgCopy(); -} - -void sub_81C7BF8(u32 a0) -{ - FillWindowPixelBuffer(a0, 0x44); - FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); -} - -void sub_81C7C28(void) -{ - u32 *v1; - u32 i; - u8 v2; - u32 v3; - u32 v4; - u8 spriteId; - - v1 = sub_81C763C(0); - for (i = 0; i == 0; i++) - { - LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); - } - - sub_81C795C(gUnknown_0861FA54); - v2 = IndexOfSpritePaletteTag(0); - v3 = 0x80 << 9 << v2; - v1[5] = -2 & ~v3; - spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); - v1[6] = (u32)(&gSprites[spriteId]); -} - -void sub_81C7C94(void) -{ - void **v1; - v1 = sub_81C763C(0); - DestroySprite(v1[6]); - FreeSpriteTilesByTag(0); - FreeSpritePaletteByTag(0); -} - -void sub_81C7CB4(u16 *a0) -{ - u32 v1; - v1 = GetBgY(0); - a0[19] = (v1 >> 8) * -1; -} - -struct Sprite *sub_81C7CCC(void) -{ - struct Sprite **v1; - struct Sprite *v2; - v1 = sub_81C763C(0); - v2 = v1[6]; - v2->callback = SpriteCallbackDummy; - return v2; -} \ No newline at end of file -- cgit v1.2.3 From 7ad225a72f0d60a4c390b41fba005512d23730aa Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 00:16:27 -0500 Subject: Address formatting issues and use constants --- src/pokenav.c | 57 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/pokenav.c b/src/pokenav.c index 3a761442e..595b66bab 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -16,6 +16,7 @@ #include "gba/macro.h" #include "decompress.h" #include "strings.h" +#include "constants/rgb.h" #define UNKNOWN_OFFSET 100000 @@ -131,7 +132,7 @@ void sub_81C7C94(void); u32 (*const gUnknown_0861F3EC[15][7])(void) = { { - (u32 (*)(void))sub_81C9298, + sub_81C9298, sub_81C941C, sub_81C9924, sub_81C9990, @@ -287,9 +288,9 @@ const struct WindowTemplate gUnknown_0861FA08[2] = { .bg = 0, .tilemapLeft = 1, - .tilemapTop = 0x16, - .width = 0x10, - .height = 0x2, + .tilemapTop = 22, + .width = 16, + .height = 2, .paletteNum = 0, .baseBlock = 0x36, }, @@ -384,7 +385,9 @@ bool32 sub_81C70D8(u32 a0) return TRUE; } else + { return FALSE; + } } bool32 sub_81C7124(u32 a0) @@ -462,6 +465,7 @@ void sub_81C71E4(u8 taskId) break; case 2: case 3: + break; } } @@ -469,7 +473,9 @@ void CB2_PokeNav(void) { gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); if (gUnknown_0203CF40 == NULL) + { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); + } else { sub_81C7360(gUnknown_0203CF40); @@ -494,7 +500,9 @@ void sub_81C72BC() { gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); if (gUnknown_0203CF40 == NULL) + { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } else { sub_81C7360(gUnknown_0203CF40); @@ -549,7 +557,7 @@ bool32 AnyMonHasRibbon() s32 i; s32 j; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_SANITY_IS_EGG) @@ -559,9 +567,9 @@ bool32 AnyMonHasRibbon() } } - for (j = 0; j < 14; j++) + for (j = 0; j < TOTAL_BOXES_COUNT; j++) { - for (i = 0; i < 30; i++) + for (i = 0; i < IN_BOX_COUNT; i++) { if (CheckBoxMonSanityAt(j, i) && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) @@ -625,7 +633,9 @@ void sub_81C742C(u8 taskId) gUnknown_0861F3EC[gUnknown_0203CF40->field4][6](); gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); if (sub_81C756C(v1)) + { dataPtr[0] = 4; + } else { sub_81C7710(); @@ -654,6 +664,7 @@ void sub_81C742C(u8 taskId) else SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } + break; } } @@ -711,10 +722,7 @@ void *sub_81C763C(u32 index) void sub_81C7650(u32 index) { if (gUnknown_0203CF40->field10[index] != NULL) - { - Free(gUnknown_0203CF40->field10[index]); - gUnknown_0203CF40->field10[index] = NULL; - } + FREE_AND_SET_NULL(gUnknown_0203CF40->field10[index]); } u16 sub_81C767C(void) @@ -752,7 +760,9 @@ bool32 sub_81C76C4(void) v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); if (v1 == NULL) + { return FALSE; + } else { ResetSpriteData(); @@ -773,7 +783,7 @@ void sub_81C7710(void) { PlaySE(SE_PN_OFF); sub_81CAADC(); - BeginNormalPaletteFade(-1, -1, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK); } bool32 sub_81C7738(void) @@ -785,7 +795,9 @@ bool32 sub_81C7738(void) FreeAllWindowBuffers(); return FALSE; } else + { return TRUE; + } } u32 sub_81C7764(s32 a0) @@ -795,7 +807,7 @@ u32 sub_81C7764(s32 a0) switch (a0) { case 0: - SetGpuReg(0, 0x82 << 5); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); FreeAllWindowBuffers(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); @@ -923,8 +935,10 @@ void sub_81C795C(const struct SpritePalette *palettes) for (current = palettes; current->data != NULL; current++) { index = AllocSpritePalette(current->tag); - if (index == 0xFF) + if (index == 0xFF) + { break; + } else { index = (index * 16) + 0x100; @@ -1084,13 +1098,13 @@ void sub_81C7AC0(s32 a0) BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); break; case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, 0); + BeginNormalPaletteFade(v1[5], -2, 16, 0, RGB_BLACK); break; case 2: - BeginNormalPaletteFade(-1, -2, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); break; case 3: - BeginNormalPaletteFade(-1, -2, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 16, 0, RGB_BLACK); break; } } @@ -1102,7 +1116,7 @@ bool32 IsPaletteFadeActive(void) void sub_81C7B40(void) { - BlendPalettes(0xFFFEFFFE, 16, 0); + BlendPalettes(0xFFFEFFFE, 16, RGB_BLACK); } void sub_81C7B54(const struct BgTemplate *a0, s32 a1) @@ -1165,9 +1179,8 @@ void sub_81C7C28(void) sub_81C795C(gUnknown_0861FA54); v2 = IndexOfSpritePaletteTag(0); - v3 = 0x80 << 9 << v2; - v1[5] = -2 & ~v3; - spriteId = CreateSprite(&gUnknown_0861FB04, 0xDC, 0xC, 0); + v1[5] = ~1 & ~(0x10000 << v2); + spriteId = CreateSprite(&gUnknown_0861FB04, 220, 12, 0); v1[6] = (u32)(&gSprites[spriteId]); } @@ -1195,4 +1208,4 @@ struct Sprite *sub_81C7CCC(void) v2 = v1[6]; v2->callback = SpriteCallbackDummy; return v2; -} \ No newline at end of file +} -- cgit v1.2.3 From 08579edbcd596c9659fe25490480c6f96e2b4288 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 01:03:44 -0500 Subject: Clean up mistakes and bad formatting --- src/cable_club.c | 16 ++--- src/overworld.c | 143 +++++++++++++++++++------------------- src/record_mixing.c | 4 +- src/rom_8011DC0.c | 4 +- src/script_pokemon_util_80F87D8.c | 4 +- src/start_menu.c | 4 +- 6 files changed, 88 insertions(+), 87 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index 05c19c9ae..83e1e55dd 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gLinkSelfPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(LocalLinkPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -999,7 +999,7 @@ void sub_80B360C(void) SetMainCallback2(sub_80A0514); } -void EventScript_CleanupLinkRoomState(void) +void CleanupLinkRoomState(void) { if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9) { @@ -1009,13 +1009,11 @@ void EventScript_CleanupLinkRoomState(void) SetWarpDestinationToDynamicWarp(0x7F); } -void EventScript_ExitLinkRoom(void) +void ExitLinkRoom(void) { QueueExitLinkRoomKey(); } -// I can't find anything that would set data[0] to a value before this -// stask starts. Is it a bug? static void sub_80B3728(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -1133,7 +1131,7 @@ static void sub_80B3894(u8 taskId) } // Note: VAR_0x8005 is set to the ID of the trade seat. -void EventScript_PlayerEnteredTradeSeat(void) +void PlayerEnteredTradeSeat(void) { if (gWirelessCommType != 0) { @@ -1156,7 +1154,7 @@ void nullsub_37(void) } // Note: VAR_0x8005 is set to the ID of the player spot. -void EventScript_ColosseumPlayerSpotTriggered(void) +void ColosseumPlayerSpotTriggered(void) { gLinkType = 0x2211; diff --git a/src/overworld.c b/src/overworld.c index b5b1b04a6..95766805c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -82,26 +82,26 @@ #define FACING_FORCED_RIGHT 10 // event scripts -extern const u8 gEventScript_WhiteOut[]; -extern const u8 gEventScript_ResetMrBriney[]; -extern const u8 gEventScript_DoLinkRoomExit[]; +extern const u8 EventScript_WhiteOut[]; +extern const u8 EventScript_ResetMrBriney[]; +extern const u8 EventScript_DoLinkRoomExit[]; extern const u8 gEventScript_TradeRoom_TooBusyToNotice[]; extern const u8 gEventScript_TradeRoom_ReadTrainerCard_NoColor[]; extern const u8 gEventScript_TradeRoom_ReadTrainerCard_Normal[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot0[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot1[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot2[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot3[]; -extern const u8 gEventScript_RecordCenter_Spot0[]; -extern const u8 gEventScript_RecordCenter_Spot1[]; -extern const u8 gEventScript_RecordCenter_Spot2[]; -extern const u8 gEventScript_RecordCenter_Spot3[]; -extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot0[]; -extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot1[]; -extern const u8 gEventScript_TradeCenter_Chair1[]; -extern const u8 gEventScript_TradeCenter_Chair0[]; -extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; -extern const u8 gEventScript_TerminateLink[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot0[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot1[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot2[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot3[]; +extern const u8 EventScript_RecordCenter_Spot0[]; +extern const u8 EventScript_RecordCenter_Spot1[]; +extern const u8 EventScript_RecordCenter_Spot2[]; +extern const u8 EventScript_RecordCenter_Spot3[]; +extern const u8 EventScript_SingleBattleColosseum_PlayerSpot0[]; +extern const u8 EventScript_SingleBattleColosseum_PlayerSpot1[]; +extern const u8 EventScript_TradeCenter_Chair1[]; +extern const u8 EventScript_TradeCenter_Chair0[]; +extern const u8 EventScript_ConfirmLeaveTradeRoom[]; +extern const u8 EventScript_TerminateLink[]; extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; @@ -186,7 +186,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars -IWRAM_DATA static void *sUnusedCallback; +IWRAM_DATA static void *sUnusedOverworldCallback; IWRAM_DATA static u8 sPlayerTradingStates[4]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything @@ -203,7 +203,7 @@ u16 *gBGTilemapBuffers3; u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gLinkSelfPlayerId; // This is our player id in a multiplayer mode. +u8 LocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -383,7 +383,7 @@ static void (*const gMovementStatusHandler[])(struct LinkPlayerEventObject *, st // code void DoWhiteOut(void) { - ScriptContext2_RunNewScript(gEventScript_WhiteOut); + ScriptContext2_RunNewScript(EventScript_WhiteOut); SetMoney(&gSaveBlock1Ptr->money, GetMoney(&gSaveBlock1Ptr->money) / 2); HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); @@ -409,7 +409,7 @@ void Overworld_ResetStateAfterTeleport(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - ScriptContext2_RunNewScript(gEventScript_ResetMrBriney); + ScriptContext2_RunNewScript(EventScript_ResetMrBriney); } void Overworld_ResetStateAfterDigEscRope(void) @@ -1122,7 +1122,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < LINK_KEY_CODE_START_BUTTON) + if (gSaveBlock1Ptr->pos.x < 24) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1265,7 +1265,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % LINK_KEY_CODE_UNK_8) + 50; + volume = (Random() % 30) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1501,7 +1501,7 @@ void SetMainCallback1(MainCallback cb) // This function is never called. void SetUnusedCallback(void *func) { - sUnusedCallback = func; + sUnusedOverworldCallback = func; } static bool8 map_post_load_hook_exec(void) @@ -2194,13 +2194,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); } static void sub_8086AE4(void) @@ -2210,7 +2210,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + gLinkSelfPlayerId, y); + sub_8088B3C(x + LocalLinkPlayerId, y); } static void sub_8086B14(void) @@ -2219,7 +2219,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gLinkSelfPlayerId; + x -= LocalLinkPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2242,7 +2242,7 @@ static void CB1_UpdateLinkState(void) { if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 selfId = gLinkSelfPlayerId; + u8 selfId = LocalLinkPlayerId; UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); // Note: Because guestId is between 0 and 4, while the smallest key code is @@ -2307,7 +2307,7 @@ static bool32 AreAllPlayersInState(u16 tradingState) return TRUE; } -static bool32 AreAnyPlayersInState(u16 tradingState) +static bool32 AreAnyPlayersInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2329,17 +2329,17 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay { *forceFacing = GetDirectionForEventScript(script); sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087530(script); } return; } - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087584(); @@ -2353,7 +2353,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340_2(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); InitLinkRoomStartMenuScript(); @@ -2364,7 +2364,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (PlayerIsAtSouthExit(trainer) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); CreateConfirmLeaveTradeRoomPrompt(); @@ -2376,7 +2376,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (script) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); InitMenuBasedScript(script); @@ -2387,7 +2387,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToRecvQueue); sub_8087510(); @@ -2398,7 +2398,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToSendQueue); sub_8087510(); @@ -2418,7 +2418,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay break; case LINK_KEY_CODE_UNK_4: sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_IDLE; - if (trainer->isSelf) + if (trainer->isLocalPlayer) SetKeyInterceptCallback(KeyInterCB_SelfIdle); break; case LINK_KEY_CODE_UNK_7: @@ -2631,7 +2631,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) CheckRfuKeepAliveTimer(); if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(gEventScript_DoLinkRoomExit); + ScriptContext1_SetupScript(EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; @@ -2651,11 +2651,11 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 sub_8087214(void) { - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; - if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[LocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[LocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; @@ -2664,7 +2664,7 @@ u32 sub_8087214(void) bool32 sub_808727C(void) { - return AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM); + return AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) @@ -2698,7 +2698,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo s16 x, y; trainer->playerId = linkPlayerId; - trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; + trainer->isLocalPlayer = (linkPlayerId == myPlayerId) ? 1 : 0; trainer->c = gLinkPlayerEventObjects[linkPlayerId].movementMode; trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); GetLinkPlayerCoords(linkPlayerId, &x, &y); @@ -2762,7 +2762,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) if (linkPlayerId != 4) { - if (!player->isSelf) + if (!player->isLocalPlayer) return gEventScript_TradeRoom_TooBusyToNotice; else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) return gEventScript_TradeRoom_TooBusyToNotice; @@ -2779,29 +2779,29 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) // these event scripts runs. static u16 GetDirectionForEventScript(const u8 *script) { - if (script == gEventScript_DoubleBattleColosseum_PlayerSpot0) + if (script == EventScript_DoubleBattleColosseum_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot1) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot2) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot2) return FACING_FORCED_RIGHT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot3) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot3) return FACING_FORCED_LEFT; - else if (script == gEventScript_RecordCenter_Spot0) + else if (script == EventScript_RecordCenter_Spot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_RecordCenter_Spot1) + else if (script == EventScript_RecordCenter_Spot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_RecordCenter_Spot2) + else if (script == EventScript_RecordCenter_Spot2) return FACING_FORCED_RIGHT; - else if (script == gEventScript_RecordCenter_Spot3) + else if (script == EventScript_RecordCenter_Spot3) return FACING_FORCED_LEFT; - else if (script == gEventScript_SingleBattleColosseum_PlayerSpot0) + else if (script == EventScript_SingleBattleColosseum_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_SingleBattleColosseum_PlayerSpot1) + else if (script == EventScript_SingleBattleColosseum_PlayerSpot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_TradeCenter_Chair0) + else if (script == EventScript_TradeCenter_Chair0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_TradeCenter_Chair1) + else if (script == EventScript_TradeCenter_Chair1) return FACING_FORCED_LEFT; else return FACING_NONE; @@ -2829,7 +2829,7 @@ static void sub_8087530(const u8 *script) static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(gEventScript_ConfirmLeaveTradeRoom); + ScriptContext1_SetupScript(EventScript_ConfirmLeaveTradeRoom); ScriptContext2_Enable(); } @@ -2842,7 +2842,7 @@ static void InitMenuBasedScript(const u8 *script) static void sub_8087584(void) { - ScriptContext1_SetupScript(gEventScript_TerminateLink); + ScriptContext1_SetupScript(EventScript_TerminateLink); ScriptContext2_Enable(); } @@ -3046,8 +3046,11 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) if (linkPlayerEventObj->active) { if (facing > FACING_FORCED_RIGHT) + { eventObj->triggerGroundEffectsOnMove = 1; - else { + } + else + { // This is a hack to split this code onto two separate lines, without declaring a local variable. // C++ style inline variables would be nice here. #define TEMP gLinkPlayerMovementModes[linkPlayerEventObj->movementMode](linkPlayerEventObj, eventObj, facing) @@ -3131,19 +3134,19 @@ static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject // even for Left/Right codes. static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { - switch (newFacing - 1) + switch (newFacing) { - case (FACING_UP - 1): - case (FACING_FORCED_UP - 1): + case FACING_UP: + case FACING_FORCED_UP: return DIR_NORTH; - case (FACING_DOWN - 1): - case (FACING_FORCED_DOWN - 1): + case FACING_DOWN: + case FACING_FORCED_DOWN: return DIR_SOUTH; - case (FACING_LEFT - 1): - case (FACING_FORCED_LEFT - 1): + case FACING_LEFT: + case FACING_FORCED_LEFT: return DIR_WEST; - case (FACING_RIGHT - 1): - case (FACING_FORCED_RIGHT - 1): + case FACING_RIGHT: + case FACING_FORCED_RIGHT: return DIR_EAST; } return oldFacing; diff --git a/src/record_mixing.c b/src/record_mixing.c index 4c0ada830..7bbb4286d 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -171,7 +171,7 @@ static const u8 gUnknown_0858CFBE[3][4] = #define BUFFER_CHUNK_SIZE 200 // Note: VAR_0x8005 contains the spotId. -void EventScript_RecordMixingPlayerSpotTriggered(void) +void RecordMixingPlayerSpotTriggered(void) { sub_80B37D4(Task_RecordMixing_Main); } @@ -984,7 +984,7 @@ static void Task_DoRecordMixing(u8 taskId) DestroyTask(taskId); break; - // Mixing Emerald/FireRed/LeafGreen records. + // Mixing Emerald records. case 6: if (!sub_801048C(FALSE)) { diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 8f95e6719..19f032fd0 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gLinkSelfPlayerId; +extern u8 LocalLinkPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index f971d8487..7d6020c7a 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -641,9 +641,9 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); } -// Note: When control returns to the event script, gSpecialVar_Result be +// Note: When control returns to the event script, gSpecialVar_Result will be // TRUE if the party selection was successful. -void EventScript_ChooseHalfPartyForBattle(void) +void ChooseHalfPartyForBattle(void) { gMain.savedCallback = CB2_ReturnFromChooseHalfParty; VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM); diff --git a/src/start_menu.c b/src/start_menu.c index dfe3b08be..352f94bff 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gLinkSelfPlayerId; +extern u8 LocalLinkPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gLinkSelfPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(LocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } -- cgit v1.2.3 From 40d4f7f8db4126086e975e90d7de967129d34dd0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 01:10:59 -0500 Subject: Minor fixes --- src/pokenav.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokenav.c b/src/pokenav.c index 595b66bab..ff687e8dc 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -326,7 +326,7 @@ const u8 gMenuButtonReminderColor[4] = 4, 1, 2, 0 }; -const struct CompressedSpriteSheet gUnknown_0861FA4C[1] = +const struct CompressedSpriteSheet gUnknown_0861FA4C[] = { { .data = gUnknown_0861F5B0, @@ -1095,7 +1095,7 @@ void sub_81C7AC0(s32 a0) switch (a0) { case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, a0); + BeginNormalPaletteFade(v1[5], -2, 0, 16, RGB_BLACK); break; case 1: BeginNormalPaletteFade(v1[5], -2, 16, 0, RGB_BLACK); @@ -1172,7 +1172,7 @@ void sub_81C7C28(void) u8 spriteId; v1 = sub_81C763C(0); - for (i = 0; i == 0; i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_0861FA4C); i++) { LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); } -- cgit v1.2.3 From 93e9b9fe5d207a99c798bd48de9a37ff1c533cde Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 01:33:41 -0500 Subject: Fix some names --- src/link_rfu.c | 10 +++++----- src/new_game.c | 4 ++-- src/pokedex.c | 4 ++-- src/save_location.c | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/link_rfu.c b/src/link_rfu.c index 122ffd243..9ad6a1cd6 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2376,18 +2376,18 @@ void RecordMixTrainerNames(void) s32 i; s32 j; s32 nextSpace; - s32 connectedTrainerRecordIndecies[5]; + s32 connectedTrainerRecordIndicies[5]; struct TrainerNameRecord *newRecords = calloc(20, sizeof(struct TrainerNameRecord)); // Check if we already have a record saved for connected trainers. for (i = 0; i < GetLinkPlayerCount(); i++) { - connectedTrainerRecordIndecies[i] = -1; + connectedTrainerRecordIndicies[i] = -1; for (j = 0; j < 20; j++) { if ((u16)gLinkPlayers[i].trainerId == gSaveBlock1Ptr->trainerNameRecords[j].trainerId && StringCompare(gLinkPlayers[i].name, gSaveBlock1Ptr->trainerNameRecords[j].trainerName) == 0) { - connectedTrainerRecordIndecies[i] = j; + connectedTrainerRecordIndicies[i] = j; } } } @@ -2401,9 +2401,9 @@ void RecordMixTrainerNames(void) CopyTrainerRecord(&newRecords[nextSpace], (u16)gLinkPlayers[i].trainerId, gLinkPlayers[i].name); // If we already had a record for this trainer, wipe it so that the next step doesn't duplicate it. - if (connectedTrainerRecordIndecies[i] >= 0) + if (connectedTrainerRecordIndicies[i] >= 0) { - memset(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndecies[i]].trainerName, 0, 8); + memset(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndicies[i]].trainerName, 0, 8); } nextSpace++; } diff --git a/src/new_game.c b/src/new_game.c index be84445bf..2e8930f7c 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -106,7 +106,7 @@ static void SetDefaultOptions(void) static void ClearPokedexFlags(void) { - gUnusedU8 = 0; + gUnusedPokedexU8 = 0; memset(&gSaveBlock2Ptr->pokedex.owned, 0, sizeof(gSaveBlock2Ptr->pokedex.owned)); memset(&gSaveBlock2Ptr->pokedex.seen, 0, sizeof(gSaveBlock2Ptr->pokedex.seen)); } @@ -164,7 +164,7 @@ void NewGameInitData(void) ClearSav1(); ClearMailData(); gSaveBlock2Ptr->specialSaveWarpFlags = 0; - gSaveBlock2Ptr->unusedFlagField = 0; + gSaveBlock2Ptr->field_A8 = 0; InitPlayerTrainerId(); PlayTimeCounter_Reset(); ClearPokedexFlags(); diff --git a/src/pokedex.c b/src/pokedex.c index b2eba6836..b8c3e93f9 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -38,7 +38,7 @@ static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL; // IWRAM common // This is written to, but never read. -u8 gUnusedU8; +u8 gUnusedPokedexU8; void (*gUnknown_030060B4)(void); struct PokedexOption @@ -1226,7 +1226,7 @@ void ResetPokedex(void) gUnknown_02039B50 = 0; gUnknown_02039B52 = 64; - gUnusedU8 = 0; + gUnusedPokedexU8 = 0; gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; gSaveBlock2Ptr->pokedex.order = 0; gSaveBlock2Ptr->pokedex.nationalMagic = 0; diff --git a/src/save_location.c b/src/save_location.c index 20972873c..2443b3161 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -120,13 +120,13 @@ void TrySetMapSaveWarpStatus(void) void sub_81AFDA0(void) { - gSaveBlock2Ptr->unusedFlagField |= 0x8000; - gSaveBlock2Ptr->unusedFlagField |= 0x1; - gSaveBlock2Ptr->unusedFlagField |= 0x2; - gSaveBlock2Ptr->unusedFlagField |= 0x4; - gSaveBlock2Ptr->unusedFlagField |= 0x10; - gSaveBlock2Ptr->unusedFlagField |= 0x20; - gSaveBlock2Ptr->unusedFlagField |= 0x8; + gSaveBlock2Ptr->field_A8 |= 0x8000; + gSaveBlock2Ptr->field_A8 |= 0x1; + gSaveBlock2Ptr->field_A8 |= 0x2; + gSaveBlock2Ptr->field_A8 |= 0x4; + gSaveBlock2Ptr->field_A8 |= 0x10; + gSaveBlock2Ptr->field_A8 |= 0x20; + gSaveBlock2Ptr->field_A8 |= 0x8; } void sub_81AFDD0(void) -- cgit v1.2.3 From fcb541189d5b2ef4d99771661b28e12512c73630 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 02:02:20 -0500 Subject: Rename some flags, and use map ID macros --- src/braille_puzzles.c | 62 +++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 449c1dfea..f89491940 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -70,8 +70,8 @@ void DoBrailleRegisteelEffect(void); bool8 ShouldDoBrailleDigEffect(void) { if (!FlagGet(FLAG_SYS_BRAILLE_DIG) - && (gSaveBlock1Ptr->location.mapGroup == 0x18 - && gSaveBlock1Ptr->location.mapNum == 0x47)) + && (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEALED_CHAMBER_OUTER_ROOM) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEALED_CHAMBER_OUTER_ROOM))) { if (gSaveBlock1Ptr->pos.x == 10 && gSaveBlock1Ptr->pos.y == 3) return TRUE; @@ -86,12 +86,12 @@ bool8 ShouldDoBrailleDigEffect(void) void DoBrailleDigEffect(void) { - MapGridSetMetatileIdAt(16, 8, 554); - MapGridSetMetatileIdAt(17, 8, 555); - MapGridSetMetatileIdAt(18, 8, 556); - MapGridSetMetatileIdAt(16, 9, 3634); - MapGridSetMetatileIdAt(17, 9, 563); - MapGridSetMetatileIdAt(18, 9, 3636); + MapGridSetMetatileIdAt(16, 8, 0x22A); + MapGridSetMetatileIdAt(17, 8, 0x22B); + MapGridSetMetatileIdAt(18, 8, 0x22C); + MapGridSetMetatileIdAt(16, 9, 0xE32); + MapGridSetMetatileIdAt(17, 9, 0x233); + MapGridSetMetatileIdAt(18, 9, 0xE34); DrawWholeMapView(); PlaySE(SE_BAN); FlagSet(FLAG_SYS_BRAILLE_DIG); @@ -117,7 +117,7 @@ bool8 CheckRelicanthWailord(void) void ShouldDoBrailleRegirockEffectOld(void) { /* - if (!FlagGet(FLAG_SYS_BRAILLE_REGIROCK_HM) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) + if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) { if (gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 23) return TRUE; @@ -141,13 +141,13 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_REGIROCK_HM); + FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE); ScriptContext2_Disable(); } bool8 ShouldDoBrailleRegisteelEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_REGISTEEL_HM) && (gSaveBlock1.location.mapGroup == MAP_GROUP_ANCIENT_TOMB && gSaveBlock1.location.mapNum == MAP_ID_ANCIENT_TOMB)) + if (!FlagGet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED) && (gSaveBlock1.location.mapGroup == MAP_GROUP_ANCIENT_TOMB && gSaveBlock1.location.mapNum == MAP_ID_ANCIENT_TOMB)) { if (gSaveBlock1.pos.x == 8 && gSaveBlock1.pos.y == 25) return TRUE; @@ -187,7 +187,7 @@ void UseFlyAncientTomb_Finish(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_REGISTEEL_HM); + FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } */ @@ -241,7 +241,7 @@ void SealedChamberShakingEffect(u8 taskId) // moved later in the function because it was rewritten. bool8 ShouldDoBrailleRegirockEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_REGIROCK_HM) + if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(DESERT_RUINS) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(DESERT_RUINS)) { @@ -279,21 +279,21 @@ void UseRegirockHm_Callback(void) void DoBrailleRegirockEffect(void) { - MapGridSetMetatileIdAt(14, 26, 554); - MapGridSetMetatileIdAt(15, 26, 555); - MapGridSetMetatileIdAt(16, 26, 556); - MapGridSetMetatileIdAt(14, 27, 3634); - MapGridSetMetatileIdAt(15, 27, 563); - MapGridSetMetatileIdAt(16, 27, 3636); + MapGridSetMetatileIdAt(14, 26, 0x22A); + MapGridSetMetatileIdAt(15, 26, 0x22B); + MapGridSetMetatileIdAt(16, 26, 0x22C); + MapGridSetMetatileIdAt(14, 27, 0xE32); + MapGridSetMetatileIdAt(15, 27, 0x233); + MapGridSetMetatileIdAt(16, 27, 0xE34); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_REGIROCK_HM); + FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE); ScriptContext2_Disable(); } bool8 ShouldDoBrailleRegisteelEffect(void) { - if (!FlagGet(FLAG_SYS_BRAILLE_REGISTEEL_HM) && (gSaveBlock1Ptr->location.mapGroup == 0x18 && gSaveBlock1Ptr->location.mapNum == 0x44)) + if (!FlagGet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED) && (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ANCIENT_TOMB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ANCIENT_TOMB))) { if (gSaveBlock1Ptr->pos.x == 8 && gSaveBlock1Ptr->pos.y == 25) { @@ -318,15 +318,15 @@ void UseRegisteelHm_Callback(void) void DoBrailleRegisteelEffect(void) { - MapGridSetMetatileIdAt(14, 26, 554); - MapGridSetMetatileIdAt(15, 26, 555); - MapGridSetMetatileIdAt(16, 26, 556); - MapGridSetMetatileIdAt(14, 27, 3634); - MapGridSetMetatileIdAt(15, 27, 563); - MapGridSetMetatileIdAt(16, 27, 3636); + MapGridSetMetatileIdAt(14, 26, 0x22A); + MapGridSetMetatileIdAt(15, 26, 0x22B); + MapGridSetMetatileIdAt(16, 26, 0x22C); + MapGridSetMetatileIdAt(14, 27, 0xE32); + MapGridSetMetatileIdAt(15, 27, 0x233); + MapGridSetMetatileIdAt(16, 27, 0xE34); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_BRAILLE_REGISTEEL_HM); + FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -429,8 +429,8 @@ bool8 ShouldDoBrailleRegicePuzzle(void) { u8 i; - if (gSaveBlock1Ptr->location.mapGroup == 0x18 - && gSaveBlock1Ptr->location.mapNum == 0x43) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ISLAND_CAVE) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ISLAND_CAVE)) { if (FlagGet(FLAG_SYS_BRAILLE_REGICE_PUZZLE)) return FALSE; @@ -467,7 +467,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void) } varValue = VarGet(VAR_REGICE_STEPS_1); - if (varValue != 0xFFFF || VarGet(VAR_REGICE_STEPS_2) != varValue || VarGet(VAR_REGICE_STEPS_3) != 0xF) + if (varValue != 0xFFFF || VarGet(VAR_REGICE_STEPS_2) != 0xFFFF || VarGet(VAR_REGICE_STEPS_3) != 0xF) return FALSE; // This final check is redundant. -- cgit v1.2.3 From bfe67842ab3d8f6567f365a65ad82935ed74c338 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 14:14:07 -0500 Subject: Fix spelling (again) --- src/link_rfu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/link_rfu.c b/src/link_rfu.c index 9ad6a1cd6..4ad2a5169 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -2376,18 +2376,18 @@ void RecordMixTrainerNames(void) s32 i; s32 j; s32 nextSpace; - s32 connectedTrainerRecordIndicies[5]; + s32 connectedTrainerRecordIndices[5]; struct TrainerNameRecord *newRecords = calloc(20, sizeof(struct TrainerNameRecord)); // Check if we already have a record saved for connected trainers. for (i = 0; i < GetLinkPlayerCount(); i++) { - connectedTrainerRecordIndicies[i] = -1; + connectedTrainerRecordIndices[i] = -1; for (j = 0; j < 20; j++) { if ((u16)gLinkPlayers[i].trainerId == gSaveBlock1Ptr->trainerNameRecords[j].trainerId && StringCompare(gLinkPlayers[i].name, gSaveBlock1Ptr->trainerNameRecords[j].trainerName) == 0) { - connectedTrainerRecordIndicies[i] = j; + connectedTrainerRecordIndices[i] = j; } } } @@ -2401,9 +2401,9 @@ void RecordMixTrainerNames(void) CopyTrainerRecord(&newRecords[nextSpace], (u16)gLinkPlayers[i].trainerId, gLinkPlayers[i].name); // If we already had a record for this trainer, wipe it so that the next step doesn't duplicate it. - if (connectedTrainerRecordIndicies[i] >= 0) + if (connectedTrainerRecordIndices[i] >= 0) { - memset(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndicies[i]].trainerName, 0, 8); + memset(gSaveBlock1Ptr->trainerNameRecords[connectedTrainerRecordIndices[i]].trainerName, 0, 8); } nextSpace++; } -- cgit v1.2.3 From 486cf449b8d5715d4ba7d5f1144ab9b8288dd3ee Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 14:17:02 -0500 Subject: Make flag names more consistent --- src/braille_puzzles.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index f89491940..07b941f11 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -117,7 +117,7 @@ bool8 CheckRelicanthWailord(void) void ShouldDoBrailleRegirockEffectOld(void) { /* - if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) + if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED) && (gSaveBlock1.location.mapGroup == MAP_GROUP_DESERT_RUINS && gSaveBlock1.location.mapNum == MAP_ID_DESERT_RUINS)) { if (gSaveBlock1.pos.x == 10 && gSaveBlock1.pos.y == 23) return TRUE; @@ -141,7 +141,7 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(16, 27, 3636); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE); + FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -241,7 +241,7 @@ void SealedChamberShakingEffect(u8 taskId) // moved later in the function because it was rewritten. bool8 ShouldDoBrailleRegirockEffect(void) { - if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE) + if (!FlagGet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED) && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(DESERT_RUINS) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(DESERT_RUINS)) { @@ -287,7 +287,7 @@ void DoBrailleRegirockEffect(void) MapGridSetMetatileIdAt(16, 27, 0xE34); DrawWholeMapView(); PlaySE(SE_BAN); - FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETE); + FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED); ScriptContext2_Disable(); } @@ -334,7 +334,7 @@ void DoBrailleRegisteelEffect(void) void DoBrailleWait(void) { /* - if (!FlagGet(FLAG_SYS_BRAILLE_REGICE_PUZZLE)) + if (!FlagGet(FLAG_SYS_BRAILLE_REGICE_COMPLETED)) CreateTask(Task_BrailleWait, 0x50); } @@ -432,7 +432,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void) if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ISLAND_CAVE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ISLAND_CAVE)) { - if (FlagGet(FLAG_SYS_BRAILLE_REGICE_PUZZLE)) + if (FlagGet(FLAG_SYS_BRAILLE_REGICE_COMPLETED)) return FALSE; if (FlagGet(FLAG_TEMP_2) == FALSE) return FALSE; -- cgit v1.2.3 From 05f936815437a2c295ed717f8e425c29e97945b8 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Feb 2019 15:08:40 -0600 Subject: Decompile start of flying.c --- src/flying.c | 312 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 306 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/flying.c b/src/flying.c index d3ea3f11b..48df12a06 100644 --- a/src/flying.c +++ b/src/flying.c @@ -1,13 +1,16 @@ #include "global.h" #include "battle_anim.h" +#include "palette.h" +#include "trig.h" +#include "constants/battle_anim.h" #include "constants/rgb.h" -extern void sub_810DE70(struct Sprite *); -extern void sub_810DFA8(struct Sprite *); -extern void sub_810E044(struct Sprite *); -extern void sub_810E13C(struct Sprite *); -extern void sub_810E1C8(struct Sprite *); -extern void sub_810E314(struct Sprite *); +void sub_810DE70(struct Sprite *); +void sub_810DFA8(struct Sprite *); +void sub_810E044(struct Sprite *); +void sub_810E13C(struct Sprite *); +void sub_810E1C8(struct Sprite *); +void sub_810E314(struct Sprite *); extern void sub_810EA4C(struct Sprite *); extern void sub_810EAA0(struct Sprite *); extern void sub_810EC34(struct Sprite *); @@ -18,6 +21,13 @@ extern void sub_810EEF8(struct Sprite *); extern void sub_810F004(struct Sprite *); extern void sub_810F084(struct Sprite *); +static void sub_810DE98(struct Sprite *); +static void sub_810DF18(u8); +static void sub_810E028(struct Sprite *); +static void sub_810E184(struct Sprite *); +static void sub_810E24C(struct Sprite *); +void sub_810E520(struct Sprite *); + const struct SpriteTemplate gUnknown_08596270 = { .tileTag = ANIM_TAG_GUST, @@ -326,3 +336,293 @@ const struct SpriteTemplate gUnknown_08596514 = .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_810F084, }; + + +void sub_810DE70(struct Sprite *sprite) +{ + InitSpritePosToAnimTarget(sprite, FALSE); + sprite->pos1.y += 20; + sprite->data[1] = 191; + sprite->callback = sub_810DE98; + sprite->callback(sprite); +} + +static void sub_810DE98(struct Sprite *sprite) { + sprite->pos2.x = Sin(sprite->data[1], 32); + sprite->pos2.y = Cos(sprite->data[1], 8); + sprite->data[1] += 5; + sprite->data[1] &= 0xFF; + if (++sprite->data[0] == 71) + DestroyAnimSprite(sprite); +} + +void sub_810DED8(u8 taskId) +{ + gTasks[taskId].data[0] = gBattleAnimArgs[1]; + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_GUST); + gTasks[taskId].func = sub_810DF18; +} + +static void sub_810DF18(u8 taskId) +{ + u8 data2; + u16 temp; + int i, base; + + if (gTasks[taskId].data[10]++ == gTasks[taskId].data[1]) + { + gTasks[taskId].data[10] = 0; + data2 = gTasks[taskId].data[2]; + temp = gPlttBufferFaded[16 * data2 + 0x108]; + i = 7; + base = data2 * 16; + + do + { + gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i]; + i--; + } + while (i > 0); + + gPlttBufferFaded[base + 0x101] = temp; + } + + if (--gTasks[taskId].data[0] == 0) + DestroyAnimVisualTask(taskId); +} + +void sub_810DFA8(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, TRUE); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; + InitAnimLinearTranslation(sprite); + sprite->callback = RunStoredCallbackWhenAffineAnimEnds; + StoreSpriteCallbackInData6(sprite, sub_810E028); +} + +static void sub_810E028(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + DestroyAnimSprite(sprite); +} + +void sub_810E044(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + gBattleAnimArgs[0] = -gBattleAnimArgs[0]; + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; + } + + if (IsContest()) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + gBattleAnimArgs[3] = -gBattleAnimArgs[3]; + } + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->pos1.x += gBattleAnimArgs[0]; + sprite->pos1.y += gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[4]; + + if (gBattleAnimArgs[6] == 0) + { + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + } + else + { + SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); + } + + sprite->data[2] = sprite->data[2] + gBattleAnimArgs[2]; + sprite->data[4] = sprite->data[4] + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + SeekSpriteAnim(sprite, gBattleAnimArgs[5]); +} + +void sub_810E13C(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->callback = sub_810E184; + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 1; +} + +static void sub_810E184(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + { + sprite->data[0]--; + } + else + { + sprite->data[2] += sprite->data[1]; + sprite->pos2.y -= (sprite->data[2] >> 8); + } + + if (sprite->pos1.y + sprite->pos2.y < -32) + DestroyAnimSprite(sprite); +} + +void sub_810E1C8(struct Sprite *sprite) +{ + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->pos1.x = 272; + sprite->pos1.y = -32; + StartSpriteAffineAnim(sprite, 1); + } + else + { + sprite->pos1.x = -32; + sprite->pos1.y = -32; + } + + sprite->data[0] = gBattleAnimArgs[0]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + + InitAnimLinearTranslation(sprite); + sprite->callback = sub_810E24C; +} + +static void sub_810E24C(struct Sprite *sprite) +{ + sprite->data[0] = 1; + AnimTranslateLinear(sprite); + if (((u16)sprite->data[3] >> 8) > 200) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos2.x = 0; + sprite->data[3] &= 0xFF; + } + + if ((u32)(sprite->pos1.x + sprite->pos2.x + 32) > 304 || sprite->pos1.y + sprite->pos2.y > 160) + { + gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 0; + DestroyAnimSprite(sprite); + } +} + +void sub_810E2C8(struct Sprite *sprite) +{ + if (sprite->data[0]-- <= 0) + { + if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) + { + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = 0; + } + + DestroySprite(sprite); + gAnimVisualTaskCount--; + } +} + +// FAKEMATCHING +void sub_810E314(struct Sprite *sprite) +{ + s16 *data; + u8 slot; + s16 spriteCoord; + int t1, t2; + u32 arg2; + u32 matrixNum; + u8 sinIndex; + register s16 sinVal asm ("r4"); + register int sinVal2 asm ("r0"); + + data = sprite->data; + + if (gBattleAnimArgs[7] & 0x100) + slot = gBattleAnimAttacker; + else + slot = gBattleAnimTarget; + + if (GetBattlerSide(slot) == B_SIDE_PLAYER) + gBattleAnimArgs[0] = -gBattleAnimArgs[0]; + + sprite->pos1.x = GetBattlerSpriteCoord(slot, 0) + gBattleAnimArgs[0]; + spriteCoord = GetBattlerSpriteCoord(slot, 1); + sprite->pos1.y = spriteCoord + gBattleAnimArgs[1]; + data[4] = sprite->pos1.y << 8; + + t1 = (spriteCoord + (u16) gBattleAnimArgs[6]) << 1; + data[7] = (data[7] & 1) | t1; + ((u8 *) data)[0] |= 4; + + arg2 = (u16) gBattleAnimArgs[2]; + data[1] = (u8) gBattleAnimArgs[2]; + arg2 <<= 16; + data[5] = arg2 >> 24; + data[2] = gBattleAnimArgs[3]; + data[3] = gBattleAnimArgs[4]; + data[6] = gBattleAnimArgs[5]; + + if ((u16) (data[1] - 64) <= 0x7f) + { + if (!IsContest()) + sprite->oam.priority = GetBattlerSpriteBGPriority(slot) + 1; + else + sprite->oam.priority = GetBattlerSpriteBGPriority(slot); + + ((u8 *) data)[14] = data[7] & -2; + + if (!(data[2] & 0x8000)) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + + sprite->animBeginning = 1; + sprite->animEnded = 0; + } + } + else + { + sprite->oam.priority = GetBattlerSpriteBGPriority(slot); + ((u8 *) data)[14] |= 1; + + if (data[2] & 0x8000) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + + sprite->animBeginning = 1; + sprite->animEnded = 0; + } + } + + t2 = (u16) data[1] >> 6 << 4; + ((u8 *) data)[0] = (15 & data[0]) | t2; + + sprite->pos2.x = (gSineTable[(u16) data[1]] * (u8) data[6]) >> 8; + + matrixNum = sprite->oam.matrixNum; + + sinIndex = (-sprite->pos2.x >> 1) + data[5]; + sinVal = gSineTable[sinIndex]; + + gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; + gOamMatrices[matrixNum].b = sinVal; + sinVal2 = -sinVal; + gOamMatrices[matrixNum].c = sinVal2; + + sprite->callback = sub_810E520; +} -- cgit v1.2.3 From 4223bb65f05704ade92ed99d9d5ea58becf1c8ec Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 19 Feb 2019 16:30:15 -0600 Subject: Decompile several contest_link_80F57C4.c functions --- src/contest_link_80F57C4.c | 136 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 132 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 381fb34fa..c72fc9ba3 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -110,13 +110,14 @@ static void sub_80F6EF4(u16); static void sub_80F60F0(u8); static void sub_80F616C(u8); static void sub_80F6204(u8); -void sub_80F73DC(u8); -void sub_80F74BC(u8); +static void sub_80F73DC(u8); +static void sub_80F74BC(u8); +static void sub_80F753C(u8); void sub_80F77E0(u8, u8); static void sub_80F6404(u8); -void sub_80F75A8(struct Sprite *); +static void sub_80F75A8(struct Sprite *); void sub_80F7670(u8); -void sub_80F7620(struct Sprite *); +static void sub_80F7620(struct Sprite *); static void sub_80F66B4(u8); static void sub_80F671C(u8); static void sub_80F677C(u8); @@ -1439,3 +1440,130 @@ u8 sub_80F7310(u8 monIndex, u8 arg1) return var1; } + +s8 sub_80F7364(u8 arg0, u8 arg1) +{ + u32 r4; + u32 r2; + s16 val; + s8 ret; + + val = gUnknown_02039F18[arg0]; + if (val < 0) + r4 = -val << 16; + else + r4 = val << 16; + + r2 = r4 / 80; + if (r2 & 0xFFFF) + r2 += 0x10000; + + r2 >>= 16; + if (r2 == 0 && r4 != 0) + r2 = 1; + + if (arg1 != 0 && r2 > 10) + r2 = 10; + + if (gUnknown_02039F18[arg0] < 0) + ret = -r2; + else + ret = r2; + + return ret; +} + +static void sub_80F73DC(u8 taskId) +{ + u16 firstTileNum; + + if (gTasks[taskId].data[10] == 0) + { + gTasks[taskId].data[11] = (3 - gTasks[taskId].data[0]) * 40; + gTasks[taskId].data[10]++; + } + else if (gTasks[taskId].data[10] == 1) + { + if (--gTasks[taskId].data[11] == -1) + { + firstTileNum = gTasks[taskId].data[0] * 2 + 0x5043; + WriteSequenceToBgTilemapBuffer(2, firstTileNum, 1, gTasks[taskId].data[1] * 3 + 5, 2, 1, 17, 1); + WriteSequenceToBgTilemapBuffer(2, firstTileNum + 0x10, 1, gTasks[taskId].data[1] * 3 + 6, 2, 1, 17, 1); + gUnknown_0203A034->unk0->unk5++; + DestroyTask(taskId); + PlaySE(SE_JYUNI); + } + } +} + +static void sub_80F74BC(u8 taskId) +{ + int i; + for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + ; + + CopyToBgTilemapBufferRect_ChangePalette(2, i * 0xC0 + 0x100 + gUnknown_0203A034->unkC[2], 0, i * 3 + 4, 32, 3, 9); + gTasks[taskId].data[10] = i; + gTasks[taskId].data[12] = 1; + gTasks[taskId].func = sub_80F753C; + gUnknown_0203A034->unk0->unk3 = taskId; +} + +static void sub_80F753C(u8 taskId) +{ + if (++gTasks[taskId].data[11] == 1) + { + gTasks[taskId].data[11] = 0; + BlendPalette(0x91, 1, gTasks[taskId].data[12], RGB(13, 28, 27)); + if (gTasks[taskId].data[13] == 0) + { + if (++gTasks[taskId].data[12] == 16) + gTasks[taskId].data[13] = 1; + } + else + { + if (--gTasks[taskId].data[12] == 0) + gTasks[taskId].data[13] = 0; + } + } +} + +static void sub_80F75A8(struct Sprite *sprite) +{ + if (sprite->data[0] < 10) + { + if (++sprite->data[0] == 10) + { + PlayCry1(sprite->data[1], 0); + sprite->data[1] = 0; + } + } + else + { + s16 delta = (u16)sprite->data[1] + 0x600; + sprite->pos1.x -= delta >> 8; + sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + if (sprite->pos1.x < 120) + sprite->pos1.x = 120; + + if (sprite->pos1.x == 120) + { + sprite->callback = SpriteCallbackDummy; + sprite->data[1] = 0; + gUnknown_0203A034->unk0->unk6 = 1; + } + } +} + +static void sub_80F7620(struct Sprite *sprite) +{ + s16 delta = (u16)sprite->data[1] + 0x600; + sprite->pos1.x -= delta >> 8; + sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + if (sprite->pos1.x < -32) + { + sprite->callback = SpriteCallbackDummy; + sprite->invisible = 1; + gUnknown_0203A034->unk0->unk6 = 2; + } +} -- cgit v1.2.3 From 1c6502338e2bf891d6bfbb6e804acff2b674ff29 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 20 Feb 2019 18:05:33 -0600 Subject: Decompile contest_link_80F57C4.c --- src/contest_link_80F57C4.c | 1593 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1575 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index c72fc9ba3..485065d71 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -1,8 +1,11 @@ #include "global.h" +#include "alloc.h" #include "battle.h" +#include "battle_gfx_sfx_util.h" #include "bg.h" #include "contest.h" #include "contest_link_80F57C4.h" +#include "contest_link_80FC4F4.h" #include "decompress.h" #include "dma3.h" #include "event_data.h" @@ -22,11 +25,13 @@ #include "random.h" #include "save.h" #include "scanline_effect.h" +#include "script.h" #include "sound.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "text.h" +#include "trig.h" #include "tv.h" #include "util.h" #include "window.h" @@ -44,26 +49,38 @@ struct ContestLinkUnk0 u8 unk4; u8 unk5; u8 unk6; - u8 filler7[0x1]; + u8 unk7; u8 spriteId; u8 unk9; u8 unkA; - u8 fillerB[0x9]; + s16 unkC[4]; u8 unk14; u8 filler15[0x3]; }; +struct ContestLinkUnk14 +{ + int unk0; + int unk4; + u32 unk8; + u32 unkC; + u8 unk10; + u8 unk11; + u8 unk12; +}; + struct ContestLinkUnk4 { - u8 filler0[0x50]; + struct ContestLinkUnk14 unk0[4]; }; struct ContestLink80F57C4 { struct ContestLinkUnk0 *unk0; struct ContestLinkUnk4 *unk4; - u8 filler8[0x4]; + u8 *unk8; u8 *unkC[4]; + u8 *unk1C; }; EWRAM_DATA struct ContestLink80F57C4 *gUnknown_0203A034 = NULL; @@ -80,20 +97,23 @@ extern const u8 gUnknown_0858D6D0[]; extern const struct SpriteTemplate gSpriteTemplate_858D7F8; extern const struct SpriteSheet gUnknown_0858D810[]; extern const struct SpritePalette gUnknown_0858D850; +extern const struct SpriteTemplate gSpriteTemplate_858D860; + +extern void sub_81D9DE4(u8); static void sub_80F6A9C(void); static void sub_80F71C8(void); u8 sub_80F7310(u8, u8); s8 sub_80F7364(u8, u8); -void sub_80F7ED0(int, u8 *, int); -void sub_80F7DF4(void); -static void sub_80F6A64(u8, u8); +static void sub_80F7ED0(int, u8 *, int); +static void sub_80F7DF4(void); +static void LoadAllContestMonIcons(u8, u8); static void sub_80F6DC0(void); static void sub_80F6AE8(void); static void sub_80F5CE4(u8); static void sub_80F5C00(void); static void sub_80F68B4(u8); -void sub_80F7880(void); +static void sub_80F7880(void); static void sub_80F5C24(void); static void sub_80F707C(const u8 *); static void sub_80F5ED8(u8); @@ -105,7 +125,8 @@ static void sub_80F68F0(u8); s16 sub_80F6B78(const u8 *, u8); static void sub_80F6E9C(s16, u16, u16, u16); static void sub_80F6058(u8); -void sub_80F7A80(u8, u8); +static void sub_80F7A80(u8, u8); +void sub_80F7CA8(u8); static void sub_80F6EF4(u16); static void sub_80F60F0(u8); static void sub_80F616C(u8); @@ -113,20 +134,29 @@ static void sub_80F6204(u8); static void sub_80F73DC(u8); static void sub_80F74BC(u8); static void sub_80F753C(u8); -void sub_80F77E0(u8, u8); +static void sub_80F77E0(u8, u8); +static void sub_80F7824(u8); static void sub_80F6404(u8); static void sub_80F75A8(struct Sprite *); -void sub_80F7670(u8); +static void sub_80F7670(u8); static void sub_80F7620(struct Sprite *); static void sub_80F66B4(u8); static void sub_80F671C(u8); static void sub_80F677C(u8); static void sub_80F67C4(u8); static void sub_80F6820(u8); -void sub_80F7E64(void); +static void sub_80F7E64(void); static void sub_80F6F68(struct Sprite *); static void sub_80F7014(struct Sprite *); static void sub_80F6FDC(struct Sprite *); +static void sub_80F8508(u8); +static void sub_80F8568(u8); +static void sub_80F8584(u8); +static void sub_80F85A0(u8); +static void sub_80F85BC(u8); +static void sub_80F86B8(u8); +static void sub_80F878C(u8); +static void sub_80F87B4(u8); void sub_80F57C4(void) { @@ -266,7 +296,7 @@ void sub_80F5B00(void) FreeAllSpritePalettes(); sub_80F591C(); sub_80F6A9C(); - sub_80F6A64(0, 1); + LoadAllContestMonIcons(0, 1); sub_80F5AE0(); memset(gUnknown_0203A034->unk0, 0, sizeof(*gUnknown_0203A034->unk0)); memset(gUnknown_0203A034->unk4, 0, sizeof(*gUnknown_0203A034->unk4)); @@ -828,7 +858,7 @@ static void sub_80F68F0(u8 taskId) gUnknown_0203A034->unk0->unkA = 1; } -void sub_80F69B8(u16 species, u8 monIndex, u8 arg2, u8 arg3, u32 personality) +void sub_80F69B8(u16 species, u8 monIndex, u8 srcOffset, u8 useDmaNow, u32 personality) { u8 frameNum; const u8 *iconPtr; @@ -839,8 +869,8 @@ void sub_80F69B8(u16 species, u8 monIndex, u8 arg2, u8 arg3, u32 personality) frameNum = (monIndex == *contestPlayerMonIndex) ? 1 : 0; iconPtr = GetMonIconPtr(species, personality, frameNum); - iconPtr += arg2 * 0x200 + 0x80; - if (arg3) + iconPtr += srcOffset * 0x200 + 0x80; + if (useDmaNow) { RequestDma3Copy(iconPtr, (void *)BG_CHAR_ADDR(1) + monIndex * 0x200, 0x180, 1); var0 = ((monIndex + 10) << 12); @@ -853,12 +883,12 @@ void sub_80F69B8(u16 species, u8 monIndex, u8 arg2, u8 arg3, u32 personality) } } -static void sub_80F6A64(u8 arg0, u8 arg1) +static void LoadAllContestMonIcons(u8 srcOffset, u8 useDmaNow) { int i; for (i = 0; i < 4; i++) - sub_80F69B8(gContestMons[i].species, i, arg0, arg1, gContestMons[i].personality); + sub_80F69B8(gContestMons[i].species, i, srcOffset, useDmaNow, gContestMons[i].personality); } static void sub_80F6A9C(void) @@ -1567,3 +1597,1530 @@ static void sub_80F7620(struct Sprite *sprite) gUnknown_0203A034->unk0->unk6 = 2; } } + +static void sub_80F7670(u8 taskId) +{ + if (++gTasks[taskId].data[0] == 5) + { + gTasks[taskId].data[0] = 0; + if (gUnknown_0203A034->unk0->unk7 < 40) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_858D860, (Random() % 240) - 20, 44, 5); + gSprites[spriteId].data[0] = Random() % 512; + gSprites[spriteId].data[1] = (Random() % 24) + 16; + gSprites[spriteId].data[2] = (Random() % 256) + 48; + gSprites[spriteId].oam.tileNum += Random() % 17; + gUnknown_0203A034->unk0->unk7++; + } + } + + if (gUnknown_0203A034->unk0->unk9) + DestroyTask(taskId); +} + +void sub_80F7768(struct Sprite *sprite) +{ + register s16 var0 asm("r1"); + + sprite->data[3] += sprite->data[0]; + sprite->pos2.x = Sin(sprite->data[3] >> 8, sprite->data[1]); + var0 = sprite->data[4] + sprite->data[2]; + sprite->pos1.x += var0 >> 8; + var0 = var0 & 0xFF; + sprite->data[4] = var0; + sprite->pos1.y++; + if (gUnknown_0203A034->unk0->unk9) + sprite->invisible = 1; + + if (sprite->pos1.x > 248 || sprite->pos1.y > 116) + { + DestroySprite(sprite); + gUnknown_0203A034->unk0->unk7--; + } +} + +static void sub_80F77E0(u8 monIndex, u8 numFrames) +{ + u8 taskId = CreateTask(sub_80F7824, 8); + gTasks[taskId].data[0] = monIndex; + gTasks[taskId].data[1] = numFrames; + gTasks[taskId].data[2] = gContestMons[monIndex].species; +} + +static void sub_80F7824(u8 taskId) +{ + u8 monIndex = gTasks[taskId].data[0]; + if (gTasks[taskId].data[10]++ == gTasks[taskId].data[1]) + { + gTasks[taskId].data[10] = 0; + sub_80F69B8(gTasks[taskId].data[2], monIndex, gTasks[taskId].data[11], FALSE, gContestMons[monIndex].personality); + gTasks[taskId].data[11] ^= 1; + } +} + +// static void sub_80F7880(void) +// { +// int i; +// int var0; +// int var1; +// int var2; +// int var3; +// u32 var4; +// int var5; +// int var6; +// s16 var7; +// s16 var8; +// s16 r2; + +// r2 = gUnknown_02039F08[0]; +// for (i = 1; i < 4; i++) +// { +// if (r2 < gUnknown_02039F08[i]) +// r2 = gUnknown_02039F08[i]; +// } + +// if (r2 < 0) +// { +// r2 = gUnknown_02039F08[0]; +// for (i = 1; i < 4; i++) +// { +// if (r2 > gUnknown_02039F08[i]) +// r2 = gUnknown_02039F08[i]; +// } +// } + +// // _080F78E4 +// for (i = 0; i < 4; i++) +// { +// var0 = gContestMonConditions[i] * 1000; +// var1 = r2; +// if (r2 < 0) +// var1 = -var1; + +// var2 = var0 / var1; +// if (var2 % 10 > 4) +// var2 += 10; + +// gUnknown_0203A034->unk4->unk0[i].unk0 = var2 / 10; +// var3 = gUnknown_02039F18[i]; +// if (var3 < 0) +// var3 = -var3; + +// var0 = var3 * 1000; +// var1 = r2; +// if (r2 < 0) +// var1 = -var1; + +// var2 = var0 / var1; +// if (var2 % 10 > 4) +// var2 += 10; + +// // _080F7966 +// gUnknown_0203A034->unk4->unk0[i].unk4 = var2 / 10; +// if (gUnknown_02039F18[i] < 0) +// gUnknown_0203A034->unk4->unk0[i].unk10 = 1; + +// var4 = gUnknown_0203A034->unk4->unk0[i].unk0 * 22528 / 100; +// if ((var4 & 0xFF) > 0x7F) +// var4 += 0x100; + +// gUnknown_0203A034->unk4->unk0[i].unk8 = var4 >> 8; +// var4 = gUnknown_0203A034->unk4->unk0[i].unk4 * 22528 / 100; +// if ((var4 & 0xFF) > 0x7F) +// var4 += 0x100; + +// gUnknown_0203A034->unk4->unk0[i].unkC = var4 >> 8; +// gUnknown_0203A034->unk4->unk0[i].unk11 = sub_80F7310(i, 1); +// var5 = sub_80F7364(i, 1); +// if (var5 < 0) +// var5 = -var5; + +// gUnknown_0203A034->unk4->unk0[i].unk12 = var5; +// if (gContestFinalStandings[i]) +// { +// var7 = gUnknown_0203A034->unk4->unk0[i].unk8; +// var8 = gUnknown_0203A034->unk4->unk0[i].unkC; +// if (gUnknown_0203A034->unk4->unk0[i].unk10) +// var8 = -var8; + +// if (var7 + var8 == 88) +// { +// if (var8 > 0) +// gUnknown_0203A034->unk4->unk0[i].unkC--; +// else if (var7 > 0) +// gUnknown_0203A034->unk4->unk0[i].unk8--; +// } +// } +// } +// } + +NAKED +static void sub_80F7880(void) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x4\n\ + ldr r0, =gUnknown_02039F08\n\ + ldrh r2, [r0]\n\ + adds r4, r0, 0\n\ + adds r3, r4, 0x2\n\ + movs r0, 0x2\n\ + mov r8, r0\n\ +_080F7898:\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + movs r5, 0\n\ + ldrsh r1, [r3, r5]\n\ + cmp r0, r1\n\ + bge _080F78A6\n\ + ldrh r2, [r3]\n\ +_080F78A6:\n\ + adds r3, 0x2\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + add r8, r0\n\ + mov r1, r8\n\ + cmp r1, 0\n\ + bge _080F7898\n\ + lsls r0, r2, 16\n\ + str r0, [sp]\n\ + cmp r0, 0\n\ + bge _080F78E4\n\ + ldrh r2, [r4]\n\ + adds r3, r4, 0x2\n\ + movs r4, 0x2\n\ + mov r8, r4\n\ +_080F78C4:\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + movs r5, 0\n\ + ldrsh r1, [r3, r5]\n\ + cmp r0, r1\n\ + ble _080F78D2\n\ + ldrh r2, [r3]\n\ +_080F78D2:\n\ + adds r3, 0x2\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + add r8, r0\n\ + lsls r1, r2, 16\n\ + str r1, [sp]\n\ + mov r4, r8\n\ + cmp r4, 0\n\ + bge _080F78C4\n\ +_080F78E4:\n\ + movs r5, 0\n\ + mov r8, r5\n\ + mov r10, r5\n\ +_080F78EA:\n\ + ldr r0, =gContestMonConditions\n\ + mov r1, r8\n\ + lsls r7, r1, 1\n\ + adds r0, r7, r0\n\ + movs r2, 0\n\ + ldrsh r1, [r0, r2]\n\ + lsls r0, r1, 5\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + ldr r4, [sp]\n\ + asrs r5, r4, 16\n\ + adds r1, r5, 0\n\ + cmp r5, 0\n\ + bge _080F790C\n\ + negs r1, r5\n\ +_080F790C:\n\ + bl __divsi3\n\ + adds r4, r0, 0\n\ + movs r1, 0xA\n\ + bl __modsi3\n\ + cmp r0, 0x4\n\ + ble _080F791E\n\ + adds r4, 0xA\n\ +_080F791E:\n\ + ldr r0, =gUnknown_0203A034\n\ + mov r9, r0\n\ + ldr r0, [r0]\n\ + ldr r0, [r0, 0x4]\n\ + mov r1, r10\n\ + adds r6, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + str r0, [r6]\n\ + ldr r0, =gUnknown_02039F18\n\ + adds r7, r0\n\ + movs r2, 0\n\ + ldrsh r1, [r7, r2]\n\ + cmp r1, 0\n\ + bge _080F7942\n\ + negs r1, r1\n\ +_080F7942:\n\ + lsls r0, r1, 5\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r1, r5, 0\n\ + cmp r1, 0\n\ + bge _080F7954\n\ + negs r1, r1\n\ +_080F7954:\n\ + bl __divsi3\n\ + adds r4, r0, 0\n\ + movs r1, 0xA\n\ + bl __modsi3\n\ + cmp r0, 0x4\n\ + ble _080F7966\n\ + adds r4, 0xA\n\ +_080F7966:\n\ + adds r0, r4, 0\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + str r0, [r6, 0x4]\n\ + movs r4, 0\n\ + ldrsh r0, [r7, r4]\n\ + cmp r0, 0\n\ + bge _080F797C\n\ + movs r0, 0x1\n\ + strb r0, [r6, 0x10]\n\ +_080F797C:\n\ + mov r5, r9\n\ + ldr r0, [r5]\n\ + ldr r0, [r0, 0x4]\n\ + mov r1, r10\n\ + adds r4, r1, r0\n\ + ldr r1, [r4]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + subs r0, r1\n\ + lsls r0, 11\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + movs r5, 0xFF\n\ + ands r0, r5\n\ + cmp r0, 0x7F\n\ + bls _080F79A8\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r1, r2\n\ +_080F79A8:\n\ + lsrs r0, r1, 8\n\ + str r0, [r4, 0x8]\n\ + ldr r1, [r4, 0x4]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + subs r0, r1\n\ + lsls r0, 11\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + adds r1, r0, 0\n\ + ands r0, r5\n\ + cmp r0, 0x7F\n\ + bls _080F79CC\n\ + movs r5, 0x80\n\ + lsls r5, 1\n\ + adds r1, r5\n\ +_080F79CC:\n\ + lsrs r0, r1, 8\n\ + str r0, [r4, 0xC]\n\ + mov r0, r8\n\ + lsls r4, r0, 24\n\ + lsrs r4, 24\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + bl sub_80F7310\n\ + mov r2, r9\n\ + ldr r1, [r2]\n\ + ldr r1, [r1, 0x4]\n\ + add r1, r10\n\ + strb r0, [r1, 0x11]\n\ + adds r0, r4, 0\n\ + movs r1, 0x1\n\ + bl sub_80F7364\n\ + mov r4, r9\n\ + ldr r1, [r4]\n\ + ldr r1, [r1, 0x4]\n\ + add r1, r10\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0\n\ + bge _080F7A02\n\ + negs r0, r0\n\ +_080F7A02:\n\ + strb r0, [r1, 0x12]\n\ + ldr r0, =gContestFinalStandings\n\ + add r0, r8\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _080F7A60\n\ + mov r5, r9\n\ + ldr r0, [r5]\n\ + ldr r0, [r0, 0x4]\n\ + mov r2, r10\n\ + adds r1, r2, r0\n\ + ldr r5, [r1, 0x8]\n\ + ldrh r3, [r1, 0x8]\n\ + ldr r4, [r1, 0xC]\n\ + ldrh r2, [r1, 0xC]\n\ + ldrb r0, [r1, 0x10]\n\ + cmp r0, 0\n\ + beq _080F7A2C\n\ + lsls r0, r2, 16\n\ + negs r0, r0\n\ + lsrs r2, r0, 16\n\ +_080F7A2C:\n\ + lsls r0, r3, 16\n\ + asrs r3, r0, 16\n\ + lsls r0, r2, 16\n\ + asrs r2, r0, 16\n\ + adds r0, r3, r2\n\ + cmp r0, 0x58\n\ + bne _080F7A60\n\ + cmp r2, 0\n\ + ble _080F7A58\n\ + subs r0, r4, 0x1\n\ + str r0, [r1, 0xC]\n\ + b _080F7A60\n\ + .pool\n\ +_080F7A58:\n\ + cmp r3, 0\n\ + ble _080F7A60\n\ + subs r0, r5, 0x1\n\ + str r0, [r1, 0x8]\n\ +_080F7A60:\n\ + movs r4, 0x14\n\ + add r10, r4\n\ + movs r5, 0x1\n\ + add r8, r5\n\ + mov r0, r8\n\ + cmp r0, 0x3\n\ + bgt _080F7A70\n\ + b _080F78EA\n\ +_080F7A70:\n\ + add sp, 0x4\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} + +// static void sub_80F7A80(u8 arg0, u8 arg1) +// { +// int i; +// u8 taskId; +// u8 sp8, spC; + +// sp8 = 0; +// spC = 0; +// if (!arg0) +// { +// u32 var0; +// for (i = 0; i < 4; i++) +// { +// int var1 = gUnknown_0203A034->unk4->unk0[i].unk11; +// if (arg1 < var1) +// { +// int x = var1 + 19; +// x -= arg1; +// x--; +// FillBgTilemapBufferRect_Palette0(1, 0x60B3, x, i * 3 + 5, 1, 1); +// taskId = CreateTask(sub_80F7CA8, 10); +// var0 = ((gUnknown_0203A034->unk4->unk0[i].unk8 << 16) / gUnknown_0203A034->unk4->unk0[i].unk11) * (arg1 + 1); +// var0 &= 0xFFFF; +// if (var0 > 0x7FFF) +// var0 += 0x10000; + +// gTasks[taskId].data[0] = i; +// gTasks[taskId].data[1] = var0 >> 16; +// gUnknown_0203A034->unk0->unk14++; +// sp8++; +// } +// } +// } +// else +// { +// u32 var0; +// for (i = 0; i < 4; i++) +// { +// int tile; +// s8 var1 = gUnknown_0203A034->unk4->unk0[i].unk12; +// tile = gUnknown_0203A034->unk4->unk0[i].unk10 ? 0x60A5 : 0x60A3; +// if (arg1 < var1) +// { +// int thing = ((s8)arg1 - 19); +// int x = var1 - thing; +// x--; +// FillBgTilemapBufferRect_Palette0(1, tile, x, i * 3 + 6, 1, 1); +// taskId = CreateTask(sub_80F7CA8, 10); +// var0 = ((gUnknown_0203A034->unk4->unk0[i].unkC << 16) / gUnknown_0203A034->unk4->unk0[i].unk12) * (arg1 + 1); +// var0 &= 0xFFFF; +// if (var0 > 0x7FFF) +// var0 += 0x10000; + +// gTasks[taskId].data[0] = i; +// if (gUnknown_0203A034->unk4->unk0[i].unk10) +// { +// gTasks[taskId].data[2] = 1; +// spC++; +// } +// else +// { +// sp8++; +// } + +// if (gUnknown_0203A034->unk4->unk0[i].unk10) +// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 - (var0 >> 16); +// else +// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 + (var0 >> 16); + +// gUnknown_0203A034->unk0->unk14++; +// } +// } +// } + +// if (spC) +// PlaySE(SE_PIN); + +// if (sp8) +// PlaySE(SE_BAN); +// } + +NAKED +static void sub_80F7A80(u8 arg0, u8 arg1) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + lsls r0, 24\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r8, r1\n\ + movs r1, 0\n\ + str r1, [sp, 0x8]\n\ + movs r3, 0\n\ + str r3, [sp, 0xC]\n\ + cmp r0, 0\n\ + bne _080F7B5C\n\ + mov r9, r3\n\ + ldr r4, =gUnknown_0203A034\n\ + mov r10, r4\n\ + movs r7, 0xA0\n\ + lsls r7, 19\n\ + movs r6, 0\n\ +_080F7AAC:\n\ + mov r1, r10\n\ + ldr r0, [r1]\n\ + ldr r0, [r0, 0x4]\n\ + adds r0, r6, r0\n\ + ldrb r2, [r0, 0x11]\n\ + cmp r8, r2\n\ + bcs _080F7B2E\n\ + adds r2, 0x13\n\ + mov r3, r8\n\ + subs r2, r3\n\ + subs r2, 0x1\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + lsrs r3, r7, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + ldr r1, =0x000060b3\n\ + bl FillBgTilemapBufferRect_Palette0\n\ + ldr r0, =sub_80F7CA8\n\ + movs r1, 0xA\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + mov r0, r10\n\ + ldr r4, [r0]\n\ + ldr r1, [r4, 0x4]\n\ + adds r1, r6, r1\n\ + ldr r0, [r1, 0x8]\n\ + lsls r0, 16\n\ + ldrb r1, [r1, 0x11]\n\ + bl __udivsi3\n\ + mov r1, r8\n\ + adds r1, 0x1\n\ + adds r3, r0, 0\n\ + muls r3, r1\n\ + ldr r0, =0x0000ffff\n\ + ands r0, r3\n\ + ldr r1, =0x00007fff\n\ + cmp r0, r1\n\ + bls _080F7B0A\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + adds r3, r1\n\ +_080F7B0A:\n\ + ldr r1, =gTasks\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + mov r1, r9\n\ + strh r1, [r0, 0x8]\n\ + lsrs r1, r3, 16\n\ + strh r1, [r0, 0xA]\n\ + ldr r1, [r4]\n\ + ldrb r0, [r1, 0x14]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x14]\n\ + ldr r0, [sp, 0x8]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ +_080F7B2E:\n\ + movs r3, 0xC0\n\ + lsls r3, 18\n\ + adds r7, r3\n\ + adds r6, 0x14\n\ + movs r4, 0x1\n\ + add r9, r4\n\ + mov r0, r9\n\ + cmp r0, 0x3\n\ + ble _080F7AAC\n\ + b _080F7C7E\n\ + .pool\n\ +_080F7B5C:\n\ + movs r1, 0\n\ + mov r9, r1\n\ + mov r10, r1\n\ + movs r3, 0xC0\n\ + lsls r3, 19\n\ + str r3, [sp, 0x10]\n\ +_080F7B68:\n\ + ldr r4, =gUnknown_0203A034\n\ + ldr r0, [r4]\n\ + ldr r0, [r0, 0x4]\n\ + add r0, r10\n\ + ldrb r2, [r0, 0x12]\n\ + ldrb r0, [r0, 0x10]\n\ + ldr r1, =0x000060a3\n\ + cmp r0, 0\n\ + beq _080F7B7C\n\ + adds r1, 0x2\n\ +_080F7B7C:\n\ + lsls r0, r2, 24\n\ + asrs r0, 24\n\ + cmp r8, r0\n\ + bge _080F7C64\n\ + mov r3, r8\n\ + lsls r2, r3, 24\n\ + asrs r2, 24\n\ + subs r2, 0x13\n\ + subs r2, r0, r2\n\ + subs r2, 0x1\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + ldr r4, [sp, 0x10]\n\ + lsrs r3, r4, 24\n\ + movs r7, 0x1\n\ + str r7, [sp]\n\ + str r7, [sp, 0x4]\n\ + movs r0, 0x1\n\ + bl FillBgTilemapBufferRect_Palette0\n\ + ldr r0, =sub_80F7CA8\n\ + movs r1, 0xA\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + ldr r0, =gUnknown_0203A034\n\ + ldr r6, [r0]\n\ + ldr r1, [r6, 0x4]\n\ + add r1, r10\n\ + ldr r0, [r1, 0xC]\n\ + lsls r0, 16\n\ + ldrb r1, [r1, 0x12]\n\ + bl __udivsi3\n\ + mov r1, r8\n\ + adds r1, 0x1\n\ + adds r3, r0, 0\n\ + muls r3, r1\n\ + ldr r0, =0x0000ffff\n\ + ands r0, r3\n\ + ldr r1, =0x00007fff\n\ + cmp r0, r1\n\ + bls _080F7BDA\n\ + movs r1, 0x80\n\ + lsls r1, 9\n\ + adds r3, r1\n\ +_080F7BDA:\n\ + ldr r1, =gTasks\n\ + lsls r2, r5, 2\n\ + adds r0, r2, r5\n\ + lsls r0, 3\n\ + adds r4, r0, r1\n\ + mov r0, r9\n\ + strh r0, [r4, 0x8]\n\ + ldr r0, [r6, 0x4]\n\ + add r0, r10\n\ + ldrb r0, [r0, 0x10]\n\ + adds r6, r1, 0\n\ + cmp r0, 0\n\ + beq _080F7C1C\n\ + strh r7, [r4, 0xC]\n\ + ldr r0, [sp, 0xC]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0xC]\n\ + b _080F7C26\n\ + .pool\n\ +_080F7C1C:\n\ + ldr r0, [sp, 0x8]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ +_080F7C26:\n\ + ldr r1, =gUnknown_0203A034\n\ + ldr r0, [r1]\n\ + ldr r0, [r0, 0x4]\n\ + mov r4, r10\n\ + adds r1, r4, r0\n\ + ldrb r0, [r1, 0x10]\n\ + ldr r4, =gUnknown_0203A034\n\ + cmp r0, 0\n\ + beq _080F7C4C\n\ + adds r0, r2, r5\n\ + lsls r0, 3\n\ + adds r0, r6\n\ + lsrs r2, r3, 16\n\ + ldr r1, [r1, 0x8]\n\ + subs r1, r2\n\ + b _080F7C58\n\ + .pool\n\ +_080F7C4C:\n\ + adds r0, r2, r5\n\ + lsls r0, 3\n\ + adds r0, r6\n\ + lsrs r2, r3, 16\n\ + ldr r1, [r1, 0x8]\n\ + adds r1, r2\n\ +_080F7C58:\n\ + strh r1, [r0, 0xA]\n\ + ldr r0, [r4]\n\ + ldr r1, [r0]\n\ + ldrb r0, [r1, 0x14]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x14]\n\ +_080F7C64:\n\ + movs r0, 0x14\n\ + add r10, r0\n\ + ldr r1, [sp, 0x10]\n\ + movs r3, 0xC0\n\ + lsls r3, 18\n\ + adds r1, r3\n\ + str r1, [sp, 0x10]\n\ + movs r4, 0x1\n\ + add r9, r4\n\ + mov r0, r9\n\ + cmp r0, 0x3\n\ + bgt _080F7C7E\n\ + b _080F7B68\n\ +_080F7C7E:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + beq _080F7C8A\n\ + movs r0, 0x16\n\ + bl PlaySE\n\ +_080F7C8A:\n\ + ldr r3, [sp, 0x8]\n\ + cmp r3, 0\n\ + beq _080F7C96\n\ + movs r0, 0x15\n\ + bl PlaySE\n\ +_080F7C96:\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} + +#ifdef NONMATCHING +void sub_80F7CA8(u8 taskId) +{ + register int r4 asm("r4"); + int r9; + u8 r6; + s16 r7; + s16 r12; + int i; + u8 var0; + u16 tileNum; + + r4 = 0; + r9 = 0; + r6 = gTasks[taskId].data[0]; + r7 = gTasks[taskId].data[1]; + r12 = gTasks[taskId].data[2]; + if (r12) + { + if (gUnknown_0203A034->unk0->unkC[r6] <= 0) + r4 = 1; + } + else + { + if (gUnknown_0203A034->unk0->unkC[r6] > 87) + r4 = 1; + } + + if (gUnknown_0203A034->unk0->unkC[r6] == r7) + r9 = 1; + + if (!r9) + { + if (r4) + gUnknown_0203A034->unk0->unkC[r6] = r7; + else if (r12) + gUnknown_0203A034->unk0->unkC[r6] = gUnknown_0203A034->unk0->unkC[r6] - 1; + else + gUnknown_0203A034->unk0->unkC[r6] = gUnknown_0203A034->unk0->unkC[r6] + 1; + } + + if (!r4 && !r9) + { + for (i = 0; i < 11; i++) + { + if (gUnknown_0203A034->unk0->unkC[r6] >= (i + 1) * 8) + { + var0 = 8; + } + else if (gUnknown_0203A034->unk0->unkC[r6] >= i * 8) + { + int var2 = gUnknown_0203A034->unk0->unkC[r6]; + int var1 = var2; + if (var1 < 0) + var1 += 7; + + var0 = var2 - ((var1 >> 3) << 3); + } + else + { + var0 = 0; + } + + if (var0 < 4) + tileNum = 0x504C; + else + tileNum = 0x5057; + + FillBgTilemapBufferRect_Palette0(2, tileNum + var0, i + 7, r6 * 3 + 6, 1, 1); + } + } + + if (r9) + { + gUnknown_0203A034->unk0->unk14--; + DestroyTask(taskId); + } +} +#else +NAKED +void sub_80F7CA8(u8 taskId) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x8\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r4, 0\n\ + mov r9, r4\n\ + ldr r1, =gTasks\n\ + lsls r0, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + ldrb r6, [r0, 0x8]\n\ + ldrh r7, [r0, 0xA]\n\ + ldrh r1, [r0, 0xC]\n\ + mov r12, r1\n\ + movs r2, 0xC\n\ + ldrsh r0, [r0, r2]\n\ + cmp r0, 0\n\ + beq _080F7CF8\n\ + ldr r2, =gUnknown_0203A034\n\ + ldr r0, [r2]\n\ + ldr r0, [r0]\n\ + lsls r1, r6, 1\n\ + adds r0, 0xC\n\ + adds r0, r1\n\ + movs r3, 0\n\ + ldrsh r0, [r0, r3]\n\ + adds r5, r1, 0\n\ + cmp r0, 0\n\ + bgt _080F7D10\n\ + b _080F7D0E\n\ + .pool\n\ +_080F7CF8:\n\ + ldr r2, =gUnknown_0203A034\n\ + ldr r0, [r2]\n\ + ldr r0, [r0]\n\ + lsls r1, r6, 1\n\ + adds r0, 0xC\n\ + adds r0, r1\n\ + movs r3, 0\n\ + ldrsh r0, [r0, r3]\n\ + adds r5, r1, 0\n\ + cmp r0, 0x57\n\ + ble _080F7D10\n\ +_080F7D0E:\n\ + movs r4, 0x1\n\ +_080F7D10:\n\ + ldr r0, [r2]\n\ + ldr r0, [r0]\n\ + adds r0, 0xC\n\ + adds r2, r0, r5\n\ + ldrh r3, [r2]\n\ + movs r0, 0\n\ + ldrsh r1, [r2, r0]\n\ + lsls r0, r7, 16\n\ + asrs r0, 16\n\ + cmp r1, r0\n\ + bne _080F7D2A\n\ + movs r1, 0x1\n\ + mov r9, r1\n\ +_080F7D2A:\n\ + mov r0, r9\n\ + cmp r0, 0\n\ + bne _080F7D4A\n\ + cmp r4, 0\n\ + beq _080F7D3C\n\ + strh r7, [r2]\n\ + b _080F7D4A\n\ + .pool\n\ +_080F7D3C:\n\ + mov r1, r12\n\ + cmp r1, 0\n\ + beq _080F7D46\n\ + subs r0, r3, 0x1\n\ + b _080F7D48\n\ +_080F7D46:\n\ + adds r0, r3, 0x1\n\ +_080F7D48:\n\ + strh r0, [r2]\n\ +_080F7D4A:\n\ + cmp r4, 0\n\ + bne _080F7DC4\n\ + mov r2, r9\n\ + cmp r2, 0\n\ + bne _080F7DCA\n\ + movs r2, 0\n\ +_080F7D56:\n\ + ldr r0, =gUnknown_0203A034\n\ + ldr r0, [r0]\n\ + ldr r0, [r0]\n\ + adds r0, 0xC\n\ + adds r0, r5\n\ + movs r1, 0\n\ + ldrsh r3, [r0, r1]\n\ + adds r0, r2, 0x1\n\ + lsls r1, r0, 3\n\ + adds r4, r0, 0\n\ + cmp r3, r1\n\ + blt _080F7D78\n\ + movs r0, 0x8\n\ + b _080F7D94\n\ + .pool\n\ +_080F7D78:\n\ + lsls r0, r2, 3\n\ + cmp r3, r0\n\ + blt _080F7D92\n\ + adds r0, r3, 0\n\ + cmp r3, 0\n\ + bge _080F7D86\n\ + adds r0, r3, 0x7\n\ +_080F7D86:\n\ + asrs r0, 3\n\ + lsls r0, 3\n\ + subs r0, r3, r0\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + b _080F7D94\n\ +_080F7D92:\n\ + movs r0, 0\n\ +_080F7D94:\n\ + cmp r0, 0x3\n\ + bhi _080F7DA0\n\ + ldr r3, =0x0000504c\n\ + b _080F7DA2\n\ + .pool\n\ +_080F7DA0:\n\ + ldr r3, =0x00005057\n\ +_080F7DA2:\n\ + adds r1, r0, r3\n\ + adds r2, 0x7\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + adds r3, r5, r6\n\ + adds r3, 0x6\n\ + lsls r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + movs r0, 0x2\n\ + lsrs r3, 24\n\ + bl FillBgTilemapBufferRect_Palette0\n\ + adds r2, r4, 0\n\ + cmp r2, 0xA\n\ + ble _080F7D56\n\ +_080F7DC4:\n\ + mov r0, r9\n\ + cmp r0, 0\n\ + beq _080F7DDC\n\ +_080F7DCA:\n\ + ldr r0, =gUnknown_0203A034\n\ + ldr r0, [r0]\n\ + ldr r1, [r0]\n\ + ldrb r0, [r1, 0x14]\n\ + subs r0, 0x1\n\ + strb r0, [r1, 0x14]\n\ + mov r0, r8\n\ + bl DestroyTask\n\ +_080F7DDC:\n\ + add sp, 0x8\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif // NONMATCHING + +static void sub_80F7DF4(void) +{ + gUnknown_0203A034 = AllocZeroed(sizeof(*gUnknown_0203A034)); + gUnknown_0203A034->unk0 = AllocZeroed(sizeof(*gUnknown_0203A034->unk0)); + gUnknown_0203A034->unk4 = AllocZeroed(sizeof(*gUnknown_0203A034->unk4)); + gUnknown_0203A034->unk8 = AllocZeroed(BG_SCREEN_SIZE); + gUnknown_0203A034->unkC[0] = AllocZeroed(BG_SCREEN_SIZE); + gUnknown_0203A034->unkC[1] = AllocZeroed(BG_SCREEN_SIZE); + gUnknown_0203A034->unkC[2] = AllocZeroed(BG_SCREEN_SIZE); + gUnknown_0203A034->unkC[3] = AllocZeroed(BG_SCREEN_SIZE); + gUnknown_0203A034->unk1C = AllocZeroed(0x1000); + AllocateMonSpritesGfx(); +} + +static void sub_80F7E64(void) +{ + FREE_AND_SET_NULL(gUnknown_0203A034->unk0); + FREE_AND_SET_NULL(gUnknown_0203A034->unk4); + FREE_AND_SET_NULL(gUnknown_0203A034->unk8); + FREE_AND_SET_NULL(gUnknown_0203A034->unkC[0]); + FREE_AND_SET_NULL(gUnknown_0203A034->unkC[1]); + FREE_AND_SET_NULL(gUnknown_0203A034->unkC[2]); + FREE_AND_SET_NULL(gUnknown_0203A034->unkC[3]); + FREE_AND_SET_NULL(gUnknown_0203A034->unk1C); + FREE_AND_SET_NULL(gUnknown_0203A034); + FreeMonSpritesGfx(); +} + +static void sub_80F7ED0(int windowId, u8 *str, int arg2) +{ + struct TextPrinterTemplate textPrinter; + textPrinter.currentChar = str; + textPrinter.windowId = windowId; + textPrinter.fontId = 7; + textPrinter.x = arg2; + textPrinter.y = 2; + textPrinter.currentX = arg2; + textPrinter.currentY = 2; + textPrinter.letterSpacing = 0; + textPrinter.lineSpacing = 0; + textPrinter.unk = 0; + textPrinter.fgColor = 1; + textPrinter.bgColor = 0; + textPrinter.shadowColor = 8; + AddTextPrinter(&textPrinter, 0, NULL); + PutWindowTilemap(windowId); +} + +void sub_80F7F30(void) +{ + u8 result = sub_80DAE0C(&gPlayerParty[gContestMonPartyIndex]); + if (result) + { + sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank); + sub_80DB09C(gSpecialVar_ContestCategory); + } + + gSpecialVar_Result = result; +} + +u16 sub_80F7F7C(void) +{ + u16 result = 0; + struct Pokemon *mon = &gPlayerParty[gContestMonPartyIndex]; + switch (gSpecialVar_ContestCategory) + { + case CONTEST_CATEGORY_COOL: + if (GetMonData(mon, MON_DATA_COOL_RIBBON) > gSpecialVar_ContestRank) + result = 1; + break; + case CONTEST_CATEGORY_BEAUTY: + if (GetMonData(mon, MON_DATA_BEAUTY_RIBBON) > gSpecialVar_ContestRank) + result = 1; + break; + case CONTEST_CATEGORY_CUTE: + if (GetMonData(mon, MON_DATA_CUTE_RIBBON) > gSpecialVar_ContestRank) + result = 1; + break; + case CONTEST_CATEGORY_SMART: + if (GetMonData(mon, MON_DATA_SMART_RIBBON) > gSpecialVar_ContestRank) + result = 1; + break; + case CONTEST_CATEGORY_TOUGH: + if (GetMonData(mon, MON_DATA_TOUGH_RIBBON) > gSpecialVar_ContestRank) + result = 1; + break; + } + + return result; +} + +void sub_80F7FFC(void) +{ + u8 ribbonData; + + if (gContestFinalStandings[gContestPlayerMonIndex] != 0) + return; + + switch (gSpecialVar_ContestCategory) + { + case CONTEST_CATEGORY_COOL: + ribbonData = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); + if (ribbonData <= gSpecialVar_ContestRank && ribbonData < 4) + { + ribbonData++; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON, &ribbonData); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) + sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); + } + break; + case CONTEST_CATEGORY_BEAUTY: + ribbonData = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); + if (ribbonData <= gSpecialVar_ContestRank && ribbonData < 4) + { + ribbonData++; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON, &ribbonData); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) + sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); + } + break; + case CONTEST_CATEGORY_CUTE: + ribbonData = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); + if (ribbonData <= gSpecialVar_ContestRank && ribbonData < 4) + { + ribbonData++; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON, &ribbonData); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) + sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); + } + break; + case CONTEST_CATEGORY_SMART: + ribbonData = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); + if (ribbonData <= gSpecialVar_ContestRank && ribbonData < 4) + { + ribbonData++; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON, &ribbonData); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) + sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); + } + break; + case CONTEST_CATEGORY_TOUGH: + ribbonData = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); + if (ribbonData <= gSpecialVar_ContestRank && ribbonData < 4) + { + ribbonData++; + SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON, &ribbonData); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) + sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); + } + break; + } +} + +void sub_80F8264(void) +{ + StringCopy(gStringVar1, gContestMons[gSpecialVar_0x8006].trainerName); + sub_81DB5AC(gStringVar1); +} + +void sub_80F8290(void) +{ + StringCopy(gStringVar3, gContestMons[gSpecialVar_0x8006].nickname); +} + +void sub_80F82B4(void) +{ + u8 i; + u8 count; + + for (i = 0, count = 0; i < 4; i++) + { + if (gContestMonConditions[gSpecialVar_0x8006] < gContestMonConditions[i]) + count++; + } + + gSpecialVar_0x8004 = count; +} + +void sub_80F82FC(void) +{ + gSpecialVar_0x8004 = gContestMonConditions[gSpecialVar_0x8006]; +} + +void sub_80F831C(void) +{ + u8 i; + + for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + ; + + gSpecialVar_0x8005 = i; +} + +void sub_80F834C(void) +{ + u8 i; + + for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + ; + + StringCopy(gStringVar3, gContestMons[i].trainerName); + sub_81DB5AC(gStringVar3); +} + +void sub_80F8390(void) +{ + u8 i; + + for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + ; + + StringCopy(gStringVar1, gContestMons[i].nickname); +} + +void sub_80F83D0(void) +{ + SetMainCallback2(sub_80D7B24); +} + +static void sub_80F83E0(u8 taskId) +{ + if (!gPaletteFade.active) + { + DestroyTask(taskId); + SetMainCallback2(sub_80F83D0); + } +} + +void sub_80F840C(void) +{ + ScriptContext2_Enable(); + CreateTask(sub_80F83E0, 10); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); +} + +void sub_80F8438(void) +{ + gSpecialVar_0x8004 = gContestMons[gSpecialVar_0x8006].species; +} + +static void sub_80F8458(u8 taskId) +{ + if (!gPaletteFade.active) + { + DestroyTask(taskId); + SetMainCallback2(sub_80F5B00); + } +} + +void sub_80F8484(void) +{ + ScriptContext2_Enable(); + CreateTask(sub_80F8458, 10); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); +} + +void sub_80F84B0(void) +{ + gSpecialVar_0x8004 = gContestPlayerMonIndex; +} + +void sub_80F84C4(u8 taskId) +{ + u8 newTaskId; + ScriptContext2_Enable(); + newTaskId = CreateTask(sub_80FC580, 0); + SetTaskFuncWithFollowupFunc(newTaskId, sub_80FC580, sub_80F8508); + gTasks[newTaskId].data[9] = taskId; +} + +static void sub_80F8508(u8 taskId) +{ + if (gIsLinkContest & 0x4) + { + sub_80DA8C8(gContestMonPartyIndex); + SetTaskFuncWithFollowupFunc(taskId, sub_80FC6BC, sub_80F8568); + } + else + { + sub_80DA8C8(gContestMonPartyIndex); + gTasks[taskId].func = sub_81D9DE4; + } +} + +static void sub_80F8568(u8 taskId) +{ + SetTaskFuncWithFollowupFunc(taskId, sub_80FC804, sub_80F8584); +} + +static void sub_80F8584(u8 taskId) +{ + SetTaskFuncWithFollowupFunc(taskId, sub_80FCE48, sub_80F85A0); +} + +static void sub_80F85A0(u8 taskId) +{ + SetTaskFuncWithFollowupFunc(taskId, sub_80FC894, sub_80F85BC); +} + +#ifdef NONMATCHING +static void sub_80F85BC(u8 taskId) +{ + u32 i; + u8 sp0[4]; + u8 sp4[4]; + + memset(sp0, 0, sizeof(sp0)); + memset(sp4, 0, sizeof(sp4)); + + for (i = 0; i < gNumLinkContestPlayers; i++) + sp0[i] = gTasks[taskId].data[i + 1]; + + for (i = 0; i < gNumLinkContestPlayers; i++) + { + if (sp0[0] != sp0[i + 1]) + break; + } + + if (i == gNumLinkContestPlayers) + gSpecialVar_0x8004 = 0; + else + gSpecialVar_0x8004 = 1; + + for (i = 0; i < gNumLinkContestPlayers; i++) + sp4[i] = gTasks[taskId].data[i + 5]; + + gUnknown_02039F2B = sub_80F86E0(sp4); + sub_80DB09C(gSpecialVar_ContestCategory); + SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_80F86B8); +} +#else +NAKED +static void sub_80F85BC(u8 taskId) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x8\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + movs r3, 0\n\ + ldr r5, =gNumLinkContestPlayers\n\ + mov r12, r5\n\ + ldr r0, =gSpecialVar_0x8004\n\ + mov r9, r0\n\ + add r1, sp, 0x4\n\ + mov r8, r1\n\ + ldrb r0, [r5]\n\ + cmp r3, r0\n\ + bcs _080F8606\n\ + lsls r0, r6, 2\n\ + adds r0, r6\n\ + lsls r4, r0, 3\n\ + ldr r7, =gTasks + 0x8\n\ +_080F85EC:\n\ + mov r1, sp\n\ + adds r2, r1, r3\n\ + adds r1, r3, 0x1\n\ + lsls r0, r1, 1\n\ + adds r0, r4\n\ + adds r0, r7\n\ + ldrh r0, [r0]\n\ + strb r0, [r2]\n\ + lsls r1, 24\n\ + lsrs r3, r1, 24\n\ + ldrb r0, [r5]\n\ + cmp r3, r0\n\ + bcc _080F85EC\n\ +_080F8606:\n\ + movs r3, 0\n\ + mov r1, r12\n\ + ldrb r0, [r1]\n\ + cmp r3, r0\n\ + bcs _080F862A\n\ + adds r4, r0, 0\n\ + mov r2, sp\n\ +_080F8614:\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, r4\n\ + bcs _080F862A\n\ + mov r0, sp\n\ + adds r1, r0, r3\n\ + ldrb r0, [r2]\n\ + ldrb r1, [r1]\n\ + cmp r0, r1\n\ + beq _080F8614\n\ +_080F862A:\n\ + mov r1, r12\n\ + ldrb r1, [r1]\n\ + cmp r3, r1\n\ + bne _080F8644\n\ + movs r0, 0\n\ + b _080F8646\n\ + .pool\n\ +_080F8644:\n\ + movs r0, 0x1\n\ +_080F8646:\n\ + mov r1, r9\n\ + strh r0, [r1]\n\ + movs r3, 0\n\ + mov r4, r12\n\ + ldrb r0, [r4]\n\ + cmp r3, r0\n\ + bcs _080F8678\n\ + mov r5, r8\n\ + lsls r0, r6, 2\n\ + adds r0, r6\n\ + lsls r2, r0, 3\n\ + ldr r7, =gTasks + 0x8\n\ +_080F865E:\n\ + adds r1, r5, r3\n\ + adds r0, r3, 0x5\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + adds r0, r7\n\ + ldrh r0, [r0]\n\ + strb r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + ldrb r1, [r4]\n\ + cmp r3, r1\n\ + bcc _080F865E\n\ +_080F8678:\n\ + mov r0, r8\n\ + bl sub_80F86E0\n\ + ldr r1, =gUnknown_02039F2B\n\ + strb r0, [r1]\n\ + ldr r0, =gSpecialVar_ContestCategory\n\ + ldrb r0, [r0]\n\ + bl sub_80DB09C\n\ + ldr r1, =sub_80FCF40\n\ + ldr r2, =sub_80F86B8\n\ + adds r0, r6, 0\n\ + bl SetTaskFuncWithFollowupFunc\n\ + add sp, 0x8\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool"); +} +#endif // NONMATCHING + +static void sub_80F86B8(u8 taskId) +{ + sub_80DCE58(0); + SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714); +} + +u8 sub_80F86E0(u8 *arg0) +{ + int i; + u8 result = 0; + + for (i = 1; i < gNumLinkContestPlayers; i++) + { + if (arg0[result] < arg0[i]) + result = i; + } + + return result; +} + +void sub_80F8714(u8 taskId) +{ + int i; + + if (gSpecialVar_0x8004 == 1) + { + if (IsLinkTaskFinished()) + gTasks[taskId].func = sub_80F878C; + } + else + { + for (i = 0; i < 4; i++) + StringGetEnd10(gContestMons[i].nickname); + + DestroyTask(taskId); + SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + ScriptContext2_Disable(); + EnableBothScriptContexts(); + } +} + +static void sub_80F878C(u8 taskId) +{ + sub_800AC34(); + gTasks[taskId].func = sub_80F87B4; +} + +static void sub_80F87B4(u8 taskId) +{ + if (!gReceivedRemoteLinkPlayers) + { + DestroyTask(taskId); + ScriptContext2_Disable(); + EnableBothScriptContexts(); + } +} -- cgit v1.2.3 From b105d20d1e0297d0c858fe99a0946e5c07da81c1 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 21 Feb 2019 17:40:20 -0600 Subject: Decompile chunk of easy_chat.c --- src/easy_chat.c | 2040 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 1722 insertions(+), 318 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 7158253d1..5f5d20e16 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,20 +2,24 @@ // Includes #include "global.h" #include "alloc.h" -#include "constants/songs.h" -#include "sound.h" -#include "overworld.h" -#include "task.h" -#include "main.h" -#include "link.h" +#include "dewford_trend.h" +#include "dynamic_placeholder_text_util.h" +#include "easy_chat.h" +#include "event_data.h" #include "field_weather.h" -#include "window.h" +#include "international_string_util.h" +#include "link.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" #include "palette.h" -#include "event_data.h" -#include "easy_chat.h" +#include "sound.h" #include "string_util.h" - -// Static type declarations +#include "strings.h" +#include "task.h" +#include "window.h" +#include "constants/flags.h" +#include "constants/songs.h" #define EZCHAT_TASK_STATE 0 #define EZCHAT_TASK_KIND 1 @@ -24,38 +28,52 @@ #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -// Static RAM declarations - -EWRAM_DATA struct -{ - u8 kind; - u8 unk_01; - u8 unk_02; - u8 unk_03; - u8 unk_04; - s8 unk_05; - s8 unk_06; - u8 unk_07; - u8 unk_08; - u8 unk_09; - u8 unk_0a; - u8 unk_0b; - u8 unk_0c; - u8 unk_0d; - u8 unk_0e[0x4]; - u8 sizeParam; - u8 unk_13; - u8 unk_14[0x20]; - const u8 *src; - const u16 *words; - u16 ecWordBuffer[9]; -} *gUnknown_0203A118 = NULL; +struct EasyChatScreenTemplate +{ + u8 unk_00; + u8 numColumns; + u8 numRows; + u8 unk_03_0:7; + u8 unk_03_7:1; + const u8 *titleText; + const u8 *instructionsText1; + const u8 *instructionsText2; + const u8 *confirmText1; + const u8 *confirmText2; +}; + +struct EasyChatScreen +{ + /*0x00*/ u8 kind; + /*0x01*/ u8 templateId; + /*0x02*/ u8 numColumns; + /*0x03*/ u8 numRows; + /*0x04*/ u8 state; + /*0x05*/ s8 mainCursorColumn; + /*0x06*/ s8 mainCursorRow; + /*0x07*/ u8 unk_07; + /*0x08*/ u8 unk_08; + /*0x09*/ u8 unk_09; + /*0x0A*/ s8 unk_0a; + /*0x0B*/ s8 unk_0b; + /*0x0C*/ u8 unk_0c; + /*0x0D*/ u8 unk_0d; + /*0x0E*/ u8 unk_0e; + /*0x0F*/ u8 unk_0f; + /*0x10*/ s8 unk_10; + /*0x11*/ s8 unk_11; + /*0x12*/ u8 sizeParam; + /*0x13*/ u8 unk_13; + /*0x14*/ u8 unk_14[0x20]; + /*0x34*/ const u8 *titleText; + /*0x38*/ u16 *words; + /*0x3C*/ u16 ecWordBuffer[9]; +}; +EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA void *gUnknown_0203A11C = 0; EWRAM_DATA void *gUnknown_0203A120 = 0; -// Static ROM declarations - static void sub_811A2C0(u8); static void sub_811A278(void); static bool8 sub_811A428(u8); @@ -68,23 +86,23 @@ static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); static u16 sub_811AB68(void); -u16 sub_811ACDC(void); -u16 sub_811AE44(void); -u16 sub_811AF00(void); -u16 sub_811AF8C(void); -u16 sub_811AFEC(void); -u16 sub_811B040(void); -u16 sub_811B08C(void); -u16 sub_811B0BC(void); -u16 sub_811B0E8(void); -u16 sub_811B0F8(void); -u16 sub_811B150(void); +static u16 sub_811ACDC(void); +static u16 sub_811AE44(void); +static u16 sub_811AF00(void); +static u16 sub_811AF8C(void); +static u16 sub_811AFEC(void); +static u16 sub_811B040(void); +static u16 sub_811B08C(void); +static u16 sub_811B0BC(void); +static u16 sub_811B0E8(void); +static u16 sub_811B0F8(void); +static u16 sub_811B150(void); u16 sub_811B1B4(void); u8 sub_811BA68(void); -u8 sub_811BCC8(u8); -void sub_811BDF0(u8 *); +static u8 sub_811BCC8(u8); +static void sub_811BDF0(u8 *); void sub_811BF78(void); -bool8 sub_811BF8C(void); +static bool8 sub_811BF8C(void); bool8 sub_811BFA4(void); void sub_811C13C(void); /*static*/ void sub_811C158(u16); @@ -92,23 +110,60 @@ void sub_811C13C(void); bool8 sub_811F28C(void); void sub_811F2B8(void); u8 sub_811F3AC(void); - -// .rodata +int sub_811BA3C(void); +int sub_811B184(void); +int sub_811B264(void); +static int sub_811B32C(void); +static int sub_811B2B0(void); +static int sub_811B33C(void); +static int sub_811B368(void); +static u16 sub_811B528(int); +static u16 sub_811B794(u32); +static int sub_811B394(void); +static u8 sub_811B2A4(void); +static void sub_811B3E4(void); +static void sub_811BE9C(void); +static int sub_811B4EC(void); +static void sub_811B418(void); +static void sub_811B454(void); +static int sub_811BD64(void); +static int sub_811BDB0(void); +static int sub_811BD2C(void); +int sub_811BCF4(void); +static u16 sub_811B8E8(void); +int sub_811F3B8(u8); +void sub_811F548(int, u16); +static int sub_811B908(void); +u16 sub_811F5B0(void); +static void sub_811B488(u16); +u16 sub_811B940(void); +u16 sub_811F578(u16); +int sub_811BF88(int); +static u16 sub_811B8C8(void); +static int sub_811B568(u32); +static int sub_811B634(u32); +static int sub_811B6C4(u32); +static void sub_811B978(void); +static void sub_811B744(void); +static u8 sub_811B9C8(void); +static void sub_811B768(void); +static u8 sub_811B960(u8); +static void sub_811B9A0(void); +static u8 sub_811BA1C(void); +static int sub_811BF20(void); +static u16 sub_811BF40(void); +u8 sub_811CE94(void); +u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { u16 word; MainCallback callback; } gUnknown_08597530[4]; -extern const struct { - u8 unk_00; - u8 unk_01; - u8 unk_02; - u8 unk_03; - u8 *data; - u8 filler_08[16]; -} gUnknown_08597550[]; -// .text +extern const struct EasyChatScreenTemplate gEasyChatScreenTemplates[21]; +extern const u8 gUnknown_08597748[][7]; +extern const u16 gUnknown_08597764[]; +extern const u16 gUnknown_0859776C[][2]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -444,66 +499,66 @@ void sub_811A938(void) static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) { - u8 r6; + u8 templateId; int i; - gUnknown_0203A118 = malloc(sizeof(*gUnknown_0203A118)); - if (gUnknown_0203A118 == NULL) + gEasyChatScreen = malloc(sizeof(*gEasyChatScreen)); + if (gEasyChatScreen == NULL) { return FALSE; } - gUnknown_0203A118->kind = kind; - gUnknown_0203A118->words = words; - gUnknown_0203A118->unk_05 = 0; - gUnknown_0203A118->unk_06 = 0; - gUnknown_0203A118->unk_09 = 0; - gUnknown_0203A118->sizeParam = sizeParam; - gUnknown_0203A118->unk_13 = 0; - r6 = sub_811BCC8(kind); + gEasyChatScreen->kind = kind; + gEasyChatScreen->words = words; + gEasyChatScreen->mainCursorColumn = 0; + gEasyChatScreen->mainCursorRow = 0; + gEasyChatScreen->unk_09 = 0; + gEasyChatScreen->sizeParam = sizeParam; + gEasyChatScreen->unk_13 = 0; + templateId = sub_811BCC8(kind); if (kind == 0x10) { - sub_811BDF0(gUnknown_0203A118->unk_14); - gUnknown_0203A118->src = gUnknown_0203A118->unk_14; - gUnknown_0203A118->unk_04 = 7; + sub_811BDF0(gEasyChatScreen->unk_14); + gEasyChatScreen->titleText = gEasyChatScreen->unk_14; + gEasyChatScreen->state = 7; } else { - gUnknown_0203A118->unk_04 = 0; - gUnknown_0203A118->src = gUnknown_08597550[r6].data; + gEasyChatScreen->state = 0; + gEasyChatScreen->titleText = gEasyChatScreenTemplates[templateId].titleText; } - gUnknown_0203A118->unk_02 = gUnknown_08597550[r6].unk_01; - gUnknown_0203A118->unk_03 = gUnknown_08597550[r6].unk_02; - gUnknown_0203A118->unk_07 = gUnknown_0203A118->unk_02 * gUnknown_0203A118->unk_03; - gUnknown_0203A118->unk_01 = r6; - if (gUnknown_0203A118->unk_07 > 9) + gEasyChatScreen->numColumns = gEasyChatScreenTemplates[templateId].numColumns; + gEasyChatScreen->numRows = gEasyChatScreenTemplates[templateId].numRows; + gEasyChatScreen->unk_07 = gEasyChatScreen->numColumns * gEasyChatScreen->numRows; + gEasyChatScreen->templateId = templateId; + if (gEasyChatScreen->unk_07 > 9) { - gUnknown_0203A118->unk_07 = 9; + gEasyChatScreen->unk_07 = 9; } if (words != NULL) { - CpuCopy16(words, gUnknown_0203A118->ecWordBuffer, gUnknown_0203A118->unk_07 * sizeof(u16)); + CpuCopy16(words, gEasyChatScreen->ecWordBuffer, gEasyChatScreen->unk_07 * sizeof(u16)); } else { - for (i = 0; i < gUnknown_0203A118->unk_07; i ++) + for (i = 0; i < gEasyChatScreen->unk_07; i ++) { - gUnknown_0203A118->ecWordBuffer[i] = -1; + gEasyChatScreen->ecWordBuffer[i] = -1; } - gUnknown_0203A118->words = gUnknown_0203A118->ecWordBuffer; + gEasyChatScreen->words = gEasyChatScreen->ecWordBuffer; } - gUnknown_0203A118->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + gEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; return TRUE; } static void EasyChat_FreeResources(void) { - if (gUnknown_0203A118 != NULL) - FREE_AND_SET_NULL(gUnknown_0203A118); + if (gEasyChatScreen != NULL) + FREE_AND_SET_NULL(gEasyChatScreen); } static u16 sub_811AAAC(void) { - switch (gUnknown_0203A118->unk_04) + switch (gEasyChatScreen->state) { case 0: return sub_811AB68(); @@ -549,263 +604,1612 @@ static u16 sub_811AB68(void) if (gMain.newKeys & A_BUTTON) { sub_811BF78(); - gUnknown_0203A118->unk_04 = 2; - gUnknown_0203A118->unk_0a = 0; - gUnknown_0203A118->unk_0b = 0; - gUnknown_0203A118->unk_0c = 0; + gEasyChatScreen->state = 2; + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b = 0; + gEasyChatScreen->unk_0c = 0; return 9; } else if (gMain.newKeys & B_BUTTON) - { // FIXME: See note below + { return sub_811B150(); } else if (gMain.newKeys & START_BUTTON) - { // FIXME: See note below + { return sub_811B1B4(); } else if (gMain.newKeys & DPAD_UP) { - gUnknown_0203A118->unk_06--; + gEasyChatScreen->mainCursorRow--; } else if (gMain.newKeys & DPAD_LEFT) - { // FIXME: See note below - gUnknown_0203A118->unk_05--; + { + gEasyChatScreen->mainCursorColumn--; } else if (gMain.newKeys & DPAD_DOWN) - { // FIXME: See note below - gUnknown_0203A118->unk_06++; + { + gEasyChatScreen->mainCursorRow++; } else if (gMain.newKeys & DPAD_RIGHT) - { // FIXME: See note below - gUnknown_0203A118->unk_05++; + { + gEasyChatScreen->mainCursorColumn++; } else { return 0; } - if (gUnknown_0203A118->unk_06 < 0) + + if (gEasyChatScreen->mainCursorRow < 0) + gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; + + if (gEasyChatScreen->mainCursorRow > gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + gEasyChatScreen->mainCursorRow = 0; + + if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + { + if (gEasyChatScreen->mainCursorColumn > 2) + gEasyChatScreen->mainCursorColumn = 2; + + gEasyChatScreen->state = 1; + return 3; + } + + if (gEasyChatScreen->mainCursorColumn < 0) + gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + + if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) + gEasyChatScreen->mainCursorColumn = 0; + + if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) + gEasyChatScreen->mainCursorColumn = 0; + + return 2; +} +#else +NAKED +static u16 sub_811AB68(void) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0811ABB8\n\ + bl sub_811BF78\n\ + ldr r1, =gEasyChatScreen\n\ + ldr r3, [r1]\n\ + movs r2, 0\n\ + movs r0, 0x2\n\ + strb r0, [r3, 0x4]\n\ + ldr r0, [r1]\n\ + strb r2, [r0, 0xA]\n\ + ldr r0, [r1]\n\ + strb r2, [r0, 0xB]\n\ + ldr r0, [r1]\n\ + strb r2, [r0, 0xC]\n\ + movs r0, 0x9\n\ + b RETURN\n\ + .pool\n\ +_0811AB9C:\n\ + movs r0, 0x20\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0811AC68_dpad_left\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0811AC58_dpad_down\n\ + movs r0, 0x10\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0811AC48_dpad_right\n\ + movs r0, 0\n\ + b RETURN\n\ +_0811ABB8:\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0811AC78_b_button\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0811AC7E_start_button\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0811AB9C\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x6]\n\ + subs r0, 0x1\n\ +_0811ABD8:\n\ + strb r0, [r1, 0x6]\n\ +_0811ABDA:\n\ + adds r7, r2, 0\n\ + adds r4, r7, 0\n\ + ldr r2, [r4]\n\ + movs r0, 0x6\n\ + ldrsb r0, [r2, r0]\n\ + ldr r6, =gEasyChatScreenTemplates\n\ + cmp r0, 0\n\ + bge _0811ABF8\n\ + ldrb r0, [r2, 0x1]\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r6\n\ + ldrb r0, [r1, 0x2]\n\ + strb r0, [r2, 0x6]\n\ +_0811ABF8:\n\ + ldr r3, [r4]\n\ + movs r2, 0x6\n\ + ldrsb r2, [r3, r2]\n\ + adds r5, r6, 0\n\ + ldrb r1, [r3, 0x1]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r0, r5\n\ + ldrb r0, [r0, 0x2]\n\ + cmp r2, r0\n\ + ble _0811AC14\n\ + movs r0, 0\n\ + strb r0, [r3, 0x6]\n\ +_0811AC14:\n\ + ldr r3, [r4]\n\ + movs r2, 0x6\n\ + ldrsb r2, [r3, r2]\n\ + ldrb r1, [r3, 0x1]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r1, r0, r5\n\ + ldrb r0, [r1, 0x2]\n\ + cmp r2, r0\n\ + bne _0811AC88\n\ + movs r0, 0x5\n\ + ldrsb r0, [r3, r0]\n\ + cmp r0, 0x2\n\ + ble _0811AC36\n\ + movs r0, 0x2\n\ + strb r0, [r3, 0x5]\n\ +_0811AC36:\n\ + ldr r1, [r4]\n\ + movs r0, 0x1\n\ + strb r0, [r1, 0x4]\n\ + movs r0, 0x3\n\ + b RETURN\n\ + .pool\n\ +_0811AC48_dpad_right:\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x5]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x5]\n\ + b _0811ABDA\n\ + .pool\n\ +_0811AC58_dpad_down:\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x6]\n\ + adds r0, 0x1\n\ + b _0811ABD8\n\ + .pool\n\ +_0811AC68_dpad_left:\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x5]\n\ + subs r0, 0x1\n\ + strb r0, [r1, 0x5]\n\ + b _0811ABDA\n\ + .pool\n\ +_0811AC78_b_button:\n\ + bl sub_811B150\n\ + b _0811AC82\n\ +_0811AC7E_start_button:\n\ + bl sub_811B1B4\n\ +_0811AC82:\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + b RETURN\n\ +_0811AC88:\n\ + movs r0, 0x5\n\ + ldrsb r0, [r3, r0]\n\ + cmp r0, 0\n\ + bge _0811AC96\n\ + ldrb r0, [r1, 0x1]\n\ + subs r0, 0x1\n\ + strb r0, [r3, 0x5]\n\ +_0811AC96:\n\ + ldr r3, [r4]\n\ + movs r2, 0x5\n\ + ldrsb r2, [r3, r2]\n\ + ldrb r1, [r3, 0x1]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r0, r6\n\ + ldrb r0, [r0, 0x1]\n\ + cmp r2, r0\n\ + blt _0811ACB0\n\ + movs r0, 0\n\ + strb r0, [r3, 0x5]\n\ +_0811ACB0:\n\ + bl sub_811AB44\n\ + cmp r0, 0\n\ + beq _0811ACCA\n\ + ldr r2, [r7]\n\ + ldr r0, [r2, 0x4]\n\ + ldr r1, =0x00ffff00\n\ + ands r0, r1\n\ + ldr r1, =0x00040100\n\ + cmp r0, r1\n\ + bne _0811ACCA\n\ + movs r0, 0\n\ + strb r0, [r2, 0x5]\n\ +_0811ACCA:\n\ + movs r0, 0x2\n\ +RETURN:\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .pool"); +} +#endif // NONMATCHING + +#ifdef NONMATCHING +static u16 sub_811ACDC(void) +{ + int numFooterColumns; + + if (gMain.newKeys & A_BUTTON) { - gUnknown_0203A118->unk_06 = gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02; + switch (gEasyChatScreen->mainCursorColumn) + { + case 0: + return sub_811B184(); + case 1: + return sub_811B150(); + case 2: + return sub_811B1B4(); + case 3: + return sub_811B264(); + } } - if (gUnknown_0203A118->unk_06 > gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02) + + if (gMain.newKeys & B_BUTTON) + return sub_811B150(); + else if (gMain.newKeys & START_BUTTON) + return sub_811B1B4(); + else if (gMain.newKeys & DPAD_UP) + gEasyChatScreen->mainCursorRow--; + else if (gMain.newKeys & DPAD_LEFT) + gEasyChatScreen->mainCursorColumn--; + else if (gMain.newKeys & DPAD_DOWN) + gEasyChatScreen->mainCursorRow = 0; + else if (gMain.newKeys & DPAD_RIGHT) + gEasyChatScreen->mainCursorColumn++; + else + return 0; + + if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) { - gUnknown_0203A118->unk_06 = 0; + numFooterColumns = sub_811BA3C() ? 4 : 3; + if (gEasyChatScreen->mainCursorColumn < 0) + gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; + + if (gEasyChatScreen->mainCursorColumn >= numFooterColumns) + gEasyChatScreen->mainCursorColumn = 0; + + return 3; } - if (gUnknown_0203A118->unk_06 == gUnknown_08597550[gUnknown_0203A118->unk_01].unk_02) + + if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) + gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + + if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) + gEasyChatScreen->mainCursorColumn = 0; + + gEasyChatScreen->state = 0; + return 2; +} +#else +NAKED +static u16 sub_811ACDC(void) +{ + asm_unified("\n\ + push {r4-r6,lr}\n\ + ldr r2, =gMain\n\ + ldrh r1, [r2, 0x2E]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0811AD4A\n\ + ldr r0, =gEasyChatScreen\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0x5]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + cmp r0, 0x1\n\ + beq _0811AD3E\n\ + b _0811AD24\n\ + .pool\n\ +_0811AD04:\n\ + movs r0, 0x20\n\ + ands r0, r2\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0\n\ + bne _0811ADE0\n\ + movs r0, 0x80\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _0811ADD0\n\ + movs r0, 0x10\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _0811ADC0\n\ + movs r0, 0\n\ + b _0811AE32\n\ +_0811AD24:\n\ + cmp r0, 0x1\n\ + bgt _0811AD2E\n\ + cmp r0, 0\n\ + beq _0811AD38\n\ + b _0811AD4A\n\ +_0811AD2E:\n\ + cmp r0, 0x2\n\ + beq _0811ADF6\n\ + cmp r0, 0x3\n\ + beq _0811AD44\n\ + b _0811AD4A\n\ +_0811AD38:\n\ + bl sub_811B184\n\ + b _0811ADFA\n\ +_0811AD3E:\n\ + bl sub_811B150\n\ + b _0811ADFA\n\ +_0811AD44:\n\ + bl sub_811B264\n\ + b _0811ADFA\n\ +_0811AD4A:\n\ + ldrh r2, [r2, 0x2E]\n\ + movs r0, 0x2\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _0811ADF0\n\ + movs r0, 0x8\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + bne _0811ADF6\n\ + movs r0, 0x40\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0811AD04\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x6]\n\ + subs r0, 0x1\n\ + strb r0, [r1, 0x6]\n\ +_0811AD6E:\n\ + adds r6, r2, 0\n\ +_0811AD70:\n\ + adds r5, r6, 0\n\ + ldr r4, [r5]\n\ + movs r3, 0x6\n\ + ldrsb r3, [r4, r3]\n\ + ldr r2, =gEasyChatScreenTemplates\n\ + ldrb r1, [r4, 0x1]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r1, r0, r2\n\ + ldrb r0, [r1, 0x2]\n\ + cmp r3, r0\n\ + bne _0811AE00\n\ + bl sub_811BA3C\n\ + movs r2, 0x3\n\ + cmp r0, 0\n\ + beq _0811AD96\n\ + movs r2, 0x4\n\ +_0811AD96:\n\ + ldr r1, [r5]\n\ + movs r0, 0x5\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, 0\n\ + bge _0811ADA4\n\ + subs r0, r2, 0x1\n\ + strb r0, [r1, 0x5]\n\ +_0811ADA4:\n\ + ldr r1, [r5]\n\ + movs r0, 0x5\n\ + ldrsb r0, [r1, r0]\n\ + cmp r0, r2\n\ + blt _0811ADB2\n\ + movs r0, 0\n\ + strb r0, [r1, 0x5]\n\ +_0811ADB2:\n\ + movs r0, 0x3\n\ + b _0811AE32\n\ + .pool\n\ +_0811ADC0:\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x5]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x5]\n\ + b _0811AD6E\n\ + .pool\n\ +_0811ADD0:\n\ + ldr r1, =gEasyChatScreen\n\ + ldr r0, [r1]\n\ + strb r3, [r0, 0x6]\n\ + adds r6, r1, 0\n\ + b _0811AD70\n\ + .pool\n\ +_0811ADE0:\n\ + ldr r2, =gEasyChatScreen\n\ + ldr r1, [r2]\n\ + ldrb r0, [r1, 0x5]\n\ + subs r0, 0x1\n\ + strb r0, [r1, 0x5]\n\ + b _0811AD6E\n\ + .pool\n\ +_0811ADF0:\n\ + bl sub_811B150\n\ + b _0811ADFA\n\ +_0811ADF6:\n\ + bl sub_811B1B4\n\ +_0811ADFA:\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + b _0811AE32\n\ +_0811AE00:\n\ + movs r0, 0x5\n\ + ldrsb r0, [r4, r0]\n\ + ldrb r1, [r1, 0x1]\n\ + cmp r0, r1\n\ + blt _0811AE0E\n\ + subs r0, r1, 0x1\n\ + strb r0, [r4, 0x5]\n\ +_0811AE0E:\n\ + bl sub_811AB44\n\ + cmp r0, 0\n\ + beq _0811AE28\n\ + ldr r2, [r6]\n\ + ldr r0, [r2, 0x4]\n\ + ldr r1, =0x00ffff00\n\ + ands r0, r1\n\ + ldr r1, =0x00040100\n\ + cmp r0, r1\n\ + bne _0811AE28\n\ + movs r0, 0\n\ + strb r0, [r2, 0x5]\n\ +_0811AE28:\n\ + ldr r0, =gEasyChatScreen\n\ + ldr r1, [r0]\n\ + movs r0, 0\n\ + strb r0, [r1, 0x4]\n\ + movs r0, 0x2\n\ +_0811AE32:\n\ + pop {r4-r6}\n\ + pop {r1}\n\ + bx r1\n\ + .pool"); +} +#endif // NONMATCHING + +static u16 sub_811AE44(void) +{ + if (gMain.newKeys & B_BUTTON) + return sub_811B32C(); + + if (gMain.newKeys & A_BUTTON) { - if (gUnknown_0203A118->unk_05 > 2) + if (gEasyChatScreen->unk_0a != -1) + return sub_811B2B0(); + + switch (gEasyChatScreen->unk_0b) { - gUnknown_0203A118->unk_05 = 2; + case 0: + return sub_811B33C(); + case 1: + return sub_811B368(); + case 2: + return sub_811B32C(); } - gUnknown_0203A118->unk_04 = 1; - return 3; } - /* - * FIXME: right, down, left, b, and start - * should be inserted here, but aren't - */ - if (gUnknown_0203A118->unk_05 < 0) + + if (gMain.newKeys & SELECT_BUTTON) + return sub_811B33C(); + + if (gMain.newAndRepeatedKeys & DPAD_UP) + return sub_811B528(2); + + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + return sub_811B528(3); + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + return sub_811B528(1); + + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + return sub_811B528(0); + + return 0; +} + +static u16 sub_811AF00(void) +{ + if (gMain.newKeys & B_BUTTON) + { + gEasyChatScreen->state = 2; + return 14; + } + + if (gMain.newKeys & A_BUTTON) + return sub_811B394(); + + if (gMain.newKeys & START_BUTTON) + return sub_811B794(4); + + if (gMain.newKeys & SELECT_BUTTON) + return sub_811B794(5); + + if (gMain.newAndRepeatedKeys & DPAD_UP) + return sub_811B794(2); + + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + return sub_811B794(3); + + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + return sub_811B794(1); + + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + return sub_811B794(0); + + return 0; +} + +static u16 sub_811AF8C(void) +{ + u8 var0; + + switch (Menu_ProcessInputNoWrapClearOnChoose()) { - gUnknown_0203A118->unk_05 = gUnknown_08597550[gUnknown_0203A118->unk_01].unk_01 - 1; + case MENU_B_PRESSED: // B Button + case 1: // No + gEasyChatScreen->state = sub_811B2A4(); + return 7; + case 0: // Yes + gSpecialVar_Result = 0; + var0 = gEasyChatScreen->kind - 17; + if (var0 < 2) + sub_811B3E4(); + + return 24; + default: + return 0; } - if (gUnknown_0203A118->unk_05 >= gUnknown_08597550[gUnknown_0203A118->unk_01].unk_01) +} + +static u16 sub_811AFEC(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) { - gUnknown_0203A118->unk_05 = 0; + case MENU_B_PRESSED: // B Button + case 1: // No + gEasyChatScreen->state = sub_811B2A4(); + return 7; + case 0: // Yes + sub_811BE9C(); + gSpecialVar_Result = sub_811B4EC(); + sub_811B3E4(); + return 24; + default: + return 0; } - if (sub_811AB44() && gUnknown_0203A118->unk_05 == 1 && gUnknown_0203A118->unk_06 == 4) +} + +static u16 sub_811B040(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) { - gUnknown_0203A118->unk_05 = 0; + case MENU_B_PRESSED: // B Button + case 1: // No + gEasyChatScreen->state = 1; + return 7; + case 0: // Yes + sub_811B418(); + gEasyChatScreen->state = 1; + return 8; + default: + return 0; } - return 2; } -#else -__attribute__((naked)) static u16 sub_811AB68(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tldr r0, =gMain\n" - "\tldrh r1, [r0, 0x2E]\n" - "\tmovs r0, 0x1\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0811ABB8\n" - "\tbl sub_811BF78\n" - "\tldr r1, =gUnknown_0203A118\n" - "\tldr r3, [r1]\n" - "\tmovs r2, 0\n" - "\tmovs r0, 0x2\n" - "\tstrb r0, [r3, 0x4]\n" - "\tldr r0, [r1]\n" - "\tstrb r2, [r0, 0xA]\n" - "\tldr r0, [r1]\n" - "\tstrb r2, [r0, 0xB]\n" - "\tldr r0, [r1]\n" - "\tstrb r2, [r0, 0xC]\n" - "\tmovs r0, 0x9\n" - "\tb _0811ACCC_return_r0\n" - "\t.pool\n" - "_0811AB9C:\n" - "\tmovs r0, 0x20\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0811AC68_dpad_left\n" - "\tmovs r0, 0x80\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0811AC58_dpad_down\n" - "\tmovs r0, 0x10\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0811AC48_dpad_right\n" - "\tmovs r0, 0\n" - "\tb _0811ACCC_return_r0\n" - "_0811ABB8:\n" - "\tmovs r0, 0x2\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0811AC78_b_button\n" - "\tmovs r0, 0x8\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0811AC7E_start_button\n" - "\tmovs r0, 0x40\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0811AB9C\n" - "\tldr r2, =gUnknown_0203A118\n" - "\tldr r1, [r2]\n" - "\tldrb r0, [r1, 0x6]\n" - "\tsubs r0, 0x1\n" - "_0811ABD8:\n" - "\tstrb r0, [r1, 0x6]\n" - "_0811ABDA:\n" - "\tadds r7, r2, 0\n" - "\tadds r4, r7, 0\n" - "\tldr r2, [r4]\n" - "\tmovs r0, 0x6\n" - "\tldrsb r0, [r2, r0]\n" - "\tldr r6, =gUnknown_08597550\n" - "\tcmp r0, 0\n" - "\tbge _0811ABF8\n" - "\tldrb r0, [r2, 0x1]\n" - "\tlsls r1, r0, 1\n" - "\tadds r1, r0\n" - "\tlsls r1, 3\n" - "\tadds r1, r6\n" - "\tldrb r0, [r1, 0x2]\n" - "\tstrb r0, [r2, 0x6]\n" - "_0811ABF8:\n" - "\tldr r3, [r4]\n" - "\tmovs r2, 0x6\n" - "\tldrsb r2, [r3, r2]\n" - "\tadds r5, r6, 0\n" - "\tldrb r1, [r3, 0x1]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r0, r5\n" - "\tldrb r0, [r0, 0x2]\n" - "\tcmp r2, r0\n" - "\tble _0811AC14\n" - "\tmovs r0, 0\n" - "\tstrb r0, [r3, 0x6]\n" - "_0811AC14:\n" - "\tldr r3, [r4]\n" - "\tmovs r2, 0x6\n" - "\tldrsb r2, [r3, r2]\n" - "\tldrb r1, [r3, 0x1]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r1, r0, r5\n" - "\tldrb r0, [r1, 0x2]\n" - "\tcmp r2, r0\n" - "\tbne _0811AC88\n" - "\tmovs r0, 0x5\n" - "\tldrsb r0, [r3, r0]\n" - "\tcmp r0, 0x2\n" - "\tble _0811AC36\n" - "\tmovs r0, 0x2\n" - "\tstrb r0, [r3, 0x5]\n" - "_0811AC36:\n" - "\tldr r1, [r4]\n" - "\tmovs r0, 0x1\n" - "\tstrb r0, [r1, 0x4]\n" - "\tmovs r0, 0x3\n" - "\tb _0811ACCC_return_r0\n" - "\t.pool\n" - "_0811AC48_dpad_right:\n" - "\tldr r2, =gUnknown_0203A118\n" - "\tldr r1, [r2]\n" - "\tldrb r0, [r1, 0x5]\n" - "\tadds r0, 0x1\n" - "\tstrb r0, [r1, 0x5]\n" - "\tb _0811ABDA\n" - "\t.pool\n" - "_0811AC58_dpad_down:\n" - "\tldr r2, =gUnknown_0203A118\n" - "\tldr r1, [r2]\n" - "\tldrb r0, [r1, 0x6]\n" - "\tadds r0, 0x1\n" - "\tb _0811ABD8\n" - "\t.pool\n" - "_0811AC68_dpad_left:\n" - "\tldr r2, =gUnknown_0203A118\n" - "\tldr r1, [r2]\n" - "\tldrb r0, [r1, 0x5]\n" - "\tsubs r0, 0x1\n" - "\tstrb r0, [r1, 0x5]\n" - "\tb _0811ABDA\n" - "\t.pool\n" - "_0811AC78_b_button:\n" - "\tbl sub_811B150\n" - "\tb _0811AC82\n" - "_0811AC7E_start_button:\n" - "\tbl sub_811B1B4\n" - "_0811AC82:\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tb _0811ACCC_return_r0\n" - "_0811AC88:\n" - "\tmovs r0, 0x5\n" - "\tldrsb r0, [r3, r0]\n" - "\tcmp r0, 0\n" - "\tbge _0811AC96\n" - "\tldrb r0, [r1, 0x1]\n" - "\tsubs r0, 0x1\n" - "\tstrb r0, [r3, 0x5]\n" - "_0811AC96:\n" - "\tldr r3, [r4]\n" - "\tmovs r2, 0x5\n" - "\tldrsb r2, [r3, r2]\n" - "\tldrb r1, [r3, 0x1]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r0, r6\n" - "\tldrb r0, [r0, 0x1]\n" - "\tcmp r2, r0\n" - "\tblt _0811ACB0\n" - "\tmovs r0, 0\n" - "\tstrb r0, [r3, 0x5]\n" - "_0811ACB0:\n" - "\tbl sub_811AB44\n" - "\tcmp r0, 0\n" - "\tbeq _0811ACCA\n" - "\tldr r2, [r7]\n" - "\tldr r0, [r2, 0x4]\n" - "\tldr r1, =0x00ffff00\n" - "\tands r0, r1\n" - "\tldr r1, =0x00040100\n" - "\tcmp r0, r1\n" - "\tbne _0811ACCA\n" - "\tmovs r0, 0\n" - "\tstrb r0, [r2, 0x5]\n" - "_0811ACCA:\n" - "\tmovs r0, 0x2\n" - "_0811ACCC_return_r0:\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1\n" - "\t.pool"); -} -#endif + +static u16 sub_811B08C(void) +{ + if (gMain.newKeys & A_BUTTON) + return 26; + + if (gMain.newKeys & B_BUTTON) + return sub_811B150(); + + return 0; +} + +static u16 sub_811B0BC(void) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + gEasyChatScreen->state = sub_811B2A4(); + return 7; + } + + return 0; +} + +static u16 sub_811B0E8(void) +{ + gEasyChatScreen->state = 10; + return 6; +} + +static u16 sub_811B0F8(void) +{ + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case MENU_B_PRESSED: // B Button + case 1: // No + sub_811B454(); + gEasyChatScreen->unk_08 = 0; + gEasyChatScreen->state = 8; + return 31; + case 0: // Yes + gSpecialVar_Result = sub_811B4EC(); + sub_811B3E4(); + return 24; + default: + return 0; + } +} + +static u16 sub_811B150(void) +{ + if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + { + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + gEasyChatScreen->state = 8; + return 34; + } + else + { + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + gEasyChatScreen->state = 4; + return 5; + } +} + +int sub_811B184(void) +{ + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + if (gEasyChatScreen->kind != 6) + { + gEasyChatScreen->state = 5; + return 4; + } + else + { + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + gEasyChatScreen->state = 8; + return 32; + } +} + +u16 sub_811B1B4(void) +{ + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + if (gEasyChatScreen->kind == 17) + { + if (sub_811BD64()) + { + gEasyChatScreen->state = 8; + return 29; + } + + if (sub_811BDB0()) + { + gEasyChatScreen->state = 8; + return 30; + } + + gEasyChatScreen->state = 6; + return 6; + } + else if (gEasyChatScreen->kind == 18) + { + if (sub_811BDB0()) + { + gEasyChatScreen->state = 8; + return 30; + } + + if (sub_811BD64()) + { + gEasyChatScreen->state = 8; + return 29; + } + + gEasyChatScreen->state = 6; + return 6; + } + else if (gEasyChatScreen->kind == 9 || gEasyChatScreen->kind == 13) + { + if (!sub_811BD2C()) + { + gEasyChatScreen->state = 8; + return 33; + } + + gEasyChatScreen->state = 6; + return 6; + } + else if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + { + if (sub_811BCF4()) + { + gEasyChatScreen->state = 8; + return 34; + } + + gEasyChatScreen->state = 6; + return 6; + } + else if (gEasyChatScreen->kind == 20) + { + gEasyChatScreen->state = 6; + return 6; + } + else + { + if (sub_811BCF4() == 1 || !sub_811B4EC()) + { + gEasyChatScreen->state = 4; + return 5; + } + + gEasyChatScreen->state = 6; + return 6; + } +} + +int sub_811B264(void) +{ + gEasyChatScreen->unk_08 = gEasyChatScreen->state; + switch (gEasyChatScreen->kind) + { + case 15: + return 25; + case 17: + sub_811B3E4(); + return 28; + case 18: + sub_811B3E4(); + return 27; + default: + return 0; + } +} + +static u8 sub_811B2A4(void) +{ + return gEasyChatScreen->unk_08; +} + +static int sub_811B2B0(void) +{ + u16 var1; + + if (gEasyChatScreen->unk_09 == 0) + { + u8 var0 = sub_811F3B8(sub_811B8E8()); + sub_811F548(0, var0); + } + else + { + sub_811F548(1, sub_811B908()); + } + + var1 = sub_811F5B0(); + if (var1 == 0) + return 0; + + gEasyChatScreen->unk_0f = (var1 - 1) / 2; + gEasyChatScreen->unk_0e = 0; + gEasyChatScreen->unk_10 = 0; + gEasyChatScreen->unk_11 = 0; + gEasyChatScreen->state = 3; + return 11; +} + +static int sub_811B32C(void) +{ + gEasyChatScreen->state = 0; + return 10; +} + +static int sub_811B33C(void) +{ + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b = 0; + gEasyChatScreen->unk_0c = 0; + if (!gEasyChatScreen->unk_09) + gEasyChatScreen->unk_09 = 1; + else + gEasyChatScreen->unk_09 = 0; + + return 23; +} + +static int sub_811B368(void) +{ + if (gEasyChatScreen->kind == 6) + { + PlaySE(SE_HAZURE); + return 0; + } + else + { + sub_811B488(0xFFFF); + return 1; + } +} + +static int sub_811B394(void) +{ + u16 easyChatWord = sub_811F578(sub_811B940()); + if (sub_811BF88(easyChatWord)) + { + PlaySE(SE_HAZURE); + return 0; + } + else + { + sub_811B488(easyChatWord); + if (gEasyChatScreen->kind != 6) + { + gEasyChatScreen->state = 0; + return 12; + } + else + { + gEasyChatScreen->state = 9; + return 13; + } + } +} + +static void sub_811B3E4(void) +{ + int i; + for (i = 0; i < gEasyChatScreen->unk_07; i++) + gEasyChatScreen->words[i] = gEasyChatScreen->ecWordBuffer[i]; +} + +static void sub_811B418(void) +{ + int i; + for (i = 0; i < gEasyChatScreen->unk_07; i++) + gEasyChatScreen->ecWordBuffer[i] = 0xFFFF; +} + +static void sub_811B454(void) +{ + int i; + for (i = 0; i < gEasyChatScreen->unk_07; i++) + gEasyChatScreen->ecWordBuffer[i] = gEasyChatScreen->words[i]; +} + +static void sub_811B488(u16 easyChatWord) +{ + u16 index = sub_811B8C8(); + gEasyChatScreen->ecWordBuffer[index] = easyChatWord; +} + +static u8 sub_811B4AC(void) +{ + u16 i; + for (i = 0; i < gEasyChatScreen->unk_07; i++) + { + if (gEasyChatScreen->ecWordBuffer[i] != gEasyChatScreen->words[i]) + return 1; + } + + return 0; +} + +static int sub_811B4EC(void) +{ + u8 var0 = gEasyChatScreen->kind - 17; + if (var0 < 2) + { + if (sub_811BD64()) + return 0; + + if (sub_811BDB0()) + return 0; + + return 1; + } + else + { + return sub_811B4AC(); + } +} + +static u16 sub_811B528(int arg0) +{ + if (gEasyChatScreen->unk_0a != -1) + { + if (gEasyChatScreen->unk_09 == 0) + return sub_811B568(arg0); + else + return sub_811B634(arg0); + } + else + { + return sub_811B6C4(arg0); + } +} + +static int sub_811B568(u32 arg0) +{ + switch (arg0) + { + case 2: + if (gEasyChatScreen->unk_0b != -gEasyChatScreen->unk_0c) + { + if (gEasyChatScreen->unk_0b) + { + gEasyChatScreen->unk_0b--; + return 15; + } + else + { + gEasyChatScreen->unk_0c--; + return 17; + } + } + break; + case 3: + if (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c < gEasyChatScreen->unk_0d - 1) + { + int var0; + if (gEasyChatScreen->unk_0b < 3) + { + gEasyChatScreen->unk_0b++; + var0 = 15; + } + else + { + gEasyChatScreen->unk_0c++; + var0 = 16; + } + + sub_811B978(); + return var0; + } + break; + case 1: + if (gEasyChatScreen->unk_0a) + gEasyChatScreen->unk_0a--; + else + sub_811B744(); + + return 15; + case 0: + if (gEasyChatScreen->unk_0a < 1) + { + gEasyChatScreen->unk_0a++; + if (sub_811B9C8()) + sub_811B744(); + } + else + { + sub_811B744(); + } + return 15; + } + + return 0; +} + +static int sub_811B634(u32 arg0) +{ + switch (arg0) + { + case 2: + if (gEasyChatScreen->unk_0b > 0) + gEasyChatScreen->unk_0b--; + else + gEasyChatScreen->unk_0b = 3; + + sub_811B978(); + return 15; + case 3: + if (gEasyChatScreen->unk_0b < 3) + gEasyChatScreen->unk_0b++; + else + gEasyChatScreen->unk_0b = 0; + + sub_811B978(); + return 15; + case 0: + gEasyChatScreen->unk_0a++; + if (sub_811B9C8()) + sub_811B744(); + + return 15; + case 1: + gEasyChatScreen->unk_0a--; + if (gEasyChatScreen->unk_0a < 0) + sub_811B744(); + + return 15; + } + + return 0; +} + +static int sub_811B6C4(u32 arg0) +{ + switch (arg0) + { + case 2: + if (gEasyChatScreen->unk_0b) + gEasyChatScreen->unk_0b--; + else + gEasyChatScreen->unk_0b = 2; + + return 15; + case 3: + if (gEasyChatScreen->unk_0b < 2) + gEasyChatScreen->unk_0b++; + else + gEasyChatScreen->unk_0b = 0; + + return 15; + case 1: + gEasyChatScreen->unk_0b++; + sub_811B768(); + return 15; + case 0: + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b++; + return 15; + } + + return 0; +} + +static void sub_811B744(void) +{ + gEasyChatScreen->unk_0a = 0xFF; + if (gEasyChatScreen->unk_0b) + gEasyChatScreen->unk_0b--; +} + +static void sub_811B768(void) +{ + if (gEasyChatScreen->unk_09 == 0) + { + gEasyChatScreen->unk_0a = 1; + sub_811B978(); + } + else + { + gEasyChatScreen->unk_0a = sub_811B960(gEasyChatScreen->unk_0b); + } +} + +static u16 sub_811B794(u32 arg0) +{ + u16 result; + switch (arg0) + { + case 2: + if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e > 0) + { + if (gEasyChatScreen->unk_11 > 0) + { + gEasyChatScreen->unk_11--; + result = 18; + } + else + { + gEasyChatScreen->unk_0e--; + result = 19; + } + + sub_811B9A0(); + return result; + } + break; + case 3: + if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e < gEasyChatScreen->unk_0f) + { + if (gEasyChatScreen->unk_11 < 3) + { + gEasyChatScreen->unk_11++; + result = 18; + } + else + { + gEasyChatScreen->unk_0e++; + result = 20; + } + + sub_811B9A0(); + return result; + } + break; + case 1: + if (gEasyChatScreen->unk_10 > 0) + gEasyChatScreen->unk_10--; + else + gEasyChatScreen->unk_10 = 1; + + sub_811B9A0(); + return 18; + case 0: + if (gEasyChatScreen->unk_10 < 1) + { + gEasyChatScreen->unk_10++; + if (sub_811BA1C()) + gEasyChatScreen->unk_10 = 0; + } + else + { + gEasyChatScreen->unk_10 = 0; + } + return 18; + case 4: + if (gEasyChatScreen->unk_0e) + { + if (gEasyChatScreen->unk_0e > 3) + gEasyChatScreen->unk_0e -= 4; + else + gEasyChatScreen->unk_0e = 0; + + return 21; + } + break; + case 5: + if (gEasyChatScreen->unk_0e <= gEasyChatScreen->unk_0f - 4) + { + gEasyChatScreen->unk_0e += 4; + if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) + gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; + + sub_811B9A0(); + return 22; + } + break; + } + + return 0; +} + +static u16 sub_811B8C8(void) +{ + return (gEasyChatScreen->mainCursorRow * gEasyChatScreen->numColumns) + gEasyChatScreen->mainCursorColumn; +} + +static u16 sub_811B8E8(void) +{ + return 2 * (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c) + gEasyChatScreen->unk_0a; +} + +static int sub_811B908(void) +{ + int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; + int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; + return gUnknown_08597748[var1][var0]; +} + +u16 sub_811B940(void) +{ + return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; +} + +static u8 sub_811B960(u8 arg0) +{ + switch (arg0) + { + case 0: + default: + return 6; + case 1: + return 5; + } +} + +static void sub_811B978(void) +{ + while (sub_811B9C8()) + { + if (gEasyChatScreen->unk_0a) + gEasyChatScreen->unk_0a--; + else + break; + } +} + +static void sub_811B9A0(void) +{ + while (sub_811BA1C()) + { + if (gEasyChatScreen->unk_10) + gEasyChatScreen->unk_10--; + else + break; + } +} + +static u8 sub_811B9C8(void) +{ + if (gEasyChatScreen->unk_09 == 0) + return sub_811B8E8() >= sub_811F3AC() ? 1 : 0; + else + return gEasyChatScreen->unk_0a > sub_811B960(gEasyChatScreen->unk_0b) ? 1 : 0; +} + +static u8 sub_811BA1C(void) +{ + return sub_811B940() >= sub_811F5B0() ? 1 : 0; +} + +int sub_811BA3C(void) +{ + return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; +} + +u8 sub_811BA5C(void) +{ + return gEasyChatScreen->kind; +} + +u8 sub_811BA68(void) +{ + return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; +} + +const u8 *sub_811BA88(void) +{ + return gEasyChatScreen->titleText; +} + +u16 *sub_811BA94(void) +{ + return gEasyChatScreen->ecWordBuffer; +} + +u8 sub_811BAA0(void) +{ + return gEasyChatScreen->numRows; +} + +u8 sub_811BAAC(void) +{ + return gEasyChatScreen->numColumns; +} + +u8 sub_811BAB8(void) +{ + return gEasyChatScreen->mainCursorColumn; +} + +u8 sub_811BAC4(void) +{ + return gEasyChatScreen->mainCursorRow; +} + +void sub_811BAD0(const u8 **str1, const u8 **str2) +{ + *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; + *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; +} + +void sub_811BB08(const u8 **str1, const u8 **str2) +{ + *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; + *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; +} + +void sub_811BB40(const u8 **str1, const u8 **str2) +{ + switch (gEasyChatScreen->kind) + { + case 4: + *str1 = gText_StopGivingPkmnMail; + *str2 = NULL; + break; + case 15: + case 16: + *str1 = gText_LikeToQuitQuiz; + *str2 = gText_ChallengeQuestionMark; + break; + default: + *str1 = gText_QuitEditing; + *str2 = NULL; + break; + } + +} + +void sub_811BB88(const u8 **str1, const u8 **str2) +{ + *str1 = gText_AllTextBeingEditedWill; + *str2 = gText_BeDeletedThatOkay; +} + +void sub_811BB9C(u8 *arg0, u8 *arg1) +{ + *arg0 = gEasyChatScreen->unk_0a; + *arg1 = gEasyChatScreen->unk_0b; +} + +u8 sub_811BBB0(void) +{ + return gEasyChatScreen->unk_09; +} + +u8 sub_811BBBC(void) +{ + return gEasyChatScreen->unk_0c; +} + +void sub_811BBC8(u8 *arg0, u8 *arg1) +{ + *arg0 = gEasyChatScreen->unk_10; + *arg1 = gEasyChatScreen->unk_11; +} + +u8 sub_811BBDC(void) +{ + return gEasyChatScreen->unk_0e; +} + +u8 sub_811BBE8(void) +{ + return gEasyChatScreen->unk_0f; +} + +static u8 unref_sub_811BBF4(void) +{ + return 0; +} + +int sub_811BBF8(void) +{ + switch (gEasyChatScreen->state) + { + case 2: + if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c) + return 1; + break; + case 3: + if (gEasyChatScreen->unk_0e) + return 1; + break; + } + + return 0; +} + +int sub_811BC2C(void) +{ + switch (gEasyChatScreen->state) + { + case 2: + if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c + 4 <= gEasyChatScreen->unk_0d - 1) + return 1; + break; + case 3: + if (gEasyChatScreen->unk_0e + 4 <= gEasyChatScreen->unk_0f) + return 1; + break; + } + + return 0; +} + +int sub_811BC70(void) +{ + return sub_811BA3C(); +} + +u8 sub_811BC7C(const u16 *arg0, u8 arg1) +{ + u8 i; + + for (i = 0; i < arg1; i++) + { + if (arg0[i] != gEasyChatScreen->ecWordBuffer[i]) + return 1; + } + + return 0; +} + +u8 sub_811BCBC(void) +{ + return gEasyChatScreen->sizeParam; +} + +static u8 sub_811BCC8(u8 entryType) +{ + u32 i; + + for (i = 0; i < ARRAY_COUNT(gEasyChatScreenTemplates); i++) + { + if (gEasyChatScreenTemplates[i].unk_00 == entryType) + return i; + } + + return 0; +} + +int sub_811BCF4(void) +{ + int i; + + for (i = 0; i < gEasyChatScreen->unk_07; i++) + { + if (gEasyChatScreen->ecWordBuffer[i] != 0xFFFF) + return 0; + } + + return 1; +} + +static int sub_811BD2C(void) +{ + int i; + + for (i = 0; i < gEasyChatScreen->unk_07; i++) + { + if (gEasyChatScreen->ecWordBuffer[i] == 0xFFFF) + return 0; + } + + return 1; +} + +static int sub_811BD64(void) +{ + int i; + struct SaveBlock1 *saveBlock1; + + if (gEasyChatScreen->kind == 17) + return sub_811BCF4(); + + saveBlock1 = gSaveBlock1Ptr; + for (i = 0; i < 9; i++) + { + if (saveBlock1->lilycoveLady.quiz.unk_002[i] != 0xFFFF) + return 0; + } + + return 1; +} + +static int sub_811BDB0(void) +{ + struct LilycoveLadyQuiz *quiz; + if (gEasyChatScreen->kind == 18) + return sub_811BCF4(); + + quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; + return quiz->unk_014 == 0xFFFF ? 1 : 0; +} + +static void sub_811BDF0(u8 *arg0) +{ + u8 name[32]; + struct SaveBlock1 *saveBlock1 = gSaveBlock1Ptr; + DynamicPlaceholderTextUtil_Reset(); + if (StringLength(saveBlock1->lilycoveLady.quiz.playerName) != 0) + { + TVShowConvertInternationalString(name, saveBlock1->lilycoveLady.quiz.playerName, saveBlock1->lilycoveLady.quiz.language); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, name); + } + else + { + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gText_Lady); + } + + DynamicPlaceholderTextUtil_ExpandPlaceholders(arg0, gText_F700sQuiz); +} + +static void sub_811BE54(void) +{ + int i; + u16 *ecWord; + u8 *str; + + ecWord = gEasyChatScreen->ecWordBuffer; + str = gStringVar2; + i = 0; + while (i < gEasyChatScreen->unk_07) + { + str = CopyEasyChatWordPadded(str, *ecWord, 0); + *str = 0; + str++; + ecWord++; + i++; + } + + str--; + str[0] = 0xFF; +} + +static void sub_811BE9C(void) +{ + switch (gEasyChatScreen->kind) + { + case 0: + FlagSet(FLAG_SYS_CHAT_USED); + break; + case 20: + if (sub_811BF20()) + gSpecialVar_0x8004 = 2; + else + gSpecialVar_0x8004 = 0; + break; + case 9: + sub_811BE54(); + gSpecialVar_0x8004 = sub_81226D8(gEasyChatScreen->ecWordBuffer); + break; + case 13: + gSpecialVar_0x8004 = sub_811BF40(); + break; + } +} + +static int sub_811BF20(void) +{ + return sub_811BC7C(gUnknown_08597764, 4) == 0; +} + +static u16 sub_811BF40(void) +{ + int i; + for (i = 0; i < 5; i++) + { + if (!sub_811BC7C(gUnknown_0859776C[i], 2)) + return i + 1; + } + + return 0; +} + +void sub_811BF78(void) +{ + gEasyChatScreen->unk_13 = 0; +} + +int sub_811BF88(int easyChatWord) +{ + return 0; +} + +static bool8 sub_811BF8C(void) +{ + if (!sub_811CE94()) + return 0; + else + return 1; +} -- cgit v1.2.3 From c96f8751cddf1a203bd5f310683ea35bf9cb8db2 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 21 Feb 2019 23:27:12 -0500 Subject: Improve window palette macros --- src/battle_dome.c | 2 +- src/battle_factory_screen.c | 48 +++++++++++----------- src/battle_interface.c | 2 +- src/battle_message.c | 94 ++++++++++++++++++++++---------------------- src/battle_pyramid_bag.c | 18 ++++----- src/battle_records.c | 4 +- src/berry_blender.c | 6 +-- src/berry_fix_program.c | 8 ++-- src/berry_tag_screen.c | 14 +++---- src/clear_save_data_screen.c | 4 +- src/coins.c | 2 +- src/contest.c | 14 +++---- src/contest_link_80F57C4.c | 2 +- src/contest_painting.c | 2 +- src/credits.c | 2 +- src/decoration.c | 6 +-- src/diploma.c | 2 +- src/egg_hatch.c | 4 +- src/field_player_avatar.c | 6 +-- src/field_region_map.c | 4 +- src/field_specials.c | 4 +- src/frontier_pass.c | 8 ++-- src/frontier_util.c | 20 +++++----- src/hall_of_fame.c | 8 ++-- src/item_menu.c | 28 ++++++------- src/learn_move.c | 6 +-- src/link.c | 8 ++-- src/list_menu.c | 6 +-- src/mail.c | 4 +- src/main_menu.c | 36 ++++++++--------- src/match_call.c | 6 +-- src/menu.c | 32 +++++++-------- src/money.c | 2 +- src/mystery_event_menu.c | 4 +- src/naming_screen.c | 8 ++-- src/option_menu.c | 4 +- src/party_menu.c | 6 +-- src/player_pc.c | 4 +- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 2 +- src/pokedex.c | 8 ++-- src/pokemon_storage_system.c | 30 +++++++------- src/pokemon_summary_screen.c | 16 ++++---- src/pokenav.c | 2 +- src/region_map.c | 6 +-- src/rom_8011DC0.c | 8 ++-- src/save_failed_screen.c | 16 ++++---- src/scrcmd.c | 2 +- src/script_menu.c | 12 +++--- src/shop.c | 4 +- src/slot_machine.c | 4 +- src/start_menu.c | 2 +- src/starter_choose.c | 6 +-- src/text.c | 4 +- src/trade.c | 18 ++++----- src/trainer_card.c | 8 ++-- src/trainer_hill.c | 2 +- src/unk_text_util_2.c | 4 +- src/window.c | 2 +- 59 files changed, 299 insertions(+), 299 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 2ec9f8f3d..9ef66aac4 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -3794,7 +3794,7 @@ static void sub_8190CD4(u8 taskId) for (i = windowId; i < windowId + 9; i++) { CopyWindowToVram(i, 2); - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } gTasks[taskId].data[0] = 3; break; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 6d7ec3c45..f30f256f2 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1786,14 +1786,14 @@ static void sub_819B958(u8 windowId) { gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } static void Select_PrintRentalPkmnString(void) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -1804,7 +1804,7 @@ static void Select_PrintMonSpecies(void) u8 x; u8 monId = sFactorySelectScreen->cursorPos; - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); @@ -1816,7 +1816,7 @@ static void Select_PrintSelectMonString(void) { const u8 *str = NULL; - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; else if (sFactorySelectScreen->selectingMonsState == 2) @@ -1832,7 +1832,7 @@ static void Select_PrintSelectMonString(void) static void Select_PrintCantSelectSameMon(void) { - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -1842,7 +1842,7 @@ static void Select_PrintMenuOptions(void) u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; PutWindowTilemap(3); - FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary); if (selectedId != 0) AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect); @@ -1856,7 +1856,7 @@ static void Select_PrintMenuOptions(void) static void Select_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2); CopyWindowToVram(4, 3); @@ -1924,7 +1924,7 @@ static void Select_PrintMonCategory(void) if (monId < SELECTABLE_MONS_COUNT) { PutWindowTilemap(5); - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); @@ -2873,7 +2873,7 @@ static void sub_819D588(u8 taskId) case 3: if (!gPaletteFade.active) { - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(5, 2); if (sFactorySwapScreen->inEnemyScreen == TRUE) { @@ -3002,7 +3002,7 @@ static void sub_819D770(u8 taskId) gTasks[taskId].data[0]++; break; case 6: - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; break; @@ -3546,7 +3546,7 @@ static void sub_819EA64(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } @@ -3554,14 +3554,14 @@ static void sub_819EA64(u8 windowId) static void sub_819EAC0(void) { PutWindowTilemap(1); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(1, 2); } static void sub_819EADC(void) { PutWindowTilemap(7); - FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(7, 2); } @@ -3569,13 +3569,13 @@ static void sub_819EAF8(void) { sub_819EAC0(); PutWindowTilemap(5); - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(5, 2); } static void Swap_PrintPkmnSwap(void) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -3585,7 +3585,7 @@ static void Swap_PrintMonSpecies(void) u16 species; u8 x; - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(1, 2); @@ -3606,7 +3606,7 @@ static void Swap_PrintMonSpecies(void) static void Swap_PrintOnInfoWindow(const u8 *str) { - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -3614,7 +3614,7 @@ static void Swap_PrintOnInfoWindow(const u8 *str) static void Swap_PrintMenuOptions(void) { PutWindowTilemap(3); - FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2); AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap); AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose); @@ -3624,7 +3624,7 @@ static void Swap_PrintMenuOptions(void) static void Swap_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3); CopyWindowToVram(4, 3); @@ -3638,7 +3638,7 @@ static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) static void Swap_PrintActionStrings(void) { - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3652,7 +3652,7 @@ static void Swap_PrintActionStrings(void) static void Swap_PrintActionStrings2(void) { - FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3693,7 +3693,7 @@ static void Swap_PrintMonSpecies2(void) LoadPalette(pal, 0xF0, 0xA); PutWindowTilemap(7); - FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(7, 3); @@ -3745,7 +3745,7 @@ static void Swap_PrintMonCategory(void) u8 x; u8 monId = sFactorySwapScreen->cursorPos; - FillWindowPixelBuffer(8, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(8, PALETTE_NUM_TO_FILL_VALUE(0)); if (monId > 2) { CopyWindowToVram(8, 2); @@ -3940,7 +3940,7 @@ static void Task_SwapCantHaveSameMons(u8 taskId) case 2: if (sFactorySwapScreen->unk30 != TRUE) { - FillWindowPixelBuffer(5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 0eb494db4..17d44dac3 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2578,7 +2578,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, struct WindowTemplate winTemplate = sHealthboxWindowTemplate; winId = AddWindow(&winTemplate); - FillWindowPixelBuffer(winId, (bgColor << 4) | (bgColor)); + FillWindowPixelBuffer(winId, PALETTE_NUM_TO_FILL_VALUE(bgColor)); color[0] = bgColor; color[1] = 1; diff --git a/src/battle_message.c b/src/battle_message.c index 164108dec..b203f0b3e 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1357,7 +1357,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = { // The corresponding WindowTemplate is gStandardBattleWindowTemplates[] within src/battle_bg.c { // 0 Standard battle message - .fillValue = 0xFF, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), .fontId = 1, .x = 0, .y = 1, @@ -1369,7 +1369,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 1 "What will (pokemon) do?" - .fillValue = 0xFF, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), .fontId = 1, .x = 1, .y = 1, @@ -1381,7 +1381,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 2 "Fight/Pokemon/Bag/Run" - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1393,7 +1393,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 3 Top left move - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1405,7 +1405,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 4 Top right move - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1417,7 +1417,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 5 Bottom left move - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1429,7 +1429,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 6 Bottom right move - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1441,7 +1441,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 7 "PP" - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1453,7 +1453,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 11, }, { // 8 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1465,7 +1465,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 9 PP remaining - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 2, .y = 1, @@ -1477,7 +1477,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 11, }, { // 10 "type" - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1489,7 +1489,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 11 "switch which?" - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1501,7 +1501,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 12 "gText_BattleYesNoChoice" - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1513,7 +1513,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 13 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1525,7 +1525,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 14 - .fillValue = 0x0, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), .fontId = 1, .x = 32, .y = 1, @@ -1537,7 +1537,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 2, }, { // 15 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1549,7 +1549,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 16 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1561,7 +1561,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 17 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1573,7 +1573,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 18 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1585,7 +1585,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 19 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1597,7 +1597,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 20 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1609,7 +1609,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 21 - .fillValue = 0x0, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), .fontId = 1, .x = -1, .y = 1, @@ -1621,7 +1621,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 22 - .fillValue = 0x0, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), .fontId = 1, .x = -1, .y = 1, @@ -1633,7 +1633,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 23 - .fillValue = 0x0, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0x0), .fontId = 1, .x = -1, .y = 1, @@ -1649,7 +1649,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = { { // 0 - .fillValue = 0xFF, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), .fontId = 1, .x = 0, .y = 1, @@ -1661,7 +1661,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 6, }, { // 1 - .fillValue = 0xFF, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), .fontId = 1, .x = 1, .y = 1, @@ -1673,7 +1673,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 6, }, { // 2 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1685,7 +1685,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 3 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1697,7 +1697,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 4 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1709,7 +1709,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 5 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1721,7 +1721,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 6 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1733,7 +1733,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 7 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1745,7 +1745,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 11, }, { // 8 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1757,7 +1757,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 9 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 2, .y = 1, @@ -1769,7 +1769,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 11, }, { // 10 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1781,7 +1781,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 11 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1793,7 +1793,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 12 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1805,7 +1805,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 13 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1817,7 +1817,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 14 - .fillValue = 0x0, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), .fontId = 1, .x = 32, .y = 1, @@ -1829,7 +1829,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 2, }, { // 15 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1841,7 +1841,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 16 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1853,7 +1853,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 17 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1865,7 +1865,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 18 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1877,7 +1877,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 19 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1889,7 +1889,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 20 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1901,7 +1901,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 21 - .fillValue = 0xEE, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1913,7 +1913,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 22 - .fillValue = 0x11, + .fillValue = PALETTE_NUM_TO_FILL_VALUE(0x1), .fontId = 1, .x = 0, .y = 1, diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 3601c5ad2..510356215 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -651,7 +651,7 @@ static void PrintItemDescription(s32 listMenuId) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); desc = gStringVar4; } - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); } @@ -911,7 +911,7 @@ static void sub_81C5D20(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); if (gPyramidBagResources->menuActionsCount == 1) sub_81C5EAC(sub_81C6D24(0)); @@ -1048,7 +1048,7 @@ static void BagAction_UseOnField(u8 taskId) else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) { sub_81C61A8(); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); schedule_bg_copy_tilemap_to_vram(0); ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); } @@ -1086,7 +1086,7 @@ static void BagAction_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6404(); gTasks[taskId].func = sub_81C64B4; @@ -1100,7 +1100,7 @@ static void sub_81C6350(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6DAC(taskId, &sYesNoTossFuncions); } @@ -1168,7 +1168,7 @@ static void TossItem(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); gTasks[taskId].func = sub_81C65CC; } @@ -1265,7 +1265,7 @@ static void Task_BeginItemSwap(u8 taskId) ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C5A98(data[0], 1); sub_81C704C(data[1]); @@ -1395,7 +1395,7 @@ static void sub_81C6BD8(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); PutWindowTilemap(1); @@ -1456,7 +1456,7 @@ static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable) void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)) { - FillWindowPixelBuffer(2, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } diff --git a/src/battle_records.c b/src/battle_records.c index 2ec0ee91e..eb41dcc94 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -321,7 +321,7 @@ void ShowLinkBattleRecords(void) gRecordsWindowId = AddWindow(&sLinkBattleRecordsWindow); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -383,7 +383,7 @@ static void Task_ExitTrainerHillRecords(u8 taskId) static void RemoveTrainerHillRecordsWindow(u8 windowId) { - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(windowId); CopyWindowToVram(windowId, 2); RemoveWindow(windowId); diff --git a/src/berry_blender.c b/src/berry_blender.c index 60a6f77a0..0a35c672f 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -945,7 +945,7 @@ static void InitBerryBlenderWindows(void) DeactivateAllTextPrinters(); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); sub_81978B0(0xE0); @@ -3538,7 +3538,7 @@ void ShowBerryBlenderRecordWindow(void) winTemplate = sBlenderRecordWindowTemplate; gRecordsWindowId = AddWindow(&winTemplate); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, 0); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); @@ -3647,7 +3647,7 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 if (caseId != 3) { - FillWindowPixelBuffer(windowId, txtColor[0] | (txtColor[0] << 4)); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(txtColor[0])); } AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 7e72a9f3b..24198fc87 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -226,9 +226,9 @@ static void berry_fix_gpu_set(void) DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); - FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); - FillWindowPixelBuffer(0, 0xAA); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0xA)); width = GetStringWidth(0, sUnknown_08617E9B, 0); left = (0x78 - width) / 2; @@ -273,7 +273,7 @@ static int berry_fix_text_update(int checkval) static void berry_fix_text_print(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillWindowPixelBuffer(1, 0xAA); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0xA)); AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); PutWindowTilemap(1); CopyWindowToVram(1, 2); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 6c08611ad..7b6935778 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -381,7 +381,7 @@ static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s static void AddBerryTagTextToBg0(void) { memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); - FillWindowPixelBuffer(WIN_BERRY_TAG, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(WIN_BERRY_TAG, PALETTE_NUM_TO_FILL_VALUE(15)); PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); PutWindowTilemap(WIN_BERRY_TAG); schedule_bg_copy_tilemap_to_vram(0); @@ -598,7 +598,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0x40: PrintBerryNumberAndName(); @@ -608,7 +608,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0x60: - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0x70: PrintBerrySize(); @@ -620,7 +620,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0xA0: - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0xB0: PrintBerryDescription1(); @@ -635,7 +635,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0x40: PrintBerryDescription2(); @@ -647,7 +647,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0x70: - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0x80: PrintBerryFirmness(); @@ -660,7 +660,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0xB0: - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 0xC0: PrintBerryNumberAndName(); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 2e4ac8427..7fdd101e2 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0); gTasks[taskId].func = Task_ClearSaveData; break; @@ -203,7 +203,7 @@ static void InitClearSaveDataScreenWindows(void) { InitWindows(sClearSaveTextWindow); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); LoadWindowGfx(0, 0, 2, 224); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); } diff --git a/src/coins.c b/src/coins.c index 6ad80f80c..c6fbf1216 100644 --- a/src/coins.c +++ b/src/coins.c @@ -27,7 +27,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) struct WindowTemplate template; SetWindowTemplateFields(&template, 0, x, y, 8, 2, 0xF, 0x141); sCoinsWindowId = AddWindow(&template); - FillWindowPixelBuffer(sCoinsWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sCoinsWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(sCoinsWindowId); SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x214, 0xE); PrintCoinsString(coinAmount); diff --git a/src/contest.c b/src/contest.c index aa6bd9990..f668baf92 100644 --- a/src/contest.c +++ b/src/contest.c @@ -819,7 +819,7 @@ static void sub_80D8490(u8 taskId) } r5 = StringCopy(r5, gMoveNames[move]); - FillWindowPixelBuffer(i + 5, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i + 5, PALETTE_NUM_TO_FILL_VALUE(0)); Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7); } @@ -941,7 +941,7 @@ static void sub_80D895C(u8 taskId) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(5 + i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(5 + i, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(5 + i); CopyWindowToVram(5 + i, 2); } @@ -2258,7 +2258,7 @@ static void sub_80DAEA4(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(gUnknown_02039F26[i], PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(gUnknown_02039F26[i], PALETTE_NUM_TO_FILL_VALUE(0)); sub_80DAF04(i); sub_80DAF88(i); } @@ -2478,7 +2478,7 @@ static void prints_contest_move_description(u16 a) ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); - FillWindowPixelBuffer(10, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(10, PALETTE_NUM_TO_FILL_VALUE(0)); Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); Contest_PrintTextToBg0WindowStd(9, gText_Slash); } @@ -2621,7 +2621,7 @@ static void sub_80DB884(void) static void sub_80DB89C(void) { - FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(4, 2); Contest_SetBgCopyFlags(0); } @@ -3456,7 +3456,7 @@ static void sub_80DCD48(void) break; default: for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); for (i = 0; i < 4; i++) { value = sContestantStatus[i].unk4; @@ -5038,7 +5038,7 @@ static void sub_80DF750(void) return; for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); if (gHeap[0x1A000] == 2) { diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 4539d09a6..8e9c42f3d 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -935,7 +935,7 @@ static void sub_80F6AE8(void) // windowTemplate.width = 30; // windowTemplate.height = 2; // windowId = AddWindow(&windowTemplate); -// FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); +// FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); // origWidth = GetStringWidth(1, text, 0) + 9; // strWidth = origWidth; // if (strWidth < 0) diff --git a/src/contest_painting.c b/src/contest_painting.c index dbd193306..b961c7a65 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -279,7 +279,7 @@ static void InitContestPaintingWindow(void) SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE)); gContestPaintingWindowId = AddWindow(&gUnknown_085B07EC); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(gContestPaintingWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(gContestPaintingWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(gContestPaintingWindowId); CopyWindowToVram(gContestPaintingWindowId, 3); ShowBg(1); diff --git a/src/credits.c b/src/credits.c index 9aadc18aa..66f9f7ea8 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1592,7 +1592,7 @@ static void sub_8175DA0(u8 taskIdB) case 5: if (!gPaletteFade.active) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(0, 2); gTasks[taskIdB].data[TDB_0] = 2; } diff --git a/src/decoration.c b/src/decoration.c index afbb4ad40..c3434522d 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -543,7 +543,7 @@ void sub_8126B80(u8 taskId) void sub_8126C08(void) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); } @@ -634,7 +634,7 @@ void sub_8126DFC(u8 taskId) void sub_8126E44(u8 taskId) { - FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PALETTE_NUM_TO_FILL_VALUE(1)); sub_8126E8C(taskId); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory); gTasks[taskId].func = sub_8127088; @@ -968,7 +968,7 @@ void sub_8127744(u32 a0) const u8 *txt; winidx = sDecorMenuWindowIndices[3]; - FillWindowPixelBuffer(winidx, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(winidx, PALETTE_NUM_TO_FILL_VALUE(1)); if (a0 >= sCurDecorCatCount) { txt = gText_GoBackPrevMenu; diff --git a/src/diploma.c b/src/diploma.c index 9194af710..f2c2a965c 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -197,7 +197,7 @@ static void InitDiplomaWindow(void) InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index f52f66a2a..8fb21dbbe 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -606,7 +606,7 @@ static void CB2_EggHatch_1(void) case 1: if (!gPaletteFade.active) { - FillWindowPixelBuffer(sEggHatchData->windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sEggHatchData->windowId, PALETTE_NUM_TO_FILL_VALUE(0)); sEggHatchData->CB2_PalCounter = 0; sEggHatchData->CB2_state++; } @@ -857,7 +857,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) { - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(15)); sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[1] = 5; sEggHatchData->textColor[2] = 6; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index dff010d13..ddaaa208b 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1918,7 +1918,7 @@ static bool8 Fishing9(struct Task *task) static bool8 Fishing10(struct Task *task) { AlignFishingAnimationFrames(); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_PokemonOnHook, 1, 0, 2, 1, 3); task->tStep++; task->tFrameCounter = 0; @@ -1966,7 +1966,7 @@ static bool8 Fishing12(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_NotEvenANibble, 1, 0, 2, 1, 3); task->tStep = FISHING_SHOW_RESULT; return TRUE; @@ -1977,7 +1977,7 @@ static bool8 Fishing13(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_ItGotAway, 1, 0, 2, 1, 3); task->tStep++; return TRUE; diff --git a/src/field_region_map.c b/src/field_region_map.c index 6814b26bd..e128c7084 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -196,13 +196,13 @@ static void PrintRegionMapSecName(void) { if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } else { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); CopyWindowToVram(0, 3); } } diff --git a/src/field_specials.c b/src/field_specials.c index 9390eab87..62d3b8e59 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2645,7 +2645,7 @@ static void sub_813A570(u8 taskId) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); sub_8198070(task->data[13], 1); - FillWindowPixelBuffer(task->data[13], PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); DestroyTask(taskId); @@ -3226,7 +3226,7 @@ void sub_813AF48(void) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); sub_8198070(task->data[13], TRUE); - FillWindowPixelBuffer(task->data[13], PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 39442dcfd..c449a50f0 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1090,7 +1090,7 @@ static void ShowAndPrintWindows(void) for (i = 0; i < WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } x = GetStringCenterAlignXOffset(1, gText_SymbolsEarned, 96); @@ -1116,7 +1116,7 @@ static void ShowAndPrintWindows(void) static void PrintAreaDescription(u8 cursorArea) { - FillWindowPixelBuffer(WINDOW_DESCRIPTION, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(WINDOW_DESCRIPTION, PALETTE_NUM_TO_FILL_VALUE(0)); if (cursorArea == CURSOR_AREA_RECORD && !sPassData->hasBattleRecord) AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[0]); else if (cursorArea != CURSOR_AREA_NOTHING) @@ -1656,7 +1656,7 @@ static void PrintOnFrontierMap(void) for (i = 0; i < MAP_WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) @@ -1698,7 +1698,7 @@ static void HandleFrontierMapCursorMove(u8 direction) StartSpriteAnim(sMapData->mapIndicatorSprite, sMapLandmarks[sMapData->cursorPos].animNum); sMapData->mapIndicatorSprite->pos1.x = sMapLandmarks[sMapData->cursorPos].x; sMapData->mapIndicatorSprite->pos1.y = sMapLandmarks[sMapData->cursorPos].y; - FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, 1, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description); for (i = 0; i < 3; i++) diff --git a/src/frontier_util.c b/src/frontier_util.c index 28c74ceaa..5846616b7 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1045,7 +1045,7 @@ static void ShowTowerResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleRoomResults); else if (battleMode == FRONTIER_MODE_DOUBLES) @@ -1116,7 +1116,7 @@ static void ShowDomeResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleTourneyResults); else @@ -1192,7 +1192,7 @@ static void ShowPalaceResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleHallResults); else @@ -1248,7 +1248,7 @@ static void ShowPikeResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); PrintAligned(gStringVar4, 0); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL); @@ -1310,7 +1310,7 @@ static void ShowArenaResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); PrintHyphens(10); StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults); PrintAligned(gStringVar4, 2); @@ -1396,7 +1396,7 @@ static void ShowFactoryResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_BattleSwapSingleResults); else @@ -1461,7 +1461,7 @@ static void ShowPyramidResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); PrintAligned(gStringVar4, 2); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 49, TEXT_SPEED_FF, NULL); @@ -1484,7 +1484,7 @@ static void ShowLinkContestResultsWindow(void) gRecordsWindowId = AddWindow(&gUnknown_08611C7C); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_LinkContestResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -2354,7 +2354,7 @@ void ShowRankingHallRecordsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C84); NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); PutWindowTilemap(gRecordsWindowId); CopyWindowToVram(gRecordsWindowId, 3); @@ -2362,7 +2362,7 @@ void ShowRankingHallRecordsWindow(void) void ScrollRankingHallRecordsWindow(void) { - FillWindowPixelBuffer(gRecordsWindowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_OPEN); CopyWindowToVram(gRecordsWindowId, 2); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index b064c991b..b25342021 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -649,7 +649,7 @@ static void sub_8173DC0(u8 taskId) gSprites[gTasks[taskId].tMonSpriteId(i)].oam.priority = 1; } BeginNormalPaletteFade(sUnknown_0203BCD4, 0, 12, 12, RGB(16, 29, 24)); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(0, 3); gTasks[taskId].tFrameCount = 7; gTasks[taskId].func = sub_8173EA4; @@ -1086,7 +1086,7 @@ static void Task_HofPC_ExitOnButtonPress(u8 taskId) static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); CopyWindowToVram(0, 3); @@ -1099,7 +1099,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u s32 dexNumber; s32 width; - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); // dex number @@ -1180,7 +1180,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) u32 width; u16 trainerId; - FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(1); SetWindowBorderStyle(1, FALSE, 0x21D, 0xD); AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); diff --git a/src/item_menu.c b/src/item_menu.c index db16a887e..ae24c8a03 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -884,7 +884,7 @@ void bag_menu_print_description_box_text(int a) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); str = gStringVar4; } - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, str, 3, 1, 0, 0, 0, 0); } @@ -1028,7 +1028,7 @@ void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u s16* data = gTasks[taskId].data; data[10] = AddItemMessageWindow(4); - FillWindowPixelBuffer(data[10], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(data[10], PALETTE_NUM_TO_FILL_VALUE(1)); DisplayMessageAndContinueTask(taskId, data[10], 10, 13, fontId, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } @@ -1293,7 +1293,7 @@ void bag_menu_swap_items(u8 taskId) gUnknown_0203CE54->unk81A = data[1]; CopyItemName(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, data[1]), gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_80D4FEC(data[1]); sub_81AB89C(); @@ -1505,7 +1505,7 @@ void sub_81AC644(u8 unused) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); } if (gUnknown_0203CE54->unk828 == 1) @@ -1646,7 +1646,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId) bag_menu_print_there_is_no_pokemon(taskId); else { - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); schedule_bg_copy_tilemap_to_vram(0); if (gUnknown_0203CE58.pocket != BERRIES_POCKET) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); @@ -1670,7 +1670,7 @@ void ItemMenu_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = Task_ChooseHowManyToToss; @@ -1684,7 +1684,7 @@ void BagMenuConfirmToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); bag_menu_yes_no(taskId, 5, &gUnknown_08614084); } @@ -1727,7 +1727,7 @@ void BagMenuActuallyToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); gTasks[taskId].func = Task_ActuallyToss; } @@ -2043,7 +2043,7 @@ void display_deposit_item_ask_str(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_DepositHowManyVar1); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = sub_81ADA7C; @@ -2078,7 +2078,7 @@ void sub_81ADB14(u8 taskId) { s16* data = gTasks[taskId].data; - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); if (ItemId_GetImportance(gSpecialVar_ItemId)) { bag_menu_print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); @@ -2244,7 +2244,7 @@ void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2) window.width = 16; window.height = 2; windowId = AddWindow(&window); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); offset = GetStringCenterAlignXOffset(1, pocketName1, 0x40); bag_menu_print(windowId, 1, pocketName1, offset, 1, 0, 0, -1, 1); if (pocketName2) @@ -2283,7 +2283,7 @@ void setup_bag_menu_textboxes(void) LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 3; i++) { - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(i); } schedule_bg_copy_tilemap_to_vram(0); @@ -2366,7 +2366,7 @@ void bag_menu_remove_money_window(void) void bag_menu_prepare_tmhm_move_window(void) { - FillWindowPixelBuffer(3, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); blit_move_info_icon(3, 19, 0, 0); blit_move_info_icon(3, 20, 0, 12); blit_move_info_icon(3, 21, 0, 24); @@ -2380,7 +2380,7 @@ void PrintTMHMMoveData(u16 itemId) u16 moveId; const u8* text; - FillWindowPixelBuffer(4, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); if (itemId == ITEM_NONE) { for (i = 0; i < 4; i++) diff --git a/src/learn_move.c b/src/learn_move.c index d9ebe3f3b..517352555 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -498,7 +498,7 @@ static void LearnMoveMain(void) case 27: if (!sub_81D2C3C()) { - FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; @@ -631,7 +631,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) if (!a) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } @@ -695,7 +695,7 @@ static void ShowTeachMoveText(bool8 showContest) if (showContest == FALSE) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } diff --git a/src/link.c b/src/link.c index bec9dddc6..5c7614c1b 100644 --- a/src/link.c +++ b/src/link.c @@ -1683,8 +1683,8 @@ static void sub_800B080(void) CopyToBgTilemapBuffer(1, gWirelessLinkDisplayTilemap, 0, 0); CopyBgTilemapBufferToVram(1); LoadPalette(gWirelessLinkDisplayPal, 0, 0x20); - FillWindowPixelBuffer(0, 0x00); - FillWindowPixelBuffer(2, 0x00); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); PutWindowTilemap(0); @@ -1696,8 +1696,8 @@ static void sub_800B080(void) static void sub_800B138(void) { LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0); - FillWindowPixelBuffer(1, 0x00); - FillWindowPixelBuffer(2, 0x00); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); PutWindowTilemap(1); PutWindowTilemap(2); diff --git a/src/list_menu.c b/src/list_menu.c index 6442debba..83293890c 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -486,7 +486,7 @@ void RedrawListMenu(u8 listTaskId) { struct ListMenu *list = (void*) gTasks[listTaskId].data; - FillWindowPixelBuffer(list->template.windowId, (list->template.fillValue << 4) | (list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); ListMenuDrawCursor(list); CopyWindowToVram(list->template.windowId, 2); @@ -584,7 +584,7 @@ static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 sc if (list->template.totalItems < list->template.maxShowed) list->template.maxShowed = list->template.totalItems; - FillWindowPixelBuffer(list->template.windowId, (list->template.fillValue << 4) | (list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); ListMenuDrawCursor(list); ListMenuCallSelectionChangedCallback(list, TRUE); @@ -795,7 +795,7 @@ static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown) { if (count >= list->template.maxShowed) { - FillWindowPixelBuffer(list->template.windowId, (list->template.fillValue << 4) | (list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); } else diff --git a/src/mail.c b/src/mail.c index 6d9c98350..e8b750bfa 100644 --- a/src/mail.c +++ b/src/mail.c @@ -477,8 +477,8 @@ static void sub_8121B1C(void) y = 0; PutWindowTilemap(0); PutWindowTilemap(1); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); for (i = 0; i < sMailRead->layout->numSubStructs; i ++) { if (sMailRead->strbuf[i][0] == EOS || sMailRead->strbuf[i][0] == CHAR_SPACE) diff --git a/src/main_menu.c b/src/main_menu.c index aa388df62..cb39f036e 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -783,8 +783,8 @@ static void Task_DisplayMainMenu(u8 taskId) { case HAS_NO_SAVED_GAME: default: - FillWindowPixelBuffer(0, 0xAA); - FillWindowPixelBuffer(1, 0xAA); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0xA)); AddTextPrinterParameterized3(0, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(1, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); @@ -795,9 +795,9 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[1], MAIN_MENU_BORDER_TILE); break; case HAS_SAVED_GAME: - FillWindowPixelBuffer(2, 0xAA); - FillWindowPixelBuffer(3, 0xAA); - FillWindowPixelBuffer(4, 0xAA); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); @@ -813,10 +813,10 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_GIFT: - FillWindowPixelBuffer(2, 0xAA); - FillWindowPixelBuffer(3, 0xAA); - FillWindowPixelBuffer(4, 0xAA); - FillWindowPixelBuffer(5, 0xAA); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift); @@ -836,11 +836,11 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[5], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_EVENTS: - FillWindowPixelBuffer(2, 0xAA); - FillWindowPixelBuffer(3, 0xAA); - FillWindowPixelBuffer(4, 0xAA); - FillWindowPixelBuffer(5, 0xAA); - FillWindowPixelBuffer(6, 0xAA); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(6, PALETTE_NUM_TO_FILL_VALUE(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift2); @@ -2098,7 +2098,7 @@ static void NewGameBirchSpeech_StartFadePlatformOut(u8 taskId, u8 delay) static void NewGameBirchSpeech_ShowGenderMenu(void) { DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3); - FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); PrintMenuTable(1, 2, sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -2126,7 +2126,7 @@ static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) static void CreateMainMenuErrorWindow(const u8* str) { - FillWindowPixelBuffer(7, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); @@ -2239,7 +2239,7 @@ static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 a, u8 b, u8 c, u8 d, static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_ClearGenderWindowTilemap); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -2277,7 +2277,7 @@ void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_CreateDialogueWindowBorder); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); diff --git a/src/match_call.c b/src/match_call.c index e7e91969f..76012e076 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1191,7 +1191,7 @@ static bool32 LoadMatchCallWindowGfx(u8 taskId) return FALSE; } - FillWindowPixelBuffer(taskData[2], 0x88); + FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20); LoadPalette(sPokeNavIconPalette, 0xF0, 0x20); ChangeBgY(0, -0x2000, 0); @@ -1241,7 +1241,7 @@ static bool32 sub_81962D8(u8 taskId) s16 *taskData = gTasks[taskId].data; if (!ExecuteMatchCallTextPrinter(taskData[2])) { - FillWindowPixelBuffer(taskData[2], 0x88); + FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); if (!gMatchCallState.triggeredFromScript) SelectMatchCallMessage(gMatchCallState.trainerId, gStringVar4); @@ -1257,7 +1257,7 @@ static bool32 sub_8196330(u8 taskId) s16 *taskData = gTasks[taskId].data; if (!ExecuteMatchCallTextPrinter(taskData[2]) && !IsSEPlaying() && gMain.newKeys & (A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(taskData[2], 0x88); + FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); CopyWindowToVram(taskData[2], 2); PlaySE(SE_TOREOFF); return TRUE; diff --git a/src/menu.c b/src/menu.c index 9a9cec9dd..26ea99de2 100644 --- a/src/menu.c +++ b/src/menu.c @@ -213,7 +213,7 @@ void sub_81973A4(void) void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, DrawDialogueFrame); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -222,7 +222,7 @@ void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, DrawStandardFrame); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -231,7 +231,7 @@ void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 copyToVram) void ClearWindowAndWideBorder(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, ClearWindowAndWideBorderTilemap); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -240,7 +240,7 @@ void ClearWindowAndWideBorder(u8 windowId, bool8 copyToVram) void ClearWindowAndBorder(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, ClearWindowAndBorderTilemap); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -411,14 +411,14 @@ void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height // Clears the given window, and a 1-tile border around the window, to transparent tiles. void ClearWindowAndBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, TRANSPARENT_TILE_NUMBER, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); } // Clears the given window, and a 1-tile border the top and bottom, plus a 3-tile border on the left and right. // Tiles are set to a transparent tile. void ClearWindowAndWideBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - FillBgTilemapBufferRect(bg, TRANSPARENT_TILE_NUMBER, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM); } void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram) @@ -557,7 +557,7 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum) sTileNum = tileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, sub_8197BB4); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -568,7 +568,7 @@ void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum) sTileNum = tileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, sub_8197BB4); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -672,7 +672,7 @@ void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p void sub_8197DF8(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, sub_8197E30); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -688,7 +688,7 @@ void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 pal sTileNum = baseTileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, DrawWindowBorder); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -699,7 +699,7 @@ void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum) sTileNum = baseTileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, DrawWindowBorder); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -768,7 +768,7 @@ void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, void sub_8198070(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, sub_81980A8); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -814,7 +814,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) if (sWindowId != 0xFF) { PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); width = GetStringWidth(0, string, 0); AddTextPrinterParameterized3(sWindowId, 0, @@ -848,7 +848,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo color[2] = 2; } PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); if (string2 != NULL) { width = GetStringWidth(0, string2, 0); @@ -876,7 +876,7 @@ void sub_81982F0(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); CopyWindowToVram(sWindowId, 3); } } @@ -885,7 +885,7 @@ void sub_8198314(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(sWindowId); CopyWindowToVram(sWindowId, 3); RemoveWindow(sWindowId); diff --git a/src/money.c b/src/money.c index 33dffdc75..1b5e298f0 100644 --- a/src/money.c +++ b/src/money.c @@ -169,7 +169,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) SetWindowTemplateFields(&template, 0, x + 1, y + 1, 10, 2, 15, 8); sMoneyBoxWindowId = AddWindow(&template); - FillWindowPixelBuffer(sMoneyBoxWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sMoneyBoxWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(sMoneyBoxWindowId); CopyWindowToVram(sMoneyBoxWindowId, 1); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x214, 14, amount); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index c30fb9c1a..b0f0ba302 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -90,7 +90,7 @@ void CB2_InitMysteryEventMenu(void) DeactivateAllTextPrinters(); for (i = 0; i < 2; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); LoadUserWindowBorderGfx(0, 1u, 0xD0u); @@ -313,6 +313,6 @@ static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 sp textColor[1] = 2; textColor[2] = 3; - FillWindowPixelBuffer(windowId, (textColor[0]) | (textColor[0] << 4)); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(textColor[0])); AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); } diff --git a/src/naming_screen.c b/src/naming_screen.c index cb53604df..a84cbd657 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1474,7 +1474,7 @@ static void HandleDpadMovement(struct Task *task) static void sub_80E4894(void) { - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1485,7 +1485,7 @@ static void sub_80E48E8(void) StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); StringAppendN(buffer, gNamingScreenData->template->title, 15); - FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1672,7 +1672,7 @@ static void sub_80E4D10(void) u8 maxChars = gNamingScreenData->template->maxChars; u16 unk = gNamingScreenData->inputCharBaseXPos - 0x40; - FillWindowPixelBuffer(gNamingScreenData->windows[2], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gNamingScreenData->windows[2], PALETTE_NUM_TO_FILL_VALUE(1)); for (i = 0; i < maxChars; i++) { @@ -1766,7 +1766,7 @@ static void sub_80E4EF0(void) { const u8 color[3] = { 15, 1, 2 }; - FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(gNamingScreenData->windows[4], PALETTE_NUM_TO_FILL_VALUE(15)); AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); PutWindowTilemap(gNamingScreenData->windows[4]); CopyWindowToVram(gNamingScreenData->windows[4], 3); diff --git a/src/option_menu.c b/src/option_menu.c index 6ffc4de50..94bbef306 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -620,7 +620,7 @@ static void ButtonMode_DrawChoices(u8 selection) static void DrawTextOption(void) { - FillWindowPixelBuffer(WIN_TEXT_OPTION, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(WIN_TEXT_OPTION, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(WIN_TEXT_OPTION, 3); } @@ -629,7 +629,7 @@ static void DrawOptionMenuTexts(void) { u8 i; - FillWindowPixelBuffer(WIN_OPTIONS, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(WIN_OPTIONS, PALETTE_NUM_TO_FILL_VALUE(1)); for (i = 0; i < MENUITEM_COUNT; i++) { AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); diff --git a/src/party_menu.c b/src/party_menu.c index d2a4d09f2..15128ab0c 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3108,7 +3108,7 @@ static void sub_81B239C(u8 a) } DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); LoadUserWindowBorderGfx(0, 0x4F, 0xD0); LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); @@ -3126,7 +3126,7 @@ static void sub_81B2428(bool8 a) if (a == TRUE) { firstWindowId = AddWindow(&gUnknown_08615918); - FillWindowPixelBuffer(firstWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(firstWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); mainOffset = GetStringCenterAlignXOffset(0, gMenuText_Confirm, 48); AddTextPrinterParameterized4(firstWindowId, 0, mainOffset, 1, 0, 0, gUnknown_086157FC[0], -1, gMenuText_Confirm); PutWindowTilemap(firstWindowId); @@ -3139,7 +3139,7 @@ static void sub_81B2428(bool8 a) windowId = AddWindow(&gUnknown_08615908); offset = 3; } - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); if (gUnknown_0203CEC8.unk8_0 != 10) { mainOffset = GetStringCenterAlignXOffset(0, gText_Cancel, 48); diff --git a/src/player_pc.c b/src/player_pc.c index 9d1b2f788..607c2a721 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -977,7 +977,7 @@ static void sub_816BEF0(s32 id) description = (u8 *)ItemId_GetDescription(gSaveBlock1Ptr->pcItems[id].itemId); else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } @@ -1123,7 +1123,7 @@ static const u8* ItemStorage_GetItemPcResponse(u16 itemId) static void ItemStorage_PrintItemPcResponse(const u8 *string) { u8 windowId = gUnknown_0203BCC4->windowIds[1]; - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, string); AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } diff --git a/src/pokeblock.c b/src/pokeblock.c index 31eaf3540..95f91a74d 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -665,7 +665,7 @@ static void HandleInitWindows(void) for (i = 0; i < ARRAY_COUNT(sWindowTemplatesForPokeblockMenu) - 1; i++) { - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } schedule_bg_copy_tilemap_to_vram(0); @@ -749,7 +749,7 @@ static void sub_8135FCC(s32 pkblId) struct Pokeblock *pokeblock; u16 rectTilemapSrc[2]; - FillWindowPixelBuffer(7, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); if (pkblId != LIST_B_PRESSED) { diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 1ad0920d3..0a110120d 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -704,7 +704,7 @@ static void HandleInitWindows(void) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); } diff --git a/src/pokedex.c b/src/pokedex.c index 1034fdbb9..2e5e8f213 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2927,7 +2927,7 @@ void sub_80BEA24(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, sPokedexListItem->dexNum); @@ -3222,7 +3222,7 @@ void sub_80BF250(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, &gPokedexTilemap_CryScreen, 0, 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); PutWindowTilemap(3); PutWindowTilemap(2); @@ -3416,7 +3416,7 @@ void sub_80BF82C(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_SizeScreen, 0, 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); gMain.state++; break; @@ -3766,7 +3766,7 @@ void sub_80BFE38(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, gTasks[taskId].data[1]); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index d0a7ed80c..8abb349ef 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1552,7 +1552,7 @@ void sub_80C6D80(const u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4) winTemplate.width = 24; winTemplate.height = 2; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, (arg3 << 4) | arg3); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(arg3)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; @@ -1599,7 +1599,7 @@ void sub_80C6EAC(const u8 *string, void *dst, u16 arg2, u8 arg3, u8 clr2, u8 clr winTemplate.height = 2; var = winTemplate.width * 32; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, (arg3 << 4) | arg3); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(arg3)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; txtColor[0] = arg3; @@ -1737,7 +1737,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) CreatePCMenu(task->data[1], &task->data[15]); sub_81973A4(); NewMenuHelpers_DrawDialogueFrame(0, 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); CopyWindowToVram(task->data[15], 3); @@ -1763,7 +1763,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) if (task->data[1] != task->data[3]) { task->data[1] = task->data[3]; - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; @@ -1778,13 +1778,13 @@ static void Task_PokemonStorageSystemPC(u8 taskId) default: if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); task->data[0] = 3; } else if (task->data[2] == 1 && CountPartyMons() == 1) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); task->data[0] = 3; } @@ -1799,7 +1799,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) case 3: if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1809,7 +1809,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 4; Menu_MoveCursor(-1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1819,7 +1819,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 0; Menu_MoveCursor(1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -2103,7 +2103,7 @@ static void sub_80C7BE4(void) winTemplate.height = 4; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, 0x44); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(4)); center = GetStringCenterAlignXOffset(1, boxName, 64); AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); @@ -4107,7 +4107,7 @@ static void LoadCursorMonGfx(u16 species, u32 pid) static void PrintCursorMonInfo(void) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) { AddTextPrinterParameterized(0, 1, sPSSData->cursorMonNickText, 6, 0, TEXT_SPEED_FF, NULL); @@ -4416,7 +4416,7 @@ static void PrintStorageActionText(u8 id) } DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); - FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(1, 2, 14); PutWindowTilemap(1); @@ -8835,7 +8835,7 @@ static bool8 sub_80D0164(void) sPSSData->field_2200 = AddWindow8Bit(&gUnknown_0857BB1C); if (sPSSData->field_2200 != 0xFF) { - FillWindowPixelBuffer(sPSSData->field_2200, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sPSSData->field_2200, PALETTE_NUM_TO_FILL_VALUE(0)); return TRUE; } } @@ -8892,7 +8892,7 @@ static bool8 sub_80D024C(void) ChangeBgX(0, -1024, 0); ChangeBgY(0, -1024, 0); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - FillWindowPixelBuffer8Bit(sPSSData->field_2200, 0); + FillWindowPixelBuffer8Bit(sPSSData->field_2200, PALETTE_NUM_TO_FILL_VALUE(0)); sub_80D07B0(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn); SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); PutWindowTilemap(sPSSData->field_2200); @@ -9911,7 +9911,7 @@ static void PrintItemDescription(void) else description = ItemId_GetDescription(sPSSData->cursorMonItem); - FillWindowPixelBuffer(2, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized5(2, 1, description, 4, 0, 0, NULL, 0, 1); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7985a1964..b34dcd9fb 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2631,7 +2631,7 @@ static void ResetWindows(void) for (i = 0; i < 20; i++) { - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { @@ -2646,9 +2646,9 @@ static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, static void sub_81C25E8(void) { - FillWindowPixelBuffer(17, PIXEL_BUFFER_TRANSPARENT); - FillWindowPixelBuffer(18, PIXEL_BUFFER_TRANSPARENT); - FillWindowPixelBuffer(19, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(17, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(18, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(19, PALETTE_NUM_TO_FILL_VALUE(0)); if (!pssData->summary.isEgg) sub_81C2628(); else @@ -2899,7 +2899,7 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); - FillWindowPixelBuffer(*windowIdPtr, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(*windowIdPtr, PALETTE_NUM_TO_FILL_VALUE(0)); } return *windowIdPtr; } @@ -2921,7 +2921,7 @@ static void PrintPageSpecificText(u8 pageIndex) for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { if (pssData->windowIds[i] != 0xFF) - FillWindowPixelBuffer(pssData->windowIds[i], PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(pssData->windowIds[i], PALETTE_NUM_TO_FILL_VALUE(0)); } sTextPrinterFunctions[pageIndex](); } @@ -3568,7 +3568,7 @@ static void PrintContestMoveDescription(u8 moveSlot) static void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); if (move != MOVE_NONE) { if (pssData->currPageIndex == 2) @@ -3642,7 +3642,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } diff --git a/src/pokenav.c b/src/pokenav.c index ff687e8dc..f5b3d6e13 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -1158,7 +1158,7 @@ bool8 sub_81C7BE8(void) void sub_81C7BF8(u32 a0) { - FillWindowPixelBuffer(a0, 0x44); + FillWindowPixelBuffer(a0, PALETTE_NUM_TO_FILL_VALUE(4)); FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); } diff --git a/src/region_map.c b/src/region_map.c index e69889584..fa5e26b11 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1622,7 +1622,7 @@ void MCB2_FlyMap(void) case 7: LoadPalette(sRegionMapFramePal, 0x10, 0x20); PutWindowTilemap(2); - FillWindowPixelBuffer(2, 0x00); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gMain.state++; @@ -1707,7 +1707,7 @@ static void sub_8124904(void) } else { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); } AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); @@ -1721,7 +1721,7 @@ static void sub_8124904(void) sub_8198070(1, FALSE); SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); } - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); CopyWindowToVram(0, 2); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index d4047e26d..466ef430d 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -387,7 +387,7 @@ void nullsub_89(void) void sub_80124EC(u8 windowId, u8 arg1, u8 stringId) { - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); switch (arg1 << 8) { case 0x200: @@ -506,7 +506,7 @@ void sub_8012780(u8 taskId) } data->field_11 = AddWindow(&gUnknown_082F012C); - FillWindowPixelBuffer(data->field_10, 0x22); + FillWindowPixelBuffer(data->field_10, PALETTE_NUM_TO_FILL_VALUE(2)); sub_80173E0(data->field_10, 0, gUnknown_082EDBC4, 8, 1, 4); PutWindowTilemap(data->field_10); CopyWindowToVram(data->field_10, 2); @@ -1075,7 +1075,7 @@ void sub_80134E8(u8 taskId) data->listWindowId = AddWindow(&gUnknown_082F0174); data->field_D = AddWindow(&gUnknown_082F017C); - FillWindowPixelBuffer(data->field_C, 0x22); + FillWindowPixelBuffer(data->field_C, PALETTE_NUM_TO_FILL_VALUE(2)); sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); PutWindowTilemap(data->field_C); CopyWindowToVram(data->field_C, 2); @@ -2155,7 +2155,7 @@ void sub_8014F48(u8 taskId) data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); sub_8018784(data->field_D); - FillWindowPixelBuffer(data->field_D, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(data->field_D, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(data->field_D); sub_80125BC(data->field_D); CopyWindowToVram(data->field_D, 2); diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 411f3f3d9..62d6f9e3e 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -231,8 +231,8 @@ static void CB2_SaveFailedScreen(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); SetWindowBorderStyle(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); SetWindowBorderStyle(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); - FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PIXEL_BUFFER_WHITE); // backwards? - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); // backwards? + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again? CopyWindowToVram(gSaveFailedWindowIds[TEXT_WIN_ID], 1); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); @@ -265,19 +265,19 @@ static void CB2_WipeSave(void) { if (WipeSectors(gDamagedSaveSectors) != FALSE) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); SetMainCallback2(CB2_GameplayCannotBeContinued); return; } - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); SaveFailedScreenTextPrint(gText_CheckCompleted, 1, 0); HandleSavingData(gSaveFailedType); if (gDamagedSaveSectors != 0) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); } @@ -286,12 +286,12 @@ static void CB2_WipeSave(void) if (wipeTries == 3) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); } else { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); if (gGameContinueCallback == NULL) SaveFailedScreenTextPrint(gText_SaveCompleteGameCannotContinue, 1, 0); @@ -308,7 +308,7 @@ static void CB2_GameplayCannotBeContinued(void) if (gMain.newKeys & A_BUTTON) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); SaveFailedScreenTextPrint(gText_GamePlayCannotBeContinued, 1, 0); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_FadeAndReturnToTitleScreen); diff --git a/src/scrcmd.c b/src/scrcmd.c index a1e391b4a..145437a2a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1519,7 +1519,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); - FillWindowPixelBuffer(gUnknown_03000F30, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(gUnknown_03000F30, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; diff --git a/src/script_menu.c b/src/script_menu.c index 98761fe34..8831d65c6 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1639,27 +1639,27 @@ static void sub_80E2A94(u8 multichoiceId) switch (multichoiceId) { case 77: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 76: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 78: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 79: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 75: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 74: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; } diff --git a/src/shop.c b/src/shop.c index 9c7c30fed..8c530e0d3 100755 --- a/src/shop.c +++ b/src/shop.c @@ -545,7 +545,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, s description = gText_QuitShopping; } - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); BuyMenuPrint(2, description, 3, 1, 0, 0); } @@ -1144,7 +1144,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) { s16 *data = gTasks[taskId].data; - FillWindowPixelBuffer(4, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(1)); PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF); ConvertIntToDecimalStringN(gStringVar1, tItemCount, 2, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); diff --git a/src/slot_machine.c b/src/slot_machine.c index bf26de437..f603f468c 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -3036,7 +3036,7 @@ s16 sub_8102D5C(s16 a0) sub_81065DC(); AddWindow(&gUnknown_085A7444); PutWindowTilemap(1); - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); task->data[0]++; } @@ -3052,7 +3052,7 @@ s16 sub_8102D5C(s16 a0) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(1); CopyWindowToVram(1, 1); RemoveWindow(1); diff --git a/src/start_menu.c b/src/start_menu.c index 4231db7cc..c61269c9c 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1232,7 +1232,7 @@ static void sub_80A0550(u8 taskId) switch (*step) { case 0: - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, diff --git a/src/starter_choose.c b/src/starter_choose.c index fda1d95fa..4e21c1845 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -523,7 +523,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0); @@ -579,7 +579,7 @@ static void CreateStarterPokemonLabel(u8 selection) winTemplate.tilemapTop = gStarterChoose_LabelCoords[selection][1]; sStarterChooseWindowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sStarterChooseWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); width = GetStringCenterAlignXOffset(7, text, 0x68); AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); @@ -600,7 +600,7 @@ static void CreateStarterPokemonLabel(u8 selection) static void sub_8134604(void) { - FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(sStarterChooseWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(sStarterChooseWindowId); RemoveWindow(sStarterChooseWindowId); sStarterChooseWindowId = 0xFF; diff --git a/src/text.c b/src/text.c index a439d3ced..c3ae315d0 100644 --- a/src/text.c +++ b/src/text.c @@ -1581,7 +1581,7 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; return 2; case 15: - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, textPrinter->printerTemplate.bgColor | textPrinter->printerTemplate.bgColor << 4); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; return 2; @@ -1702,7 +1702,7 @@ u16 RenderText(struct TextPrinter *textPrinter) case 2: if (TextPrinterWaitWithDownArrow(textPrinter)) { - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, (textPrinter->printerTemplate.bgColor << 4) | textPrinter->printerTemplate.bgColor); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; textPrinter->state = 0; diff --git a/src/trade.c b/src/trade.c index 148ad2e26..1b1b4670b 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1418,7 +1418,7 @@ static void sub_80772A4(void) for (i = 0; i < 18; i++) { ClearWindowTilemap(i); - FillWindowPixelBuffer(i, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); } FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 15); @@ -2461,7 +2461,7 @@ static void sub_8078DBC(void) if (gUnknown_0203229C->tradeMenuCursorPosition < 6) { sub_8098858(1, 1, 14); - FillWindowPixelBuffer(1, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); PrintMenuTable(1, 2, gUnknown_0832DEAC); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -2724,7 +2724,7 @@ static void sub_8079408(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(i + 14, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(i + 14, PALETTE_NUM_TO_FILL_VALUE(0)); rbox_fill_rectangle(i + 14); } @@ -3256,7 +3256,7 @@ static void sub_807A0C4(void) static void sub_807A19C(u8 a0) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_WHITE); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(0, 20, 12); PutWindowTilemap(0); @@ -4185,7 +4185,7 @@ void sub_807B140(void) void sub_807B154(void) { - FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); PutWindowTilemap(0); CopyWindowToVram(0, 3); } @@ -4263,7 +4263,7 @@ static void sub_807B270(void) break; case 8: sub_807ACFC(1, 1); - FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); PutWindowTilemap(0); CopyWindowToVram(0, 3); gMain.state++; @@ -4654,7 +4654,7 @@ static bool8 sub_807BBEC(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -5146,7 +5146,7 @@ static bool8 sub_807CFC8(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -6085,7 +6085,7 @@ void sub_807F19C(void) void sub_807F1A8(u8 windowId, const u8 *str, u8 speed) { - FillWindowPixelBuffer(windowId, PIXEL_BUFFER_UNKNOWN); + FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(15)); gUnknown_020322A0->unk_F6[0] = 15; gUnknown_020322A0->unk_F6[1] = 1; gUnknown_020322A0->unk_F6[2] = 6; diff --git a/src/trainer_card.c b/src/trainer_card.c index d6d3b3152..c8f0df0db 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -350,7 +350,7 @@ static void sub_80C2760(u8 taskId) case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); sData->var_0++; } break; @@ -363,7 +363,7 @@ static void sub_80C2760(u8 taskId) sData->var_0++; break; case 3: - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); sub_80C4FF0(); sub_80C438C(2); sData->var_0++; @@ -1634,7 +1634,7 @@ static bool8 sub_80C4B08(struct Task* task) switch (sData->var_4) { case 0: - FillWindowPixelBuffer(1, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); break; case 1: @@ -1659,7 +1659,7 @@ static bool8 sub_80C4B08(struct Task* task) if (!sData->var_8) sub_80C474C(); else - FillWindowPixelBuffer(2, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); break; case 4: if (sData->var_8) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 5f351554e..821068fef 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -609,7 +609,7 @@ void PrintOnTrainerHillRecordsWindow(void) u32 total, minutes, secondsWhole, secondsFraction; SetUpDataStruct(); - FillWindowPixelBuffer(0, PIXEL_BUFFER_TRANSPARENT); + FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); x = GetStringCenterAlignXOffset(1, gText_TimeBoard, 0xD0); AddTextPrinterParameterized3(0, 1, x, 2, sRecordWinColors, TEXT_SPEED_FF, gText_TimeBoard); diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index bbc256915..08fdf2e84 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -114,7 +114,7 @@ u16 Font6Func(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++; return 2; case 15: - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, textPrinter->printerTemplate.bgColor | (textPrinter->printerTemplate.bgColor << 4)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); return 2; } break; @@ -146,7 +146,7 @@ u16 Font6Func(struct TextPrinter *textPrinter) case 2: if (TextPrinterWaitWithDownArrow(textPrinter)) { - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, textPrinter->printerTemplate.bgColor | (textPrinter->printerTemplate.bgColor << 4)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; textPrinter->state = 0; diff --git a/src/window.c b/src/window.c index 1daf4b5fc..94e68cae5 100644 --- a/src/window.c +++ b/src/window.c @@ -106,7 +106,7 @@ bool16 InitWindows(const struct WindowTemplate *templates) } } - gTransparentTileNumber = TRANSPARENT_TILE_NUMBER; + gTransparentTileNumber = 0; return TRUE; } -- cgit v1.2.3 From 199863f21f41b3a51d9a6302ca7c3c2864ee1c17 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 21 Feb 2019 23:56:22 -0500 Subject: Replace more instances of fill values --- src/list_menu.c | 10 +++++----- src/naming_screen.c | 4 +++- src/pokemon_storage_system.c | 2 +- src/text.c | 4 ++-- src/unk_text_util_2.c | 4 ++-- 5 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/list_menu.c b/src/list_menu.c index 83293890c..656ab7a15 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -698,7 +698,7 @@ static void ListMenuErasePrintedCursor(struct ListMenu *list, u16 selectedRow) u8 width = GetMenuCursorDimensionByFont(list->template.fontId, 0); u8 height = GetMenuCursorDimensionByFont(list->template.fontId, 1); FillWindowPixelRect(list->template.windowId, - (list->template.fillValue << 4) | (list->template.fillValue), + PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), list->template.cursor_X, selectedRow * yMultiplier + list->template.upText_Y, width, @@ -806,26 +806,26 @@ static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown) { u16 y, width, height; - ScrollWindow(list->template.windowId, 1, count * yMultiplier, (list->template.fillValue << 4) | (list->template.fillValue)); + ScrollWindow(list->template.windowId, 1, count * yMultiplier, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, count); y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y; width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; height = (GetWindowAttribute(list->template.windowId, WINDOW_HEIGHT) * 8) - y; FillWindowPixelRect(list->template.windowId, - (list->template.fillValue << 4) | (list->template.fillValue), + PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), 0, y, width, height); } else { u16 width; - ScrollWindow(list->template.windowId, 0, count * yMultiplier, (list->template.fillValue << 4) | (list->template.fillValue)); + ScrollWindow(list->template.windowId, 0, count * yMultiplier, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset + (list->template.maxShowed - count), list->template.maxShowed - count, count); width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; FillWindowPixelRect(list->template.windowId, - (list->template.fillValue << 4) | (list->template.fillValue), + PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), 0, 0, width, list->template.upText_Y); } } diff --git a/src/naming_screen.c b/src/naming_screen.c index a84cbd657..013eb37ca 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1704,7 +1704,9 @@ static const struct TextColorThing sUnkColorStruct = static const u8 sFillValues[3] = { - 0xEE, 0xDD, 0xFF + PALETTE_NUM_TO_FILL_VALUE(0xE), + PALETTE_NUM_TO_FILL_VALUE(0xD), + PALETTE_NUM_TO_FILL_VALUE(0xF) }; static const u8 *const sUnkColors[3] = diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 8abb349ef..d4c4c5224 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -9194,7 +9194,7 @@ static void sub_80D0834(u8 arg0, u8 arg1) if (species != SPECIES_NONE) { FillWindowPixelRect8Bit(sPSSData->field_2200, - 0, + PALETTE_NUM_TO_FILL_VALUE(0), 24 * arg0, 24 * arg1, 32, diff --git a/src/text.c b/src/text.c index c3ae315d0..dc28d71c8 100644 --- a/src/text.c +++ b/src/text.c @@ -1724,12 +1724,12 @@ u16 RenderText(struct TextPrinter *textPrinter) int speed = gWindowVerticalScrollSpeeds[scrollSpeed]; if (textPrinter->scrollDistance < speed) { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, textPrinter->printerTemplate.bgColor << 4 | textPrinter->printerTemplate.bgColor); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, speed, textPrinter->printerTemplate.bgColor << 4 | textPrinter->printerTemplate.bgColor); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, speed, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance -= speed; } CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index 08fdf2e84..6fbe6d04f 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -166,12 +166,12 @@ u16 Font6Func(struct TextPrinter *textPrinter) { if (textPrinter->scrollDistance < sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]) { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, textPrinter->printerTemplate.bgColor | (textPrinter->printerTemplate.bgColor << 4)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], textPrinter->printerTemplate.bgColor | (textPrinter->printerTemplate.bgColor << 4)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance -= sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]; } CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); -- cgit v1.2.3 From 44e92ce2596981c8d42b70922e5ae84d6b321ab1 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 01:40:11 -0500 Subject: Give window drawing functions better names --- src/apprentice.c | 4 +- src/battle_pyramid_bag.c | 13 ++++--- src/battle_records.c | 4 +- src/berry_blender.c | 10 ++--- src/cable_club.c | 4 +- src/clear_save_data_screen.c | 2 +- src/coins.c | 4 +- src/daycare.c | 6 +-- src/decoration.c | 42 ++++++++++---------- src/field_message_box.c | 6 +-- src/field_player_avatar.c | 4 +- src/field_region_map.c | 4 +- src/field_specials.c | 12 +++--- src/fldeff_softboiled.c | 2 +- src/frontier_util.c | 18 ++++----- src/hall_of_fame.c | 10 ++--- src/item_menu.c | 7 ++-- src/item_use.c | 4 +- src/list_menu.c | 4 +- src/main_menu.c | 16 ++++---- src/map_name_popup.c | 4 +- src/mauville_old_man.c | 2 +- src/menu.c | 92 ++++++++++++++++++++++---------------------- src/menu_helpers.c | 2 +- src/money.c | 4 +- src/mystery_event_menu.c | 4 +- src/naming_screen.c | 2 +- src/party_menu.c | 14 +++---- src/player_pc.c | 24 ++++++------ src/pokeblock.c | 8 ++-- src/pokeblock_feed.c | 2 +- src/pokemon_storage_system.c | 14 +++---- src/record_mixing.c | 4 +- src/region_map.c | 12 +++--- src/reset_rtc_screen.c | 10 ++--- src/rom_8011DC0.c | 16 ++++---- src/roulette.c | 40 +++++++++---------- src/save_failed_screen.c | 4 +- src/scrcmd.c | 6 +-- src/script_menu.c | 4 +- src/secret_base.c | 16 ++++---- src/shop.c | 16 ++++---- src/slot_machine.c | 18 ++++----- src/start_menu.c | 44 ++++++++++----------- src/starter_choose.c | 2 +- src/trader.c | 4 +- src/trainer_card.c | 2 +- src/wallclock.c | 4 +- src/window.c | 1 + 49 files changed, 277 insertions(+), 274 deletions(-) (limited to 'src') diff --git a/src/apprentice.c b/src/apprentice.c index 9cf8cd4b4..27ff8e36e 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -1619,7 +1619,7 @@ static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height) static void RemoveAndHideWindow(u8 windowId) { - sub_8198070(windowId, TRUE); + ClearStdWindowAndFrameToTransparent(windowId, TRUE); RemoveWindow(windowId); } @@ -1826,7 +1826,7 @@ static void Script_PrintMessage(void) FreezeEventObjects(); sub_808B864(); sub_808BCF4(); - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); PrintMessage(); } diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 510356215..20029b284 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1146,7 +1146,7 @@ static void sub_81C64B4(u8 taskId) else if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_8198070(3, 0); + ClearStdWindowAndFrameToTransparent(3, 0); ClearWindowTilemap(3); schedule_bg_copy_tilemap_to_vram(1); sub_81C6350(taskId); @@ -1154,7 +1154,7 @@ static void sub_81C64B4(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_8198070(3, 0); + ClearStdWindowAndFrameToTransparent(3, 0); ClearWindowTilemap(3); schedule_bg_copy_tilemap_to_vram(1); DontTossItem(taskId); @@ -1415,7 +1415,7 @@ static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 lette static void sub_81C6CEC(u8 windowId) { - SetWindowBorderStyle(windowId, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(windowId, 0, 1, 0xE); schedule_bg_copy_tilemap_to_vram(1); } @@ -1430,7 +1430,7 @@ static u8 sub_81C6D24(u8 windowArrayId) if (*windowId == 0xFF) { *windowId = AddWindow(&gUnknown_0861F350[windowArrayId]); - SetWindowBorderStyle(*windowId, FALSE, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(*windowId, FALSE, 1, 0xE); schedule_bg_copy_tilemap_to_vram(1); } return *windowId; @@ -1441,7 +1441,7 @@ static void sub_81C6D6C(u8 windowArrayId) u8 *windowId = &gPyramidBagResources->windowIds[windowArrayId]; if (*windowId != 0xFF) { - sub_8198070(*windowId, FALSE); + ClearStdWindowAndFrameToTransparent(*windowId, FALSE); ClearWindowTilemap(*windowId); RemoveWindow(*windowId); schedule_bg_copy_tilemap_to_vram(1); @@ -1463,7 +1463,8 @@ void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback static void sub_81C6E1C(void) { - sub_8197DF8(2, FALSE); + ClearDialogWindowAndFrameToTransparent(2, FALSE); + // This ClearWindowTilemap call is redundant, since ClearDialogWindowAndFrameToTransparent already calls it. ClearWindowTilemap(2); schedule_bg_copy_tilemap_to_vram(1); } diff --git a/src/battle_records.c b/src/battle_records.c index eb41dcc94..03d2088b4 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -320,7 +320,7 @@ void ShowLinkBattleRecords(void) s32 i, x; gRecordsWindowId = AddWindow(&sLinkBattleRecordsWindow); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); @@ -342,7 +342,7 @@ void ShowLinkBattleRecords(void) void RemoveRecordsWindow(void) { - ClearWindowAndBorder(gRecordsWindowId, FALSE); + ClearStdWindowAndFrame(gRecordsWindowId, FALSE); RemoveWindow(gRecordsWindowId); } diff --git a/src/berry_blender.c b/src/berry_blender.c index 0a35c672f..35749db54 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1251,7 +1251,7 @@ static void sub_8080018(void) case 10: if (++sBerryBlenderData->framesToWait > 20) { - sub_8197DF8(4, TRUE); + ClearDialogWindowAndFrameToTransparent(4, TRUE); if (GetBlockReceivedStatus() == sub_800A9D8()) { for (i = 0; i < GetLinkPlayerCount(); i++) @@ -3325,7 +3325,7 @@ static bool8 Blender_PrintBlendingResults(void) sBerryBlenderData->mainState++; break; case 5: - sub_8198070(5, 1); + ClearStdWindowAndFrameToTransparent(5, 1); for (i = 0; i < BLENDER_MAX_PLAYERS; i++) { @@ -3466,7 +3466,7 @@ static bool8 Blender_PrintBlendingRanking(void) } break; case 3: - SetWindowBorderStyle(5, 0, 1, 0xD); + DrawStdFrameWithCustomTileAndPalette(5, 0, 1, 0xD); xPos = GetStringCenterAlignXOffset(1, sText_Ranking, 0xA8); Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SPEED_FF, 0); @@ -3537,7 +3537,7 @@ void ShowBerryBlenderRecordWindow(void) winTemplate = sBlenderRecordWindowTemplate; gRecordsWindowId = AddWindow(&winTemplate); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, 0); + DrawStdWindowFrame(gRecordsWindowId, 0); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); @@ -3658,7 +3658,7 @@ static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed) switch (*textState) { case 0: - sub_8197B1C(4, FALSE, 0x14, 0xF); + DrawDialogFrameWithCustomTileAndPalette(4, FALSE, 0x14, 0xF); Blender_AddTextPrinter(4, string, 0, 1, textSpeed, 0); PutWindowTilemap(4); CopyWindowToVram(4, 3); diff --git a/src/cable_club.c b/src/cable_club.c index f8137fd8f..dfef39975 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -93,8 +93,8 @@ static void sub_80B23B0(u16 windowId, u32 value) static void sub_80B241C(u16 windowId) { // Following this call with a copy-to-vram with mode 3 is identical to - // calling ClearWindowAndBorder(windowId, TRUE). - ClearWindowAndBorder(windowId, FALSE); + // calling ClearStdWindowAndFrame(windowId, TRUE). + ClearStdWindowAndFrame(windowId, FALSE); CopyWindowToVram(windowId, 3); } diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 7fdd101e2..619b39410 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -79,7 +79,7 @@ void CB2_InitClearSaveDataScreen(void) static void Task_DoClearSaveDataScreenYesNo(u8 taskId) { - SetWindowBorderStyle(0, 0, 2, 14); + DrawStdFrameWithCustomTileAndPalette(0, 0, 2, 14); AddTextPrinterParameterized(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1); gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice; diff --git a/src/coins.c b/src/coins.c index c6fbf1216..a8d8eae06 100644 --- a/src/coins.c +++ b/src/coins.c @@ -29,13 +29,13 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) sCoinsWindowId = AddWindow(&template); FillWindowPixelBuffer(sCoinsWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); PutWindowTilemap(sCoinsWindowId); - SetWindowBorderStyle(sCoinsWindowId, FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x214, 0xE); PrintCoinsString(coinAmount); } void HideCoinsWindow(void) { - ClearWindowAndBorder(sCoinsWindowId, TRUE); + ClearStdWindowAndFrame(sCoinsWindowId, TRUE); RemoveWindow(sCoinsWindowId); } diff --git a/src/daycare.c b/src/daycare.c index 14120f20b..885ac31a1 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1259,7 +1259,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) break; } DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); - ClearWindowAndBorder(gTasks[taskId].tWindowId, TRUE); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); @@ -1268,7 +1268,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) { gSpecialVar_Result = 2; DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); - ClearWindowAndBorder(gTasks[taskId].tWindowId, TRUE); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); EnableBothScriptContexts(); @@ -1283,7 +1283,7 @@ void ShowDaycareLevelMenu(void) u8 daycareMenuTaskId; windowId = AddWindow(&sDaycareLevelMenuWindowTemplate); - NewMenuHelpers_DrawStdWindowFrame(windowId, FALSE); + DrawStdWindowFrame(windowId, FALSE); menuTemplate = sDaycareListMenuLevelTemplate; menuTemplate.windowId = windowId; diff --git a/src/decoration.c b/src/decoration.c index c3434522d..98c3ef028 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -463,14 +463,14 @@ u8 sub_81269D4(u8 idx) { *winidx = AddWindow(&gUnknown_085A6B90[idx]); } - SetWindowBorderStyle(*winidx, 0, 0x214, 0xe); + DrawStdFrameWithCustomTileAndPalette(*winidx, 0, 0x214, 0xe); schedule_bg_copy_tilemap_to_vram(0); return *winidx; } void sub_8126A58(u8 idx) { - sub_8198070(sDecorMenuWindowIndices[idx], FALSE); + ClearStdWindowAndFrameToTransparent(sDecorMenuWindowIndices[idx], FALSE); ClearWindowTilemap(sDecorMenuWindowIndices[idx]); RemoveWindow(sDecorMenuWindowIndices[idx]); schedule_bg_copy_tilemap_to_vram(0); @@ -572,7 +572,7 @@ void SecretBasePC_PutAway(u8 taskId) else { sub_8126A58(0); - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); FadeScreen(1, 0); gTasks[taskId].data[2] = 0; gTasks[taskId].func = sub_8129ABC; @@ -617,7 +617,7 @@ void sub_8126DA4(u8 taskId) void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId) { LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_8126A58(0); sub_8126DFC(taskId); } @@ -751,7 +751,7 @@ void sub_81270E8(u8 taskId) void sub_8127180(u8 taskId) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_8126DFC(taskId); } @@ -771,7 +771,7 @@ void sub_81271CC(u8 taskId) { sub_8126A58(1); sub_8126A88(); - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); sub_8126C08(); gTasks[taskId].func = sub_8126B80; } @@ -779,7 +779,7 @@ void sub_81271CC(u8 taskId) void sub_8127208(u8 taskId) { LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20); - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); gTasks[taskId].data[11] = 2; sCurDecorationCategory = DECORCAT_DESK; sub_8126DFC(taskId); @@ -1095,7 +1095,7 @@ void sub_8127A14(u8 taskId) void sub_8127A30(u8 taskId) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); gTasks[taskId].func = sub_8127A14; } @@ -1103,7 +1103,7 @@ void sub_8127A5C(u8 taskId) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_81269D4(1); sub_8127620(taskId); } @@ -1628,13 +1628,13 @@ void sub_8128950(u8 taskId) void sub_81289D0(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A72C4); } void sub_81289F0(u8 taskId) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_8128AAC(taskId); if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SOLID_MAT) { @@ -1693,13 +1693,13 @@ void sub_8128AAC(u8 taskId) void sub_8128B80(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A72CC); } void sub_8128BA0(u8 taskId) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_8128BBC(taskId); } @@ -1887,7 +1887,7 @@ void sub_8128E18(u8 taskId) void sub_8128FD8(u8 taskId) { - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gTasks[taskId].data[10] = 0; gTasks[taskId].func = sub_8128E18; @@ -2251,7 +2251,7 @@ void sub_81298EC(u8 taskId) if (!gPaletteFade.active) { DrawWholeMapView(); ScriptContext1_SetupScript(EventScript_275D2E); - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); gTasks[taskId].data[2] = 2; } break; @@ -2343,7 +2343,7 @@ void sub_8129ABC(u8 taskId) void sub_8129B34(u8 taskId) { - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C; @@ -2588,7 +2588,7 @@ void sub_812A0E8(u8 taskId) void sub_812A1A0(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A7348); } @@ -2601,13 +2601,13 @@ void sub_812A1C0(u8 taskId) void sub_812A1F0(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A7350); } void sub_812A210(u8 taskId) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); sub_812A22C(taskId); } @@ -2671,7 +2671,7 @@ void sub_812A334(void) u8 taskId; pal_fill_black(); - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); sub_8126ABC(); taskId = CreateTask(sub_812A2C4, 8); gTasks[taskId].data[2] = 0; @@ -2725,7 +2725,7 @@ void sub_812A3D4(u8 taskId) void sub_812A458(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A741C); } diff --git a/src/field_message_box.c b/src/field_message_box.c index 111807240..ac5e7a4bb 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -33,7 +33,7 @@ static void sub_8098154(u8 taskId) task->data[0]++; break; case 1: - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); task->data[0]++; break; case 2: @@ -127,7 +127,7 @@ static void textbox_auto_and_task_add(void) void HideFieldMessageBox(void) { task_del_textbox(); - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); sFieldMessageBoxMode = 0; } @@ -146,7 +146,7 @@ bool8 IsFieldMessageBoxHidden(void) void sub_8098358(void) { task_del_textbox(); - NewMenuHelpers_DrawStdWindowFrame(0, 1); + DrawStdWindowFrame(0, 1); sFieldMessageBoxMode = 0; } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index ddaaa208b..4ab3cb21e 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1944,7 +1944,7 @@ static bool8 Fishing11(struct Task *task) sub_8155604(gEventObjects[gPlayerAvatar.eventObjectId].fieldEffectSpriteId, 0, 0); gSprites[gPlayerAvatar.spriteId].pos2.x = 0; gSprites[gPlayerAvatar.spriteId].pos2.y = 0; - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); task->tFrameCounter++; return FALSE; } @@ -2017,7 +2017,7 @@ static bool8 Fishing16(struct Task *task) gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); UnfreezeEventObjects(); - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sub_80ED950(0); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } diff --git a/src/field_region_map.c b/src/field_region_map.c index e128c7084..850e84554 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -139,11 +139,11 @@ static void FieldUpdateRegionMap(void) sFieldRegionMapHandler->state++; break; case 1: - SetWindowBorderStyle(1, 0, 0x27, 0xd); + DrawStdFrameWithCustomTileAndPalette(1, 0, 0x27, 0xd); offset = GetStringCenterAlignXOffset(1, gText_Hoenn, 0x38); AddTextPrinterParameterized(1, 1, gText_Hoenn, offset, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); - SetWindowBorderStyle(0, 0, 0x27, 0xd); + DrawStdFrameWithCustomTileAndPalette(0, 0, 0x27, 0xd); PrintRegionMapSecName(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); sFieldRegionMapHandler->state++; diff --git a/src/field_specials.c b/src/field_specials.c index 62d3b8e59..bdac426bd 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1859,7 +1859,7 @@ void sub_8139B60(void) void sub_8139C10(void) { - sub_8198070(gUnknown_0203AB5E, TRUE); + ClearStdWindowAndFrameToTransparent(gUnknown_0203AB5E, TRUE); RemoveWindow(gUnknown_0203AB5E); } @@ -2644,7 +2644,7 @@ static void sub_813A570(u8 taskId) sub_813A738(taskId); DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); - sub_8198070(task->data[13], 1); + ClearStdWindowAndFrameToTransparent(task->data[13], 1); FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); @@ -2889,7 +2889,7 @@ void sub_813A958(void) void sub_813A988(void) { - sub_8198070(gUnknown_0203AB6D, TRUE); + ClearStdWindowAndFrameToTransparent(gUnknown_0203AB6D, TRUE); RemoveWindow(gUnknown_0203AB6D); } @@ -2941,7 +2941,7 @@ void sub_813AA18(void) void sub_813AA44(void) { - sub_8198070(gUnknown_0203AB6E, TRUE); + ClearStdWindowAndFrameToTransparent(gUnknown_0203AB6E, TRUE); RemoveWindow(gUnknown_0203AB6E); } @@ -3153,7 +3153,7 @@ static void sub_813AD34(u8 a0, u16 a1) void sub_813ADB8(void) { - sub_8198070(gUnknown_0203AB5E, TRUE); + ClearStdWindowAndFrameToTransparent(gUnknown_0203AB5E, TRUE); RemoveWindow(gUnknown_0203AB5E); } @@ -3225,7 +3225,7 @@ void sub_813AF48(void) struct Task *task = &gTasks[taskId]; DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); - sub_8198070(task->data[13], TRUE); + ClearStdWindowAndFrameToTransparent(task->data[13], TRUE); FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 2); diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index adec780b3..eca7d045b 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -86,7 +86,7 @@ static void sub_8161724(u8 taskId) sub_81B0FCC(gUnknown_0203CEC8.unk9, 0); gUnknown_0203CEC8.unk9 = gUnknown_0203CEC8.unkA; sub_81B0FCC(gUnknown_0203CEC8.unkA, 1); - sub_8198070(0x6, FALSE); + ClearStdWindowAndFrameToTransparent(0x6, FALSE); ClearWindowTilemap(0x6); display_pokemon_menu_message(0); gTasks[taskId].func = sub_81B1370; diff --git a/src/frontier_util.c b/src/frontier_util.c index 5846616b7..ec7327ca3 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1044,7 +1044,7 @@ static void TowerPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x static void ShowTowerResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleRoomResults); @@ -1115,7 +1115,7 @@ static void DomePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 x2 static void ShowDomeResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleTourneyResults); @@ -1191,7 +1191,7 @@ static void PalacePrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowPalaceResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleHallResults); @@ -1247,7 +1247,7 @@ static void PikePrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPikeResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); PrintAligned(gStringVar4, 0); @@ -1309,7 +1309,7 @@ static void ArenaPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowArenaResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); PrintHyphens(10); StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults); @@ -1395,7 +1395,7 @@ static void FactoryPrintPrevOrCurrentStreak(u8 battleMode, u8 lvlMode, u8 x1, u8 static void ShowFactoryResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_BattleSwapSingleResults); @@ -1460,7 +1460,7 @@ static void PyramidPrintPrevOrCurrentStreak(u8 lvlMode, u8 x1, u8 x2, u8 y) static void ShowPyramidResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); PrintAligned(gStringVar4, 2); @@ -1483,7 +1483,7 @@ static void ShowLinkContestResultsWindow(void) s32 x; gRecordsWindowId = AddWindow(&gUnknown_08611C7C); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); StringExpandPlaceholders(gStringVar4, gText_LinkContestResults); @@ -2353,7 +2353,7 @@ static void PrintHallRecords(s32 hallFacilityId, s32 lvlMode) void ShowRankingHallRecordsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C84); - NewMenuHelpers_DrawStdWindowFrame(gRecordsWindowId, FALSE); + DrawStdWindowFrame(gRecordsWindowId, FALSE); FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); PutWindowTilemap(gRecordsWindowId); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index b25342021..d3b94cff6 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -490,7 +490,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId) } *lastSavedTeam = *sHofMonPtr; - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_TrySaveData; @@ -570,7 +570,7 @@ static void Task_Hof_DisplayMon(u8 taskId) gSprites[spriteId].tSpecies = currMon->species; gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate; gTasks[taskId].tMonSpriteId(currMonId) = spriteId; - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); gTasks[taskId].func = Task_Hof_PrintMonInfoAfterAnimating; } @@ -697,7 +697,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); HallOfFame_PrintPlayerInfo(1, 2); - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized2(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_ExitOnKeyPressed; @@ -1066,7 +1066,7 @@ static void Task_HofPC_HandleExit(u8 taskId) static void Task_HofPC_PrintDataIsCorrupted(u8 taskId) { sub_8198180(gText_UnkCtrlF800Exit, 8, TRUE); - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_HofPC_ExitOnButtonPress; @@ -1182,7 +1182,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(1); - SetWindowBorderStyle(1, FALSE, 0x21D, 0xD); + DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 0xD); AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70); diff --git a/src/item_menu.c b/src/item_menu.c index ae24c8a03..f561ebb36 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -2306,7 +2306,7 @@ u8 bag_menu_add_window(u8 a) if (*ptr == 0xFF) { *ptr = AddWindow(&gUnknown_086141AC[a]); - SetWindowBorderStyle(*ptr, 0, 1, 14); + DrawStdFrameWithCustomTileAndPalette(*ptr, 0, 1, 14); schedule_bg_copy_tilemap_to_vram(1); } return *ptr; @@ -2317,7 +2317,7 @@ void bag_menu_remove_window(u8 a) u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr != 0xFF) { - sub_8198070(*ptr, 0); + ClearStdWindowAndFrameToTransparent(*ptr, 0); ClearWindowTilemap(*ptr); RemoveWindow(*ptr); schedule_bg_copy_tilemap_to_vram(1); @@ -2338,7 +2338,8 @@ void bag_menu_RemoveBagItem_message_window(u8 a) u8 *ptr = &gUnknown_0203CE54->windowPointers[a]; if (*ptr != 0xFF) { - sub_8197DF8(*ptr, 0); + ClearDialogWindowAndFrameToTransparent(*ptr, FALSE); + // This ClearWindowTilemap call is redundant, since ClearDialogWindowAndFrameToTransparent already calls it. ClearWindowTilemap(*ptr); RemoveWindow(*ptr); schedule_bg_copy_tilemap_to_vram(1); diff --git a/src/item_use.c b/src/item_use.c index 81f4b7b54..2281cc198 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -188,7 +188,7 @@ void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemO void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId) { - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); DestroyTask(taskId); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); @@ -350,7 +350,7 @@ void sub_80FD504(u8 taskId) void sub_80FD5CC(u8 taskId) { - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); DestroyTask(taskId); diff --git a/src/list_menu.c b/src/list_menu.c index 656ab7a15..b8e186348 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -355,11 +355,11 @@ s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenu switch (arg2) { case 0: // can never be reached, because of the if statement above - ClearWindowAndBorder(sMysteryGiftLinkMenu.windowId, FALSE); + ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE); break; case 2: case 1: - ClearWindowAndBorder(sMysteryGiftLinkMenu.windowId, FALSE); + ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE); break; } } diff --git a/src/main_menu.c b/src/main_menu.c index cb39f036e..6ad1776f8 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -944,14 +944,14 @@ static void Task_HandleMainMenuAPressed(u8 taskId) { if (gTasks[taskId].tMenuType == HAS_MYSTERY_EVENTS) RemoveScrollIndicatorArrowPair(gTasks[taskId].tScrollArrowTaskId); - ClearWindowAndBorder(0, TRUE); - ClearWindowAndBorder(1, TRUE); - ClearWindowAndBorder(2, TRUE); - ClearWindowAndBorder(3, TRUE); - ClearWindowAndBorder(4, TRUE); - ClearWindowAndBorder(5, TRUE); - ClearWindowAndBorder(6, TRUE); - ClearWindowAndBorder(7, TRUE); + ClearStdWindowAndFrame(0, TRUE); + ClearStdWindowAndFrame(1, TRUE); + ClearStdWindowAndFrame(2, TRUE); + ClearStdWindowAndFrame(3, TRUE); + ClearStdWindowAndFrame(4, TRUE); + ClearStdWindowAndFrame(5, TRUE); + ClearStdWindowAndFrame(6, TRUE); + ClearStdWindowAndFrame(7, TRUE); wirelessAdapterConnected = IsWirelessAdapterConnected(); switch (gTasks[taskId].tMenuType) { diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 30b04c21d..8936198ae 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -276,7 +276,7 @@ static void Task_MapNamePopUpWindow(u8 taskId) } break; case 4: - ClearWindowAndBorder(GetMapNamePopUpWindowId(), TRUE); + ClearStdWindowAndFrame(GetMapNamePopUpWindowId(), TRUE); task->data[0] = 5; break; case 5: @@ -290,7 +290,7 @@ void HideMapNamePopUpWindow(void) { if (FuncIsActiveTask(Task_MapNamePopUpWindow)) { - ClearWindowAndBorder(GetMapNamePopUpWindowId(), TRUE); + ClearStdWindowAndFrame(GetMapNamePopUpWindowId(), TRUE); RemoveMapNamePopUpWindow(); SetGpuReg_ForcedBlank(REG_OFFSET_BG0VOFS, 0); DestroyTask(sPopupTaskId); diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index fd8e74c0a..ec5cb238b 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -437,7 +437,7 @@ static void BardSong_TextSubPrinter(struct TextPrinterTemplate * printer, u16 a1 static void sub_8120708(const u8 * src) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); gUnknown_03002F84 = TRUE; CopyWindowToVram(0, 3); diff --git a/src/menu.c b/src/menu.c index 26ea99de2..39d6f3fd1 100644 --- a/src/menu.c +++ b/src/menu.c @@ -124,14 +124,14 @@ const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] = // Forward declarations extern void sub_81973A4(void); -extern void DrawStandardFrame(u8, u8, u8, u8, u8, u8); -extern void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); -extern void ClearWindowAndBorderTilemap(u8, u8, u8, u8, u8, u8); -extern void ClearWindowAndWideBorderTilemap(u8, u8, u8, u8, u8, u8); -extern void sub_8197BB4(u8, u8, u8, u8, u8, u8); -extern void sub_8197E30(u8, u8, u8, u8, u8, u8); -extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); -extern void sub_81980A8(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8); +extern void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8); extern u8 Menu_MoveCursor(s8); extern u8 sub_8199134(s8, s8); extern void sub_8198C78(void); @@ -210,43 +210,43 @@ void sub_81973A4(void) LoadUserWindowBorderGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); } -void NewMenuHelpers_DrawDialogueFrame(u8 windowId, bool8 copyToVram) +void DrawDialogueFrame(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, DrawDialogueFrame); + CallWindowFunction(windowId, WindowFunc_DrawDialogueFrame); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 copyToVram) +void DrawStdWindowFrame(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, DrawStandardFrame); + CallWindowFunction(windowId, WindowFunc_DrawStandardFrame); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void ClearWindowAndWideBorder(u8 windowId, bool8 copyToVram) +void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, ClearWindowAndWideBorderTilemap); + CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrame); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void ClearWindowAndBorder(u8 windowId, bool8 copyToVram) +void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, ClearWindowAndBorderTilemap); + CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrame); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { int i; @@ -313,7 +313,7 @@ void DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height STD_WINDOW_PALETTE_NUM); } -void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, @@ -408,28 +408,25 @@ void DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height DLG_WINDOW_PALETTE_NUM); } -// Clears the given window, and a 1-tile border around the window, to transparent tiles. -void ClearWindowAndBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); } -// Clears the given window, and a 1-tile border the top and bottom, plus a 3-tile border on the left and right. -// Tiles are set to a transparent tile. -void ClearWindowAndWideBorderTilemap(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, STD_WINDOW_PALETTE_NUM); } void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram) { - SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); + DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); } void sub_819786C(u8 windowId, bool8 copyToVram) { LoadMessageBoxGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); - sub_8197B1C(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF); + DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, 0xF); } void sub_819789C(void) @@ -461,12 +458,12 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *string, TaskFunc callback) CopyWindowToVram(0, 3); } -void DisplayYesNoMenu(void) +void DisplayYesNoMenuWithDefault(void) { CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0); } -void sub_8197948(u8 initialCursorPos) +void DisplayYesNoMenuWithDefaultDefaultNo(u8 initialCursorPos) { CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, initialCursorPos); } @@ -552,29 +549,30 @@ void sub_8197AE8(bool8 copyToVram) CopyBgTilemapBufferToVram(0); } -void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum) +void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum) { sTileNum = tileNum; sPaletteNum = paletteNum; - CallWindowFunction(windowId, sub_8197BB4); + CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum) +// Never used. +void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum) { sTileNum = tileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); - CallWindowFunction(windowId, sub_8197BB4); + CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, sTileNum + 1, @@ -669,43 +667,45 @@ void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p sPaletteNum); } -void sub_8197DF8(u8 windowId, bool8 copyToVram) +void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, sub_8197E30); + // The palette slot doesn't matter, since the tiles are transparent. + CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrameNullPalette); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8197E30(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, 0, tilemapLeft - 3, tilemapTop - 1, width + 6, height + 2, 0); } -void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum) +void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum) { sTileNum = baseTileNum; sPaletteNum = paletteNum; - CallWindowFunction(windowId, DrawWindowBorder); + CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum) +// Never used. +void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTileNum) { sTileNum = baseTileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); - CallWindowFunction(windowId, DrawWindowBorder); + CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, sTileNum + 0, @@ -765,16 +765,16 @@ void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, sPaletteNum); } -void sub_8198070(u8 windowId, bool8 copyToVram) +void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) { - CallWindowFunction(windowId, sub_81980A8); + CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrameToTransparent); FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_81980A8(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +void WindowFunc_ClearStdWindowAndFrameToTransparent(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0); } @@ -1178,7 +1178,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top struct TextPrinterTemplate printer; sYesNoWindowId = AddWindow(window); - SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum); + DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, TRUE, baseTileNum, paletteNum); printer.currentChar = gText_YesNo; printer.windowId = sYesNoWindowId; @@ -1214,7 +1214,7 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void) void sub_8198C78(void) { - sub_8198070(sYesNoWindowId, TRUE); + ClearStdWindowAndFrameToTransparent(sYesNoWindowId, TRUE); RemoveWindow(sYesNoWindowId); } @@ -1643,7 +1643,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa struct TextPrinterTemplate printer; sYesNoWindowId = AddWindow(window); - SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum); + DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, TRUE, baseTileNum, paletteNum); printer.currentChar = gText_YesNo; printer.windowId = sYesNoWindowId; diff --git a/src/menu_helpers.c b/src/menu_helpers.c index e6547b300..49da6bda3 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -129,7 +129,7 @@ void SetVBlankHBlankCallbacksToNull(void) void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc) { gUnknown_0203A140 = windowId; - sub_8197B1C(windowId, TRUE, arg2, arg3); + DrawDialogFrameWithCustomTileAndPalette(windowId, TRUE, arg2, arg3); if (string != gStringVar4) StringExpandPlaceholders(gStringVar4, string); diff --git a/src/money.c b/src/money.c index 1b5e298f0..e7ae6080c 100644 --- a/src/money.c +++ b/src/money.c @@ -154,7 +154,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount) { - SetWindowBorderStyle(windowId, FALSE, tileStart, pallete); + DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, pallete); PrintMoneyAmountInMoneyBox(windowId, amount, 0); } @@ -179,7 +179,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) void HideMoneyBox(void) { RemoveMoneyLabelObject(); - sub_8198070(sMoneyBoxWindowId, FALSE); + ClearStdWindowAndFrameToTransparent(sMoneyBoxWindowId, FALSE); CopyWindowToVram(sMoneyBoxWindowId, 2); RemoveWindow(sMoneyBoxWindowId); } diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index b0f0ba302..2a1617592 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -133,7 +133,7 @@ static void CB2_MysteryEventMenu(void) switch (gMain.state) { case 0: - SetWindowBorderStyle(0, 1, 1, 0xD); + DrawStdFrameWithCustomTileAndPalette(0, 1, 1, 0xD); PutWindowTilemap(0); CopyWindowToVram(0, 3); ShowBg(0); @@ -180,7 +180,7 @@ static void CB2_MysteryEventMenu(void) { PlaySE(SE_SELECT); sub_800A620(); - SetWindowBorderStyle(1, 1, 1, 0xD); + DrawStdFrameWithCustomTileAndPalette(1, 1, 1, 0xD); PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0); PutWindowTilemap(1); CopyWindowToVram(1, 3); diff --git a/src/naming_screen.c b/src/naming_screen.c index 013eb37ca..e4159e3be 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -557,7 +557,7 @@ static void DisplaySentToPCMessage(void) stringToDisplay++; StringExpandPlaceholders(gStringVar4, gUnknown_0858BDB8[stringToDisplay]); - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); gTextFlags.canABSpeedUpPrint = TRUE; AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeedDelay(), 0, 2, 1, 3); CopyWindowToVram(0, 3); diff --git a/src/party_menu.c b/src/party_menu.c index 15128ab0c..51088af5f 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2753,7 +2753,7 @@ static void sub_81B1B8C(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_8198070(6, 0); + ClearStdWindowAndFrameToTransparent(6, 0); ClearWindowTilemap(6); } DestroyTask(taskId); @@ -2778,7 +2778,7 @@ static void sub_81B1C1C(u8 taskId) { if (sub_81B1BD4() != TRUE) { - sub_8198070(6, 0); + ClearStdWindowAndFrameToTransparent(6, 0); ClearWindowTilemap(6); if (sub_81221AC() == TRUE) { @@ -3501,7 +3501,7 @@ static void sub_81B302C(u8 *ptr) { if (*ptr != 0xFF) { - sub_8198070(*ptr, 0); + ClearStdWindowAndFrameToTransparent(*ptr, 0); RemoveWindow(*ptr); *ptr = 0xFF; schedule_bg_copy_tilemap_to_vram(2); @@ -3546,7 +3546,7 @@ void display_pokemon_menu_message(u32 stringID) else if (sub_81B314C() == FALSE) stringID = 1; } - SetWindowBorderStyle(*windowPtr, FALSE, 0x4F, 0xD); + DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x4F, 0xD); StringExpandPlaceholders(gStringVar4, gUnknown_08615AF4[stringID]); AddTextPrinterParameterized(*windowPtr, 1, gStringVar4, 0, 1, 0, 0); schedule_bg_copy_tilemap_to_vram(2); @@ -3596,7 +3596,7 @@ static u8 sub_81B31B0(u8 a) } gUnknown_0203CEC4->unkC[0] = AddWindow(&window); - SetWindowBorderStyle(gUnknown_0203CEC4->unkC[0], FALSE, 0x4F, 13); + DrawStdFrameWithCustomTileAndPalette(gUnknown_0203CEC4->unkC[0], FALSE, 0x4F, 13); if (a == 3) return gUnknown_0203CEC4->unkC[0]; cursorDimension = GetMenuCursorDimensionByFont(1, 0); @@ -3616,7 +3616,7 @@ static u8 sub_81B31B0(u8 a) static void sub_81B3300(const u8 *text) { - SetWindowBorderStyle(6, FALSE, 0x4F, 13); + DrawStdFrameWithCustomTileAndPalette(6, FALSE, 0x4F, 13); gTextFlags.canABSpeedUpPrint = TRUE; AddTextPrinterParameterized2(6, 1, text, GetPlayerTextSpeedDelay(), 0, 2, 1, 3); } @@ -3629,7 +3629,7 @@ static void sub_81B334C(void) static u8 sub_81B3364(void) { gUnknown_0203CEC4->unkC[0] = AddWindow(&gUnknown_08615970); - SetWindowBorderStyle(gUnknown_0203CEC4->unkC[0], FALSE, 0x4F, 13); + DrawStdFrameWithCustomTileAndPalette(gUnknown_0203CEC4->unkC[0], FALSE, 0x4F, 13); return gUnknown_0203CEC4->unkC[0]; } diff --git a/src/player_pc.c b/src/player_pc.c index 607c2a721..6ba5999ce 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -361,14 +361,14 @@ static void PlayerPCProcessMenuInput(u8 taskId) break; case MENU_B_PRESSED: PlaySE(SE_SELECT); - sub_8198070(data[4], FALSE); + ClearStdWindowAndFrameToTransparent(data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].func = PlayerPC_TurnOff; break; default: - sub_8198070(data[4], FALSE); + ClearStdWindowAndFrameToTransparent(data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); schedule_bg_copy_tilemap_to_vram(0); @@ -403,7 +403,7 @@ static void PlayerPC_Mailbox(u8 taskId) ItemStorage_SetItemAndMailCount(taskId); if (sub_81D1C44(playerPCItemPageInfo.count) == TRUE) { - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); Mailbox_DrawMailboxMenu(taskId); gTasks[taskId].func = Mailbox_ProcessInput; } @@ -451,7 +451,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var) static void ItemStorageMenuPrint(const u8 *textPtr) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, textPtr, 0, 1, 0, 0); } @@ -506,7 +506,7 @@ void sub_816B31C(void) void Mailbox_DoRedrawMailboxMenuAfterReturn(void) { sub_81973A4(); - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); InitItemStorageMenu(CreateTask(ItemStorage_HandleReturnToProcessInput, 0), 1); pal_fill_black(); } @@ -560,7 +560,7 @@ static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss) FreeAndReserveObjectSpritePalettes(); LoadListMenuArrowsGfx(); sub_8122344(gUnknown_0203BCC4->spriteIds, 7); - ClearWindowAndWideBorder(0,0); + ClearDialogWindowAndFrame(0,0); gTasks[taskId].func = ItemStorage_ProcessWithdrawTossInput; } @@ -583,7 +583,7 @@ static void sub_816B4DC(u8 taskId) { u16 *data = gTasks[taskId].data; - sub_8198070(data[4], FALSE); + ClearStdWindowAndFrameToTransparent(data[4], FALSE); ClearWindowTilemap(data[4]); RemoveWindow(data[4]); schedule_bg_copy_tilemap_to_vram(0); @@ -761,7 +761,7 @@ static void Mailbox_MoveToBag(u8 taskId) static void Mailbox_DrawYesNoBeforeMove(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); gTasks[taskId].func = Mailbox_MoveToBagYesNoPrompt; } @@ -863,7 +863,7 @@ static void Mailbox_NoPokemonForMail(u8 taskId) static void Mailbox_Cancel(u8 taskId) { sub_81D1D04(2); - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); Mailbox_DrawMailboxMenu(taskId); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].func = Mailbox_ProcessInput; @@ -892,7 +892,7 @@ static u8 sub_816BC7C(u8 a) if (*windowIdLoc == 0xFF) { *windowIdLoc = AddWindow(&gUnknown_085DFF5C[a]); - SetWindowBorderStyle(*windowIdLoc, FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(*windowIdLoc, FALSE, 0x214, 0xE); schedule_bg_copy_tilemap_to_vram(0); } return *windowIdLoc; @@ -903,7 +903,7 @@ static void sub_816BCC4(u8 a) u8 *windowIdLoc = &(gUnknown_0203BCC4->windowIds[a]); if (*windowIdLoc != 0xFF) { - sub_8198070(*windowIdLoc, FALSE); + ClearStdWindowAndFrameToTransparent(*windowIdLoc, FALSE); ClearWindowTilemap(*windowIdLoc); schedule_bg_copy_tilemap_to_vram(0); RemoveWindow(*windowIdLoc); @@ -1170,7 +1170,7 @@ static void ItemStorage_GoBackToPlayerPCMenu_InitStorage(u8 taskId) data = gTasks[taskId].data; if (!IsDma3ManagerBusyWithBgCopy()) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); if (!data[3]) InitItemStorageMenu(taskId, ITEMPC_MENU_WITHDRAW); else diff --git a/src/pokeblock.c b/src/pokeblock.c index 95f91a74d..4bd4a8ccb 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -1120,7 +1120,7 @@ static void PutPokeblockOptionsWindow(u8 taskId) data[1] = 9; sub_8136418(); - SetWindowBorderStyle(data[1], 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(data[1], 0, 1, 0xE); sub_81995E4(data[1], sPokeblockMenu->optionsNo, sPokeblockMenuActions, sPokeblockMenu->pokeblockOptionsIds); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[1], sPokeblockMenu->optionsNo, 0); PutWindowTilemap(data[1]); @@ -1173,7 +1173,7 @@ static void PokeblockAction_Toss(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_8198070(data[1], FALSE); + ClearStdWindowAndFrameToTransparent(data[1], FALSE); StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1Ptr->pokeblocks[gSpecialVar_ItemId].color]); StringExpandPlaceholders(gStringVar4, gText_ThrowAwayVar1); DisplayMessageAndContinueTask(taskId, 10, 10, 13, 1, GetPlayerTextSpeedDelay(), gStringVar4, CreateTossPokeblockYesNoMenu); @@ -1219,7 +1219,7 @@ static void HandleErasePokeblock(u8 taskId) static void TossPokeblockChoice_No(u8 taskId) { - sub_8197DF8(10, FALSE); + ClearDialogWindowAndFrameToTransparent(10, FALSE); schedule_bg_copy_tilemap_to_vram(1); sub_81363BC(); gTasks[taskId].func = Task_HandlePokeblockMenuInput; @@ -1266,7 +1266,7 @@ static void PokeblockAction_Cancel(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_8198070(data[1], FALSE); + ClearStdWindowAndFrameToTransparent(data[1], FALSE); schedule_bg_copy_tilemap_to_vram(1); sub_81363BC(); gTasks[taskId].func = Task_HandlePokeblockMenuInput; diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 0a110120d..908aec1c0 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -581,7 +581,7 @@ static bool8 TransitionToPokeblockFeedScene(void) gMain.state++; break; case 10: - SetWindowBorderStyle(0, 1, 1, 14); + DrawStdFrameWithCustomTileAndPalette(0, 1, 1, 14); gMain.state++; break; case 11: diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index d4c4c5224..a99a473eb 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1218,7 +1218,7 @@ static const u16 gWallpaperPalettes_Plain[][16] = static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); -// 12�18 tilemap +// 12x18 tilemap static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); static const u16 gUnknown_08577574[][2] = @@ -1736,7 +1736,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) case 0: CreatePCMenu(task->data[1], &task->data[15]); sub_81973A4(); - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); @@ -1769,7 +1769,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) break; case MENU_B_PRESSED: case 4: - ClearWindowAndBorder(task->data[15], TRUE); + ClearStdWindowAndFrame(task->data[15], TRUE); ScriptContext2_Disable(); EnableBothScriptContexts(); RemoveWindow(task->data[15]); @@ -1865,7 +1865,7 @@ static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr) winTemplate.width = GetMaxWidthInMenuTable((void *)gUnknown_085716C0, ARRAY_COUNT(gUnknown_085716C0)); windowId = AddWindow(&winTemplate); - NewMenuHelpers_DrawStdWindowFrame(windowId, FALSE); + DrawStdWindowFrame(windowId, FALSE); PrintMenuTable(windowId, ARRAY_COUNT(gUnknown_085716C0), (void *)gUnknown_085716C0); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, ARRAY_COUNT(gUnknown_085716C0), whichMenu); *windowIdPtr = windowId; @@ -4432,7 +4432,7 @@ static void ShowYesNoWindow(s8 cursorPos) static void ClearBottomWindow(void) { - sub_8198070(1, FALSE); + ClearStdWindowAndFrameToTransparent(1, FALSE); schedule_bg_copy_tilemap_to_vram(0); } @@ -8733,7 +8733,7 @@ static void AddMenu(void) sPSSData->menuWindow.tilemapTop = 15 - sPSSData->menuWindow.height; sPSSData->field_CB0 = AddWindow(&sPSSData->menuWindow); ClearWindowTilemap(sPSSData->field_CB0); - SetWindowBorderStyle(sPSSData->field_CB0, FALSE, 11, 14); + DrawStdFrameWithCustomTileAndPalette(sPSSData->field_CB0, FALSE, 11, 14); PrintMenuTable(sPSSData->field_CB0, sPSSData->menuItemsCount, (void*)sPSSData->menuItems); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sPSSData->field_CB0, sPSSData->menuItemsCount, 0); schedule_bg_copy_tilemap_to_vram(0); @@ -8787,7 +8787,7 @@ static s16 sub_80D00AC(void) static void sub_80D013C(void) { - sub_8198070(sPSSData->field_CB0, TRUE); + ClearStdWindowAndFrameToTransparent(sPSSData->field_CB0, TRUE); RemoveWindow(sPSSData->field_CB0); } diff --git a/src/record_mixing.c b/src/record_mixing.c index 7f091c4df..2ac5f9e4c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -292,7 +292,7 @@ static void ReceiveExchangePacket(u32 which) static void PrintTextOnRecordMixing(const u8 *src) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, src, 0, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -370,7 +370,7 @@ static void Task_RecordMixing_Main(u8 taskId) { CreateTask(sub_80AF2B4, 10); } - ClearWindowAndWideBorder(0, 1); + ClearDialogWindowAndFrame(0, 1); DestroyTask(taskId); EnableBothScriptContexts(); } diff --git a/src/region_map.c b/src/region_map.c index fa5e26b11..6d5224821 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1687,8 +1687,8 @@ static void sub_8124904(void) { StringLength(gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]); flag = TRUE; - sub_8198070(0, FALSE); - SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); + ClearStdWindowAndFrameToTransparent(0, FALSE); + DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x65, 0x0d); AddTextPrinterParameterized(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec]; AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); @@ -1702,8 +1702,8 @@ static void sub_8124904(void) { if (gUnknown_03001180 == TRUE) { - sub_8198070(1, FALSE); - SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); + ClearStdWindowAndFrameToTransparent(1, FALSE); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x65, 0x0d); } else { @@ -1718,8 +1718,8 @@ static void sub_8124904(void) { if (gUnknown_03001180 == TRUE) { - sub_8198070(1, FALSE); - SetWindowBorderStyle(0, FALSE, 0x65, 0x0d); + ClearStdWindowAndFrameToTransparent(1, FALSE); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x65, 0x0d); } FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); CopyWindowToVram(0, 2); diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 34444cbf4..ce9f5b98b 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -290,7 +290,7 @@ static void FreeCursorPalette(void) static void HideChooseTimeWindow(u8 windowId) { - sub_8198070(windowId, FALSE); + ClearStdWindowAndFrameToTransparent(windowId, FALSE); RemoveWindow(windowId); schedule_bg_copy_tilemap_to_vram(0); } @@ -319,7 +319,7 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds) { - SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x214, 0xE); PrintTime(windowId, 0, 1, days, hours, minutes, seconds); AddTextPrinterParameterized(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); @@ -495,7 +495,7 @@ static void VBlankCB(void) static void ShowMessage(const u8 *str) { - sub_8197B1C(1, FALSE, 0x200, 0xF); + DrawDialogFrameWithCustomTileAndPalette(1, FALSE, 0x200, 0xF); AddTextPrinterParameterized(1, 1, str, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } @@ -507,7 +507,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) switch (data[0]) { case 0: - SetWindowBorderStyle(0, FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x214, 0xE); AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); PrintTime( 0, @@ -574,7 +574,7 @@ static void Task_ResetRtcScreen(u8 taskId) case 2: if (gTasks[data[1]].isActive != TRUE) { - sub_8198070(0, FALSE); + ClearStdWindowAndFrameToTransparent(0, FALSE); ShowMessage(gText_PleaseResetTime); gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate; data[1] = CreateTask(Task_ResetRtc_0, 80); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 466ef430d..88e0bf4ac 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -511,12 +511,12 @@ void sub_8012780(u8 taskId) PutWindowTilemap(data->field_10); CopyWindowToVram(data->field_10, 2); - NewMenuHelpers_DrawStdWindowFrame(data->listWindowId, FALSE); + DrawStdWindowFrame(data->listWindowId, FALSE); gMultiuseListMenuTemplate = gUnknown_082F015C; gMultiuseListMenuTemplate.windowId = data->listWindowId; data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - NewMenuHelpers_DrawStdWindowFrame(data->field_11, FALSE); + DrawStdWindowFrame(data->field_11, FALSE); PutWindowTilemap(data->field_11); CopyWindowToVram(data->field_11, 2); @@ -786,10 +786,10 @@ void sub_8012780(u8 taskId) void sub_8012F64(struct UnkStruct_Leader *data) { ClearWindowTilemap(data->field_11); - ClearWindowAndBorder(data->field_11, FALSE); + ClearStdWindowAndFrame(data->field_11, FALSE); DestroyListMenuTask(data->listTaskId, 0, 0); ClearWindowTilemap(data->field_10); - ClearWindowAndBorder(data->listWindowId, FALSE); + ClearStdWindowAndFrame(data->listWindowId, FALSE); CopyBgTilemapBufferToVram(0); RemoveWindow(data->field_11); RemoveWindow(data->listWindowId); @@ -1080,12 +1080,12 @@ void sub_80134E8(u8 taskId) PutWindowTilemap(data->field_C); CopyWindowToVram(data->field_C, 2); - NewMenuHelpers_DrawStdWindowFrame(data->listWindowId, FALSE); + DrawStdWindowFrame(data->listWindowId, FALSE); gMultiuseListMenuTemplate = gUnknown_082F0204; gMultiuseListMenuTemplate.windowId = data->listWindowId; data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); - NewMenuHelpers_DrawStdWindowFrame(data->field_D, FALSE); + DrawStdWindowFrame(data->field_D, FALSE); PutWindowTilemap(data->field_D); sub_80125BC(data->field_D); CopyWindowToVram(data->field_D, 2); @@ -1254,10 +1254,10 @@ void sub_80134E8(u8 taskId) case 18: case 20: ClearWindowTilemap(data->field_D); - ClearWindowAndBorder(data->field_D, FALSE); + ClearStdWindowAndFrame(data->field_D, FALSE); DestroyListMenuTask(data->listTaskId, 0, 0); ClearWindowTilemap(data->field_C); - ClearWindowAndBorder(data->listWindowId, FALSE); + ClearStdWindowAndFrame(data->listWindowId, FALSE); CopyBgTilemapBufferToVram(0); RemoveWindow(data->field_D); RemoveWindow(data->listWindowId); diff --git a/src/roulette.c b/src/roulette.c index 7826c1353..4723e0687 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -973,7 +973,7 @@ static void sub_81405CC(void) sub_814372C(6); sub_81436D0(0); sub_81424FC(0); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5B89, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); gSpriteCoordOffsetX = -60; @@ -1043,8 +1043,8 @@ static void sub_81408A8(u8 taskId) static void sub_8140914(u8 taskId) { - DisplayYesNoMenu(); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, 0); + DisplayYesNoMenuWithDefault(); + DrawStdWindowFrame(gUnknown_0203AB8C, 0); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C13, 0, 1, TEXT_SPEED_FF, 0); CopyWindowToVram(gUnknown_0203AB8C, 3); DoYesNoFuncWithChoice(taskId, &gUnknown_085B6410); @@ -1052,7 +1052,7 @@ static void sub_8140914(u8 taskId) static void sub_8140968(u8 taskId) { - ClearWindowAndBorder(0, TRUE); + ClearStdWindowAndFrame(0, TRUE); gTasks[taskId].func = sub_8140BD0; } @@ -1808,14 +1808,14 @@ static void sub_814189C(u8 taskId) if (gTasks[taskId].data[2] == 12) { PlayFanfare(MUS_ME_B_BIG); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BD7, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); } else { PlayFanfare(MUS_ME_B_SMALL); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BCB, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); } @@ -1823,7 +1823,7 @@ static void sub_814189C(u8 taskId) case 0: default: m4aSongNumStart(SE_HAZURE); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BE0, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); break; @@ -1867,7 +1867,7 @@ static void sub_8141A18(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]), STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gUnknown_082A5BEF); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); gTasks[taskId].data[1] = (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]); @@ -1900,14 +1900,14 @@ static void sub_8141B58(u8 taskId) { if (gTasks[taskId].data[6] == 6) { - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C21, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); sub_8141F7C(taskId, dp01t_12_3_battle_menu, 0xFFFF, 3); } else if (gTasks[taskId].data[13] == 9999) { - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C61, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); sub_8141F7C(taskId, sub_8140914, 0xFFFF, 0x3); @@ -1919,7 +1919,7 @@ static void sub_8141B58(u8 taskId) } else { - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C04, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); sub_8141F7C(taskId, sub_8140994, 0x3C, 0x3); @@ -1944,7 +1944,7 @@ static void dp01t_12_3_battle_menu(u8 taskId) if (gTasks[taskId].data[13] == 9999) { - NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); + DrawStdWindowFrame(gUnknown_0203AB8C, FALSE); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C61, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(gUnknown_0203AB8C, 3); sub_8141F7C(taskId, sub_8140914, 0xFFFF, 3); @@ -3256,7 +3256,7 @@ static const struct SpriteTemplate gUnknown_085B7AEC = static void sub_81428C4(u8 r0) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(r0, &gUnknown_085B6408); } @@ -3272,7 +3272,7 @@ static void sub_81428E4(u8 taskId) static void sub_8142918(u8 taskId) { - ClearWindowAndBorder(0, TRUE); + ClearStdWindowAndFrame(0, TRUE); HideCoinsWindow(); FreeAllWindowBuffers(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); @@ -3283,7 +3283,7 @@ static void sub_8142918(u8 taskId) static void sub_814297C(u8 taskId) { - ClearWindowAndBorder(0, FALSE); + ClearStdWindowAndFrame(0, FALSE); HideCoinsWindow(); ScriptContext2_Disable(); DestroyTask(taskId); @@ -3296,7 +3296,7 @@ static void sub_81429A0(u8 taskId) { gSpecialVar_0x8004 = 1; HideCoinsWindow(); - ClearWindowAndBorder(0, TRUE); + ClearStdWindowAndFrame(0, TRUE); ScriptContext2_Disable(); DestroyTask(taskId); } @@ -3309,7 +3309,7 @@ static void sub_81429F0(u8 taskId) u32 temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)]; ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1); StringExpandPlaceholders(gStringVar4, gUnknown_082A5B12); - NewMenuHelpers_DrawStdWindowFrame(0, FALSE); + DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); gTasks[taskId].func = sub_81428C4; @@ -3326,7 +3326,7 @@ static void Task_Roulette_0(u8 taskId) { if ((gSpecialVar_0x8004 & 0x80) && (gSpecialVar_0x8004 & 1)) { - NewMenuHelpers_DrawStdWindowFrame(0, FALSE); + DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gUnknown_082A5B6B, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); gTasks[taskId].func = sub_81429F0; @@ -3334,7 +3334,7 @@ static void Task_Roulette_0(u8 taskId) else { StringExpandPlaceholders(gStringVar4, gUnknown_082A5B12); - NewMenuHelpers_DrawStdWindowFrame(0, FALSE); + DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); gTasks[taskId].func = sub_81428C4; @@ -3343,7 +3343,7 @@ static void Task_Roulette_0(u8 taskId) else { StringExpandPlaceholders(gStringVar4, gUnknown_082A5B4E); - NewMenuHelpers_DrawStdWindowFrame(0, FALSE); + DrawStdWindowFrame(0, FALSE); AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(0, 3); gTasks[taskId].func = sub_81429A0; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 62d6f9e3e..1f0fe69c9 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -229,8 +229,8 @@ static void CB2_SaveFailedScreen(void) LoadPalette(sSaveFailedClockPal, 0x100, 0x20); LoadPalette(gTextWindowFrame1_Pal, 0xE0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - SetWindowBorderStyle(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); - SetWindowBorderStyle(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); // backwards? FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again? diff --git a/src/scrcmd.c b/src/scrcmd.c index 145437a2a..b42b3e5f7 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1302,7 +1302,7 @@ bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) if (msg == NULL) msg = (const u8 *)ctx->data[0]; sub_81973A4(); - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); AddTextPrinterParameterized(0, 1, msg, 0, 1, 0, 0); return FALSE; } @@ -1517,7 +1517,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); gUnknown_03000F30 = AddWindow(&winTemplate); LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); - NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); + DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); FillWindowPixelBuffer(gUnknown_03000F30, PALETTE_NUM_TO_FILL_VALUE(1)); AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); @@ -2254,7 +2254,7 @@ bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx) void sub_809BDB4(void) { - ClearWindowAndBorder(gUnknown_03000F30, 1); + ClearStdWindowAndFrame(gUnknown_03000F30, 1); RemoveWindow(gUnknown_03000F30); } diff --git a/src/script_menu.c b/src/script_menu.c index 8831d65c6..ccbbcdfe1 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1202,7 +1202,7 @@ bool8 ScriptMenu_YesNo(u8 left, u8 top) else { gSpecialVar_Result = 0xFF; - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); taskId = CreateTask(Task_HandleYesNoInput, 0x50); return TRUE; } @@ -1630,7 +1630,7 @@ u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height) void sub_80E2A78(u8 windowId) { - sub_8198070(windowId, TRUE); + ClearStdWindowAndFrameToTransparent(windowId, TRUE); RemoveWindow(windowId); } diff --git a/src/secret_base.c b/src/secret_base.c index 74d9ac9b0..342a9960a 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -871,7 +871,7 @@ void sub_80E9C9C(u8 taskId) { data[1] = 0; data[2] = 0; - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); gUnknown_0203A020 = calloc(1, sizeof(struct SecretBaseListMenuBuffer)); data[6] = AddWindow(&gUnknown_0858D06C[0]); game_continue(taskId); @@ -963,7 +963,7 @@ void sub_80E9E90(u8 taskId) PlaySE(SE_SELECT); DestroyListMenuTask(data[5], NULL, NULL); RemoveScrollIndicatorArrowPair(data[8]); - ClearWindowAndBorder(data[6], 0); + ClearStdWindowAndFrame(data[6], 0); ClearWindowTilemap(data[6]); RemoveWindow(data[6]); schedule_bg_copy_tilemap_to_vram(0); @@ -1020,8 +1020,8 @@ void sub_80E9FFC(u8 taskId) s16 *data; data = gTasks[taskId].data; - ClearWindowAndBorder(data[6], FALSE); - ClearWindowAndBorder(data[7], FALSE); + ClearStdWindowAndFrame(data[6], FALSE); + ClearStdWindowAndFrame(data[7], FALSE); ClearWindowTilemap(data[6]); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); @@ -1033,7 +1033,7 @@ void sub_80E9FFC(u8 taskId) void sub_80EA06C(u8 taskId) { - DisplayYesNoMenu(); + DisplayYesNoMenuWithDefault(); DoYesNoFuncWithChoice(taskId, &gUnknown_0858D058); } @@ -1042,7 +1042,7 @@ void sub_80EA08C(u8 taskId) s16 *data; data = gTasks[taskId].data; - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); gSaveBlock1Ptr->secretBases[data[4]].sbr_field_1_6 = 0; game_continue(taskId); @@ -1061,7 +1061,7 @@ void sub_80EA13C(u8 taskId) s16 *data; data = gTasks[taskId].data; - ClearWindowAndWideBorder(0, 0); + ClearDialogWindowAndFrame(0, 0); DestroyListMenuTask(data[5], &data[2], &data[1]); sub_80E9E00(taskId); gTasks[taskId].func = sub_80E9E90; @@ -1073,7 +1073,7 @@ void sub_80EA18C(u8 taskId) data = gTasks[taskId].data; sub_80E9E44(taskId); - ClearWindowAndBorder(data[7], 0); + ClearStdWindowAndFrame(data[7], 0); ClearWindowTilemap(data[7]); RemoveWindow(data[7]); schedule_bg_copy_tilemap_to_vram(0); diff --git a/src/shop.c b/src/shop.c index 8c530e0d3..55a7a20f7 100755 --- a/src/shop.c +++ b/src/shop.c @@ -366,7 +366,7 @@ void CB2_ExitSellMenu(void) static void Task_HandleShopMenuQuit(u8 taskId) { - sub_8198070(gMartInfo.windowId, 2); + ClearStdWindowAndFrameToTransparent(gMartInfo.windowId, 2); RemoveWindow(gMartInfo.windowId); SaveRecordedItemPurchasesForTVShow(); ScriptContext2_Disable(); @@ -981,12 +981,12 @@ static void Task_BuyHowManyDialogueInit(u8 taskId) u16 quantityInBag = CountTotalItemQuantityInBag(tItemId); u16 maxQuantity; - SetWindowBorderStyle(3, FALSE, 1, 13); + DrawStdFrameWithCustomTileAndPalette(3, FALSE, 1, 13); ConvertIntToDecimalStringN(gStringVar1, quantityInBag, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_InBagVar1); BuyMenuPrint(3, gStringVar4, 0, 1, 0, 0); tItemCount = 1; - SetWindowBorderStyle(4, FALSE, 1, 13); + DrawStdFrameWithCustomTileAndPalette(4, FALSE, 1, 13); BuyMenuPrintItemQuantityAndPrice(taskId); schedule_bg_copy_tilemap_to_vram(0); @@ -1018,8 +1018,8 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_8198070(4, 0); - sub_8198070(3, 0); + ClearStdWindowAndFrameToTransparent(4, 0); + ClearStdWindowAndFrameToTransparent(3, 0); ClearWindowTilemap(4); ClearWindowTilemap(3); PutWindowTilemap(1); @@ -1031,8 +1031,8 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_8198070(4, 0); - sub_8198070(3, 0); + ClearStdWindowAndFrameToTransparent(4, 0); + ClearStdWindowAndFrameToTransparent(3, 0); ClearWindowTilemap(4); ClearWindowTilemap(3); BuyMenuReturnToItemList(taskId); @@ -1131,7 +1131,7 @@ static void BuyMenuReturnToItemList(u8 taskId) { s16 *data = gTasks[taskId].data; - sub_8197DF8(5, 0); + ClearDialogWindowAndFrameToTransparent(5, 0); BuyMenuPrintCursor(tListTaskId, 1); PutWindowTilemap(1); PutWindowTilemap(2); diff --git a/src/slot_machine.c b/src/slot_machine.c index f603f468c..189bca80f 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1015,7 +1015,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */bool8 sub_8101F44(struct Task *task) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 7; @@ -1026,7 +1026,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1256,7 +1256,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */bool8 sub_8102318(struct Task *task) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); @@ -1269,7 +1269,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); @@ -1278,7 +1278,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } else if (input == 1 || input == -1) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1286,7 +1286,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */bool8 sub_810239C(struct Task *task) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 24; @@ -1297,7 +1297,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = 5; } return FALSE; @@ -1305,7 +1305,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */bool8 sub_81023E0_(struct Task *task) { - NewMenuHelpers_DrawDialogueFrame(0, 0); + DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 26; @@ -1316,7 +1316,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); sSlotMachine->state = 27; } return FALSE; diff --git a/src/start_menu.c b/src/start_menu.c index c61269c9c..f88630aee 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -123,7 +123,7 @@ static u8 SaveConfirmSaveCallback(void); static u8 SaveYesNoCallback(void); static u8 SaveConfirmInputCallback(void); static u8 SaveFileExistsCallback(void); -static u8 SaveConfirmOverwriteNoCallback(void); +static u8 SaveConfirmOverwriteDefaultNoCallback(void); static u8 SaveConfirmOverwriteCallback(void); static u8 SaveOverwriteInputCallback(void); static u8 SaveSavingMessageCallback(void); @@ -376,7 +376,7 @@ static void ShowSafariBallsWindow(void) { sSafariBallsWindowId = AddWindow(&sSafariBallsWindowTemplate); PutWindowTilemap(sSafariBallsWindowId); - NewMenuHelpers_DrawStdWindowFrame(sSafariBallsWindowId, FALSE); + DrawStdWindowFrame(sSafariBallsWindowId, FALSE); ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_SafariBallStock); AddTextPrinterParameterized(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); @@ -391,7 +391,7 @@ static void ShowPyramidFloorWindow(void) sBattlePyramidFloorWindowId = AddWindow(&sPyramidFloorWindowTemplate_2); PutWindowTilemap(sBattlePyramidFloorWindowId); - NewMenuHelpers_DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE); + DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE); StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->frontier.curChallengeBattleNum]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); AddTextPrinterParameterized(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); @@ -402,13 +402,13 @@ static void RemoveExtraStartMenuWindows(void) { if (GetSafariZoneFlag()) { - sub_8198070(sSafariBallsWindowId, FALSE); + ClearStdWindowAndFrameToTransparent(sSafariBallsWindowId, FALSE); CopyWindowToVram(sSafariBallsWindowId, 2); RemoveWindow(sSafariBallsWindowId); } if (InBattlePyramid()) { - sub_8198070(sBattlePyramidFloorWindowId, FALSE); + ClearStdWindowAndFrameToTransparent(sBattlePyramidFloorWindowId, FALSE); RemoveWindow(sBattlePyramidFloorWindowId); } } @@ -459,7 +459,7 @@ static bool32 InitStartMenuStep(void) break; case 2: sub_81973A4(); - NewMenuHelpers_DrawStdWindowFrame(sub_81979C4(sNumStartMenuActions), FALSE); + DrawStdWindowFrame(sub_81979C4(sNumStartMenuActions), FALSE); sUnknown_02037619[1] = 0; sUnknown_02037619[0]++; break; @@ -751,7 +751,7 @@ static bool8 StartMenuBattlePyramidRetireCallback(void) void sub_809FDD4(void) { - sub_8197DF8(0, FALSE); + ClearDialogWindowAndFrameToTransparent(0, FALSE); ScriptUnfreezeEventObjects(); CreateStartMenuTask(sub_809FA34); ScriptContext2_Enable(); @@ -787,13 +787,13 @@ static bool8 SaveCallback(void) case SAVE_IN_PROGRESS: return FALSE; case SAVE_CANCELED: // Back to start menu - sub_8197DF8(0, FALSE); + ClearDialogWindowAndFrameToTransparent(0, FALSE); InitStartMenu(); gMenuCallback = HandleStartMenuInput; return FALSE; case SAVE_SUCCESS: case SAVE_ERROR: // Close start menu - sub_8197DF8(0, TRUE); + ClearDialogWindowAndFrameToTransparent(0, TRUE); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); SoftResetInBattlePyramid(); @@ -830,7 +830,7 @@ static bool8 BattlePyramidRetireCallback(void) case SAVE_IN_PROGRESS: return FALSE; case SAVE_CANCELED: // Yes (Retire from battle pyramid) - sub_8197DF8(0, TRUE); + ClearDialogWindowAndFrameToTransparent(0, TRUE); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); ScriptContext1_SetupScript(BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88); @@ -897,7 +897,7 @@ static void SaveGameTask(u8 taskId) static void sub_80A0014(void) { - ClearWindowAndWideBorder(0, TRUE); + ClearDialogWindowAndFrame(0, TRUE); } static void HideSaveInfoWindow(void) @@ -943,7 +943,7 @@ static bool8 SaveErrorTimer(void) static u8 SaveConfirmSaveCallback(void) { - ClearWindowAndBorder(GetStartMenuWindowId(), FALSE); + ClearStdWindowAndFrame(GetStartMenuWindowId(), FALSE); RemoveStartMenuWindow(); ShowSaveInfoWindow(); @@ -961,7 +961,7 @@ static u8 SaveConfirmSaveCallback(void) static u8 SaveYesNoCallback(void) { - DisplayYesNoMenu(); // Show Yes/No menu + DisplayYesNoMenuWithDefault(); // Show Yes/No menu sSaveDialogCallback = SaveConfirmInputCallback; return SAVE_IN_PROGRESS; } @@ -1002,7 +1002,7 @@ static u8 SaveFileExistsCallback(void) { if (gDifferentSaveFile == TRUE) { - ShowSaveMessage(gText_DifferentSaveFile, SaveConfirmOverwriteNoCallback); + ShowSaveMessage(gText_DifferentSaveFile, SaveConfirmOverwriteDefaultNoCallback); } else { @@ -1012,16 +1012,16 @@ static u8 SaveFileExistsCallback(void) return SAVE_IN_PROGRESS; } -static u8 SaveConfirmOverwriteNoCallback(void) +static u8 SaveConfirmOverwriteDefaultNoCallback(void) { - sub_8197948(1); // Show Yes/No menu (No selected as default) + DisplayYesNoMenuWithDefaultDefaultNo(1); // Show Yes/No menu (No selected as default) sSaveDialogCallback = SaveOverwriteInputCallback; return SAVE_IN_PROGRESS; } static u8 SaveConfirmOverwriteCallback(void) { - DisplayYesNoMenu(); // Show Yes/No menu + DisplayYesNoMenuWithDefault(); // Show Yes/No menu sSaveDialogCallback = SaveOverwriteInputCallback; return SAVE_IN_PROGRESS; } @@ -1135,7 +1135,7 @@ static void InitBattlePyramidRetire(void) static u8 BattlePyramidConfirmRetireCallback(void) { - ClearWindowAndBorder(GetStartMenuWindowId(), FALSE); + ClearStdWindowAndFrame(GetStartMenuWindowId(), FALSE); RemoveStartMenuWindow(); ShowSaveMessage(gText_BattlePyramidConfirmRetire, BattlePyramidRetireYesNoCallback); @@ -1144,7 +1144,7 @@ static u8 BattlePyramidConfirmRetireCallback(void) static u8 BattlePyramidRetireYesNoCallback(void) { - sub_8197948(1); // Show Yes/No menu (No selected as default) + DisplayYesNoMenuWithDefaultDefaultNo(1); // Show Yes/No menu (No selected as default) sSaveDialogCallback = BattlePyramidRetireInputCallback; return SAVE_IN_PROGRESS; @@ -1313,7 +1313,7 @@ static void ShowSaveInfoWindow(void) } sSaveInfoWindowId = AddWindow(&saveInfoWindow); - NewMenuHelpers_DrawStdWindowFrame(sSaveInfoWindowId, FALSE); + DrawStdWindowFrame(sSaveInfoWindowId, FALSE); gender = gSaveBlock2Ptr->playerGender; color = TEXT_COLOR_RED; // Red when female, blue when male. @@ -1364,7 +1364,7 @@ static void ShowSaveInfoWindow(void) static void RemoveSaveInfoWindow(void) { - ClearWindowAndBorder(sSaveInfoWindowId, FALSE); + ClearStdWindowAndFrame(sSaveInfoWindowId, FALSE); RemoveWindow(sSaveInfoWindowId); } @@ -1386,7 +1386,7 @@ void sub_80A08CC(void) // Referenced in data/specials.inc and data/scripts/maps/ static void HideStartMenuWindow(void) { - ClearWindowAndBorder(GetStartMenuWindowId(), TRUE); + ClearStdWindowAndFrame(GetStartMenuWindowId(), TRUE); RemoveStartMenuWindow(); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); diff --git a/src/starter_choose.c b/src/starter_choose.c index 4e21c1845..3ffc8e286 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -469,7 +469,7 @@ static void MainCallback2_StarterChoose(void) static void Task_StarterChoose1(u8 taskId) { CreateStarterPokemonLabel(gTasks[taskId].tStarterSelection); - SetWindowBorderStyle(0, FALSE, 0x2A8, 0xD); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x2A8, 0xD); AddTextPrinterParameterized(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); diff --git a/src/trader.c b/src/trader.c index b5c159fb9..97bc4626f 100644 --- a/src/trader.c +++ b/src/trader.c @@ -73,7 +73,7 @@ void CreateAvailableDecorationsMenu(u8 taskId) } windowTemplate.width = convert_pixel_width_to_tile_width(windowWidth); data[3] = AddWindow(&windowTemplate); - SetWindowBorderStyle(data[3], FALSE, 0x214, 14); + DrawStdFrameWithCustomTileAndPalette(data[3], FALSE, 0x214, 14); for (i = 0; i < 4; i++) { if (trader->decorIds[i] > NUM_DECORATIONS) @@ -98,7 +98,7 @@ void sub_8133BE4(u8 taskId, u8 decorationId) gSpecialVar_0x8004 = decorationId; } - sub_8198070(data[3], FALSE); + ClearStdWindowAndFrameToTransparent(data[3], FALSE); ClearWindowTilemap(data[3]); RemoveWindow(data[3]); schedule_bg_copy_tilemap_to_vram(0); diff --git a/src/trainer_card.c b/src/trainer_card.c index c8f0df0db..1f9191632 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -469,7 +469,7 @@ static void sub_80C2760(u8 taskId) break; case 15: sub_800AC34(); - NewMenuHelpers_DrawDialogueFrame(0, 1); + DrawDialogueFrame(0, 1); AddTextPrinterParameterized(0, 1, gText_WaitingTrainerFinishReading, 0, 1, 255, 0); CopyWindowToVram(0, 3); sData->var_0 = 16; diff --git a/src/wallclock.c b/src/wallclock.c index 546750ba6..d3bbcf7a2 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -793,7 +793,7 @@ static void Task_SetClock2(u8 taskId) static void Task_SetClock3(u8 taskId) { - SetWindowBorderStyle(0, FALSE, 0x250, 0x0d); + DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x250, 0x0d); AddTextPrinterParameterized(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); @@ -812,7 +812,7 @@ static void Task_SetClock4(u8 taskId) case 1: //B button case -1: //NO PlaySE(SE_SELECT); - sub_8198070(0, FALSE); + ClearStdWindowAndFrameToTransparent(0, FALSE); ClearWindowTilemap(0); gTasks[taskId].func = Task_SetClock2; break; diff --git a/src/window.c b/src/window.c index 94e68cae5..fbce57743 100644 --- a/src/window.c +++ b/src/window.c @@ -6,6 +6,7 @@ u32 filler_03002F58; u32 filler_03002F5C; +// This global is set to 0 and never changed. u8 gTransparentTileNumber; u32 filler_03002F64; void *gUnknown_03002F70[4]; -- cgit v1.2.3 From e12a7790cf294db7fd656eba85ec4bbfb3bc211e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 04:01:38 -0500 Subject: Start porting pokeruby vars to pokeemerald --- src/contest_link_80F57C4.c | 6 +++--- src/rom_8011DC0.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 485065d71..c0a79af81 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -372,12 +372,12 @@ static void sub_80F5CE4(u8 taskId) sub_80DEDA8(0xFE); gUnknown_02039F5C = 1; gUnknown_02039F5D = sub_80DEFA8(0xFE, 0); - var = VarGet(VAR_0x4086); - VarSet(VAR_0x4086, 0); + var = VarGet(VAR_LINK_CONTEST_ROOM_STATE); + VarSet(VAR_LINK_CONTEST_ROOM_STATE, 0); SetContinueGameWarpStatusToDynamicWarp(); TrySavingData(SAVE_LINK); ClearContinueGameWarpStatus2(); - VarSet(VAR_0x4086, var); + VarSet(VAR_LINK_CONTEST_ROOM_STATE, var); gTasks[taskId].data[0]++; break; case 1: diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index baed26cf8..c8adfbe0b 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1630,7 +1630,7 @@ void sub_8014210(u16 battleFlags) void sub_8014290(u16 arg0, u16 x, u16 y) { - VarSet(VAR_0x4087, arg0); + VarSet(VAR_CABLE_CLUB_STATE, arg0); SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); SetDynamicWarpWithCoords(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x, y); WarpIntoMap(); @@ -1639,7 +1639,7 @@ void sub_8014290(u16 arg0, u16 x, u16 y) void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) { gSpecialVar_0x8004 = arg4; - VarSet(VAR_0x4087, arg4); + VarSet(VAR_CABLE_CLUB_STATE, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); gUnknown_03005DB4 = GetMultiplayerId(); SetCableClubWarp(); -- cgit v1.2.3 From cea5696f238acc7c2b868e46e92775f4a05ae1f4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 04:18:43 -0500 Subject: Finish moving pokeruby vars --- src/tv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/tv.c b/src/tv.c index 5904efeb8..248721083 100644 --- a/src/tv.c +++ b/src/tv.c @@ -3603,7 +3603,7 @@ void GetMomOrDadStringForTVMessage(void) void sub_80F01B8(void) { - VarSet(VAR_0x40BC, 0); + VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0); RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); FlagSet(FLAG_HIDE_BATTLE_TOWER_REPORTER); } -- cgit v1.2.3 From d3f66a98ff76e35050138d79764eeb6a87e58a22 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Feb 2019 11:40:32 -0600 Subject: Decompile more easy_chat --- src/easy_chat.c | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 979 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 5f5d20e16..741064c5b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,11 +2,14 @@ // Includes #include "global.h" #include "alloc.h" +#include "bg.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" #include "field_weather.h" +#include "gpu_regs.h" +#include "graphics.h" #include "international_string_util.h" #include "link.h" #include "main.h" @@ -70,8 +73,27 @@ struct EasyChatScreen /*0x3C*/ u16 ecWordBuffer[9]; }; +struct Unk203A11C +{ + u16 unk0; + u8 filler2[0x2]; + u16 unk4; + u8 filler6[0x2FA]; + u8 unk300[BG_SCREEN_SIZE]; + u8 unkB00[BG_SCREEN_SIZE]; +}; + +struct Unk08597C30 +{ + u8 unk0_0:5; + u8 unk0_5:3; + u8 unk1; + u8 unk2; + u8 unk3; +}; + EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; -EWRAM_DATA void *gUnknown_0203A11C = 0; +EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; EWRAM_DATA void *gUnknown_0203A120 = 0; static void sub_811A2C0(u8); @@ -103,10 +125,10 @@ static u8 sub_811BCC8(u8); static void sub_811BDF0(u8 *); void sub_811BF78(void); static bool8 sub_811BF8C(void); -bool8 sub_811BFA4(void); -void sub_811C13C(void); -/*static*/ void sub_811C158(u16); -/*static*/ bool8 sub_811C170(void); +static bool8 sub_811BFA4(void); +static void sub_811C13C(void); +static void sub_811C158(u16); +static bool8 sub_811C170(void); bool8 sub_811F28C(void); void sub_811F2B8(void); u8 sub_811F3AC(void); @@ -153,6 +175,87 @@ static u8 sub_811BA1C(void); static int sub_811BF20(void); static u16 sub_811BF40(void); u8 sub_811CE94(void); +void sub_811CF64(void); +void sub_811CF04(void); +void sub_811D60C(void); +void sub_811D424(u8 *); +void sub_811D230(void); +void sub_811E948(void); +void sub_811CFCC(void); +void sub_811D0BC(void); +void sub_811D2C8(void); +void sub_811D684(void); +void sub_811DE90(void); +void sub_811DEC4(void); +void sub_811DE5C(u8, u8, u8, u8); +void sub_811E5D4(void); +void sub_811E720(void); +void sub_811E828(void); +static bool8 sub_811C2D4(void); +static bool8 sub_811C30C(void); +static bool8 sub_811C3E4(void); +static bool8 sub_811C48C(void); +static bool8 sub_811C404(void); +static bool8 sub_811C448(void); +static bool8 sub_811C4D0(void); +static bool8 sub_811C518(void); +static bool8 sub_811C554(void); +static bool8 sub_811C620(void); +static bool8 sub_811C830(void); +static bool8 sub_811C8F0(void); +static bool8 sub_811C99C(void); +static bool8 sub_811CA5C(void); +static bool8 sub_811C780(void); +static bool8 sub_811C78C(void); +static bool8 sub_811C7D4(void); +static bool8 sub_811CB18(void); +static bool8 sub_811CB98(void); +static bool8 sub_811CB24(void); +static bool8 sub_811CC90(void); +static bool8 sub_811CC08(void); +static bool8 sub_811C6C0(void); +static bool8 sub_811CD14(void); +static bool8 sub_811CD54(void); +static bool8 sub_811CD94(void); +static bool8 sub_811CDD4(void); +static bool8 sub_811CE14(void); +static bool8 sub_811CE54(void); +void sub_811DF60(u8, u8); +int sub_811E920(int); +void sub_811DF90(void); +void sub_811D104(u8); +void sub_811D214(u8); +void sub_811DFB0(void); +void sub_811D6D4(void); +void sub_811D9CC(int); +void sub_811E3AC(void); +bool8 sub_811E418(void); +void sub_811DFC8(void); +void sub_811E6E0(int); +bool8 sub_811DAA4(void); +void sub_811E64C(void); +void sub_811E050(void); +void sub_811E4AC(void); +void sub_811E6B0(void); +void sub_811E55C(void); +bool8 sub_811E4D0(void); +bool8 sub_811E5B8(void); +void sub_811E578(void); +void sub_811E088(void); +void sub_811DDAC(s16, u8); +bool8 sub_811DE10(void); +void sub_811D9B4(void); +void sub_811D698(int); +void sub_811E288(void); +void sub_811E794(void); +void sub_811E380(void); +void sub_811E7F8(void); +void sub_811E30C(void); +void sub_811D7A4(void); +void sub_811D7C8(void); +int sub_811DE48(void); +void sub_811D7EC(void); +void sub_811D830(void); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -164,6 +267,10 @@ extern const struct EasyChatScreenTemplate gEasyChatScreenTemplates[21]; extern const u8 gUnknown_08597748[][7]; extern const u16 gUnknown_08597764[]; extern const u16 gUnknown_0859776C[][2]; +extern const struct BgTemplate gUnknown_08597C54[4]; +extern const struct WindowTemplate gUnknown_08597C64[]; +extern const u32 gUnknown_08597B54[]; +extern const struct Unk08597C30 gUnknown_08597C30[]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -2213,3 +2320,870 @@ static bool8 sub_811BF8C(void) else return 1; } + +static bool8 sub_811BFA4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08597C54, ARRAY_COUNT(gUnknown_08597C54)); + SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); + SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); + InitWindows(gUnknown_08597C64); + DeactivateAllTextPrinters(); + sub_811CF64(); + sub_811CF04(); + CpuFastFill(0, (void *)VRAM + 0x1000000, 0x400); + break; + case 1: + DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); + CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); + sub_811D60C(); + sub_811D424(gUnknown_0203A11C->unk300); + sub_811D230(); + sub_811E948(); + CopyBgTilemapBufferToVram(3); + break; + case 2: + DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08597B54, 0, 0, 0); + CopyBgTilemapBufferToVram(1); + break; + case 3: + sub_811CFCC(); + sub_811D0BC(); + sub_811D2C8(); + sub_811D684(); + break; + case 4: + sub_811DE90(); + if (sub_811BA5C() != 16) + sub_811DEC4(); + break; + case 5: + if (IsDma3ManagerBusyWithBgCopy()) + { + return TRUE; + } + else + { + sub_811DE5C(0, 0, 0, 0); + SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0, 63)); + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 59)); + ShowBg(3); + ShowBg(1); + ShowBg(2); + ShowBg(0); + sub_811E5D4(); + sub_811E720(); + sub_811E828(); + } + break; + default: + return FALSE; + } + + gUnknown_0203A11C->unk0++; + return TRUE; +} + +static void sub_811C13C(void) +{ + if (gUnknown_0203A11C) + FREE_AND_SET_NULL(gUnknown_0203A11C); +} + +static void sub_811C158(u16 arg0) +{ + gUnknown_0203A11C->unk4 = arg0; + gUnknown_0203A11C->unk0 = 0; + sub_811C170(); +} + +static bool8 sub_811C170(void) +{ + switch (gUnknown_0203A11C->unk4) + { + case 0: return FALSE; + case 1: return sub_811C2D4(); + case 2: return sub_811C30C(); + case 3: return sub_811C3E4(); + case 4: return sub_811C48C(); + case 5: return sub_811C404(); + case 6: return sub_811C448(); + case 7: return sub_811C4D0(); + case 8: return sub_811C518(); + case 9: return sub_811C554(); + case 10: return sub_811C620(); + case 11: return sub_811C830(); + case 12: return sub_811C8F0(); + case 13: return sub_811C99C(); + case 14: return sub_811CA5C(); + case 15: return sub_811C780(); + case 16: return sub_811C78C(); + case 17: return sub_811C7D4(); + case 18: return sub_811CB18(); + case 19: return sub_811CB98(); + case 20: return sub_811CB24(); + case 21: return sub_811CC90(); + case 22: return sub_811CC08(); + case 23: return sub_811C6C0(); + case 24: return FALSE; + case 25: return FALSE; + case 26: return FALSE; + case 27: return FALSE; + case 28: return FALSE; + case 29: return sub_811CD14(); + case 30: return sub_811CD54(); + case 31: return sub_811CD94(); + case 32: return sub_811CDD4(); + case 33: return sub_811CE14(); + case 34: return sub_811CE54(); + default: return FALSE; + } +} + +static bool8 sub_811C2D4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C30C(void) +{ + u8 i; + u16 *ecWordBuffer; + u16 *ecWord; + u8 var0; + u8 cursorColumn, cursorRow, numColumns; + s16 var1; + int stringWidth; + int trueStringWidth; + u8 var2; + u8 sp0[64]; + + ecWordBuffer = sub_811BA94(); + var0 = sub_811BA68(); + cursorColumn = sub_811BAB8(); + cursorRow = sub_811BAC4(); + numColumns = sub_811BAAC(); + ecWord = &ecWordBuffer[cursorRow * numColumns]; + var1 = 8 * gUnknown_08597C30[var0].unk0_0 + 13; + for (i = 0; i < cursorColumn; i++) + { + if (*ecWord == 0xFFFF) + { + stringWidth = 72; + } + else + { + CopyEasyChatWord(sp0, *ecWord); + stringWidth = GetStringWidth(1, sp0, 0); + } + + trueStringWidth = stringWidth + 17; + var1 += trueStringWidth; + ecWord++; + } + + var2 = 8 * (gUnknown_08597C30[var0].unk0_5 + cursorRow * 2); + sub_811DF60(var1, var2 + 8); + return FALSE; +} + +static bool8 sub_811C3E4(void) +{ + u8 var0 = sub_811E920(sub_811BAB8()); + sub_811DF60(var0, 96); + return FALSE; +} + +static bool8 sub_811C404(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(2); + sub_811D214(1); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C448(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(3); + sub_811D214(0); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C48C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(1); + sub_811D214(1); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C4D0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DFB0(); + sub_811D104(0); + sub_811D2C8(); + ShowBg(0); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C518(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DFB0(); + sub_811D104(0); + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811C554(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + HideBg(0); + sub_811DE5C(0, 0, 0, 0); + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(0); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) + gUnknown_0203A11C->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E3AC(); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!sub_811E418()) + { + sub_811DFC8(); + sub_811E6E0(0); + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + default: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C620(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E4AC(); + sub_811E6B0(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (sub_811E4D0() == TRUE) + break; + + sub_811D9CC(1); + gUnknown_0203A11C->unk0++; + // Fall through + case 2: + if (!sub_811DAA4()) + gUnknown_0203A11C->unk0++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C6C0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E6B0(); + sub_811E55C(); + sub_811D9CC(5); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!sub_811DAA4() && !sub_811E5B8()) + { + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(6); + sub_811E578(); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4() && !sub_811E5B8()) + { + sub_811E64C(); + sub_811DFC8(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 4: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C780(void) +{ + sub_811E088(); + return FALSE; +} + +static bool8 sub_811C78C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DDAC(1, 4); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + if (!sub_811DE10()) + { + sub_811E088(); + sub_811E64C(); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 sub_811C7D4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DDAC(-1, 4); + gUnknown_0203A11C->unk0++; + // Fall through + case 1: + if (!sub_811DE10()) + { + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 2: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C830(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E050(); + sub_811E4AC(); + sub_811E6B0(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!sub_811E4D0()) + { + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(2); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + sub_811D698(2); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E288(); + sub_811E6E0(1); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C8F0(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(3); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 5: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811C99C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D2C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(3); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!sub_811DAA4()) + { + sub_811D104(3); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + gUnknown_0203A11C->unk0++; + } + break; + case 5: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DFB0(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 6: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CA5C(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811E380(); + sub_811E6B0(); + sub_811E7F8(); + sub_811D9B4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811D9CC(4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DAA4()) + { + sub_811D6D4(); + gUnknown_0203A11C->unk0++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811E3AC(); + gUnknown_0203A11C->unk0++; + } + break; + case 4: + if (!sub_811E418()) + { + sub_811DFC8(); + sub_811E6E0(0); + sub_811E64C(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 sub_811CB18(void) +{ + sub_811E30C(); + return FALSE; +} + +static bool8 sub_811CB24(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7A4(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DDAC(1, 4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E30C(); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CB98(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7C8(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + sub_811DDAC(-1, 4); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CC08(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D7EC(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_811BBDC() - sub_811DE48(); + sub_811DDAC(var0, 8); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E30C(); + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CC90(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811D830(); + gUnknown_0203A11C->unk0++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + s16 var0 = sub_811BBDC() - sub_811DE48(); + sub_811DDAC(var0, 8); + gUnknown_0203A11C->unk0++; + } + break; + case 2: + if (!sub_811DE10()) + { + sub_811E64C(); + sub_811E794(); + gUnknown_0203A11C->unk0++; + return FALSE; + } + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 sub_811CD14(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(4); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CD54(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(5); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CD94(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(6); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CDD4(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(7); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CE14(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(8); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 sub_811CE54(void) +{ + switch (gUnknown_0203A11C->unk0) + { + case 0: + sub_811DF90(); + sub_811D104(9); + gUnknown_0203A11C->unk0++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} -- cgit v1.2.3 From b2866fae2126012f7d7b4db8b60e07ba344a5f97 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 22:20:42 -0500 Subject: Document the weather state functions All weather types are now documented (including WEATHER_15) --- src/cable_car.c | 8 +++--- src/egg_hatch.c | 2 +- src/field_screen_effect.c | 10 +++---- src/field_specials.c | 5 ++-- src/field_weather.c | 15 +++++----- src/field_weather_effect.c | 71 +++++++++++++++++++++++----------------------- src/overworld.c | 2 +- src/start_menu.c | 18 ++++++------ 8 files changed, 67 insertions(+), 64 deletions(-) (limited to 'src') diff --git a/src/cable_car.c b/src/cable_car.c index 207a0c22d..420bdd30f 100755 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -358,7 +358,7 @@ static void CleanupCableCar(void) HideBg(3); sub_8150B6C(0); gSpriteCoordOffsetX = 0; - sub_80AB130(WEATHER_NONE); + SetCurrentAndNextWeatherNoDelay(WEATHER_NONE); for (i = 0; i < 20; i++) gWeatherPtr->sprites.s2.ashSprites[i] = NULL; @@ -394,7 +394,7 @@ static void sub_81503E4(u8 taskId) case 0: if (sCableCar->timer == sCableCar->unk4) { - ChangeWeather(sCableCar->weather); + SetNextWeather(sCableCar->weather); sCableCar->state = 1; } break; @@ -798,7 +798,7 @@ static void LoadCableCarSprites(void) gSprites[spriteId].data[1] = 99; sCableCar->weather = WEATHER_ASH; sCableCar->unk4 = 0x15e; - sub_80AB130(WEATHER_SUNNY); + SetCurrentAndNextWeatherNoDelay(WEATHER_SUNNY); break; case 1: CopyToBgTilemapBufferRect_ChangePalette(0, sCableCar->mtChimneyTilemap + 0x24, 24, 26, 12, 3, 17); @@ -822,7 +822,7 @@ static void LoadCableCarSprites(void) gSprites[spriteId].data[1] = 0x41; sCableCar->weather = WEATHER_SUNNY; sCableCar->unk4 = 0x109; - sub_80AB130(WEATHER_ASH); + SetCurrentAndNextWeatherNoDelay(WEATHER_ASH); break; } for (i = 0; i < 9; i++) diff --git a/src/egg_hatch.c b/src/egg_hatch.c index e1d94889a..ba1020669 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -574,7 +574,7 @@ static void Task_EggHatchPlayBGM(u8 taskID) if (gTasks[taskID].data[0] == 0) { StopMapMusic(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); } if (gTasks[taskID].data[0] == 1) PlayBGM(MUS_ME_SHINKA); diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 93017f125..0a4f3212b 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -503,7 +503,7 @@ void DoWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = mapldr_default; CreateTask(sub_80AFA0C, 10); @@ -514,7 +514,7 @@ void DoDiveWarp(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gFieldCallback = mapldr_default; CreateTask(sub_80AFA0C, 10); } @@ -524,7 +524,7 @@ void sub_80AF79C(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); FadeScreen(FADE_TO_WHITE, 8); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gFieldCallback = sub_80AF3B0; CreateTask(sub_80AFA0C, 10); } @@ -734,7 +734,7 @@ static void sub_80AFA88(u8 taskId) case 4: TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); task->data[0] = 0; task->func = sub_80AFA0C; break; @@ -771,7 +771,7 @@ void sub_80AFC60(void) ScriptContext2_Enable(); TryFadeOutOldMapMusic(); WarpFadeScreen(); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = sub_80AF3C8; CreateTask(task0A_fade_n_map_maybe, 10); diff --git a/src/field_specials.c b/src/field_specials.c index 3c26085dd..307f81399 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -54,6 +54,7 @@ #include "constants/moves.h" #include "constants/vars.h" #include "constants/battle_frontier.h" +#include "constants/weather.h" EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; @@ -3527,9 +3528,9 @@ bool8 sub_813B3B0(void) } } -void sub_813B484(void) +void Unused_SetWeatherSunny(void) { - sub_80AB104(2); + SetCurrentAndNextWeather(WEATHER_SUNNY); } bool32 sub_813B490(void) diff --git a/src/field_weather.c b/src/field_weather.c index 0db635c60..9913e9a61 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -186,11 +186,11 @@ void StartWeather(void) } } -void ChangeWeather(u8 weather) +void SetNextWeather(u8 weather) { if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); } if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather) @@ -203,18 +203,19 @@ void ChangeWeather(u8 weather) gWeatherPtr->finishStep = 0; } -void sub_80AB104(u8 weather) +void SetCurrentAndNextWeather(u8 weather) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gWeatherPtr->currWeather = weather; gWeatherPtr->nextWeather = weather; } -void sub_80AB130(u8 weather) +void SetCurrentAndNextWeatherNoDelay(u8 weather) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); gWeatherPtr->currWeather = weather; gWeatherPtr->nextWeather = weather; + // Overrides the normal delay during screen fading. gWeatherPtr->readyForInit = TRUE; } @@ -1053,7 +1054,7 @@ void SetRainStrengthFromSoundEffect(u16 soundEffect) } } -void PlayRainSoundEffect(void) +void PlayRainStoppingSoundEffect(void) { if (IsSpecialSEPlaying()) { diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index 2ec51a722..b81a8f5d2 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -16,8 +16,8 @@ void sub_80AC6B4(struct Sprite *); // EWRAM -EWRAM_DATA static u8 gUnknown_02038BC4 = 0; -EWRAM_DATA static u16 gUnknown_02038BC6 = 0; +EWRAM_DATA static u8 gCurrentAlternatingWeather = 0; +EWRAM_DATA static u16 gUnusedWeatherRelated = 0; // CONST const u16 gUnknown_0854C290[] = INCBIN_U16("graphics/weather/1.gbapal"); @@ -2286,13 +2286,14 @@ void unc_0807DAB4(struct Sprite *sprite) //------------------------------------------------------------------------------ -static void sub_80AEC94(u32 a0, u32 a1) +// Unused function. +static void UnusedSetCurrentAlternatingWeather(u32 a0, u32 a1) { - gUnknown_02038BC4 = a0; - gUnknown_02038BC6 = a1; + gCurrentAlternatingWeather = a0; + gUnusedWeatherRelated = a1; } -static void sub_80AECA8(u8 taskId) +static void Task_DoAlternatingWeather(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2301,8 +2302,8 @@ static void sub_80AECA8(u8 taskId) case 0: if (data[15]-- <= 0) { - ChangeWeather(data[1]); - gUnknown_02038BC4 = data[1]; + SetNextWeather(data[1]); + gCurrentAlternatingWeather = data[1]; data[15] = 600; data[0]++; } @@ -2310,8 +2311,8 @@ static void sub_80AECA8(u8 taskId) case 1: if (data[15]-- <= 0) { - ChangeWeather(data[2]); - gUnknown_02038BC4 = data[2]; + SetNextWeather(data[2]); + gCurrentAlternatingWeather = data[2]; data[15] = 600; data[0] = 0; } @@ -2319,25 +2320,25 @@ static void sub_80AECA8(u8 taskId) } } -static void sub_80AED28(void) +static void CreateAlternatingWeatherTask(void) { - u8 taskId = CreateTask(sub_80AECA8, 0); + u8 taskId = CreateTask(Task_DoAlternatingWeather, 0); s16 *data = gTasks[taskId].data; data[15] = 600; - if (gUnknown_02038BC4 == WEATHER_RAIN_HEAVY) + if (gCurrentAlternatingWeather == WEATHER_RAIN_HEAVY) { data[1] = WEATHER_DROUGHT; data[2] = WEATHER_RAIN_HEAVY; } - else if (gUnknown_02038BC4 == WEATHER_DROUGHT) + else if (gCurrentAlternatingWeather == WEATHER_DROUGHT) { data[1] = WEATHER_RAIN_HEAVY; data[2] = WEATHER_DROUGHT; } else { - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; data[1] = WEATHER_DROUGHT; data[2] = WEATHER_RAIN_HEAVY; } @@ -2368,51 +2369,51 @@ void SetSav1WeatherFromCurrMapHeader(void) void SetWeather(u32 weather) { SetSav1Weather(weather); - ChangeWeather(GetSav1Weather()); + SetNextWeather(GetSav1Weather()); } void SetWeather_Unused(u32 weather) { SetSav1Weather(weather); - sub_80AB104(GetSav1Weather()); + SetCurrentAndNextWeather(GetSav1Weather()); } void DoCurrentWeather(void) { u8 weather = GetSav1Weather(); - if (weather == WEATHER_15) + if (weather == WEATHER_ALTERNATING) { - if (!FuncIsActiveTask(sub_80AECA8)) - sub_80AED28(); - weather = gUnknown_02038BC4; + if (!FuncIsActiveTask(Task_DoAlternatingWeather)) + CreateAlternatingWeatherTask(); + weather = gCurrentAlternatingWeather; } else { - if (FuncIsActiveTask(sub_80AECA8)) - DestroyTask(FindTaskIdByFunc(sub_80AECA8)); - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + if (FuncIsActiveTask(Task_DoAlternatingWeather)) + DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather)); + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; } - ChangeWeather(weather); + SetNextWeather(weather); } -void sub_80AEE84(void) +void DoPausedWeather(void) { u8 weather = GetSav1Weather(); - if (weather == WEATHER_15) + if (weather == WEATHER_ALTERNATING) { - if (!FuncIsActiveTask(sub_80AECA8)) - sub_80AED28(); - weather = gUnknown_02038BC4; + if (!FuncIsActiveTask(Task_DoAlternatingWeather)) + CreateAlternatingWeatherTask(); + weather = gCurrentAlternatingWeather; } else { - if (FuncIsActiveTask(sub_80AECA8)) - DestroyTask(FindTaskIdByFunc(sub_80AECA8)); - gUnknown_02038BC4 = WEATHER_RAIN_HEAVY; + if (FuncIsActiveTask(Task_DoAlternatingWeather)) + DestroyTask(FindTaskIdByFunc(Task_DoAlternatingWeather)); + gCurrentAlternatingWeather = WEATHER_RAIN_HEAVY; } - sub_80AB104(weather); + SetCurrentAndNextWeather(weather); } static const u8 sWeatherCycleRoute119[] = @@ -2449,7 +2450,7 @@ static u8 TranslateWeatherNum(u8 weather) case WEATHER_DROUGHT: return WEATHER_DROUGHT; case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; case WEATHER_BUBBLES: return WEATHER_BUBBLES; - case WEATHER_15: return WEATHER_15; + case WEATHER_ALTERNATING: return WEATHER_ALTERNATING; case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage]; case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage]; default: return WEATHER_NONE; diff --git a/src/overworld.c b/src/overworld.c index 08fd94c1b..6f973f16b 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2123,7 +2123,7 @@ static void sub_8086988(u32 a1) FieldEffectActiveListClear(); StartWeather(); - sub_80AEE84(); + DoPausedWeather(); if (!a1) SetUpFieldTasks(); mapheader_run_script_with_tag_x5(); diff --git a/src/start_menu.c b/src/start_menu.c index d5eec76d2..6efd7a04a 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -91,7 +91,7 @@ extern void sub_80AF688(void); extern void var_800D_set_xB(void); extern void sub_808B864(void); extern void CB2_Pokedex(void); -extern void PlayRainSoundEffect(void); +extern void PlayRainStoppingSoundEffect(void); extern void CB2_PokeNav(void); extern void ScriptUnfreezeEventObjects(void); extern void save_serialize_map(void); @@ -608,7 +608,7 @@ static bool8 StartMenuPokedexCallback(void) if (!gPaletteFade.active) { IncrementGameStat(GAME_STAT_CHECKED_POKEDEX); - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_Pokedex); @@ -623,7 +623,7 @@ static bool8 StartMenuPokemonCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PartyMenuFromStartMenu); // Display party menu @@ -638,7 +638,7 @@ static bool8 StartMenuBagCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_BagMenuFromStartMenu); // Display bag menu @@ -653,7 +653,7 @@ static bool8 StartMenuPokeNavCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PokeNav); // Display PokeNav @@ -668,7 +668,7 @@ static bool8 StartMenuPlayerNameCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); @@ -699,7 +699,7 @@ static bool8 StartMenuOptionCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_InitOptionMenu); // Display option menu @@ -732,7 +732,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); CleanupOverworldWindowsAndTilemaps(); ShowTrainerCardInLink(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu); @@ -761,7 +761,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void) { if (!gPaletteFade.active) { - PlayRainSoundEffect(); + PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_PyramidBagMenuFromStartMenu); -- cgit v1.2.3 From 788caa4fe2fcc7bd4673e947f8f30a0a0d3899ef Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 23 Feb 2019 13:34:01 +0100 Subject: pokenav --- src/pokenav.c | 736 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 479 insertions(+), 257 deletions(-) (limited to 'src') diff --git a/src/pokenav.c b/src/pokenav.c index ff687e8dc..d09c3da94 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -13,26 +13,45 @@ #include "bg.h" #include "menu.h" #include "graphics.h" +#include "dma3.h" #include "gba/macro.h" #include "decompress.h" #include "strings.h" #include "constants/rgb.h" +enum +{ + MODE_NORMAL, // Chosen from Start menu. + MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call. + MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav. +}; + #define UNKNOWN_OFFSET 100000 +struct UnknownSubStruct_0203CF40 +{ + void (*unk0)(u32); + u32 (*unk4)(void); + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + struct Sprite *unk18; + struct Sprite *unk1C[2]; + struct Sprite *unk24[2]; + u8 tilemapBuffer[0x1000]; +}; + +#define SUBSTRUCT_COUNT 19 + struct UnknownStruct_0203CF40 { u32 (*field0)(void); u32 field4; - u16 field8; + u16 mode; u16 fieldA; - u32 fieldC; - void *field10[19]; -}; - -struct UnknownStruct_sub_81C76C4 -{ - u32 data[523]; + bool32 hasAnyRibbons; + struct UnknownSubStruct_0203CF40 *field10[SUBSTRUCT_COUNT]; }; extern u32 sub_81C9430(void); @@ -101,34 +120,42 @@ extern u32 sub_81CFE08(void); u32 sub_81C791C(s32 a0); bool32 sub_81C756C(u32 a0); bool32 sub_81C76C4(void); -u32 AnyMonHasRibbon(void); +static bool32 AnyMonHasRibbon(void); u32 sub_81C75E0(void); u32 sub_81C75D4(void); u32 sub_81C76FC(void); u32 sub_81C786C(void); u32 sub_81C7764(s32 a0); -u32 atk47_cmd47(s32 a0); +u32 sub_81C78D4(s32 a0); bool32 sub_81C7738(void); void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2); -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)); -void sub_81C7360(struct UnknownStruct_0203CF40 *a0); -void sub_81C7650(u32 index); +void sub_81C7834(void *func1, void *func2); +static void InitMainStruct(struct UnknownStruct_0203CF40 *a0); +void FreeSubstruct(u32 index); void sub_81C7850(u32 a0); void sub_81C7BF8(u32 a0); void sub_81C71E4(u8 a0); -void sub_81C7170(u8 a0); +void sub_81C7170(u8 taskId); void sub_81C742C(u8 taskId); void sub_81C7710(void); -void sub_81C75F4(void); -void sub_81C7334(void); -void sub_81C7418(void); -void sub_81C7400(void); +static void InitKeys_(void); +static void FreeVars(void); +static void VblankCb_Pokenav(void); +static void Cb2_Pokenav(void); void sub_81C7C28(void); void sub_81C72BC(void); void sub_81C7B74(void); void sub_81C7C94(void); - - +void sub_81C7F24(u32 arg0); +void sub_81C7E58(u32 arg0); +void sub_81C8110(bool32 arg0); +void sub_81C80D4(bool32 arg0); +void sub_81C803C(u32 arg0, bool32 arg1); +void sub_81C8088(u32 arg0, bool32 arg1); +void sub_81C814C(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3); +void sub_81C817C(struct Sprite *sprite); + +// Const rom data. u32 (*const gUnknown_0861F3EC[15][7])(void) = { { @@ -272,15 +299,17 @@ const u16 gUnknown_0861F590[] = INCBIN_U16("graphics/pokenav/icon2.gbapal"); const u32 gUnknown_0861F5B0[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz"); const u32 gUnknown_0861F994[] = INCBIN_U32("graphics/pokenav/icon2_unused.4bpp.lz"); -const struct BgTemplate gUnknown_0861FA04 = +const struct BgTemplate gUnknown_0861FA04[] = { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 5, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 5, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + } }; const struct WindowTemplate gUnknown_0861FA08[2] = @@ -305,7 +334,7 @@ const struct WindowTemplate gUnknown_0861FA08[2] = }, }; -const u8 *const (MenuButtonReminders[12]) = +const u8 *const (sMenuButtonReminders[12]) = { gText_Navgear_ClearButtonList, gText_NavgearMap_ZoomedOutButtons, @@ -341,10 +370,6 @@ const struct SpritePalette gUnknown_0861FA54[2] = .data = gUnknown_0861F590, .tag = 0, }, - { - .data = NULL, - .tag = 0, - } }; const struct CompressedSpriteSheet gUnknown_0861FA64 = @@ -358,16 +383,17 @@ extern struct UnknownStruct_0203CF40 *gUnknown_0203CF40; extern u8 gUnknown_0203CF3C; extern const struct SpriteTemplate gUnknown_0861FB04; -u32 sub_81C7078(u32 (*a0)(s32), u32 a1) +// code +u32 sub_81C7078(u32 (*func)(s32), u32 priority) { u16 taskId; if (!is_c1_link_related_active()) - taskId = CreateTask(sub_81C7170, a1); + taskId = CreateTask(sub_81C7170, priority); else - taskId = CreateTask(sub_81C71E4, a1); + taskId = CreateTask(sub_81C71E4, priority); - SetWordTaskArg(taskId, 1, (u32)a0); + SetWordTaskArg(taskId, 1, (u32)func); gTasks[taskId].data[3] = gUnknown_0203CF3C; return ((gUnknown_0203CF3C++) << 16) | taskId; @@ -375,62 +401,52 @@ u32 sub_81C7078(u32 (*a0)(s32), u32 a1) bool32 sub_81C70D8(u32 a0) { - u32 v1 = a0 & 0xFFFF; + u32 taskId = a0 & 0xFFFF; u32 v2 = a0 >> 16; - if (gTasks[v1].isActive - && (gTasks[v1].func == sub_81C7170 || gTasks[v1].func == sub_81C71E4) - && gTasks[v1].data[3] == v2) - { - + + if (gTasks[taskId].isActive + && (gTasks[taskId].func == sub_81C7170 || gTasks[taskId].func == sub_81C71E4) + && gTasks[taskId].data[3] == v2) return TRUE; - } else - { return FALSE; - } } bool32 sub_81C7124(u32 a0) { s32 i; - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASKS; i++) { if (gTasks[i].isActive - && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4)) - { - u32 arg = GetWordTaskArg((u8)i, 1); - if (arg == a0) - return TRUE; - } + && (gTasks[i].func == sub_81C7170 || gTasks[i].func == sub_81C71E4) + && GetWordTaskArg(i, 1) == a0) + return TRUE; } return FALSE; } void sub_81C7170(u8 taskId) { - s16 *dataPtr; - u32 (*func)(u32); - bool32 exitLoop; + u32 (*func)(s32) = (void *)GetWordTaskArg(taskId, 1); + s16 *data = gTasks[taskId].data; + bool32 exitLoop = FALSE; - func = (u32 (*)(u32))GetWordTaskArg(taskId, 1); - dataPtr = gTasks[taskId].data; - exitLoop = FALSE; while (!exitLoop) { - u32 v1 =((u32 (*)(u32))func)(dataPtr[0]); - switch (v1) + u32 var = func(data[0]); + switch (var) { case 1: - dataPtr[0] = dataPtr[0] + 1; + data[0] = data[0] + 1; break; case 0: - dataPtr[0]++; + data[0]++; return; case 4: DestroyTask(taskId); return; default: - dataPtr[0] = v1 - 5; + data[0] = var - 5; break; case 3: break; @@ -471,91 +487,81 @@ void sub_81C71E4(u8 taskId) void CB2_PokeNav(void) { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); + gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40)); if (gUnknown_0203CF40 == NULL) { SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); } else { - sub_81C7360(gUnknown_0203CF40); + InitMainStruct(gUnknown_0203CF40); ResetTasks(); SetVBlankCallback(NULL); CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); + SetMainCallback2(Cb2_Pokenav); + SetVBlankCallback(VblankCb_Pokenav); } } -void sub_81C72A4() +void sub_81C72A4(void) { SetMainCallback2(sub_81C72BC); FadeScreen(1, 0); } -void sub_81C72BC() +void sub_81C72BC(void) { UpdatePaletteFade(); - if (!gPaletteFade.active) + if (gPaletteFade.active) + return; + + gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40)); + if (gUnknown_0203CF40 == NULL) { - gUnknown_0203CF40 = Alloc(sizeof(struct UnknownStruct_0203CF40)); - if (gUnknown_0203CF40 == NULL) - { - SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); - } - else - { - sub_81C7360(gUnknown_0203CF40); - gUnknown_0203CF40->field8 = 1; - ResetTasks(); - ResetSpriteData(); - FreeAllSpritePalettes(); - SetVBlankCallback(NULL); - CreateTask(sub_81C742C, 0); - SetMainCallback2(sub_81C7400); - SetVBlankCallback(sub_81C7418); - } + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + } + else + { + InitMainStruct(gUnknown_0203CF40); + gUnknown_0203CF40->mode = MODE_FORCE_CALL_1; + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + CreateTask(sub_81C742C, 0); + SetMainCallback2(Cb2_Pokenav); + SetVBlankCallback(VblankCb_Pokenav); } } -void sub_81C7334() +static void FreeVars(void) { s32 i; - for (i = 0; i < 19; i++) - { - sub_81C7650(i); - } - Free(gUnknown_0203CF40); - gUnknown_0203CF40 = NULL; + for (i = 0; i < SUBSTRUCT_COUNT; i++) + FreeSubstruct(i); + + FREE_AND_SET_NULL(gUnknown_0203CF40); InitKeys(); } // Clears UnknownStruct_0203CF40 -void sub_81C7360(struct UnknownStruct_0203CF40 *a0) +static void InitMainStruct(struct UnknownStruct_0203CF40 *a0) { s32 i; - void **arrayPtr; - void *fill; - fill = NULL; - i = 18; - arrayPtr = &(a0->field10[18]); - for (i; i >= 0; i--) - { - *arrayPtr = fill; - arrayPtr -= 1; - } - a0->field8 = 0; + for (i = 0; i < SUBSTRUCT_COUNT; i++) + a0->field10[i] = NULL; + + a0->mode = MODE_NORMAL; a0->field4 = 0; - a0->fieldC = AnyMonHasRibbon(); + a0->hasAnyRibbons = AnyMonHasRibbon(); a0->field0 = NULL; } -bool32 AnyMonHasRibbon() +static bool32 AnyMonHasRibbon(void) { - s32 i; - s32 j; + s32 i, j; for (i = 0; i < PARTY_SIZE; i++) { @@ -569,7 +575,7 @@ bool32 AnyMonHasRibbon() for (j = 0; j < TOTAL_BOXES_COUNT; j++) { - for (i = 0; i < IN_BOX_COUNT; i++) + for (i = 0; i < IN_BOX_COUNT; i++) { if (CheckBoxMonSanityAt(j, i) && GetBoxMonDataAt(j, i, MON_DATA_RIBBON_COUNT) != 0) @@ -582,7 +588,7 @@ bool32 AnyMonHasRibbon() return FALSE; } -void sub_81C7400() +static void Cb2_Pokenav(void) { RunTasks(); AnimateSprites(); @@ -590,7 +596,7 @@ void sub_81C7400() UpdatePaletteFade(); } -void sub_81C7418() +static void VblankCb_Pokenav(void) { TransferPlttBuffer(); LoadOam(); @@ -599,34 +605,31 @@ void sub_81C7418() void sub_81C742C(u8 taskId) { - s16 *dataPtr; u32 v1; - bool32 v2; - - dataPtr = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; - switch (dataPtr[0]) + switch (data[0]) { case 0: sub_81C76C4(); - dataPtr[0] = 1; + data[0] = 1; break; case 1: if (sub_81C76FC()) break; sub_81C756C(UNKNOWN_OFFSET); - dataPtr[0] = 4; + data[0] = 4; break; case 2: if (sub_81C786C()) break; - dataPtr[0] = 3; + data[0] = 3; case 3: v1 = sub_81C75E0(); if (v1 == -1) { sub_81C7710(); - dataPtr[0] = 5; + data[0] = 5; } else if (v1 >= UNKNOWN_OFFSET) { @@ -634,32 +637,33 @@ void sub_81C742C(u8 taskId) gUnknown_0861F3EC[gUnknown_0203CF40->field4][5](); if (sub_81C756C(v1)) { - dataPtr[0] = 4; + data[0] = 4; } else { sub_81C7710(); - dataPtr[0] = 5; + data[0] = 5; } } else if (v1 != 0) { sub_81C7850(v1); if (sub_81C786C()) - dataPtr[0] = 2; + data[0] = 2; } break; case 4: if (!sub_81C75D4()) - dataPtr[0] = 3; + data[0] = 3; break; case 5: if (!sub_81C7738()) { - v2 = gUnknown_0203CF40->field8 != 0; + bool32 calledFromScript = (gUnknown_0203CF40->mode != MODE_NORMAL); + sub_81C9430(); - sub_81C7334(); - if (v2) + FreeVars(); + if (calledFromScript) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); else SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); @@ -670,14 +674,14 @@ void sub_81C742C(u8 taskId) bool32 sub_81C756C(u32 a0) { - u32 index; + u32 index = a0 - UNKNOWN_OFFSET; - index = a0 - UNKNOWN_OFFSET; - sub_81C75F4(); + InitKeys_(); if (!gUnknown_0861F3EC[index][0]()) return FALSE; if (!gUnknown_0861F3EC[index][2]()) return FALSE; + sub_81C7834(gUnknown_0861F3EC[index][3], gUnknown_0861F3EC[index][4]); gUnknown_0203CF40->field0 = gUnknown_0861F3EC[index][1]; gUnknown_0203CF40->field4 = index; @@ -694,52 +698,52 @@ u32 sub_81C75E0(void) return gUnknown_0203CF40->field0(); } -void sub_81C75F4(void) +static void InitKeys_(void) { InitKeys(); } -void IndirectSetVBlankCallback(IntrCallback callback) +void SetVBlankCallback_(IntrCallback callback) { SetVBlankCallback(callback); } -void sub_81C760C(void) +void SetPokenavVBlankCallback(void) { - SetVBlankCallback(sub_81C7418); + SetVBlankCallback(VblankCb_Pokenav); } -void *sub_81C761C(u32 index, u32 size) +void *AllocSubstruct(u32 index, u32 size) { - return gUnknown_0203CF40->field10[index] = (void*)Alloc(size); + return gUnknown_0203CF40->field10[index] = Alloc(size); } -void *sub_81C763C(u32 index) +struct UnknownSubStruct_0203CF40 *GetSubstructPtr(u32 index) { return gUnknown_0203CF40->field10[index]; } -void sub_81C7650(u32 index) +void FreeSubstruct(u32 index) { if (gUnknown_0203CF40->field10[index] != NULL) FREE_AND_SET_NULL(gUnknown_0203CF40->field10[index]); } -u16 sub_81C767C(void) +u16 GetPokenavMode(void) { - return gUnknown_0203CF40->field8; + return gUnknown_0203CF40->mode; } -void sub_81C7688(u16 a0) +void SetPokenavMode(u16 mode) { - gUnknown_0203CF40->field8 = a0; + gUnknown_0203CF40->mode = mode; } void sub_81C7694(u32 a0) { - u32 value; - value = a0; - if (a0 > 4) + u32 value = a0; + + if (value > 4) value = 0; gUnknown_0203CF40->fieldA = value; } @@ -749,34 +753,27 @@ u16 sub_81C76AC(void) return gUnknown_0203CF40->fieldA; } -u32 sub_81C76B8(void) +bool32 CanViewRibbonsMenu(void) { - return gUnknown_0203CF40->fieldC; + return gUnknown_0203CF40->hasAnyRibbons; } bool32 sub_81C76C4(void) { - struct UnknownStruct_sub_81C76C4 *v1; - - v1 = (struct UnknownStruct_sub_81C76C4*)sub_81C761C(0, sizeof(struct UnknownStruct_sub_81C76C4)); - if (v1 == NULL) - { + struct UnknownSubStruct_0203CF40 *structPtr = AllocSubstruct(0, 0x82C); + if (structPtr == NULL) return FALSE; - } - else - { - ResetSpriteData(); - FreeAllSpritePalettes(); - v1->data[3] = sub_81C7078(sub_81C7764, 1); - return TRUE; - } + + ResetSpriteData(); + FreeAllSpritePalettes(); + structPtr->unkC = sub_81C7078(sub_81C7764, 1); + return TRUE; } u32 sub_81C76FC(void) { - u32 *v1; - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return sub_81C70D8(structPtr->unkC); } void sub_81C7710(void) @@ -794,15 +791,14 @@ bool32 sub_81C7738(void) sub_81C7C94(); FreeAllWindowBuffers(); return FALSE; - } else - { - return TRUE; } + + return TRUE; } u32 sub_81C7764(s32 a0) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr; switch (a0) { @@ -810,14 +806,14 @@ u32 sub_81C7764(s32 a0) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); FreeAllWindowBuffers(); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, &gUnknown_0861FA04, 1); + InitBgsFromTemplates(0, gUnknown_0861FA04, ARRAY_COUNT(gUnknown_0861FA04)); sub_8199D98(); reset_temp_tile_data_buffers(); return 1; case 1: - v1 = sub_81C763C(0); + structPtr = GetSubstructPtr(0); decompress_and_copy_tile_data_to_vram(0, &gPokenavHeader_Gfx, 0, 0, 0); - SetBgTilemapBuffer(0, &v1[11]); + SetBgTilemapBuffer(0, structPtr->tilemapBuffer); CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0); CopyPaletteIntoBufferUnfaded(gPokenavHeader_Pal, 0, 0x20); CopyBgTilemapBufferToVram(0); @@ -825,7 +821,7 @@ u32 sub_81C7764(s32 a0) case 2: if (free_temp_tile_data_buffers_if_possible()) return 2; - + sub_81C7B74(); return 0; case 3: @@ -841,58 +837,46 @@ u32 sub_81C7764(s32 a0) } } -void sub_81C7834(u32 (*a0)(void), u32(*a1)(void)) +void sub_81C7834(void *func1, void *func2) // Fix types later. { - u32 (**v1)(void); - - v1 = sub_81C763C(0); - v1[0] = a0; - v1[1] = a1; - v1[2] = NULL; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unk0 = func1; + structPtr->unk4 = func2; + structPtr->unk8 = 0; } void sub_81C7850(u32 a0) { - void (**v1)(u32); - - v1 = sub_81C763C(0); - v1[2] = NULL; - v1[0](a0); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unk8 = 0; + structPtr->unk0(a0); } u32 sub_81C786C(void) { - u32 (**v1)(void); - - v1 = sub_81C763C(0); - return v1[1](); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return structPtr->unk4(); } void sub_81C7880(void) { - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(atk47_cmd47, 4); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unkC = sub_81C7078(sub_81C78D4, 4); } void sub_81C78A0(void) { - u32 *v1; - - v1 = sub_81C763C(0); - v1[3] = sub_81C7078(sub_81C791C, 4); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + structPtr->unkC = sub_81C7078(sub_81C791C, 4); } bool32 sub_81C78C0(void) { - u32 *v1; - - v1 = sub_81C763C(0); - return sub_81C70D8(v1[3]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + return sub_81C70D8(structPtr->unkC); } -u32 atk47_cmd47(s32 a0) +u32 sub_81C78D4(s32 a0) { switch (a0) { @@ -903,12 +887,12 @@ u32 atk47_cmd47(s32 a0) case 0: return 0; case 2: - if ((u32)ChangeBgY(0, 384, 1) >= 0x2000) + if (ChangeBgY(0, 384, 1) >= 0x2000u) { ChangeBgY(0, 0x2000, 0); return 4; } - + return 2; } } @@ -923,7 +907,8 @@ u32 sub_81C791C(s32 a0) return 2; } -void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) { +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size) +{ CpuCopy16(palette, gPlttBufferUnfaded + bufferOffset, size); } @@ -932,7 +917,7 @@ void sub_81C795C(const struct SpritePalette *palettes) const struct SpritePalette *current; u32 index; - for (current = palettes; current->data != NULL; current++) + for (current = palettes; current->data != NULL; current++) { index = AllocSpritePalette(current->tag); if (index == 0xFF) @@ -953,7 +938,7 @@ void sub_81C7990(u32 a0, u16 a1) } __attribute__((naked)) -void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 unused, u32 a5, u32 a6) +void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 a4, u32 a5) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1090,15 +1075,15 @@ _081C7AAE:\n\ void sub_81C7AC0(s32 a0) { - u32 *v1; - v1 = sub_81C763C(0); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + switch (a0) { case 0: - BeginNormalPaletteFade(v1[5], -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(structPtr->unk14, -2, 0, 16, RGB_BLACK); break; case 1: - BeginNormalPaletteFade(v1[5], -2, 16, 0, RGB_BLACK); + BeginNormalPaletteFade(structPtr->unk14, -2, 16, 0, RGB_BLACK); break; case 2: BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); @@ -1119,93 +1104,330 @@ void sub_81C7B40(void) BlendPalettes(0xFFFEFFFE, 16, RGB_BLACK); } -void sub_81C7B54(const struct BgTemplate *a0, s32 a1) +void InitBgTemplates(const struct BgTemplate *templates, s32 count) { s32 i; - if (a1 <= 0) - return; - for (i = a1; i != 0; i--) - { - InitBgFromTemplate(a0++); - } + + for (i = 0; i < count; i++) + InitBgFromTemplate(templates++); } void sub_81C7B74(void) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); InitWindows(&gUnknown_0861FA08[0]); - v1[4] = 0; - sub_81C7BF8(0); - PutWindowTilemap(v1[4]); - CopyWindowToVram(v1[4], 3); // TODO: Use a defined constant here. + structPtr->unk10 = 0; + sub_81C7BF8(structPtr->unk10); + PutWindowTilemap(structPtr->unk10); + CopyWindowToVram(structPtr->unk10, 3); // TODO: Use a defined constant here. } void sub_81C7BA4(u32 a0) { - u32 *v1; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); - sub_81C7BF8(v1[4]); - AddTextPrinterParameterized3(v1[4], 1, 0, 1, gMenuButtonReminderColor, 0, MenuButtonReminders[a0]); + sub_81C7BF8(structPtr->unk10); + AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, gMenuButtonReminderColor, 0, sMenuButtonReminders[a0]); } -bool8 sub_81C7BE8(void) +bool32 IsDma3ManagerBusyWithBgCopy_(void) { return IsDma3ManagerBusyWithBgCopy(); } -void sub_81C7BF8(u32 a0) +void sub_81C7BF8(u32 windowId) { - FillWindowPixelBuffer(a0, 0x44); - FillWindowPixelRect(a0, 0x55, 0, 0, 0x80, 1); + FillWindowPixelBuffer(windowId, 0x44); + FillWindowPixelRect(windowId, 0x55, 0, 0, 0x80, 1); } void sub_81C7C28(void) { - u32 *v1; - u32 i; - u8 v2; - u32 v3; - u32 v4; + s32 i; u8 spriteId; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); - v1 = sub_81C763C(0); for (i = 0; i < ARRAY_COUNT(gUnknown_0861FA4C); i++) - { LoadCompressedSpriteSheet(&gUnknown_0861FA4C[i]); - } sub_81C795C(gUnknown_0861FA54); - v2 = IndexOfSpritePaletteTag(0); - v1[5] = ~1 & ~(0x10000 << v2); + structPtr->unk14 = ~1 & ~(0x10000 << IndexOfSpritePaletteTag(0)); spriteId = CreateSprite(&gUnknown_0861FB04, 220, 12, 0); - v1[6] = (u32)(&gSprites[spriteId]); + structPtr->unk18 = &gSprites[spriteId]; } void sub_81C7C94(void) { - void **v1; - v1 = sub_81C763C(0); - DestroySprite(v1[6]); + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + DestroySprite(structPtr->unk18); FreeSpriteTilesByTag(0); FreeSpritePaletteByTag(0); } -void sub_81C7CB4(u16 *a0) +void sub_81C7CB4(struct Sprite *sprite) { - u32 v1; - v1 = GetBgY(0); - a0[19] = (v1 >> 8) * -1; + sprite->pos2.y = (GetBgY(0) / 256u) * -1; } struct Sprite *sub_81C7CCC(void) { - struct Sprite **v1; - struct Sprite *v2; - v1 = sub_81C763C(0); - v2 = v1[6]; - v2->callback = SpriteCallbackDummy; - return v2; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + structPtr->unk18->callback = SpriteCallbackDummy; + return structPtr->unk18; +} + +void sub_81C7CE4(void) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + structPtr->unk18->pos1.x = 220; + structPtr->unk18->pos1.y = 12; + structPtr->unk18->callback = sub_81C7CB4; + structPtr->unk18->invisible = FALSE; + structPtr->unk18->oam.priority = 0; + structPtr->unk18->subpriority = 0; +} + +extern const struct SpriteTemplate gUnknown_0861FB2C; +extern const struct SpriteTemplate gUnknown_0861FB44; +extern const struct CompressedSpriteSheet gUnknown_0861FA6C[]; + +void sub_81C7D28(void) +{ + s32 i, spriteId; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + LoadCompressedSpriteSheet(&gUnknown_0861FA64); + AllocSpritePalette(1); + AllocSpritePalette(2); + for (i = 0; i < 2; i++) + { + spriteId = CreateSprite(&gUnknown_0861FB2C, 0, 0, 1); + structPtr->unk1C[i] = &gSprites[spriteId]; + structPtr->unk1C[i]->invisible = TRUE; + structPtr->unk1C[i]->pos2.x = i * 64; + + spriteId = CreateSprite(&gUnknown_0861FB44, 0, 0, 2); + structPtr->unk24[i] = &gSprites[spriteId]; + structPtr->unk24[i]->invisible = TRUE; + structPtr->unk24[i]->pos2.x = i * 32; + structPtr->unk24[i]->pos2.y = 18; + structPtr->unk24[i]->oam.tileNum += (i * 8) + 64; + } +} + +void sub_81C7DFC(u32 arg0) +{ + if (arg0 < 6) + sub_81C7E58(arg0); + else + sub_81C7F24(arg0 - 6); +} + +void sub_81C7E14(u32 arg0) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (arg0 == 4) + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 32; + else + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 64; +} + +void sub_81C7E58(u32 arg0) +{ + struct UnknownSubStruct_0203CF40 *structPtr; + u32 size, tag; + + if (arg0 >= 6) + return; + + structPtr = GetSubstructPtr(0); + tag = gUnknown_0861FA6C[arg0].tag; + size = GetDecompressedDataSize(gUnknown_0861FA6C[arg0].data); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(1) * 16) + 0x100, 0x20); + LZ77UnCompWram(gUnknown_0861FA6C[arg0].data, gDecompressionBuffer); + RequestDma3Copy(gDecompressionBuffer, (void *)VRAM + 0x10000 + (GetSpriteTileStartByTag(2) * 32), size, 1); + structPtr->unk1C[1]->oam.tileNum = GetSpriteTileStartByTag(2) + gUnknown_0861FA6C[arg0].size; + + if (arg0 == 4 || arg0 == 5) + structPtr->unk1C[1]->pos2.x = 56; + else + structPtr->unk1C[1]->pos2.x = 64; +} + +// Needed to match u32/u16 tag field difference. +struct CompressedSpritePalette_ +{ + const u32 *data; // LZ77 compressed palette data + u32 tag; +}; + +extern const struct CompressedSpritePalette_ gUnknown_0861FA9C[]; + +void sub_81C7F24(u32 arg0) +{ + u32 size, tag; + + if (arg0 >= 7) + return; + + tag = gUnknown_0861FA9C[arg0].tag; + size = GetDecompressedDataSize(gUnknown_0861FA9C[arg0].data); + LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(2) * 16) + 0x100, 0x20); + LZ77UnCompWram(gUnknown_0861FA9C[arg0].data, &gDecompressionBuffer[0x1000]); + RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)VRAM + 0x10800 + (GetSpriteTileStartByTag(2) * 32), size, 1); +} + +void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2) +{ + u32 var; + + if (!arg1) + var = 0x30; + else + var = 0x10; + + if (arg0 < 6) + sub_81C803C(var, arg2); + else + sub_81C8088(var, arg2); +} + +void sub_81C7FC4(u32 arg0, bool32 arg1) +{ + if (arg0 < 6) + sub_81C80D4(arg1); + else + sub_81C8110(arg1); +} + +void sub_81C7FDC(void) +{ + s32 i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + for (i = 0; i < 2; i++) + { + structPtr->unk1C[i]->invisible = TRUE; + structPtr->unk24[i]->invisible = TRUE; + } +} + +bool32 sub_81C8010(void) +{ + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (structPtr->unk1C[0]->callback == SpriteCallbackDummy && structPtr->unk24[0]->callback == SpriteCallbackDummy) + return FALSE; + else + return TRUE; +} + +void sub_81C803C(u32 arg0, bool32 arg1) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg1) + var1 = -96, var2 = 32; + else + var1 = 256, var2 = 160; + + for (i = 0; i < 2; i++) + { + structPtr->unk1C[i]->pos1.y = arg0; + sub_81C814C(structPtr->unk1C[i], var1, var2, 12); + } +} + +void sub_81C8088(u32 arg0, bool32 arg1) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg1) + var1 = -96, var2 = 16; + else + var1 = 256, var2 = 192; + + for (i = 0; i < 2; i++) + { + structPtr->unk24[i]->pos1.y = arg0; + sub_81C814C(structPtr->unk24[i], var1, var2, 12); + } +} + +void sub_81C80D4(bool32 arg0) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg0) + var1 = 32, var2 = -96; + else + var1 = 192, var2 = 256; + + for (i = 0; i < 2; i++) + { + sub_81C814C(structPtr->unk1C[i], var1, var2, 12); + } +} + +void sub_81C8110(bool32 arg0) +{ + s32 var1, var2, i; + struct UnknownSubStruct_0203CF40 *structPtr = GetSubstructPtr(0); + + if (!arg0) + var1 = 16, var2 = -96; + else + var1 = 192, var2 = 256; + + for (i = 0; i < 2; i++) + { + sub_81C814C(structPtr->unk24[i], var1, var2, 12); + } +} + +void sub_81C814C(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3) +{ + sprite->pos1.x = arg1; + sprite->data[0] = arg1 * 16; + sprite->data[1] = (arg2 - arg1) * 16 / arg3; + sprite->data[2] = arg3; + sprite->data[7] = arg2; + sprite->callback = sub_81C817C; +} + +void sub_81C817C(struct Sprite *sprite) +{ + if (sprite->data[2] != 0) + { + sprite->data[2]--; + sprite->data[0] += sprite->data[1]; + sprite->pos1.x = sprite->data[0] >> 4; + if (sprite->pos1.x < -16 || sprite->pos1.x > 256) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } + else + { + sprite->pos1.x = sprite->data[7]; + sprite->callback = SpriteCallbackDummy; + } +} + +/* +bool32 sub_81C81D4(const void *arg0, void *arg1, s32 arg3) +{ + struct UnknownSubStruct_0203CF40 *structPtr = AllocSubstruct(0x11, 0x8A4); + + if (structPtr == NULL) + return FALSE; } +*/ -- cgit v1.2.3 From f34903bc45b157bb5fe2bb7074122713eadb920b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 23 Feb 2019 12:59:20 -0600 Subject: Decompile more easy_chat.c --- src/easy_chat.c | 625 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 595 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 741064c5b..5c55cd2ca 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -20,6 +20,7 @@ #include "string_util.h" #include "strings.h" #include "task.h" +#include "text_window.h" #include "window.h" #include "constants/flags.h" #include "constants/songs.h" @@ -76,11 +77,27 @@ struct EasyChatScreen struct Unk203A11C { u16 unk0; - u8 filler2[0x2]; + u16 windowId; u16 unk4; - u8 filler6[0x2FA]; - u8 unk300[BG_SCREEN_SIZE]; - u8 unkB00[BG_SCREEN_SIZE]; + u8 unk6; + u8 unk7; + s8 unk8; + u8 filler9[0x1]; + u8 unkA; + u8 unkB[0xC1]; + u8 unkCC[0x20C]; + int unk2D8; + int unk2DC; + int unk2E0; + int unk2E4; + int unk2E8; + int unk2EC; + int unk2F0; + int unk2F4; + int unk2F8; + int unk2FC; + u16 unk300[BG_SCREEN_SIZE / 2]; + u16 unkB00[BG_SCREEN_SIZE / 2]; }; struct Unk08597C30 @@ -174,17 +191,17 @@ static void sub_811B9A0(void); static u8 sub_811BA1C(void); static int sub_811BF20(void); static u16 sub_811BF40(void); -u8 sub_811CE94(void); -void sub_811CF64(void); -void sub_811CF04(void); -void sub_811D60C(void); -void sub_811D424(u8 *); -void sub_811D230(void); +static bool8 sub_811CE94(void); +static void sub_811CF64(void); +static void sub_811CF04(void); +static void sub_811D60C(void); +static void sub_811D424(u16 *); +static void sub_811D230(void); void sub_811E948(void); -void sub_811CFCC(void); -void sub_811D0BC(void); -void sub_811D2C8(void); -void sub_811D684(void); +static void sub_811CFCC(void); +static void sub_811D0BC(void); +static void sub_811D2C8(void); +static void sub_811D684(void); void sub_811DE90(void); void sub_811DEC4(void); void sub_811DE5C(u8, u8, u8, u8); @@ -223,16 +240,16 @@ static bool8 sub_811CE54(void); void sub_811DF60(u8, u8); int sub_811E920(int); void sub_811DF90(void); -void sub_811D104(u8); -void sub_811D214(u8); +static void sub_811D104(u8); +static void sub_811D214(u8); void sub_811DFB0(void); -void sub_811D6D4(void); -void sub_811D9CC(int); +static void sub_811D6D4(void); +static void sub_811D9CC(int); void sub_811E3AC(void); bool8 sub_811E418(void); void sub_811DFC8(void); void sub_811E6E0(int); -bool8 sub_811DAA4(void); +static bool8 sub_811DAA4(void); void sub_811E64C(void); void sub_811E050(void); void sub_811E4AC(void); @@ -244,18 +261,27 @@ void sub_811E578(void); void sub_811E088(void); void sub_811DDAC(s16, u8); bool8 sub_811DE10(void); -void sub_811D9B4(void); -void sub_811D698(int); +static void sub_811D9B4(void); +static void sub_811D698(u32); void sub_811E288(void); void sub_811E794(void); void sub_811E380(void); void sub_811E7F8(void); void sub_811E30C(void); -void sub_811D7A4(void); -void sub_811D7C8(void); +static void sub_811D7A4(void); +static void sub_811D7C8(void); int sub_811DE48(void); -void sub_811D7EC(void); -void sub_811D830(void); +static void sub_811D7EC(void); +static void sub_811D830(void); +void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); +void sub_811DD84(void); +static void sub_811D6F4(void); +static void sub_811D758(void); +static void sub_811D794(void); +const u8 *sub_811F424(u8); +static void sub_811D864(u8, u8); +static void sub_811D950(u8, u8); +void sub_811DADC(u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -271,6 +297,13 @@ extern const struct BgTemplate gUnknown_08597C54[4]; extern const struct WindowTemplate gUnknown_08597C64[]; extern const u32 gUnknown_08597B54[]; extern const struct Unk08597C30 gUnknown_08597C30[]; +extern const u16 gUnknown_08597B14[]; +extern const u16 gUnknown_08597B34[]; +extern const u16 gUnknown_08597C1C[]; +extern const u16 gUnknown_08597C24[]; +extern const struct WindowTemplate gUnknown_08597C84; +extern const u8 gUnknown_08597C8C[4]; +extern const u8 *const gUnknown_08597C90[4]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -2023,19 +2056,19 @@ u8 sub_811BAC4(void) return gEasyChatScreen->mainCursorRow; } -void sub_811BAD0(const u8 **str1, const u8 **str2) +static void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2) { *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; } -void sub_811BB08(const u8 **str1, const u8 **str2) +static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) { *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; } -void sub_811BB40(const u8 **str1, const u8 **str2) +static void sub_811BB40(const u8 **str1, const u8 **str2) { switch (gEasyChatScreen->kind) { @@ -2056,7 +2089,7 @@ void sub_811BB40(const u8 **str1, const u8 **str2) } -void sub_811BB88(const u8 **str1, const u8 **str2) +static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) { *str1 = gText_AllTextBeingEditedWill; *str2 = gText_BeDeletedThatOkay; @@ -2133,7 +2166,7 @@ int sub_811BC2C(void) return 0; } -int sub_811BC70(void) +static int sub_811BC70(void) { return sub_811BA3C(); } @@ -3187,3 +3220,535 @@ static bool8 sub_811CE54(void) return TRUE; } + +static bool8 sub_811CE94(void) +{ + gUnknown_0203A11C = Alloc(sizeof(*gUnknown_0203A11C)); + if (!gUnknown_0203A11C) + return FALSE; + + gUnknown_0203A11C->unk0 = 0; + gUnknown_0203A11C->unk2D8 = 0; + gUnknown_0203A11C->unk2DC = 0; + gUnknown_0203A11C->unk2E0 = 0; + gUnknown_0203A11C->unk2E4 = 0; + gUnknown_0203A11C->unk2E8 = 0; + gUnknown_0203A11C->unk2EC = 0; + gUnknown_0203A11C->unk2F0 = 0; + gUnknown_0203A11C->unk2F4 = 0; + gUnknown_0203A11C->unk2F8 = 0; + gUnknown_0203A11C->unk2FC = 0; + gUnknown_0203A11C->unkA = sub_811BC70(); + return TRUE; +} + +static void sub_811CF04(void) +{ + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); +} + +static void sub_811CF64(void) +{ + ResetPaletteFade(); + LoadPalette(gEasyChatMode_Pal, 0, 32); + LoadPalette(gUnknown_08597B14, 1 * 16, 32); + LoadPalette(gUnknown_08597B34, 4 * 16, 32); + LoadPalette(gUnknown_08597C1C, 10 * 16, 8); + LoadPalette(gUnknown_08597C24, 11 * 16, 12); + LoadPalette(gUnknown_08597C24, 15 * 16, 12); + LoadPalette(gUnknown_08597C24, 3 * 16, 12); +} + +static void sub_811CFCC(void) +{ + int xOffset; + const u8 *titleText = sub_811BA88(); + if (!titleText) + return; + + xOffset = GetStringCenterAlignXOffset(1, titleText, 144); + FillWindowPixelBuffer(0, 0); + sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, 0, 2, 3); + PutWindowTilemap(0); + CopyWindowToVram(0, 3); +} + +void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) +{ + AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback); +} + +void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) +{ + u8 color[3]; + color[0] = red; + color[1] = green; + color[2] = blue; + AddTextPrinterParameterized3(windowId, fontId, left, top, color, speed, str); +} + +static void sub_811D0BC(void) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); + LoadUserWindowBorderGfx(1, 1, 0xE0); + sub_8098858(1, 1, 14); + sub_811D104(0); + PutWindowTilemap(1); + CopyBgTilemapBufferToVram(0); +} + +static void sub_811D104(u8 arg0) +{ + const u8 *text2 = NULL; + const u8 *text1 = NULL; + switch (arg0) + { + case 0: + GetEasyChatInstructionsText(&text1, &text2); + break; + case 2: + sub_811BB40(&text1, &text2); + break; + case 3: + GetEasyChatConfirmText(&text1, &text2); + break; + case 1: + GetEasyChatConfirmDeletionText(&text1, &text2); + break; + case 4: + text1 = gText_CreateAQuiz; + break; + case 5: + text1 = gText_SelectTheAnswer; + break; + case 6: + text1 = gText_OnlyOnePhrase; + text2 = gText_OriginalSongWillBeUsed; + break; + case 7: + text1 = gText_LyricsCantBeDeleted; + break; + case 8: + text1 = gText_CombineTwoWordsOrPhrases3; + break; + case 9: + text1 = gText_YouCannotQuitHere; + text2 = gText_SectionMustBeCompleted; + break; + } + + FillWindowPixelBuffer(1, 0x11); + if (text1) + sub_811D028(1, 1, text1, 0, 1, 0xFF, 0); + + if (text2) + sub_811D028(1, 1, text2, 0, 17, 0xFF, 0); + + CopyWindowToVram(1, 3); +} + +static void sub_811D214(u8 initialCursorPos) +{ + CreateYesNoMenu(&gUnknown_08597C84, 1, 14, initialCursorPos); +} + +static void sub_811D230(void) +{ + u8 var0; + struct WindowTemplate template; + + var0 = sub_811BA68(); + template.bg = 3; + template.tilemapLeft = gUnknown_08597C30[var0].unk0_0; + template.tilemapTop = gUnknown_08597C30[var0].unk0_5; + template.width = gUnknown_08597C30[var0].unk1; + template.height = gUnknown_08597C30[var0].unk2; + template.paletteNum = 11; + template.baseBlock = 0x6C; + gUnknown_0203A11C->windowId = AddWindow(&template); + PutWindowTilemap(gUnknown_0203A11C->windowId); +} + +static void sub_811D2C8(void) +{ + u8 spC[4]; + u16 *ecWord; + u8 numColumns, numRows; + u8 *str; + int var0; + int var1; + int i, j, k; + + ecWord = sub_811BA94(); + numColumns = sub_811BAAC(); + numRows = sub_811BAA0(); + var0 = sub_811BA68(); + var1 = 0; + if (var0 == 7) + var1 = 1; + + FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); + for (i = 0; i < numRows; i++) + { + memcpy(spC, gUnknown_08597C8C, sizeof(gUnknown_08597C8C)); + if (var1) + spC[2] = 6; + + str = gUnknown_0203A11C->unkB; + gUnknown_0203A11C->unkB[0] = EOS; + str = StringAppend(str, spC); + for (j = 0; j < numColumns; j++) + { + if (*ecWord != 0xFFFF) + { + str = CopyEasyChatWord(str, *ecWord); + ecWord++; + } + else + { + ecWord++; + if (!var1) + { + str = WriteColorChangeControlCode(str, 0, 4); + for (k = 0; k < 12; k++) + { + *str = CHAR_HYPHEN; + str++; + } + + str = WriteColorChangeControlCode(str, 0, 2); + } + } + + if (var1) + spC[2] = 3; + + str = StringAppend(str, spC); + if (var0 == 2 || var0 == 7 || var0 == 8) + { + if (j == 0 && i == 4) + break; + } + } + + *str = EOS; + sub_811D028(gUnknown_0203A11C->windowId, 1, gUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + } + + CopyWindowToVram(gUnknown_0203A11C->windowId, 3); +} + +static void sub_811D424(u16 *tilemap) +{ + u8 var0; + int right, bottom; + int x, y; + + var0 = sub_811BA68(); + CpuFastFill(0, tilemap, BG_SCREEN_SIZE); + if (var0 == 2 || var0 == 8) + { + right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; + bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + for (y = gUnknown_08597C30[var0].unk0_5; y < bottom; y++) + { + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1005; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1000; + + tilemap[y* 32 + x] = 0x1007; + } + } + else + { + y = gUnknown_08597C30[var0].unk0_5 - 1; + x = gUnknown_08597C30[var0].unk0_0 - 1; + right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; + bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + tilemap[y * 32 + x] = 0x1001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1002; + + tilemap[y * 32 + x] = 0x1003; + y++; + for (; y < bottom; y++) + { + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1005; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x1000; + + tilemap[y* 32 + x] = 0x1007; + } + + x = gUnknown_08597C30[var0].unk0_0 - 1; + tilemap[y * 32 + x] = 0x1009; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x100A; + + tilemap[y * 32 + x] = 0x100B; + } +} + +static void sub_811D60C(void) +{ + u8 var0; + u16 *tilemap; + + tilemap = GetBgTilemapBuffer(3); + var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 2: + tilemap += 0x2A0; + CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); + break; + case 1: + tilemap += 0x300; + CopyToBgTilemapBufferRect(3, tilemap, 0, 11, 32, 2); + break; + case 3: + CopyToBgTilemapBufferRect(3, tilemap, 0, 10, 32, 4); + break; + } +} + +static void sub_811D684(void) +{ + PutWindowTilemap(2); + CopyBgTilemapBufferToVram(2); +} + +static void sub_811D698(u32 arg0) +{ + sub_811DD84(); + FillWindowPixelBuffer(2, 0x11); + switch (arg0) + { + case 0: + sub_811D6F4(); + break; + case 1: + sub_811D758(); + break; + case 2: + sub_811D794(); + break; + } + + CopyWindowToVram(2, 2); +} + +static void sub_811D6D4(void) +{ + if (!sub_811BBB0()) + sub_811D698(0); + else + sub_811D698(1); +} + +static void sub_811D6F4(void) +{ + int i; + int x, y; + + i = 0; + y = 97; + while (1) + { + for (x = 0; x < 2; x++) + { + u8 index = sub_811F3B8(i++); + if (index == 22) + { + sub_811DDAC(sub_811BBBC(), 0); + return; + } + + sub_811D028(2, 1, sub_811F424(index), x * 84 + 10, y, 0xFF, NULL); + } + + y += 16; + } +} + +static void sub_811D758(void) +{ + u32 i; + + for (i = 0; i < 4; i++) + sub_811D028(2, 1, gUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); +} + +static void sub_811D794(void) +{ + sub_811D864(0, 4); +} + +static void sub_811D7A4(void) +{ + u8 var0 = sub_811BBDC() + 3; + sub_811D950(var0, 1); + sub_811D864(var0, 1); +} + +static void sub_811D7C8(void) +{ + u8 var0 = sub_811BBDC(); + sub_811D950(var0, 1); + sub_811D864(var0, 1); +} + +static void sub_811D7EC(void) +{ + u8 var0 = sub_811BBDC(); + u8 var1 = var0 + 4; + u8 var2 = sub_811BBE8() + 1; + if (var1 > var2) + var1 = var2; + + if (var0 < var1) + { + u8 var3 = var1 - var0; + sub_811D950(var0, var3); + sub_811D864(var0, var3); + } +} + +static void sub_811D830(void) +{ + u8 var0 = sub_811BBDC(); + u8 var1 = sub_811DE48(); + if (var0 < var1) + { + u8 var2 = var1 - var0; + sub_811D950(var0, var2); + sub_811D864(var0, var2); + } +} + +static void sub_811D864(u8 arg0, u8 arg1) +{ + int i, j; + u16 easyChatWord; + u8 *str; + int y; + int var0; + + var0 = arg0 * 2; + y = (arg0 * 16 + 96) & 0xFF; + y++; + for (i = 0; i < arg1; i++) + { + for (j = 0; j < 2; j++) + { + easyChatWord = sub_811F578(var0++); + if (easyChatWord != 0xFFFF) + { + CopyEasyChatWordPadded(gUnknown_0203A11C->unkCC, easyChatWord, 0); + if (!sub_811BF88(easyChatWord)) + sub_811D028(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); + else + sub_811D058(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); + } + } + + y += 16; + } + + CopyWindowToVram(2, 2); +} + +static void sub_811D950(u8 arg0, u8 arg1) +{ + int y; + int var0; + int var1; + int var2; + + y = (arg0 * 16 + 96) & 0xFF; + var2 = arg1 * 16; + var0 = y + var2; + if (var0 > 255) + { + var1 = var0 - 256; + var2 = 256 - y; + } + else + { + var1 = 0; + } + + FillWindowPixelRect(2, 0x11, 0, y, 224, var2); + if (var1) + FillWindowPixelRect(2, 0x11, 0, 0, 224, var1); +} + +static void sub_811D9B4(void) +{ + FillWindowPixelBuffer(2, 0x11); + CopyWindowToVram(2, 2); +} + +static void sub_811D9CC(int arg0) +{ + switch (arg0) + { + case 0: + gUnknown_0203A11C->unk6 = 0; + gUnknown_0203A11C->unk7 = 10; + break; + case 1: + gUnknown_0203A11C->unk6 = 9; + gUnknown_0203A11C->unk7 = 0; + break; + case 2: + gUnknown_0203A11C->unk6 = 11; + gUnknown_0203A11C->unk7 = 17; + break; + case 3: + gUnknown_0203A11C->unk6 = 17; + gUnknown_0203A11C->unk7 = 0; + break; + case 4: + gUnknown_0203A11C->unk6 = 17; + gUnknown_0203A11C->unk7 = 10; + break; + case 5: + gUnknown_0203A11C->unk6 = 18; + gUnknown_0203A11C->unk7 = 22; + break; + case 6: + gUnknown_0203A11C->unk6 = 22; + gUnknown_0203A11C->unk7 = 18; + break; + } + + gUnknown_0203A11C->unk8 = gUnknown_0203A11C->unk6 < gUnknown_0203A11C->unk7 ? 1 : -1; +} + +static bool8 sub_811DAA4(void) +{ + u8 var0, var1; + if (gUnknown_0203A11C->unk6 == gUnknown_0203A11C->unk7) + return FALSE; + + gUnknown_0203A11C->unk6 += gUnknown_0203A11C->unk8; + sub_811DADC(gUnknown_0203A11C->unk6); + var0 = gUnknown_0203A11C->unk6; + var1 = gUnknown_0203A11C->unk7; + return (var0 ^ var1) > 0; +} -- cgit v1.2.3 From 74a3c062706c3889c08a567ee9d9803a8a689592 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Tue, 19 Feb 2019 04:09:42 -0500 Subject: Documented/polished pokemon_summary_screen.c Mostly variables mislabeled as global and some formerly unknown stuff. --- src/battle_factory_screen.c | 4 +- src/graphics.c | 14 +- src/party_menu.c | 6 +- src/pokemon.c | 24 +-- src/pokemon_storage_system.c | 4 +- src/pokemon_summary_screen.c | 426 ++++++++++++++++++++++--------------------- src/trade.c | 4 +- 7 files changed, 242 insertions(+), 240 deletions(-) (limited to 'src') diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index bb9fe8e28..e48dbd30b 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1183,7 +1183,7 @@ static void CB2_InitSelectScreen(void) break; case 5: if (sFactorySelectScreen->fromSummaryScreen == TRUE) - sFactorySelectScreen->cursorPos = gUnknown_0203CF20; + sFactorySelectScreen->cursorPos = gLastViewedMonIndex; Select_InitMonsData(); Select_InitAllSprites(); if (sFactorySelectScreen->fromSummaryScreen == TRUE) @@ -3172,7 +3172,7 @@ static void CB2_InitSwapScreen(void) break; case 5: if (sFactorySwapScreen->fromSummaryScreen == TRUE) - sFactorySwapScreen->cursorPos = gUnknown_0203CF20; + sFactorySwapScreen->cursorPos = gLastViewedMonIndex; gMain.state++; break; case 6: diff --git a/src/graphics.c b/src/graphics.c index c6af13477..a3b9eb913 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1152,16 +1152,16 @@ const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapa const u32 gMoveTypes_Gfx[] = INCBIN_U32("graphics/types/move_types.4bpp.lz"); const u32 gMoveTypes_Pal[] = INCBIN_U32("graphics/types/move_types.gbapal.lz"); -const u32 gUnknown_08D97BEC[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz"); +const u32 gMoveSelectorBitmap[] = INCBIN_U32("graphics/interface/summary_frames.4bpp.lz"); const u32 gUnknown_08D97CF4[] = INCBIN_U32("graphics/interface/summary_frames.gbapal.lz"); -const u32 gUnknown_08D97D0C[] = INCBIN_U32("graphics/interface/status_screen.4bpp.lz"); -const u32 gUnknown_08D9853C[] = INCBIN_U32("graphics/interface/status_screen.gbapal.lz"); -const u32 gUnknown_08D9862C[] = INCBIN_U32("graphics/interface/status_screen.bin.lz"); +const u32 gStatusScreenBitmap[] = INCBIN_U32("graphics/interface/status_screen.4bpp.lz"); +const u32 gStatusScreenPalette[] = INCBIN_U32("graphics/interface/status_screen.gbapal.lz"); +const u32 gPageInfoTilemap[] = INCBIN_U32("graphics/interface/status_screen.bin.lz"); -const u32 gUnknown_08D987FC[] = INCBIN_U32("graphics/interface/status_tilemap1.bin.lz"); -const u32 gUnknown_08D9898C[] = INCBIN_U32("graphics/interface/status_tilemap2.bin.lz"); -const u32 gUnknown_08D98B28[] = INCBIN_U32("graphics/interface/status_tilemap3.bin.lz"); +const u32 gPageSkillsTilemap[] = INCBIN_U32("graphics/interface/status_tilemap1.bin.lz"); +const u32 gPageBattleMovesTilemap[] = INCBIN_U32("graphics/interface/status_tilemap2.bin.lz"); +const u32 gPageContestMovesTilemap[] = INCBIN_U32("graphics/interface/status_tilemap3.bin.lz"); const u32 gUnknown_08D98CC8[] = INCBIN_U32("graphics/interface/status_tilemap0.bin.lz"); const u32 gBagMaleTiles[] = INCBIN_U32("graphics/misc/bag_male.4bpp.lz"); diff --git a/src/party_menu.c b/src/party_menu.c index 15b5d24d8..645390aff 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3833,7 +3833,7 @@ static void sub_81B3828(void) static void sub_81B3894(void) { gPaletteFade.bufferTransferDisabled = TRUE; - gUnknown_0203CEC8.unk9 = gUnknown_0203CF20; + gUnknown_0203CEC8.unk9 = gLastViewedMonIndex; InitPartyMenu(gUnknown_0203CEC8.unk8_0, 0xFF, gUnknown_0203CEC8.unkB, 1, 21, sub_81B36FC, gUnknown_0203CEC8.exitCallback); } @@ -7319,9 +7319,9 @@ static void sub_81B97DC(struct Pokemon *mon, u8 slotTo, u8 slotFrom) u8 pp1 = GetMonData(mon, MON_DATA_PP1 + slotTo); u8 pp0 = GetMonData(mon, MON_DATA_PP1 + slotFrom); u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); - u8 ppBonusMask1 = gUnknown_08329D22[slotTo]; + u8 ppBonusMask1 = gPPUpGetMask[slotTo]; u8 ppBonusMove1 = (ppBonuses & ppBonusMask1) >> (slotTo * 2); - u8 ppBonusMask2 = gUnknown_08329D22[slotFrom]; + u8 ppBonusMask2 = gPPUpGetMask[slotFrom]; u8 ppBonusMove2 = (ppBonuses & ppBonusMask2) >> (slotFrom * 2); ppBonuses &= ~ppBonusMask1; ppBonuses &= ~ppBonusMask2; diff --git a/src/pokemon.c b/src/pokemon.c index 9553fdf17..a35033d49 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2227,9 +2227,9 @@ static const u8 sMonAnimationDelayTable[] = [SPECIES_CHIMECHO - 1] = 0x00, }; -const u8 gUnknown_08329D22[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values -const u8 gUnknown_08329D26[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count -const u8 gUnknown_08329D2A[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count +const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values +const u8 gPPUpSetMask[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count +const u8 gPPUpAddMask[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count const u8 gStatStageRatios[][2] = { @@ -4914,19 +4914,19 @@ void GetSpeciesName(u8 *name, u16 species) u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex) { u8 basePP = gBattleMoves[move].pp; - return basePP + ((basePP * 20 * ((gUnknown_08329D22[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); + return basePP + ((basePP * 20 * ((gPPUpGetMask[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); } void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex) { u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - ppBonuses &= gUnknown_08329D26[moveIndex]; + ppBonuses &= gPPUpSetMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); } void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex) { - mon->ppBonuses &= gUnknown_08329D26[moveIndex]; + mon->ppBonuses &= gPPUpSetMask[moveIndex]; } void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) @@ -5169,11 +5169,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if (r10 & 0x20) { r10 &= ~0x20; - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); var_38 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned <= 2 && var_38 > 4) { - dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gUnknown_08329D2A[moveIndex]; + dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gPPUpAddMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - var_38; @@ -5429,13 +5429,13 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov var_3C++; break; case 4: - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); r5 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned < 3 && r5 > 4) { dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - dataUnsigned &= gUnknown_08329D26[moveIndex]; - dataUnsigned += gUnknown_08329D2A[moveIndex] * 3; + dataUnsigned &= gPPUpSetMask[moveIndex]; + dataUnsigned += gPPUpAddMask[moveIndex] * 3; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - r5; @@ -7025,7 +7025,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF } } -void sub_806EE98(void) +void StopPokemonAnimationDelayTask(void) { u8 delayTaskId = FindTaskIdByFunc(Task_PokemonSummaryAnimateAfterDelay); if (delayTaskId != 0xFF) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c1ebe91b4..6f2382290 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1218,7 +1218,7 @@ static const u16 gWallpaperPalettes_Plain[][16] = static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); -// 12×18 tilemap +// 12�18 tilemap static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); static const u16 gUnknown_08577574[][2] = @@ -6654,7 +6654,7 @@ static void sub_80CE8E4(void) if (sIsMonBeingMoved) sub_80CE790(); else - sBoxCursorPosition = gUnknown_0203CF20; + sBoxCursorPosition = gLastViewedMonIndex; } s16 CompactPartySlots(void) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 46bdc9ef3..bb49e6dc1 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -97,24 +97,24 @@ static EWRAM_DATA struct PssData u8 currPageIndex; u8 minPageIndex; u8 maxPageIndex; - bool8 unk40C3; + bool8 lockMonFlag; // This is used to prevent the player from changing pokemon in the move deleter select, etc, but it is not needed because the input is handled differently there u16 newMove; u8 firstMoveIndex; u8 secondMoveIndex; bool8 unk40C8; - u8 unk40C9; + u8 bgDisplayOrder; // Determines the order page backgrounds are loaded while scrolling between them u8 filler40CA; u8 windowIds[8]; u8 spriteIds[28]; bool8 unk40EF; - s16 unk40F0; + s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data u8 unk_filler4[6]; } *pssData = NULL; -EWRAM_DATA u8 gUnknown_0203CF20 = 0; -static EWRAM_DATA u8 gUnknown_0203CF21 = 0; -static EWRAM_DATA u8 gFiller_0203CF22[2] = {0}; +EWRAM_DATA u8 gLastViewedMonIndex = 0; +static EWRAM_DATA u8 sUnknown_0203CF21 = 0; +static EWRAM_DATA u8 sFiller_0203CF22[2] = {0}; static EWRAM_DATA u8 sUnknownTaskId = 0; -static EWRAM_DATA u8 gFiller_0203CF25[3] = {0}; +static EWRAM_DATA u8 sFiller_0203CF25[3] = {0}; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; @@ -144,11 +144,11 @@ static s8 sub_81C08F8(s8 a); static s8 sub_81C09B4(s8 a); static bool8 sub_81C0A50(struct Pokemon* mon); static void ChangePage(u8 taskId, s8 a); -static void sub_81C0B8C(u8 taskId); -static void sub_81C0C68(u8 taskId); -static void sub_81C0CC4(u8 taskId); -static void sub_81C0D44(u8 taskId); -static void sub_81C0E24(void); +static void PssScrollRight(u8 taskId); +static void PssScrollRightEnd(u8 taskId); +static void PssScrollLeft(u8 taskId); +static void PssScrollLeftEnd(u8 taskId); +static void CheckExperienceProgressBar(void); static void sub_81C0E48(u8 taskId); static void HandleInput_MoveSelect(u8 taskId); static bool8 sub_81C1040(void); @@ -160,11 +160,11 @@ static void sub_81C13B0(u8 taskId, bool8 b); static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2); static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2); static void sub_81C171C(u8 taskId); -static void sub_81C174C(u8 taskId); -static bool8 sub_81C18A8(void); -static void sub_81C18F4(u8 a); -static void sub_81C1940(u8 taskId); -static void sub_81C1BA0(void); +static void HandleReplaceMoveInput(u8 taskId); +static bool8 CanReplaceMove(void); +static void ShowHMMovesCantBeForgottenWindow(u8 a); +static void HandleHMMovesCantBeForgottenInput(u8 taskId); +static void DrawPagination(void); static void sub_81C1DA4(u16 a, s16 b); static void sub_81C1E20(u8 taskId); static void sub_81C1EFC(u16 a, s16 b, u16 c); @@ -172,10 +172,10 @@ static void sub_81C1F80(u8 taskId); static void sub_81C2074(u16 a, s16 b); static void sub_81C20F0(u8 taskId); static void sub_81C2194(u16 *a, u16 b, u8 c); -static void sub_81C2228(struct Pokemon* mon); +static void DrawPokerusCuredSymbol(struct Pokemon* mon); static void DrawExperienceProgressBar(struct Pokemon* mon); static void DrawContestMoveHearts(u16 move); -static void sub_81C2524(void); +static void LimitEggSummaryPageDisplay(void); static void ResetWindows(void); static void sub_81C25E8(void); static void sub_81C2628(void); @@ -237,7 +237,7 @@ static void sub_81C4568(u8 a, u8 b); static u8 CreatePokemonSprite(struct Pokemon *a, s16 *b); static u8 sub_81C47B4(struct Pokemon *unused); static void SpriteCB_Pokemon(struct Sprite *); -static void sub_81C48F0(void); +static void StopPokemonAnimations(void); static void CreateMonMarkingsSprite(struct Pokemon *mon); static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon); static void CreateCaughtBallSprite(struct Pokemon *mon); @@ -252,7 +252,7 @@ static void sub_81C4D18(u8 a); #include "data/text/move_descriptions.h" #include "data/text/nature_names.h" -static const struct BgTemplate gUnknown_0861CBB4[] = +static const struct BgTemplate sUnknown_0861CBB4[] = { { .bg = 0, @@ -292,25 +292,25 @@ static const struct BgTemplate gUnknown_0861CBB4[] = }, }; -static const u16 gUnknown_0861CBC4[] = INCBIN_U16("graphics/interface/unk_tilemap2.bin"); -static const struct UnkStruct_61CC04 gUnknown_0861CBEC = +static const u16 sUnknown_0861CBC4[] = INCBIN_U16("graphics/interface/unk_tilemap2.bin"); +static const struct UnkStruct_61CC04 sUnknown_0861CBEC = { - gUnknown_0861CBC4, 1, 10, 2, 0, 18 + sUnknown_0861CBC4, 1, 10, 2, 0, 18 }; -static const struct UnkStruct_61CC04 gUnknown_0861CBF8 = +static const struct UnkStruct_61CC04 sUnknown_0861CBF8 = { - gUnknown_0861CBC4, 1, 10, 2, 0, 50 + sUnknown_0861CBC4, 1, 10, 2, 0, 50 }; -static const struct UnkStruct_61CC04 gUnknown_0861CC04 = +static const struct UnkStruct_61CC04 sUnknown_0861CC04 = { gSummaryScreenPowAcc_Tilemap, 0, 10, 7, 0, 45 }; -static const struct UnkStruct_61CC04 gUnknown_0861CC10 = +static const struct UnkStruct_61CC04 sUnknown_0861CC10 = { gUnknown_08DC3C34, 0, 10, 7, 0, 45 }; static const s8 gUnknown_0861CC1C[] = {0, 2, 3, 1, 4, 5}; -static const struct WindowTemplate gUnknown_0861CC24[] = +static const struct WindowTemplate sSummaryTemplate[] = { {//Text for Pokemon Info .bg = 0, @@ -494,7 +494,7 @@ static const struct WindowTemplate gUnknown_0861CC24[] = }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_0861CCCC[] = +static const struct WindowTemplate sPageInfoTemplate[] = { {//Original Trainer .bg = 0, @@ -533,7 +533,7 @@ static const struct WindowTemplate gUnknown_0861CCCC[] = .baseBlock = 557, }, }; -static const struct WindowTemplate gUnknown_0861CCEC[] = +static const struct WindowTemplate sPageSkillsTemplate[] = { {//Held Item string .bg = 0, @@ -581,7 +581,7 @@ static const struct WindowTemplate gUnknown_0861CCEC[] = .baseBlock = 543, }, }; -static const struct WindowTemplate gUnknown_0861CD14[] = +static const struct WindowTemplate sPageMovesTemplate[] = // This is used for both battle and contest moves { {//Move names? .bg = 0, @@ -628,8 +628,8 @@ static const u8 sTextColors_861CD2C[][3] = {0, 7, 8} }; -static const u8 gUnknown_0861CD53[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); -static const u8 gUnknown_0861CDD3[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); +static const u8 sSummaryAButtonBitmap[] = INCBIN_U8("graphics/interface/summary_a_button.4bpp"); +static const u8 sSummaryBButtonBitmap[] = INCBIN_U8("graphics/interface/summary_b_button.4bpp"); static void (*const sTextPrinterFunctions[])(void) = { @@ -647,11 +647,11 @@ static void (*const sTextPrinterTasks[])(u8 taskId) = Task_PrintContestMoves }; -static const u8 gUnknown_0861CE74[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); -static const u8 gUnknown_0861CE7B[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); -static const u8 gUnknown_0861CE82[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); -static const u8 gUnknown_0861CE8E[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); -static const u8 gUnknown_0861CE97[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); +static const u8 sMemoNatureTextColor[] = _("{COLOR LIGHT_RED}{SHADOW GREEN}"); +static const u8 sMemoMiscTextColor[] = _("{COLOR WHITE}{SHADOW DARK_GREY}"); // This is also affected by palettes, apparently +static const u8 sStatsLeftColumnLayout[] = _("{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}\n{SPECIAL_F7 0x03}"); +static const u8 sStatsRightColumnLayout[] = _("{SPECIAL_F7 0x00}\n{SPECIAL_F7 0x01}\n{SPECIAL_F7 0x02}"); +static const u8 sMovesPPLayout[] = _("{PP}{SPECIAL_F7 0x00}/{SPECIAL_F7 0x01}"); #define TAG_MOVE_TYPES 30002 @@ -847,61 +847,61 @@ static const struct OamData gOamData_861CFF4 = .paletteNum = 0, .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_861CFFC[] = { +static const union AnimCmd sSpriteAnim_861CFFC[] = { ANIMCMD_FRAME(0, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D004[] = { +static const union AnimCmd sSpriteAnim_861D004[] = { ANIMCMD_FRAME(4, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D00C[] = { +static const union AnimCmd sSpriteAnim_861D00C[] = { ANIMCMD_FRAME(8, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D014[] = { +static const union AnimCmd sSpriteAnim_861D014[] = { ANIMCMD_FRAME(12, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D01C[] = { +static const union AnimCmd sSpriteAnim_861D01C[] = { ANIMCMD_FRAME(16, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D024[] = { +static const union AnimCmd sSpriteAnim_861D024[] = { ANIMCMD_FRAME(16, 0, TRUE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D02C[] = { +static const union AnimCmd sSpriteAnim_861D02C[] = { ANIMCMD_FRAME(20, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D034[] = { +static const union AnimCmd sSpriteAnim_861D034[] = { ANIMCMD_FRAME(24, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D03C[] = { +static const union AnimCmd sSpriteAnim_861D03C[] = { ANIMCMD_FRAME(24, 0, TRUE, FALSE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_861D044[] = { +static const union AnimCmd sSpriteAnim_861D044[] = { ANIMCMD_FRAME(28, 0, FALSE, FALSE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_861D04C[] = { - gSpriteAnim_861CFFC, - gSpriteAnim_861D004, - gSpriteAnim_861D00C, - gSpriteAnim_861D014, - gSpriteAnim_861D01C, - gSpriteAnim_861D024, - gSpriteAnim_861D02C, - gSpriteAnim_861D034, - gSpriteAnim_861D03C, - gSpriteAnim_861D044, +static const union AnimCmd *const sSpriteAnimTable_861D04C[] = { + sSpriteAnim_861CFFC, + sSpriteAnim_861D004, + sSpriteAnim_861D00C, + sSpriteAnim_861D014, + sSpriteAnim_861D01C, + sSpriteAnim_861D024, + sSpriteAnim_861D02C, + sSpriteAnim_861D034, + sSpriteAnim_861D03C, + sSpriteAnim_861D044, }; -static const struct CompressedSpriteSheet gUnknown_0861D074 = +static const struct CompressedSpriteSheet sMoveSelectorSpriteSheet = { - .data = gUnknown_08D97BEC, + .data = gMoveSelectorBitmap, .size = 0x400, .tag = 30000 }; @@ -915,7 +915,7 @@ static const struct SpriteTemplate gUnknown_0861D084 = .tileTag = 30000, .paletteTag = 30000, .oam = &gOamData_861CFF4, - .anims = gSpriteAnimTable_861D04C, + .anims = sSpriteAnimTable_861D04C, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -994,7 +994,7 @@ static const struct SpriteTemplate sSpriteTemplate_StatusCondition = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const u16 gUnknown_0861D120[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); +static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summary_markings.gbapal"); // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) @@ -1026,7 +1026,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, case PSS_MODE_SELECT_MOVE: pssData->minPageIndex = 2; pssData->maxPageIndex = 3; - pssData->unk40C3 = TRUE; + pssData->lockMonFlag = TRUE; break; } @@ -1101,7 +1101,7 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 5: InitBGs(); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 6: @@ -1113,12 +1113,12 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 8: - sub_81C1BA0(); + DrawPagination(); gMain.state++; break; case 9: CopyMonToSummaryStruct(&pssData->currentMon); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 10: @@ -1148,14 +1148,14 @@ static bool8 SummaryScreen_LoadGraphics(void) case 16: ResetSpriteIds(); CreateMoveTypeIcons(); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; break; case 17: - pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->unk40F0); + pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->switchCounter); if (pssData->spriteIds[0] != 0xFF) { - pssData->unk40F0 = 0; + pssData->switchCounter = 0; gMain.state++; } break; @@ -1202,7 +1202,7 @@ static bool8 SummaryScreen_LoadGraphics(void) static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0861CBB4, ARRAY_COUNT(gUnknown_0861CBB4)); + InitBgsFromTemplates(0, sUnknown_0861CBB4, ARRAY_COUNT(sUnknown_0861CBB4)); SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); SetBgTilemapBuffer(3, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); @@ -1220,64 +1220,64 @@ static void InitBGs(void) static bool8 SummaryScreen_DecompressGraphics(void) { - switch (pssData->unk40F0) + switch (pssData->switchCounter) { case 0: reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, &gUnknown_08D97D0C, 0, 0, 0); - pssData->unk40F0++; + decompress_and_copy_tile_data_to_vram(1, &gStatusScreenBitmap, 0, 0, 0); + pssData->switchCounter++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(gUnknown_08D9862C, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); - pssData->unk40F0++; + LZDecompressWram(gPageInfoTilemap, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + pssData->switchCounter++; } break; case 2: LZDecompressWram(gUnknown_08D98CC8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][1]); - pssData->unk40F0++; + pssData->switchCounter++; break; case 3: - LZDecompressWram(gUnknown_08D987FC, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); - pssData->unk40F0++; + LZDecompressWram(gPageSkillsTilemap, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); + pssData->switchCounter++; break; case 4: - LZDecompressWram(gUnknown_08D9898C, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); - pssData->unk40F0++; + LZDecompressWram(gPageBattleMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); + pssData->switchCounter++; break; case 5: - LZDecompressWram(gUnknown_08D98B28, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); - pssData->unk40F0++; + LZDecompressWram(gPageContestMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); + pssData->switchCounter++; break; case 6: - LoadCompressedPalette(gUnknown_08D9853C, 0, 0x100); + LoadCompressedPalette(gStatusScreenPalette, 0, 0x100); LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); - pssData->unk40F0++; + pssData->switchCounter++; break; case 7: LoadCompressedSpriteSheet(&sSpriteSheet_MoveTypes); - pssData->unk40F0++; + pssData->switchCounter++; break; case 8: - LoadCompressedSpriteSheet(&gUnknown_0861D074); - pssData->unk40F0++; + LoadCompressedSpriteSheet(&sMoveSelectorSpriteSheet); + pssData->switchCounter++; break; case 9: LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet); - pssData->unk40F0++; + pssData->switchCounter++; break; case 10: LoadCompressedSpritePalette(&sStatusIconsSpritePalette); - pssData->unk40F0++; + pssData->switchCounter++; break; case 11: LoadCompressedSpritePalette(&gUnknown_0861D07C); - pssData->unk40F0++; + pssData->switchCounter++; break; case 12: LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; return TRUE; } return FALSE; @@ -1301,7 +1301,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) { u32 i; struct PokeSummary *sum = &pssData->summary; - switch (pssData->unk40F0) + switch (pssData->switchCounter) { case 0: sum->species = GetMonData(a, MON_DATA_SPECIES); @@ -1366,7 +1366,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) sum->ribbonCount = GetMonData(a, MON_DATA_RIBBON_COUNT); return TRUE; } - pssData->unk40F0++; + pssData->switchCounter++; return FALSE; } @@ -1397,8 +1397,8 @@ static void sub_81C0348(void) if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) PutWindowTilemap(13); } - sub_81C2524(); - sub_81C2228(&pssData->currentMon); + LimitEggSummaryPageDisplay(); + DrawPokerusCuredSymbol(&pssData->currentMon); } static void sub_81C0434(void) @@ -1418,7 +1418,7 @@ static void CloseSummaryScreen(u8 taskId) if (sub_81221EC() != TRUE && !gPaletteFade.active) { SetMainCallback2(pssData->callback); - gUnknown_0203CF20 = pssData->curMonIndex; + gLastViewedMonIndex = pssData->curMonIndex; SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1457,7 +1457,7 @@ static void HandleInput(u8 taskId) { if (pssData->currPageIndex == PSS_PAGE_INFO) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } @@ -1470,7 +1470,7 @@ static void HandleInput(u8 taskId) } else if (gMain.newKeys & B_BUTTON) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } @@ -1481,7 +1481,7 @@ static void ChangePokemon(u8 taskId, s8 a) { s8 r4_2; - if (!pssData->unk40C3) + if (!pssData->lockMonFlag) { if (pssData->isBoxMon == TRUE) { @@ -1545,7 +1545,7 @@ static void sub_81C0704(u8 taskId) break; case 3: CopyMonToSummaryStruct(&pssData->currentMon); - pssData->unk40F0 = 0; + pssData->switchCounter = 0; break; case 4: if (ExtractMonDataToSummaryStruct(&pssData->currentMon) == FALSE) @@ -1560,7 +1560,7 @@ static void sub_81C0704(u8 taskId) case 7: if (pssData->summary.unk7) sub_81C2074(10, -2); - sub_81C2228(&pssData->currentMon); + DrawPokerusCuredSymbol(&pssData->currentMon); data[1] = 0; break; case 8: @@ -1568,7 +1568,7 @@ static void sub_81C0704(u8 taskId) if (pssData->spriteIds[0] == 0xFF) return; gSprites[pssData->spriteIds[0]].data[2] = 1; - sub_81C0E24(); + CheckExperienceProgressBar(); data[1] = 0; break; case 9: @@ -1579,7 +1579,7 @@ static void sub_81C0704(u8 taskId) break; case 11: PrintPageSpecificText(pssData->currPageIndex); - sub_81C2524(); + LimitEggSummaryPageDisplay(); break; case 12: gSprites[pssData->spriteIds[0]].data[2] = 0; @@ -1678,19 +1678,19 @@ static void ChangePage(u8 taskId, s8 b) pssData->currPageIndex += b; data[0] = 0; if (b == 1) - SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func); + SetTaskFuncWithFollowupFunc(taskId, PssScrollRight, gTasks[taskId].func); else - SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func); + SetTaskFuncWithFollowupFunc(taskId, PssScrollLeft, gTasks[taskId].func); CreateTextPrinterTask(pssData->currPageIndex); HidePageSpecificSprites(); } -static void sub_81C0B8C(u8 taskId) +static void PssScrollRight(u8 taskId) // Scroll right { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) { data[1] = 1; SetBgAttribute(1, BG_ATTR_PRIORITY, 1); @@ -1712,28 +1712,28 @@ static void sub_81C0B8C(u8 taskId) ChangeBgX(data[1], 0x2000, 1); data[0] += 32; if (data[0] > 0xFF) - gTasks[taskId].func = sub_81C0C68; + gTasks[taskId].func = PssScrollRightEnd; } -static void sub_81C0C68(u8 taskId) +static void PssScrollRightEnd(u8 taskId) // display right { s16 *data = gTasks[taskId].data; - pssData->unk40C9 ^= 1; + pssData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; - sub_81C1BA0(); + DrawPagination(); CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); - sub_81C0E24(); + CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); } -static void sub_81C0CC4(u8 taskId) +static void PssScrollLeft(u8 taskId) // Scroll left { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) data[1] = 2; else data[1] = 1; @@ -1742,13 +1742,13 @@ static void sub_81C0CC4(u8 taskId) ChangeBgX(data[1], 0x2000, 2); data[0] += 32; if (data[0] > 0xFF) - gTasks[taskId].func = sub_81C0D44; + gTasks[taskId].func = PssScrollLeftEnd; } -static void sub_81C0D44(u8 taskId) +static void PssScrollLeftEnd(u8 taskId) // display left { s16 *data = gTasks[taskId].data; - if (pssData->unk40C9 == 0) + if (pssData->bgDisplayOrder == 0) { SetBgAttribute(1, BG_ATTR_PRIORITY, 1); SetBgAttribute(2, BG_ATTR_PRIORITY, 2); @@ -1767,17 +1767,17 @@ static void sub_81C0D44(u8 taskId) } ShowBg(1); ShowBg(2); - pssData->unk40C9 ^= 1; + pssData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; - sub_81C1BA0(); + DrawPagination(); CreatePageWindowTilemaps(pssData->currPageIndex); SetTypeIcons(); - sub_81C0E24(); + CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); } -static void sub_81C0E24(void) +static void CheckExperienceProgressBar(void) { if (pssData->currPageIndex == 1) DrawExperienceProgressBar(&pssData->currentMon); @@ -2025,9 +2025,9 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) u8 ppBonuses = summary->ppBonuses; // Calculate PP bonuses - u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppUpMask1 = gPPUpGetMask[moveIndex1]; u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); - u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppUpMask2 = gPPUpGetMask[moveIndex2]; u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); ppBonuses &= ~ppUpMask1; ppBonuses &= ~ppUpMask2; @@ -2060,9 +2060,9 @@ static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2 u8 ppBonuses = summary->ppBonuses; // Calculate PP bonuses - u8 ppUpMask1 = gUnknown_08329D22[moveIndex1]; + u8 ppUpMask1 = gPPUpGetMask[moveIndex1]; u8 ppBonusMove1 = (ppBonuses & ppUpMask1) >> (moveIndex1 * 2); - u8 ppUpMask2 = gUnknown_08329D22[moveIndex2]; + u8 ppUpMask2 = gPPUpGetMask[moveIndex2]; u8 ppBonusMove2 = (ppBonuses & ppUpMask2) >> (moveIndex2 * 2); ppBonuses &= ~ppUpMask1; ppBonuses &= ~ppUpMask2; @@ -2088,10 +2088,10 @@ static void sub_81C171C(u8 taskId) { SetNewMoveTypeIcon(); sub_81C4AF8(8); - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } -static void sub_81C174C(u8 taskId) +static void HandleReplaceMoveInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -2119,26 +2119,26 @@ static void sub_81C174C(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (sub_81C18A8() == TRUE) + if (CanReplaceMove() == TRUE) { - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = pssData->firstMoveIndex; - gSpecialVar_0x8005 = gUnknown_0203CF21; + sUnknown_0203CF21 = pssData->firstMoveIndex; + gSpecialVar_0x8005 = sUnknown_0203CF21; BeginCloseSummaryScreen(taskId); } else { PlaySE(SE_HAZURE); - sub_81C18F4(taskId); + ShowHMMovesCantBeForgottenWindow(taskId); } } else if (gMain.newKeys & B_BUTTON) { u32 var1; - sub_81C48F0(); + StopPokemonAnimations(); PlaySE(SE_SELECT); - gUnknown_0203CF21 = 4; + sUnknown_0203CF21 = 4; gSpecialVar_0x8005 = 4; BeginCloseSummaryScreen(taskId); } @@ -2146,7 +2146,7 @@ static void sub_81C174C(u8 taskId) } } -static bool8 sub_81C18A8(void) +static bool8 CanReplaceMove(void) { if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || IsMoveHm(pssData->summary.moves[pssData->firstMoveIndex]) != 1) return TRUE; @@ -2154,7 +2154,7 @@ static bool8 sub_81C18A8(void) return FALSE; } -static void sub_81C18F4(u8 taskId) +static void ShowHMMovesCantBeForgottenWindow(u8 taskId) { ClearWindowTilemap(14); ClearWindowTilemap(15); @@ -2162,10 +2162,11 @@ static void sub_81C18F4(u8 taskId) sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); PrintHMMovesCantBeForgotten(); - gTasks[taskId].func = sub_81C1940; + gTasks[taskId].func = HandleHMMovesCantBeForgottenInput; } -static void sub_81C1940(u8 taskId) +// This redraws the power/accuracy window when the player scrolls out of the "HM Moves can't be forgotten" message +static void HandleHMMovesCantBeForgottenInput(u8 taskId) { s16* data = gTasks[taskId].data; u16 move; @@ -2177,7 +2178,7 @@ static void sub_81C1940(u8 taskId) data[0] = 4; sub_81C1070(&data[0], -1, &pssData->firstMoveIndex); data[1] = 0; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_DOWN) { @@ -2185,7 +2186,7 @@ static void sub_81C1940(u8 taskId) data[0] = 4; sub_81C1070(&data[0], 1, &pssData->firstMoveIndex); data[1] = 0; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { @@ -2195,7 +2196,7 @@ static void sub_81C1940(u8 taskId) if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, -1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); @@ -2209,7 +2210,7 @@ static void sub_81C1940(u8 taskId) if (!gSprites[pssData->spriteIds[2]].invisible) ClearWindowTilemap(13); move = pssData->summary.moves[pssData->firstMoveIndex]; - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, 1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); @@ -2225,17 +2226,17 @@ static void sub_81C1940(u8 taskId) schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - gTasks[taskId].func = sub_81C174C; + gTasks[taskId].func = HandleReplaceMoveInput; } } } u8 sub_81C1B94(void) { - return gUnknown_0203CF21; + return sUnknown_0203CF21; } -static void sub_81C1BA0(void) +static void DrawPagination(void) // Updates the pagination dots at the top of the summary screen { u16 *alloced = Alloc(32); u8 i; @@ -2333,11 +2334,11 @@ static void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 static void sub_81C1DA4(u16 a, s16 b) { - if (b > gUnknown_0861CC04.field_6) - b = gUnknown_0861CC04.field_6; - if (b == 0 || b == gUnknown_0861CC04.field_6) + if (b > sUnknown_0861CC04.field_6) + b = sUnknown_0861CC04.field_6; + if (b == 0 || b == sUnknown_0861CC04.field_6) { - sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2359,12 +2360,12 @@ static void sub_81C1E20(u8 taskId) { data[1] = 0; } - else if (data[1] > gUnknown_0861CC04.field_6) + else if (data[1] > sUnknown_0861CC04.field_6) { - data[1] = gUnknown_0861CC04.field_6; + data[1] = sUnknown_0861CC04.field_6; } - sub_81C1CB0(&gUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); - if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6) + sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); + if (data[1] <= 0 || data[1] >= sUnknown_0861CC04.field_6) { if (data[0] < 0) { @@ -2386,10 +2387,10 @@ static void sub_81C1E20(u8 taskId) static void sub_81C1EFC(u16 a, s16 b, u16 move) { - if (b > gUnknown_0861CC10.field_6) - b = gUnknown_0861CC10.field_6; - if (b == 0 || b == gUnknown_0861CC10.field_6) - sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); + if (b > sUnknown_0861CC10.field_6) + b = sUnknown_0861CC10.field_6; + if (b == 0 || b == sUnknown_0861CC10.field_6) + sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2409,16 +2410,16 @@ static void sub_81C1F80(u8 taskId) { data[1] = 0; } - else if (data[1] > gUnknown_0861CC10.field_6) + else if (data[1] > sUnknown_0861CC10.field_6) { - data[1] = gUnknown_0861CC10.field_6; + data[1] = sUnknown_0861CC10.field_6; } - sub_81C1CB0(&gUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); - if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6) + sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); + if (data[1] <= 0 || data[1] >= sUnknown_0861CC10.field_6) { if (data[0] < 0) { - if (pssData->currPageIndex == 3 && FuncIsActiveTask(sub_81C0B8C) == 0) + if (pssData->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) PutWindowTilemap(15); DrawContestMoveHearts(data[2]); } @@ -2439,12 +2440,12 @@ static void sub_81C1F80(u8 taskId) static void sub_81C2074(u16 a, s16 b) { - if (b > gUnknown_0861CBEC.field_6) - b = gUnknown_0861CBEC.field_6; - if (b == 0 || b == gUnknown_0861CBEC.field_6) + if (b > sUnknown_0861CBEC.field_6) + b = sUnknown_0861CBEC.field_6; + if (b == 0 || b == sUnknown_0861CBEC.field_6) { - sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); - sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2460,12 +2461,12 @@ static void sub_81C20F0(u8 taskId) data[1] += data[0]; if (data[1] < 0) data[1] = 0; - else if (data[1] > gUnknown_0861CBEC.field_6) - data[1] = gUnknown_0861CBEC.field_6; - sub_81C1CB0(&gUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); - sub_81C1CB0(&gUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + else if (data[1] > sUnknown_0861CBEC.field_6) + data[1] = sUnknown_0861CBEC.field_6; + sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); - if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6) + if (data[1] <= 0 || data[1] >= sUnknown_0861CBEC.field_6) { if (data[0] < 0) { @@ -2505,9 +2506,9 @@ static void sub_81C2194(u16 *output, u16 palette, bool8 c) } } -static void sub_81C2228(struct Pokemon *mon) +static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mon has been cured of pokerus { - if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) + if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) // If yes it draws the cured symbol { pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; @@ -2615,7 +2616,7 @@ static void DrawContestMoveHearts(u16 move) } } -static void sub_81C2524(void) +static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1 { if (pssData->summary.isEgg) ChangeBgX(3, 0x10000, 0); @@ -2626,7 +2627,7 @@ static void sub_81C2524(void) static void ResetWindows(void) { u8 i; - InitWindows(gUnknown_0861CC24); + InitWindows(sSummaryTemplate); DeactivateAllTextPrinters(); for (i = 0; i < 20; i++) @@ -2729,7 +2730,8 @@ static void sub_81C27DC(struct Pokemon *mon, u16 species) static void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) { - BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); + // sSummaryBButtonBitmap - 0x80 = sSummaryAButtonBitmap + BlitBitmapToWindow(windowId, (bButton) ? sSummaryBButtonBitmap : sSummaryBButtonBitmap - 0x80, x, 0, 16, 16); } static void PrintPageNamesAndStatsPageToWindows(void) @@ -2987,7 +2989,7 @@ static void PrintMonOTName(void) int x; if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) { - windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); + windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); x = GetStringWidth(1, gText_OTSlash, 0); if (pssData->summary.OTGender == 0) @@ -3004,20 +3006,20 @@ static void PrintMonOTID(void) { ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, xPos, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, xPos, 1, 0, 1); } } static void PrintMonAbilityName(void) { u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityNames[ability], 0, 1, 0, 1); } static void PrintMonAbilityDescription(void) { u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } static void BufferMonTrainerMemo(void) @@ -3026,8 +3028,8 @@ static void BufferMonTrainerMemo(void) const u8 *text; DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_0861CE74); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_0861CE7B); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sMemoNatureTextColor); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sMemoMiscTextColor); BufferNatureString(); if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) @@ -3074,7 +3076,7 @@ static void BufferMonTrainerMemo(void) static void PrintMonTrainerMemo(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), gStringVar4, 0, 1, 0, 0); } static void BufferNatureString(void) @@ -3147,7 +3149,7 @@ static bool8 IsInGamePartnerMon(void) static void PrintEggOTName(void) { - u32 windowId = AddWindowFromTemplateList(gUnknown_0861CCCC, 0); + u32 windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); u32 width = GetStringWidth(1, gText_OTSlash, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); SummaryScreen_PrintTextOnWindow(windowId, gText_FiveMarks, width, 1, 0, 1); @@ -3159,7 +3161,7 @@ static void PrintEggOTID(void) StringCopy(gStringVar1, gText_UnkCtrlF907F908); StringAppend(gStringVar1, gText_FiveMarks); x = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 1), gStringVar1, x, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, x, 1, 0, 1); } static void PrintEggState(void) @@ -3178,7 +3180,7 @@ static void PrintEggState(void) else text = gText_EggWillTakeALongTime; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 2), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), text, 0, 1, 0, 0); } static void PrintEggMemo(void) @@ -3202,7 +3204,7 @@ static void PrintEggMemo(void) text = gText_OddEggFoundByCouple; } - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCCC, 3), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), text, 0, 1, 0, 0); } static void PrintSkillsPageText(void) @@ -3270,7 +3272,7 @@ static void PrintHeldItemName(void) } offset = GetStringCenterAlignXOffset(1, text, 72) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 0), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 0), text, offset, 1, 0, 0); } static void PrintRibbonCount(void) @@ -3290,7 +3292,7 @@ static void PrintRibbonCount(void) } offset = GetStringCenterAlignXOffset(1, text, 70) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 1), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 1), text, offset, 1, 0, 0); } static void BufferLeftColumnStats(void) @@ -3310,7 +3312,7 @@ static void BufferLeftColumnStats(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString); DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE82); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsLeftColumnLayout); Free(currentHPString); Free(maxHPString); @@ -3320,7 +3322,7 @@ static void BufferLeftColumnStats(void) static void PrintLeftColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 2), gStringVar4, 4, 1, 0, 0); } static void BufferRightColumnStats(void) @@ -3333,18 +3335,18 @@ static void BufferRightColumnStats(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar3); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsRightColumnLayout); } static void PrintRightColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 3), gStringVar4, 2, 1, 0, 0); } static void PrintExpPointsNextLevel(void) { struct PokeSummary *sum = &pssData->summary; - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CCEC, 4); + u8 windowId = AddWindowFromTemplateList(sPageSkillsTemplate, 4); int offset; u32 expToNextLevel; @@ -3436,8 +3438,8 @@ static void PrintMoveNameAndPP(u8 moveIndex) const u8 *text; u32 offset; struct PssData *summaryStruct = pssData; - u8 moveNameWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 ppValueWindowId = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 moveNameWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 ppValueWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 1); u16 move = summaryStruct->summary.moves[moveIndex]; if (move != 0) @@ -3449,7 +3451,7 @@ static void PrintMoveNameAndPP(u8 moveIndex) DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sMovesPPLayout); text = gStringVar4; ppState = GetCurrentPpToMaxPpState(summaryStruct->summary.pp[moveIndex], pp) + 9; offset = GetStringRightAlignXOffset(1, text, 44); @@ -3560,14 +3562,14 @@ static void PrintContestMoveDescription(u8 moveSlot) if (move != MOVE_NONE) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); SummaryScreen_PrintTextOnWindow(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } } static void PrintMoveDetails(u16 move) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { @@ -3592,8 +3594,8 @@ static void PrintMoveDetails(u16 move) static void PrintNewMoveDetailsOrCancelText(void) { - u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); if (pssData->newMove == MOVE_NONE) { @@ -3612,22 +3614,22 @@ static void PrintNewMoveDetailsOrCancelText(void) DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1); - DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_0861CE97); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sMovesPPLayout); SummaryScreen_PrintTextOnWindow(windowId2, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x2C), 0x41, 0, 12); } } static void sub_81C4064(void) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 0); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) { - u8 windowId1 = AddWindowFromTemplateList(gUnknown_0861CD14, 0); - u8 windowId2 = AddWindowFromTemplateList(gUnknown_0861CD14, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); FillWindowPixelRect(windowId1, 0, 0, moveIndex1 * 16, 0x48, 0x10); FillWindowPixelRect(windowId1, 0, 0, moveIndex2 * 16, 0x48, 0x10); @@ -3641,7 +3643,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { - u8 windowId = AddWindowFromTemplateList(gUnknown_0861CD14, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); FillWindowPixelBuffer(windowId, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } @@ -3942,14 +3944,14 @@ static bool32 SummaryScreen_DoesSpriteHaveCallback(void) } } -static void sub_81C48F0(void) +static void StopPokemonAnimations(void) // A subtle effect, this function stops pokemon animations when leaving the PSS { u16 i; u16 paletteIndex; gSprites[pssData->spriteIds[0]].animPaused = TRUE; gSprites[pssData->spriteIds[0]].callback = SpriteCallbackDummy; - sub_806EE98(); + StopPokemonAnimationDelayTask(); paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100; @@ -3961,7 +3963,7 @@ static void sub_81C48F0(void) static void CreateMonMarkingsSprite(struct Pokemon *mon) { - struct Sprite *sprite = sub_811FF94(30003, 30003, gUnknown_0861D120); + struct Sprite *sprite = sub_811FF94(30003, 30003, sSummaryMarkingsPalette); pssData->markingsSprite = sprite; diff --git a/src/trade.c b/src/trade.c index 70b57fbc7..6dfb6e2c4 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1834,9 +1834,9 @@ static void sub_8077B74(void) } if (gUnknown_0203229C->tradeMenuCursorPosition < PARTY_SIZE) - gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20; + gUnknown_0203229C->tradeMenuCursorPosition = gLastViewedMonIndex; else - gUnknown_0203229C->tradeMenuCursorPosition = gUnknown_0203CF20 + PARTY_SIZE; + gUnknown_0203229C->tradeMenuCursorPosition = gLastViewedMonIndex + PARTY_SIZE; gUnknown_0203229C->tradeMenuCursorSpriteIdx = CreateSprite(&gSpriteTemplate_832DC94, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][0] * 8 + 32, gTradeMonSpriteCoords[gUnknown_0203229C->tradeMenuCursorPosition][1] * 8, 2); gMain.state = 16; -- cgit v1.2.3 From 42bb5dc53de366c0b22bf220cc382f7cc86d7f35 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Sat, 23 Feb 2019 21:55:24 -0500 Subject: Removed unused filler by aligning adjacent variables --- src/pokemon_summary_screen.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index bb49e6dc1..367ff2aff 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -112,11 +112,8 @@ static EWRAM_DATA struct PssData } *pssData = NULL; EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sUnknown_0203CF21 = 0; -static EWRAM_DATA u8 sFiller_0203CF22[2] = {0}; -static EWRAM_DATA u8 sUnknownTaskId = 0; -static EWRAM_DATA u8 sFiller_0203CF25[3] = {0}; - -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; +ALIGNED(4) extern const struct CompressedSpriteSheet gMonFrontPicTable[]; struct UnkStruct_61CC04 { -- cgit v1.2.3 From d24cd4f0a8d810ec225a4b76a7fa2099092560e1 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Sat, 23 Feb 2019 22:04:21 -0500 Subject: Fixed broken encoding. --- src/pokemon_storage_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 6f2382290..cdfc4ba6b 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1218,7 +1218,7 @@ static const u16 gWallpaperPalettes_Plain[][16] = static const u32 gWallpaperTiles_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.4bpp.lz"); static const u32 gWallpaperTilemap_Plain[] = INCBIN_U32("graphics/pokemon_storage/plain.bin.lz"); -// 12�18 tilemap +// 12x18 tilemap static const u32 gUnknown_085773C4[] = INCBIN_U32("graphics/unused/tilemap_5773C4.bin"); static const u16 gUnknown_08577574[][2] = -- cgit v1.2.3 From 0c47744a63a324fe92e8dddcbc07c33292524635 Mon Sep 17 00:00:00 2001 From: Ariel Antonitis Date: Sat, 23 Feb 2019 22:22:38 -0500 Subject: Moved ALIGNED(4) from extern to unknown struct. --- src/pokemon_summary_screen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 367ff2aff..bd1ae7802 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -113,7 +113,7 @@ static EWRAM_DATA struct PssData EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sUnknown_0203CF21 = 0; ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; -ALIGNED(4) extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; struct UnkStruct_61CC04 { @@ -249,7 +249,7 @@ static void sub_81C4D18(u8 a); #include "data/text/move_descriptions.h" #include "data/text/nature_names.h" -static const struct BgTemplate sUnknown_0861CBB4[] = +ALIGNED(4) static const struct BgTemplate sUnknown_0861CBB4[] = { { .bg = 0, -- cgit v1.2.3 From bb508ade64bd152fa146b71e6734a4ea704b31f3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 24 Feb 2019 10:04:40 -0600 Subject: Decompile more of easy_chat.c --- src/easy_chat.c | 731 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 676 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 5c55cd2ca..1b1bd105b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3,10 +3,12 @@ #include "global.h" #include "alloc.h" #include "bg.h" +#include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" +#include "event_object_movement.h" #include "field_weather.h" #include "gpu_regs.h" #include "graphics.h" @@ -22,6 +24,7 @@ #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" @@ -82,20 +85,23 @@ struct Unk203A11C u8 unk6; u8 unk7; s8 unk8; - u8 filler9[0x1]; + u8 unk9; u8 unkA; u8 unkB[0xC1]; - u8 unkCC[0x20C]; - int unk2D8; - int unk2DC; - int unk2E0; - int unk2E4; - int unk2E8; - int unk2EC; - int unk2F0; - int unk2F4; - int unk2F8; - int unk2FC; + u8 unkCC[0x202]; + u16 unk2CE; + int unk2D0; + int unk2D4; + struct Sprite *unk2D8; + struct Sprite *unk2DC; + struct Sprite *unk2E0; + struct Sprite *unk2E4; + struct Sprite *unk2E8; + struct Sprite *unk2EC; + struct Sprite *unk2F0; + struct Sprite *unk2F4; + struct Sprite *unk2F8; + struct Sprite *unk2FC; u16 unk300[BG_SCREEN_SIZE / 2]; u16 unkB00[BG_SCREEN_SIZE / 2]; }; @@ -202,12 +208,12 @@ static void sub_811CFCC(void); static void sub_811D0BC(void); static void sub_811D2C8(void); static void sub_811D684(void); -void sub_811DE90(void); -void sub_811DEC4(void); -void sub_811DE5C(u8, u8, u8, u8); -void sub_811E5D4(void); -void sub_811E720(void); -void sub_811E828(void); +static void sub_811DE90(void); +static void sub_811DEC4(void); +static void sub_811DE5C(u8, u8, u8, u8); +static void sub_811E5D4(void); +static void sub_811E720(void); +static void sub_811E828(void); static bool8 sub_811C2D4(void); static bool8 sub_811C30C(void); static bool8 sub_811C3E4(void); @@ -237,51 +243,56 @@ static bool8 sub_811CD94(void); static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); -void sub_811DF60(u8, u8); -int sub_811E920(int); -void sub_811DF90(void); +static void sub_811DF60(u8, u8); +static int sub_811E920(int); +static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); -void sub_811DFB0(void); +static void sub_811DFB0(void); static void sub_811D6D4(void); static void sub_811D9CC(int); -void sub_811E3AC(void); -bool8 sub_811E418(void); -void sub_811DFC8(void); -void sub_811E6E0(int); +static void sub_811E3AC(void); +static bool8 sub_811E418(void); +static void sub_811DFC8(void); +static void sub_811E6E0(int); static bool8 sub_811DAA4(void); -void sub_811E64C(void); -void sub_811E050(void); -void sub_811E4AC(void); -void sub_811E6B0(void); -void sub_811E55C(void); -bool8 sub_811E4D0(void); -bool8 sub_811E5B8(void); -void sub_811E578(void); -void sub_811E088(void); -void sub_811DDAC(s16, u8); -bool8 sub_811DE10(void); +static void sub_811E64C(void); +static void sub_811E050(void); +static void sub_811E4AC(void); +static void sub_811E6B0(void); +static void sub_811E55C(void); +static bool8 sub_811E4D0(void); +static bool8 sub_811E5B8(void); +static void sub_811E578(void); +static void sub_811E088(void); +static void sub_811DDAC(s16, u8); +static bool8 sub_811DE10(void); static void sub_811D9B4(void); static void sub_811D698(u32); -void sub_811E288(void); -void sub_811E794(void); -void sub_811E380(void); -void sub_811E7F8(void); -void sub_811E30C(void); +static void sub_811E288(void); +static void sub_811E794(void); +static void sub_811E380(void); +static void sub_811E7F8(void); +static void sub_811E30C(void); static void sub_811D7A4(void); static void sub_811D7C8(void); -int sub_811DE48(void); +static int sub_811DE48(void); static void sub_811D7EC(void); static void sub_811D830(void); void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); -void sub_811DD84(void); +static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); static void sub_811D794(void); const u8 *sub_811F424(u8); static void sub_811D864(u8, u8); static void sub_811D950(u8, u8); -void sub_811DADC(u8); +static void sub_811DADC(u8); +static void sub_811DC28(int, int, int, int); +static void sub_811E0EC(s8, s8); +static void sub_811E1A4(s8, s8); +static void sub_811E2DC(struct Sprite *); +static void sub_811E34C(u8, u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -304,6 +315,17 @@ extern const u16 gUnknown_08597C24[]; extern const struct WindowTemplate gUnknown_08597C84; extern const u8 gUnknown_08597C8C[4]; extern const u8 *const gUnknown_08597C90[4]; +extern const struct SpriteSheet gUnknown_08597CA0[]; +extern const struct SpritePalette gUnknown_08597CC0[]; +extern const struct CompressedSpriteSheet gUnknown_08597CE8[]; +extern const struct SpriteTemplate gUnknown_08597D18; +extern const struct SpriteTemplate gUnknown_08597D68; +extern const struct SpriteTemplate gUnknown_08597DF0; +extern const struct SpriteTemplate gUnknown_08597DD0; +extern const struct SpriteTemplate gUnknown_08597E48; +extern const struct SpriteTemplate gUnknown_08597E30; +extern const u8 gUnknown_08597D08[]; +extern const u8 gUnknown_08597E60[][4]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -3228,16 +3250,16 @@ static bool8 sub_811CE94(void) return FALSE; gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = 0; - gUnknown_0203A11C->unk2DC = 0; - gUnknown_0203A11C->unk2E0 = 0; - gUnknown_0203A11C->unk2E4 = 0; - gUnknown_0203A11C->unk2E8 = 0; - gUnknown_0203A11C->unk2EC = 0; - gUnknown_0203A11C->unk2F0 = 0; - gUnknown_0203A11C->unk2F4 = 0; - gUnknown_0203A11C->unk2F8 = 0; - gUnknown_0203A11C->unk2FC = 0; + gUnknown_0203A11C->unk2D8 = NULL; + gUnknown_0203A11C->unk2DC = NULL; + gUnknown_0203A11C->unk2E0 = NULL; + gUnknown_0203A11C->unk2E4 = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2F0 = NULL; + gUnknown_0203A11C->unk2F4 = NULL; + gUnknown_0203A11C->unk2F8 = NULL; + gUnknown_0203A11C->unk2FC = NULL; gUnknown_0203A11C->unkA = sub_811BC70(); return TRUE; } @@ -3752,3 +3774,602 @@ static bool8 sub_811DAA4(void) var1 = gUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } + +static void sub_811DADC(u8 arg0) +{ + FillBgTilemapBufferRect_Palette0(1, 0, 0, 10, 30, 10); + switch (arg0) + { + case 0: + break; + case 1: + sub_811DC28(11, 14, 3, 2); + break; + case 2: + sub_811DC28(9, 14, 7, 2); + break; + case 3: + sub_811DC28(7, 14, 11, 2); + break; + case 4: + sub_811DC28(5, 14, 15, 2); + break; + case 5: + sub_811DC28(3, 14, 19, 2); + break; + case 6: + sub_811DC28(1, 14, 23, 2); + break; + case 11: + sub_811DC28(1, 10, 24, 10); + break; + case 12: + sub_811DC28(1, 10, 25, 10); + break; + case 13: + sub_811DC28(1, 10, 26, 10); + break; + case 14: + sub_811DC28(1, 10, 27, 10); + break; + case 15: + sub_811DC28(1, 10, 28, 10); + break; + case 16: + sub_811DC28(1, 10, 29, 10); + break; + case 17: + sub_811DC28(0, 10, 30, 10); + break; + case 10: + case 18: + sub_811DC28(1, 10, 23, 10); + break; + case 9: + case 19: + sub_811DC28(1, 11, 23, 8); + break; + case 8: + case 20: + sub_811DC28(1, 12, 23, 6); + break; + case 7: + case 21: + sub_811DC28(1, 13, 23, 4); + break; + case 22: + sub_811DC28(1, 14, 23, 2); + break; + } + + CopyBgTilemapBufferToVram(1); +} + +static void sub_811DC28(int left, int top, int width, int height) +{ + u16 *tilemap; + int right; + int bottom; + int x, y; + + tilemap = gUnknown_0203A11C->unk300; + right = left + width - 1; + bottom = top + height - 1; + x = left; + y = top; + tilemap[y * 32 + x] = 0x4001; + x++; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4002; + + tilemap[y * 32 + x] = 0x4003; + y++; + for (; y < bottom; y++) + { + tilemap[y * 32 + left] = 0x4005; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x4000; + + tilemap[y * 32 + x] = 0x4007; + } + + tilemap[y * 32 + left] = 0x4009; + x = left + 1; + for (; x < right; x++) + tilemap[y * 32 + x] = 0x400A; + + tilemap[y * 32 + x] = 0x400B; + sub_811DE5C((left + 1) * 8, (top + 1) * 8, (width - 2) * 8, (height - 2) * 8); +} + +static void sub_811DD84(void) +{ + ChangeBgY(2, 0x800, 0); + gUnknown_0203A11C->unk2CE = 0; +} + +static void sub_811DDAC(s16 arg0, u8 arg1) +{ + int bgY; + s16 var0; + + bgY = GetBgY(2); + gUnknown_0203A11C->unk2CE += arg0; + var0 = arg0 * 16; + bgY += var0 << 8; + if (arg1) + { + gUnknown_0203A11C->unk2D0 = bgY; + gUnknown_0203A11C->unk2D4 = arg1 * 256; + if (var0 < 0) + gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + } + else + { + ChangeBgY(2, bgY, 0); + } +} + +static bool8 sub_811DE10(void) +{ + int bgY; + + bgY = GetBgY(2); + if (bgY == gUnknown_0203A11C->unk2D0) + { + return FALSE; + } + else + { + ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + return TRUE; + } +} + +static int sub_811DE48(void) +{ + return gUnknown_0203A11C->unk2CE; +} + +static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) +{ + u16 horizontalDimensions = WIN_RANGE(left, left + width); + u16 verticalDimensions = WIN_RANGE(top, top + height); + SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions); + SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions); +} + +static void sub_811DE90(void) +{ + u32 i; + + LoadSpriteSheets(gUnknown_08597CA0); + LoadSpritePalettes(gUnknown_08597CC0); + for (i = 0; i < 4; i++) + LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]); +} + +static void sub_811DEC4(void) +{ + u8 var0 = sub_811BA68(); + int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; + int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2); + gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + gSprites[spriteId].data[1] = 1; +} + +void sub_811DF28(struct Sprite *sprite) +{ + if (sprite->data[1]) + { + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } + } +} + +static void sub_811DF60(u8 x, u8 y) +{ + gUnknown_0203A11C->unk2D8->pos1.x = x; + gUnknown_0203A11C->unk2D8->pos1.y = y; + gUnknown_0203A11C->unk2D8->pos2.x = 0; + gUnknown_0203A11C->unk2D8->data[0] = 0; +} + +static void sub_811DF90(void) +{ + gUnknown_0203A11C->unk2D8->data[0] = 0; + gUnknown_0203A11C->unk2D8->data[1] = 0; + gUnknown_0203A11C->unk2D8->pos2.x = 0; +} + +static void sub_811DFB0(void) +{ + gUnknown_0203A11C->unk2D8->data[1] = 1; +} + +static void sub_811DFC8(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + gUnknown_0203A11C->unk2DC->pos2.x = 32; + + spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E0->pos2.x = -32; + + gUnknown_0203A11C->unk2DC->hFlip = 1; + sub_811E088(); +} + +static void sub_811E050(void) +{ + DestroySprite(gUnknown_0203A11C->unk2DC); + gUnknown_0203A11C->unk2DC = NULL; + DestroySprite(gUnknown_0203A11C->unk2E0); + gUnknown_0203A11C->unk2E0 = NULL; +} + +static void sub_811E088(void) +{ + u8 var0; + u8 var1; + + if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + { + sub_811BB9C(&var0, &var1); + if (!sub_811BBB0()) + sub_811E0EC(var0, var1); + else + sub_811E1A4(var0, var1); + } +} + +static void sub_811E0EC(s8 arg0, s8 arg1) +{ + if (arg0 != -1) + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); + gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); + gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E1A4(s8 arg0, s8 arg1) +{ + int anim; + int x, y; + + if (arg0 != -1) + { + y = arg1 * 16 + 96; + x = 32; + if (arg0 == 6 && arg1 == 0) + { + x = 158; + anim = 2; + } + else + { + x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0]; + anim = 3; + } + + StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); + gUnknown_0203A11C->unk2DC->pos1.x = x; + gUnknown_0203A11C->unk2DC->pos1.y = y; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); + gUnknown_0203A11C->unk2E0->pos1.x = x; + gUnknown_0203A11C->unk2E0->pos1.y = y; + } + else + { + StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); + gUnknown_0203A11C->unk2DC->pos1.x = 216; + gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + + StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); + gUnknown_0203A11C->unk2E0->pos1.x = 216; + gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + } +} + +static void sub_811E288(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4); + gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + gUnknown_0203A11C->unk2E4->oam.priority = 2; + sub_811E30C(); +} + +static void sub_811E2DC(struct Sprite *sprite) +{ + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + if (++sprite->pos2.x > 0) + sprite->pos2.x = -6; + } +} + +static void sub_811E30C(void) +{ + s8 var0, var1, x, y; + + sub_811BBC8(&var0, &var1); + x = var0 * 13; + x = x * 8 + 28; + y = var1 * 16 + 96; + sub_811E34C(x, y); +} + +static void sub_811E34C(u8 x, u8 y) +{ + if (gUnknown_0203A11C->unk2E4) + { + gUnknown_0203A11C->unk2E4->pos1.x = x; + gUnknown_0203A11C->unk2E4->pos1.y = y; + gUnknown_0203A11C->unk2E4->pos2.x = 0; + gUnknown_0203A11C->unk2E4->data[0] = 0; + } +} + +static void sub_811E380(void) +{ + if (gUnknown_0203A11C->unk2E4) + { + DestroySprite(gUnknown_0203A11C->unk2E4); + gUnknown_0203A11C->unk2E4 = NULL; + } +} + +static void sub_811E3AC(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6); + gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2E8->pos2.x = -64; + + spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5); + gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + gUnknown_0203A11C->unk9 = 0; +} + +static bool8 sub_811E418(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + gUnknown_0203A11C->unk2E8->pos2.x += 8; + if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + { + gUnknown_0203A11C->unk2E8->pos2.x = 0; + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + + gUnknown_0203A11C->unk9++; + } + break; + case 1: + if (gUnknown_0203A11C->unk2EC->animEnded) + { + gUnknown_0203A11C->unk9 = 2; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E4AC(void) +{ + gUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); +} + +static bool8 sub_811E4D0(void) +{ + switch (gUnknown_0203A11C->unk9) + { + default: + return FALSE; + case 0: + if (gUnknown_0203A11C->unk2EC->animEnded) + gUnknown_0203A11C->unk9 = 1; + break; + case 1: + gUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + { + DestroySprite(gUnknown_0203A11C->unk2EC); + DestroySprite(gUnknown_0203A11C->unk2E8); + gUnknown_0203A11C->unk2EC = NULL; + gUnknown_0203A11C->unk2E8 = NULL; + gUnknown_0203A11C->unk9++; + return FALSE; + } + } + + return TRUE; +} + +static void sub_811E55C(void) +{ + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); +} + +static void sub_811E578(void) +{ + if (!sub_811BBB0()) + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + else + StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); +} + +static bool8 sub_811E5B8(void) +{ + return !gUnknown_0203A11C->unk2EC->animEnded; +} + +static void sub_811E5D4(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + gUnknown_0203A11C->unk2F4->vFlip = 1; + } + + sub_811E6B0(); +} + +static void sub_811E64C(void) +{ + gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); +} + +static void sub_811E6B0(void) +{ + gUnknown_0203A11C->unk2F0->invisible = 1; + gUnknown_0203A11C->unk2F4->invisible = 1; +} + +static void sub_811E6E0(int arg0) +{ + if (!arg0) + { + gUnknown_0203A11C->unk2F0->pos1.x = 96; + gUnknown_0203A11C->unk2F4->pos1.x = 96; + } + else + { + gUnknown_0203A11C->unk2F0->pos1.x = 120; + gUnknown_0203A11C->unk2F4->pos1.x = 120; + } +} + +static void sub_811E720(void) +{ + u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1); + if (spriteId != MAX_SPRITES) + gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + + spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1); + if (spriteId != MAX_SPRITES) + { + gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + } + + sub_811E7F8(); +} + +static void sub_811E794(void) +{ + gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); +} + +static void sub_811E7F8(void) +{ + gUnknown_0203A11C->unk2F8->invisible = 1; + gUnknown_0203A11C->unk2FC->invisible = 1; +} + +static void sub_811E828(void) +{ + int graphicsId; + u8 spriteId; + + switch (sub_811BCBC()) + { + case 0: + graphicsId = EVENT_OBJ_GFX_REPORTER_M; + break; + case 1: + graphicsId = EVENT_OBJ_GFX_REPORTER_F; + break; + case 2: + graphicsId = EVENT_OBJ_GFX_BOY_1; + break; + default: + return; + } + + if (sub_811BA68() != 4) + return; + + spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 2); + } + + spriteId = AddPseudoEventObject( + gSaveBlock2Ptr->playerGender == MALE ? EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL : EVENT_OBJ_GFX_RIVAL_MAY_NORMAL, + SpriteCallbackDummy, + 52, + 40, + 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].oam.priority = 0; + StartSpriteAnim(&gSprites[spriteId], 3); + } +} + +int sub_811E8E4(void) +{ + u8 var0 = sub_811BA68(); + switch (gUnknown_08597C30[var0].unk3) + { + case 1: + return 1; + case 2: + return 2; + case 0: + return 0; + default: + return 3; + } +} + +static int sub_811E920(int arg0) +{ + int var0 = sub_811E8E4(); + if (var0 < 3) + return gUnknown_08597E60[var0][arg0] + 4; + else + return 0; +} -- cgit v1.2.3 From 8711bc5156f0acda34ed651c78092e0a4f534722 Mon Sep 17 00:00:00 2001 From: tustin2121 Date: Sat, 16 Feb 2019 23:33:00 -0500 Subject: Document HEALTHBOX_GRX_* in battle_interface.c Most of these are referenced via offsets, like the HP bar, which uses [0 pixels] + (number of pixels) to reference which chunk to draw. Each corresponds to a 16x16 pixel in the graphic named. Up to you guys if you want to rename the constants. --- src/battle_interface.c | 162 ++++++++++++++++++++++++------------------------- 1 file changed, 81 insertions(+), 81 deletions(-) (limited to 'src') diff --git a/src/battle_interface.c b/src/battle_interface.c index 0eb494db4..eab91b348 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -35,125 +35,125 @@ struct TestingBar }; enum -{ - HEALTHBOX_GFX_0, - HEALTHBOX_GFX_1, - HEALTHBOX_GFX_2, - HEALTHBOX_GFX_HP_BAR_GREEN, - HEALTHBOX_GFX_4, - HEALTHBOX_GFX_5, - HEALTHBOX_GFX_6, - HEALTHBOX_GFX_7, - HEALTHBOX_GFX_8, - HEALTHBOX_GFX_9, - HEALTHBOX_GFX_10, - HEALTHBOX_GFX_11, - HEALTHBOX_GFX_12, - HEALTHBOX_GFX_13, - HEALTHBOX_GFX_14, - HEALTHBOX_GFX_15, - HEALTHBOX_GFX_16, - HEALTHBOX_GFX_17, - HEALTHBOX_GFX_18, - HEALTHBOX_GFX_19, - HEALTHBOX_GFX_20, - HEALTHBOX_GFX_STATUS_PSN_BATTLER0, - HEALTHBOX_GFX_22, - HEALTHBOX_GFX_23, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, +{ // Corresponds to gHealthboxElementsGfxTable (and the tables after it) in graphics.c + HEALTHBOX_GFX_0, //hpbar.png + HEALTHBOX_GFX_1, //hpbar.png "H" + HEALTHBOX_GFX_2, //hpbar.png "P" + HEALTHBOX_GFX_HP_BAR_GREEN, //hpbar.png [0 pixels] + HEALTHBOX_GFX_4, //hpbar.png [1 pixels] + HEALTHBOX_GFX_5, //hpbar.png [2 pixels] + HEALTHBOX_GFX_6, //hpbar.png [3 pixels] + HEALTHBOX_GFX_7, //hpbar.png [4 pixels] + HEALTHBOX_GFX_8, //hpbar.png [5 pixels] + HEALTHBOX_GFX_9, //hpbar.png [6 pixels] + HEALTHBOX_GFX_10, //hpbar.png [7 pixels] + HEALTHBOX_GFX_11, //hpbar.png [8 pixels] + HEALTHBOX_GFX_12, //expbar.png [0 pixels] + HEALTHBOX_GFX_13, //expbar.png [1 pixels] + HEALTHBOX_GFX_14, //expbar.png [2 pixels] + HEALTHBOX_GFX_15, //expbar.png [3 pixels] + HEALTHBOX_GFX_16, //expbar.png [4 pixels] + HEALTHBOX_GFX_17, //expbar.png [5 pixels] + HEALTHBOX_GFX_18, //expbar.png [6 pixels] + HEALTHBOX_GFX_19, //expbar.png [7 pixels] + HEALTHBOX_GFX_20, //expbar.png [8 pixels] + HEALTHBOX_GFX_STATUS_PSN_BATTLER0, //status_psn.png "(P" + HEALTHBOX_GFX_22, //status_psn.png "SN" + HEALTHBOX_GFX_23, //status_psn.png "|)"" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, //status_prz.png HEALTHBOX_GFX_25, HEALTHBOX_GFX_26, - HEALTHBOX_GFX_STATUS_SLP_BATTLER0, + HEALTHBOX_GFX_STATUS_SLP_BATTLER0, //status_slp.png HEALTHBOX_GFX_28, HEALTHBOX_GFX_29, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, //status_frz.png HEALTHBOX_GFX_31, HEALTHBOX_GFX_32, - HEALTHBOX_GFX_STATUS_BRN_BATTLER0, + HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status_brn.png HEALTHBOX_GFX_34, HEALTHBOX_GFX_35, - HEALTHBOX_GFX_36, - HEALTHBOX_GFX_37, - HEALTHBOX_GFX_38, - HEALTHBOX_GFX_39, - HEALTHBOX_GFX_40, - HEALTHBOX_GFX_41, - HEALTHBOX_GFX_42, - HEALTHBOX_GFX_43, - HEALTHBOX_GFX_44, - HEALTHBOX_GFX_45, - HEALTHBOX_GFX_46, - HEALTHBOX_GFX_HP_BAR_YELLOW, - HEALTHBOX_GFX_48, - HEALTHBOX_GFX_49, - HEALTHBOX_GFX_50, - HEALTHBOX_GFX_51, - HEALTHBOX_GFX_52, - HEALTHBOX_GFX_53, - HEALTHBOX_GFX_54, - HEALTHBOX_GFX_55, - HEALTHBOX_GFX_HP_BAR_RED, - HEALTHBOX_GFX_57, - HEALTHBOX_GFX_58, - HEALTHBOX_GFX_59, - HEALTHBOX_GFX_60, - HEALTHBOX_GFX_61, - HEALTHBOX_GFX_62, - HEALTHBOX_GFX_63, - HEALTHBOX_GFX_64, - HEALTHBOX_GFX_65, - HEALTHBOX_GFX_66, - HEALTHBOX_GFX_67, - HEALTHBOX_GFX_68, - HEALTHBOX_GFX_69, - HEALTHBOX_GFX_70, - HEALTHBOX_GFX_STATUS_PSN_BATTLER1, + HEALTHBOX_GFX_36, //misc.png [Black] + HEALTHBOX_GFX_37, //misc.png [Black] + HEALTHBOX_GFX_38, //misc.png [Black] + HEALTHBOX_GFX_39, //misc.png [Blank Health Window] + HEALTHBOX_GFX_40, //misc.png [Blank Health Window] + HEALTHBOX_GFX_41, //misc.png [Blank Health Window] + HEALTHBOX_GFX_42, //misc.png [Blank Health Window] + HEALTHBOX_GFX_43, //misc.png [Top of Health Window] + HEALTHBOX_GFX_44, //misc.png [Top of Health Window] + HEALTHBOX_GFX_45, //misc.png [Top of Health Window] + HEALTHBOX_GFX_46, //misc.png [Blank Health Window] + HEALTHBOX_GFX_HP_BAR_YELLOW, //hpbar_anim.png [0 pixels] + HEALTHBOX_GFX_48, //hpbar_anim.png [1 pixels] + HEALTHBOX_GFX_49, //hpbar_anim.png [2 pixels] + HEALTHBOX_GFX_50, //hpbar_anim.png [3 pixels] + HEALTHBOX_GFX_51, //hpbar_anim.png [4 pixels] + HEALTHBOX_GFX_52, //hpbar_anim.png [5 pixels] + HEALTHBOX_GFX_53, //hpbar_anim.png [6 pixels] + HEALTHBOX_GFX_54, //hpbar_anim.png [7 pixels] + HEALTHBOX_GFX_55, //hpbar_anim.png [8 pixels] + HEALTHBOX_GFX_HP_BAR_RED, //hpbar_anim.png [0 pixels yellow] + HEALTHBOX_GFX_57, //hpbar_anim.png [1 pixels yellow] + HEALTHBOX_GFX_58, //hpbar_anim.png [2 pixels yellow] + HEALTHBOX_GFX_59, //hpbar_anim.png [3 pixels yellow] + HEALTHBOX_GFX_60, //hpbar_anim.png [4 pixels yellow] + HEALTHBOX_GFX_61, //hpbar_anim.png [5 pixels yellow] + HEALTHBOX_GFX_62, //hpbar_anim.png [6 pixels yellow] + HEALTHBOX_GFX_63, //hpbar_anim.png [7 pixels yellow] + HEALTHBOX_GFX_64, //hpbar_anim.png [8 pixels yellow] + HEALTHBOX_GFX_65, //misc_frameend.png + HEALTHBOX_GFX_66, //ball_display.png [full] + HEALTHBOX_GFX_67, //ball_display.png [empty] + HEALTHBOX_GFX_68, //ball_display.png [fainted] + HEALTHBOX_GFX_69, //ball_display.png [statused] + HEALTHBOX_GFX_70, //ball_display_unused_extra.png + HEALTHBOX_GFX_STATUS_PSN_BATTLER1, //status2.png "PSN" HEALTHBOX_GFX_72, HEALTHBOX_GFX_73, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, //status2.png "PRZ" HEALTHBOX_GFX_75, HEALTHBOX_GFX_76, - HEALTHBOX_GFX_STATUS_SLP_BATTLER1, + HEALTHBOX_GFX_STATUS_SLP_BATTLER1, //status2.png "SLP" HEALTHBOX_GFX_78, HEALTHBOX_GFX_79, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, //status2.png "FRZ" HEALTHBOX_GFX_81, HEALTHBOX_GFX_82, - HEALTHBOX_GFX_STATUS_BRN_BATTLER1, + HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2.png "BRN" HEALTHBOX_GFX_84, HEALTHBOX_GFX_85, - HEALTHBOX_GFX_STATUS_PSN_BATTLER2, + HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3.png "PSN" HEALTHBOX_GFX_87, HEALTHBOX_GFX_88, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, //status3.png "PRZ" HEALTHBOX_GFX_90, HEALTHBOX_GFX_91, - HEALTHBOX_GFX_STATUS_SLP_BATTLER2, + HEALTHBOX_GFX_STATUS_SLP_BATTLER2, //status3.png "SLP" HEALTHBOX_GFX_93, HEALTHBOX_GFX_94, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, //status3.png "FRZ" HEALTHBOX_GFX_96, HEALTHBOX_GFX_97, - HEALTHBOX_GFX_STATUS_BRN_BATTLER2, + HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3.png "BRN" HEALTHBOX_GFX_99, HEALTHBOX_GFX_100, - HEALTHBOX_GFX_STATUS_PSN_BATTLER3, + HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4.png "PSN" HEALTHBOX_GFX_102, HEALTHBOX_GFX_103, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, + HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, //status4.png "PRZ" HEALTHBOX_GFX_105, HEALTHBOX_GFX_106, - HEALTHBOX_GFX_STATUS_SLP_BATTLER3, + HEALTHBOX_GFX_STATUS_SLP_BATTLER3, //status4.png "SLP" HEALTHBOX_GFX_108, HEALTHBOX_GFX_109, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, + HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, //status4.png "FRZ" HEALTHBOX_GFX_111, HEALTHBOX_GFX_112, - HEALTHBOX_GFX_STATUS_BRN_BATTLER3, + HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4.png "BRN" HEALTHBOX_GFX_114, HEALTHBOX_GFX_115, - HEALTHBOX_GFX_116, - HEALTHBOX_GFX_117, + HEALTHBOX_GFX_116, //unknown_D12FEC.png + HEALTHBOX_GFX_117, //unknown_D1300C.png }; extern const u8 *const gNatureNamePointers[]; -- cgit v1.2.3 From 4a785e66ba0d7f5f5b48705a72895a8a9a934363 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 23 Feb 2019 20:01:48 -0500 Subject: Changing descriptions to not be file names --- src/battle_interface.c | 161 +++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 80 deletions(-) (limited to 'src') diff --git a/src/battle_interface.c b/src/battle_interface.c index eab91b348..4a6ac67f1 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -36,124 +36,125 @@ struct TestingBar enum { // Corresponds to gHealthboxElementsGfxTable (and the tables after it) in graphics.c - HEALTHBOX_GFX_0, //hpbar.png - HEALTHBOX_GFX_1, //hpbar.png "H" - HEALTHBOX_GFX_2, //hpbar.png "P" - HEALTHBOX_GFX_HP_BAR_GREEN, //hpbar.png [0 pixels] - HEALTHBOX_GFX_4, //hpbar.png [1 pixels] - HEALTHBOX_GFX_5, //hpbar.png [2 pixels] - HEALTHBOX_GFX_6, //hpbar.png [3 pixels] - HEALTHBOX_GFX_7, //hpbar.png [4 pixels] - HEALTHBOX_GFX_8, //hpbar.png [5 pixels] - HEALTHBOX_GFX_9, //hpbar.png [6 pixels] - HEALTHBOX_GFX_10, //hpbar.png [7 pixels] - HEALTHBOX_GFX_11, //hpbar.png [8 pixels] - HEALTHBOX_GFX_12, //expbar.png [0 pixels] - HEALTHBOX_GFX_13, //expbar.png [1 pixels] - HEALTHBOX_GFX_14, //expbar.png [2 pixels] - HEALTHBOX_GFX_15, //expbar.png [3 pixels] - HEALTHBOX_GFX_16, //expbar.png [4 pixels] - HEALTHBOX_GFX_17, //expbar.png [5 pixels] - HEALTHBOX_GFX_18, //expbar.png [6 pixels] - HEALTHBOX_GFX_19, //expbar.png [7 pixels] - HEALTHBOX_GFX_20, //expbar.png [8 pixels] - HEALTHBOX_GFX_STATUS_PSN_BATTLER0, //status_psn.png "(P" - HEALTHBOX_GFX_22, //status_psn.png "SN" - HEALTHBOX_GFX_23, //status_psn.png "|)"" - HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, //status_prz.png + // These are indexes into the tables, which are filled with 8x8 square pixel data. + HEALTHBOX_GFX_0, //hp bar [black section] + HEALTHBOX_GFX_1, //hp bar "H" + HEALTHBOX_GFX_2, //hp bar "P" + HEALTHBOX_GFX_HP_BAR_GREEN, //hp bar [0 pixels] + HEALTHBOX_GFX_4, //hp bar [1 pixels] + HEALTHBOX_GFX_5, //hp bar [2 pixels] + HEALTHBOX_GFX_6, //hp bar [3 pixels] + HEALTHBOX_GFX_7, //hp bar [4 pixels] + HEALTHBOX_GFX_8, //hp bar [5 pixels] + HEALTHBOX_GFX_9, //hp bar [6 pixels] + HEALTHBOX_GFX_10, //hp bar [7 pixels] + HEALTHBOX_GFX_11, //hp bar [8 pixels] + HEALTHBOX_GFX_12, //exp bar [0 pixels] + HEALTHBOX_GFX_13, //exp bar [1 pixels] + HEALTHBOX_GFX_14, //exp bar [2 pixels] + HEALTHBOX_GFX_15, //exp bar [3 pixels] + HEALTHBOX_GFX_16, //exp bar [4 pixels] + HEALTHBOX_GFX_17, //exp bar [5 pixels] + HEALTHBOX_GFX_18, //exp bar [6 pixels] + HEALTHBOX_GFX_19, //exp bar [7 pixels] + HEALTHBOX_GFX_20, //exp bar [8 pixels] + HEALTHBOX_GFX_STATUS_PSN_BATTLER0, //status psn "(P" + HEALTHBOX_GFX_22, //status psn "SN" + HEALTHBOX_GFX_23, //status psn "|)"" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, //status prz HEALTHBOX_GFX_25, HEALTHBOX_GFX_26, - HEALTHBOX_GFX_STATUS_SLP_BATTLER0, //status_slp.png + HEALTHBOX_GFX_STATUS_SLP_BATTLER0, //status slp HEALTHBOX_GFX_28, HEALTHBOX_GFX_29, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, //status_frz.png + HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, //status frz HEALTHBOX_GFX_31, HEALTHBOX_GFX_32, - HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status_brn.png + HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status brn HEALTHBOX_GFX_34, HEALTHBOX_GFX_35, - HEALTHBOX_GFX_36, //misc.png [Black] - HEALTHBOX_GFX_37, //misc.png [Black] - HEALTHBOX_GFX_38, //misc.png [Black] - HEALTHBOX_GFX_39, //misc.png [Blank Health Window] - HEALTHBOX_GFX_40, //misc.png [Blank Health Window] - HEALTHBOX_GFX_41, //misc.png [Blank Health Window] - HEALTHBOX_GFX_42, //misc.png [Blank Health Window] - HEALTHBOX_GFX_43, //misc.png [Top of Health Window] - HEALTHBOX_GFX_44, //misc.png [Top of Health Window] - HEALTHBOX_GFX_45, //misc.png [Top of Health Window] - HEALTHBOX_GFX_46, //misc.png [Blank Health Window] - HEALTHBOX_GFX_HP_BAR_YELLOW, //hpbar_anim.png [0 pixels] - HEALTHBOX_GFX_48, //hpbar_anim.png [1 pixels] - HEALTHBOX_GFX_49, //hpbar_anim.png [2 pixels] - HEALTHBOX_GFX_50, //hpbar_anim.png [3 pixels] - HEALTHBOX_GFX_51, //hpbar_anim.png [4 pixels] - HEALTHBOX_GFX_52, //hpbar_anim.png [5 pixels] - HEALTHBOX_GFX_53, //hpbar_anim.png [6 pixels] - HEALTHBOX_GFX_54, //hpbar_anim.png [7 pixels] - HEALTHBOX_GFX_55, //hpbar_anim.png [8 pixels] - HEALTHBOX_GFX_HP_BAR_RED, //hpbar_anim.png [0 pixels yellow] - HEALTHBOX_GFX_57, //hpbar_anim.png [1 pixels yellow] - HEALTHBOX_GFX_58, //hpbar_anim.png [2 pixels yellow] - HEALTHBOX_GFX_59, //hpbar_anim.png [3 pixels yellow] - HEALTHBOX_GFX_60, //hpbar_anim.png [4 pixels yellow] - HEALTHBOX_GFX_61, //hpbar_anim.png [5 pixels yellow] - HEALTHBOX_GFX_62, //hpbar_anim.png [6 pixels yellow] - HEALTHBOX_GFX_63, //hpbar_anim.png [7 pixels yellow] - HEALTHBOX_GFX_64, //hpbar_anim.png [8 pixels yellow] - HEALTHBOX_GFX_65, //misc_frameend.png - HEALTHBOX_GFX_66, //ball_display.png [full] - HEALTHBOX_GFX_67, //ball_display.png [empty] - HEALTHBOX_GFX_68, //ball_display.png [fainted] - HEALTHBOX_GFX_69, //ball_display.png [statused] - HEALTHBOX_GFX_70, //ball_display_unused_extra.png - HEALTHBOX_GFX_STATUS_PSN_BATTLER1, //status2.png "PSN" + HEALTHBOX_GFX_36, //misc [Black section] + HEALTHBOX_GFX_37, //misc [Black section] + HEALTHBOX_GFX_38, //misc [Black section] + HEALTHBOX_GFX_39, //misc [Blank Health Window?] + HEALTHBOX_GFX_40, //misc [Blank Health Window?] + HEALTHBOX_GFX_41, //misc [Blank Health Window?] + HEALTHBOX_GFX_42, //misc [Blank Health Window?] + HEALTHBOX_GFX_43, //misc [Top of Health Window?] + HEALTHBOX_GFX_44, //misc [Top of Health Window?] + HEALTHBOX_GFX_45, //misc [Top of Health Window?] + HEALTHBOX_GFX_46, //misc [Blank Health Window?] + HEALTHBOX_GFX_HP_BAR_YELLOW, //hp bar yellow [0 pixels] + HEALTHBOX_GFX_48, //hp bar yellow [1 pixels] + HEALTHBOX_GFX_49, //hp bar yellow [2 pixels] + HEALTHBOX_GFX_50, //hp bar yellow [3 pixels] + HEALTHBOX_GFX_51, //hp bar yellow [4 pixels] + HEALTHBOX_GFX_52, //hp bar yellow [5 pixels] + HEALTHBOX_GFX_53, //hp bar yellow [6 pixels] + HEALTHBOX_GFX_54, //hp bar yellow [7 pixels] + HEALTHBOX_GFX_55, //hp bar yellow [8 pixels] + HEALTHBOX_GFX_HP_BAR_RED, //hp bar red [0 pixels] + HEALTHBOX_GFX_57, //hp bar red [1 pixels] + HEALTHBOX_GFX_58, //hp bar red [2 pixels] + HEALTHBOX_GFX_59, //hp bar red [3 pixels] + HEALTHBOX_GFX_60, //hp bar red [4 pixels] + HEALTHBOX_GFX_61, //hp bar red [5 pixels] + HEALTHBOX_GFX_62, //hp bar red [6 pixels] + HEALTHBOX_GFX_63, //hp bar red [7 pixels] + HEALTHBOX_GFX_64, //hp bar red [8 pixels] + HEALTHBOX_GFX_65, //hp bar frame end + HEALTHBOX_GFX_66, //status ball [full] + HEALTHBOX_GFX_67, //status ball [empty] + HEALTHBOX_GFX_68, //status ball [fainted] + HEALTHBOX_GFX_69, //status ball [statused] + HEALTHBOX_GFX_70, //status ball [unused extra] + HEALTHBOX_GFX_STATUS_PSN_BATTLER1, //status2 "PSN" HEALTHBOX_GFX_72, HEALTHBOX_GFX_73, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, //status2.png "PRZ" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER1, //status2 "PRZ" HEALTHBOX_GFX_75, HEALTHBOX_GFX_76, - HEALTHBOX_GFX_STATUS_SLP_BATTLER1, //status2.png "SLP" + HEALTHBOX_GFX_STATUS_SLP_BATTLER1, //status2 "SLP" HEALTHBOX_GFX_78, HEALTHBOX_GFX_79, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, //status2.png "FRZ" + HEALTHBOX_GFX_STATUS_FRZ_BATTLER1, //status2 "FRZ" HEALTHBOX_GFX_81, HEALTHBOX_GFX_82, - HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2.png "BRN" + HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2 "BRN" HEALTHBOX_GFX_84, HEALTHBOX_GFX_85, - HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3.png "PSN" + HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3 "PSN" HEALTHBOX_GFX_87, HEALTHBOX_GFX_88, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, //status3.png "PRZ" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER2, //status3 "PRZ" HEALTHBOX_GFX_90, HEALTHBOX_GFX_91, - HEALTHBOX_GFX_STATUS_SLP_BATTLER2, //status3.png "SLP" + HEALTHBOX_GFX_STATUS_SLP_BATTLER2, //status3 "SLP" HEALTHBOX_GFX_93, HEALTHBOX_GFX_94, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, //status3.png "FRZ" + HEALTHBOX_GFX_STATUS_FRZ_BATTLER2, //status3 "FRZ" HEALTHBOX_GFX_96, HEALTHBOX_GFX_97, - HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3.png "BRN" + HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3 "BRN" HEALTHBOX_GFX_99, HEALTHBOX_GFX_100, - HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4.png "PSN" + HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4 "PSN" HEALTHBOX_GFX_102, HEALTHBOX_GFX_103, - HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, //status4.png "PRZ" + HEALTHBOX_GFX_STATUS_PRZ_BATTLER3, //status4 "PRZ" HEALTHBOX_GFX_105, HEALTHBOX_GFX_106, - HEALTHBOX_GFX_STATUS_SLP_BATTLER3, //status4.png "SLP" + HEALTHBOX_GFX_STATUS_SLP_BATTLER3, //status4 "SLP" HEALTHBOX_GFX_108, HEALTHBOX_GFX_109, - HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, //status4.png "FRZ" + HEALTHBOX_GFX_STATUS_FRZ_BATTLER3, //status4 "FRZ" HEALTHBOX_GFX_111, HEALTHBOX_GFX_112, - HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4.png "BRN" + HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4 "BRN" HEALTHBOX_GFX_114, HEALTHBOX_GFX_115, - HEALTHBOX_GFX_116, //unknown_D12FEC.png - HEALTHBOX_GFX_117, //unknown_D1300C.png + HEALTHBOX_GFX_116, //unknown_D12FEC + HEALTHBOX_GFX_117, //unknown_D1300C }; extern const u8 *const gNatureNamePointers[]; -- cgit v1.2.3 From e1b2460748dfd9d1a4b3c6eb760e86fb616a7ce6 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 25 Feb 2019 02:28:41 -0500 Subject: Adjust formatting, rename function --- src/field_weather_effect.c | 36 ++++++++++++++++++------------------ src/overworld.c | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index b81a8f5d2..be8fdc6cb 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -2397,7 +2397,7 @@ void DoCurrentWeather(void) SetNextWeather(weather); } -void DoPausedWeather(void) +void ResumePausedWeather(void) { u8 weather = GetSav1Weather(); @@ -2435,25 +2435,25 @@ static u8 TranslateWeatherNum(u8 weather) { switch (weather) { - case WEATHER_NONE: return WEATHER_NONE; - case WEATHER_CLOUDS: return WEATHER_CLOUDS; - case WEATHER_SUNNY: return WEATHER_SUNNY; - case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; - case WEATHER_SNOW: return WEATHER_SNOW; - case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; - case WEATHER_FOG_1: return WEATHER_FOG_1; - case WEATHER_ASH: return WEATHER_ASH; - case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; - case WEATHER_FOG_2: return WEATHER_FOG_2; - case WEATHER_FOG_3: return WEATHER_FOG_3; - case WEATHER_SHADE: return WEATHER_SHADE; - case WEATHER_DROUGHT: return WEATHER_DROUGHT; - case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; - case WEATHER_BUBBLES: return WEATHER_BUBBLES; - case WEATHER_ALTERNATING: return WEATHER_ALTERNATING; + case WEATHER_NONE: return WEATHER_NONE; + case WEATHER_CLOUDS: return WEATHER_CLOUDS; + case WEATHER_SUNNY: return WEATHER_SUNNY; + case WEATHER_RAIN_LIGHT: return WEATHER_RAIN_LIGHT; + case WEATHER_SNOW: return WEATHER_SNOW; + case WEATHER_RAIN_MED: return WEATHER_RAIN_MED; + case WEATHER_FOG_1: return WEATHER_FOG_1; + case WEATHER_ASH: return WEATHER_ASH; + case WEATHER_SANDSTORM: return WEATHER_SANDSTORM; + case WEATHER_FOG_2: return WEATHER_FOG_2; + case WEATHER_FOG_3: return WEATHER_FOG_3; + case WEATHER_SHADE: return WEATHER_SHADE; + case WEATHER_DROUGHT: return WEATHER_DROUGHT; + case WEATHER_RAIN_HEAVY: return WEATHER_RAIN_HEAVY; + case WEATHER_BUBBLES: return WEATHER_BUBBLES; + case WEATHER_ALTERNATING: return WEATHER_ALTERNATING; case WEATHER_ROUTE119_CYCLE: return sWeatherCycleRoute119[gSaveBlock1Ptr->weatherCycleStage]; case WEATHER_ROUTE123_CYCLE: return sWeatherCycleRoute123[gSaveBlock1Ptr->weatherCycleStage]; - default: return WEATHER_NONE; + default: return WEATHER_NONE; } } diff --git a/src/overworld.c b/src/overworld.c index 6f973f16b..2650a619c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -2123,7 +2123,7 @@ static void sub_8086988(u32 a1) FieldEffectActiveListClear(); StartWeather(); - DoPausedWeather(); + ResumePausedWeather(); if (!a1) SetUpFieldTasks(); mapheader_run_script_with_tag_x5(); -- cgit v1.2.3 From 5f7a9713134d7694120dac27bef5ac14467f2734 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 02:23:46 -0500 Subject: Source file part of map script renaming --- src/battle_pyramid.c | 2 +- src/field_control_avatar.c | 2 +- src/fieldmap.c | 6 +++--- src/overworld.c | 18 +++++++++--------- src/script.c | 42 +++++++++++++++++++++--------------------- src/trainer_hill.c | 2 +- 6 files changed, 36 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index a2fa4120f..340c17c59 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1590,7 +1590,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio layoutMap += mapLayout->width; } } - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); free(floorLayoutOffsets); } diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 00dce4c7d..cffafaf9f 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -147,7 +147,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) if (CheckForTrainersWantingBattle() == TRUE) return TRUE; - if (mapheader_run_first_tag2_script_list_match() == 1) + if (TryRunOnFrameMapScript() == TRUE) return TRUE; if (input->pressedBButton && TrySetupDiveEmergeScript() == TRUE) diff --git a/src/fieldmap.c b/src/fieldmap.c index 7d9d079fc..cf5f0356e 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -53,7 +53,7 @@ void InitMap(void) { InitMapLayoutData(&gMapHeader); sub_80E8EE0(gMapHeader.events); - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); } void InitMapFromSavedGame(void) @@ -62,7 +62,7 @@ void InitMapFromSavedGame(void) sub_80E9238(0); sub_80E8EE0(gMapHeader.events); LoadSavedMapView(); - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); } @@ -775,7 +775,7 @@ bool8 CameraMove(int x, int y) old_y = gSaveBlock1Ptr->pos.y; connection = sub_8088950(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y); sub_80887F8(connection, direction, x, y); - mliX_load_map(connection->mapGroup, connection->mapNum); + LoadMapFromCameraTransition(connection->mapGroup, connection->mapNum); gCamera.active = TRUE; gCamera.x = old_x - gSaveBlock1Ptr->pos.x; gCamera.y = old_y - gSaveBlock1Ptr->pos.y; diff --git a/src/overworld.c b/src/overworld.c index 08fd94c1b..d5584efc3 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -761,7 +761,7 @@ static bool8 SetDiveWarp(u8 dir, u16 x, u16 y) } else { - mapheader_run_script_with_tag_x6(); + RunOnDiveWarpMapScript(); if (IsDummyWarp(&gFixedDiveWarp)) return FALSE; SetWarpDestinationToDiveWarp(); @@ -779,7 +779,7 @@ bool8 SetDiveWarpDive(u16 x, u16 y) return SetDiveWarp(CONNECTION_DIVE, x, y); } -void mliX_load_map(u8 mapGroup, u8 mapNum) +void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) { s32 paletteIndex; @@ -800,7 +800,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) ChooseAmbientCrySpecies(); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); - mapheader_run_script_with_tag_x3(); + RunOnTransitionMapScript(); InitMap(); copy_map_tileset2_to_vram_2(gMapHeader.mapLayout); apply_map_tileset2_palette(gMapHeader.mapLayout); @@ -813,7 +813,7 @@ void mliX_load_map(u8 mapGroup, u8 mapNum) RoamerMove(); DoCurrentWeather(); ResetFieldTasksArgs(); - mapheader_run_script_with_tag_x5(); + RunOnResumeMapScript(); if (gMapHeader.regionMapSectionId != MAPSEC_BATTLE_FRONTIER || gMapHeader.regionMapSectionId != sLastMapSectionId) ShowMapNamePopup(); @@ -852,7 +852,7 @@ static void mli0_load_map(u32 a1) FlagClear(FLAG_SYS_USE_FLASH); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); - mapheader_run_script_with_tag_x3(); + RunOnTransitionMapScript(); UpdateLocationHistoryForRoamer(); RoamerMoveToOtherLocationSet(); if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE) @@ -2126,7 +2126,7 @@ static void sub_8086988(u32 a1) sub_80AEE84(); if (!a1) SetUpFieldTasks(); - mapheader_run_script_with_tag_x5(); + RunOnResumeMapScript(); TryStartMirageTowerPulseBlendEffect(); } @@ -2136,7 +2136,7 @@ static void sub_80869DC(void) gTotalCameraPixelOffsetY = 0; ResetEventObjects(); TrySpawnEventObjects(0, 0); - mapheader_run_first_tag4_script_list_match(); + TryRunOnWarpIntoMapScript(); } static void mli4_mapscripts_and_other(void) @@ -2153,14 +2153,14 @@ static void mli4_mapscripts_and_other(void) SetPlayerAvatarTransitionFlags(player->transitionFlags); ResetInitialPlayerAvatarState(); TrySpawnEventObjects(0, 0); - mapheader_run_first_tag4_script_list_match(); + TryRunOnWarpIntoMapScript(); } static void sub_8086A68(void) { sub_808E16C(0, 0); RotatingGate_InitPuzzleAndGraphics(); - mapheader_run_script_with_tag_x7(); + RunOnReturnToFieldMapScript(); } static void sub_8086A80(void) diff --git a/src/script.c b/src/script.c index c61ae7183..dff99609b 100644 --- a/src/script.c +++ b/src/script.c @@ -241,7 +241,7 @@ void ScriptContext2_RunNewScript(const u8 *ptr) while (RunScriptCommand(&sScriptContext2) == TRUE); } -u8 *mapheader_get_tagged_pointer(u8 tag) +u8 *MapHeaderGetScriptTable(u8 tag) { const u8 *mapScripts = gMapHeader.mapScripts; @@ -261,16 +261,16 @@ u8 *mapheader_get_tagged_pointer(u8 tag) } } -void mapheader_run_script_by_tag(u8 tag) +void MapHeaderRunScriptType(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr) ScriptContext2_RunNewScript(ptr); } -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) +u8 *MapHeaderCheckScriptTable(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (!ptr) return NULL; @@ -291,45 +291,45 @@ u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) } } -void mapheader_run_script_with_tag_x1(void) +void RunOnLoadMapScript(void) { - mapheader_run_script_by_tag(1); + MapHeaderRunScriptType(1); } -void mapheader_run_script_with_tag_x3(void) +void RunOnTransitionMapScript(void) { - mapheader_run_script_by_tag(3); + MapHeaderRunScriptType(3); } -void mapheader_run_script_with_tag_x5(void) +void RunOnResumeMapScript(void) { - mapheader_run_script_by_tag(5); + MapHeaderRunScriptType(5); } -void mapheader_run_script_with_tag_x7(void) +void RunOnReturnToFieldMapScript(void) { - mapheader_run_script_by_tag(7); + MapHeaderRunScriptType(7); } -void mapheader_run_script_with_tag_x6(void) +void RunOnDiveWarpMapScript(void) { - mapheader_run_script_by_tag(6); + MapHeaderRunScriptType(6); } -bool8 mapheader_run_first_tag2_script_list_match(void) +bool8 TryRunOnFrameMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(2); + u8 *ptr = MapHeaderCheckScriptTable(2); if (!ptr) - return 0; + return FALSE; ScriptContext1_SetupScript(ptr); - return 1; + return TRUE; } -void mapheader_run_first_tag4_script_list_match(void) +void TryRunOnWarpIntoMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4); + u8 *ptr = MapHeaderCheckScriptTable(4); if (ptr) ScriptContext2_RunNewScript(ptr); } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index efe11b0c7..42b196abd 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -796,7 +796,7 @@ void sub_81D5FB4(u16 *mapArg) dst += 31; } - mapheader_run_script_with_tag_x1(); + RunOnLoadMapScript(); FreeDataStruct(); } -- cgit v1.2.3 From a5cf2b8090fb6638857b91f4f2a58c5584ca9335 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 25 Feb 2019 02:09:02 -0500 Subject: Use map script constants in map script functions --- src/script.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/script.c b/src/script.c index dff99609b..c95a1141f 100644 --- a/src/script.c +++ b/src/script.c @@ -2,6 +2,7 @@ #include "script.h" #include "event_data.h" #include "util.h" +#include "constants/map_scripts.h" #define RAM_SCRIPT_MAGIC 51 @@ -293,32 +294,32 @@ u8 *MapHeaderCheckScriptTable(u8 tag) void RunOnLoadMapScript(void) { - MapHeaderRunScriptType(1); + MapHeaderRunScriptType(MAP_SCRIPT_ON_LOAD); } void RunOnTransitionMapScript(void) { - MapHeaderRunScriptType(3); + MapHeaderRunScriptType(MAP_SCRIPT_ON_TRANSITION); } void RunOnResumeMapScript(void) { - MapHeaderRunScriptType(5); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RESUME); } void RunOnReturnToFieldMapScript(void) { - MapHeaderRunScriptType(7); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RETURN_TO_FIELD); } void RunOnDiveWarpMapScript(void) { - MapHeaderRunScriptType(6); + MapHeaderRunScriptType(MAP_SCRIPT_ON_DIVE_WARP); } bool8 TryRunOnFrameMapScript(void) { - u8 *ptr = MapHeaderCheckScriptTable(2); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_FRAME_TABLE); if (!ptr) return FALSE; @@ -329,7 +330,7 @@ bool8 TryRunOnFrameMapScript(void) void TryRunOnWarpIntoMapScript(void) { - u8 *ptr = MapHeaderCheckScriptTable(4); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE); if (ptr) ScriptContext2_RunNewScript(ptr); } -- cgit v1.2.3 From 7ea05431a58d63c2e0594d15e552979d20092cf6 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 25 Feb 2019 14:03:13 -0600 Subject: Decompile more easy_chat.c --- src/easy_chat.c | 414 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/mail.c | 2 +- 2 files changed, 414 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 1b1bd105b..51b25c42a 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,13 +2,16 @@ // Includes #include "global.h" #include "alloc.h" +#include "bard_music.h" #include "bg.h" +#include "data2.h" #include "decompress.h" #include "dewford_trend.h" #include "dynamic_placeholder_text_util.h" #include "easy_chat.h" #include "event_data.h" #include "event_object_movement.h" +#include "field_message_box.h" #include "field_weather.h" #include "gpu_regs.h" #include "graphics.h" @@ -18,12 +21,15 @@ #include "menu.h" #include "overworld.h" #include "palette.h" +#include "pokedex.h" +#include "random.h" #include "sound.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "text_window.h" #include "window.h" +#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" @@ -115,6 +121,26 @@ struct Unk08597C30 u8 unk3; }; +struct EasyChatWordInfo +{ + const u8 *text; + int alphabeticalOrder; + int enabled; +}; + +typedef union +{ + const u16 *valueList; + const struct EasyChatWordInfo *words; +} EasyChatGroupWordData; + +struct EasyChatGroup +{ + EasyChatGroupWordData wordData; + u16 numWords; + u16 numEnabledWords; +}; + EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; EWRAM_DATA void *gUnknown_0203A120 = 0; @@ -203,7 +229,7 @@ static void sub_811CF04(void); static void sub_811D60C(void); static void sub_811D424(u16 *); static void sub_811D230(void); -void sub_811E948(void); +static void sub_811E948(void); static void sub_811CFCC(void); static void sub_811D0BC(void); static void sub_811D2C8(void); @@ -293,6 +319,8 @@ static void sub_811E0EC(s8, s8); static void sub_811E1A4(s8, s8); static void sub_811E2DC(struct Sprite *); static void sub_811E34C(u8, u8); +bool8 sub_811F0F8(void); +u16 sub_811F108(void); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); extern const struct { @@ -326,6 +354,8 @@ extern const struct SpriteTemplate gUnknown_08597E48; extern const struct SpriteTemplate gUnknown_08597E30; extern const u8 gUnknown_08597D08[]; extern const u8 gUnknown_08597E60[][4]; +extern const u8 *const gUnknown_08597E6C[][4]; +extern const struct EasyChatGroup gEasyChatGroups[]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -4373,3 +4403,385 @@ static int sub_811E920(int arg0) else return 0; } + +static void sub_811E948(void) +{ + int i; + u16 windowId; + struct WindowTemplate template; + int var0 = sub_811E8E4(); + if (var0 == 3) + return; + + template.bg = 3; + template.tilemapLeft = 1; + template.tilemapTop = 11; + template.width = 28; + template.height = 2; + template.paletteNum = 11; + template.baseBlock = 0x34; + windowId = AddWindow(&template); + FillWindowPixelBuffer(windowId, 0x11); + for (i = 0; i < 4; i++) + { + const u8 *str = gUnknown_08597E6C[var0][i]; + if (str) + { + int x = gUnknown_08597E60[var0][i]; + sub_811D028(windowId, 1, str, x, 1, 0, NULL); + } + } + + PutWindowTilemap(windowId); +} + +bool8 sub_811EA28(u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_TRENDY_SAYING: + return FlagGet(FLAG_SYS_HIPSTER_MEET); + case EC_GROUP_EVENTS: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return FlagGet(FLAG_SYS_GAME_CLEAR); + case EC_GROUP_POKEMON_2: + return sub_811F0F8(); + default: + return TRUE; + } +} + +u16 EasyChat_GetNumWordsInGroup(u8 groupId) +{ + if (groupId == EC_GROUP_POKEMON) + return GetNationalPokedexCount(FLAG_GET_SEEN); + + if (sub_811EA28(groupId)) + return gEasyChatGroups[groupId].numEnabledWords; + + return 0; +} + +bool8 sub_811EAA4(u16 easyChatWord) +{ + u16 i; + u8 groupId; + u32 index; + u16 numWords; + const u16 *list; + if (easyChatWord == 0xFFFF) + return FALSE; + + groupId = EC_GROUP(easyChatWord); + index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + numWords = gEasyChatGroups[groupId].numWords; + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + list = gEasyChatGroups[groupId].wordData.valueList; + for (i = 0; i < numWords; i++) + { + if (index == list[i]) + return FALSE; + } + return TRUE; + default: + if (index >= numWords) + return TRUE; + else + return FALSE; + } +} + +bool8 ECWord_CheckIfOutsideOfValidRange(u16 easyChatWord) +{ + int numWordsInGroup; + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (groupId >= EC_NUM_GROUPS) + return TRUE; + + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + numWordsInGroup = gUnknown_085F5490; + break; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + numWordsInGroup = gUnknown_085FA1D4; + break; + default: + numWordsInGroup = gEasyChatGroups[groupId].numWords; + break; + } + + if (numWordsInGroup <= index) + return TRUE; + else + return FALSE; +} + +const u8 *GetEasyChatWord(u8 groupId, u16 index) +{ + switch (groupId) + { + case EC_GROUP_POKEMON: + case EC_GROUP_POKEMON_2: + return gSpeciesNames[index]; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return gMoveNames[index]; + default: + return gEasyChatGroups[groupId].wordData.words[index].text; + } +} + +u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) +{ + u8 *resultStr; + if (sub_811EAA4(easyChatWord)) + { + resultStr = StringCopy(dest, gText_ThreeQuestionMarks); + } + else if (easyChatWord != 0xFFFF) + { + u16 index = EC_INDEX(easyChatWord); + u8 groupId = EC_GROUP(easyChatWord); + resultStr = StringCopy(dest, GetEasyChatWord(groupId, index)); + } + else + { + *dest = EOS; + resultStr = dest; + } + + return resultStr; +} + +u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows) +{ + u16 i, j; + u16 numColumns = columns - 1; + + for (i = 0; i < rows; i++) + { + for (j = 0; j < numColumns; j++) + { + dest = CopyEasyChatWord(dest, *src); + if (*src != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + *dest = CHAR_NEWLINE; + dest++; + } + + dest--; + *dest = EOS; + return dest; +} + +u8 *unref_sub_811EC98(u8 *dest, const u16 *src, u16 columns, u16 rows) +{ + u16 i, j, k; + u16 numColumns; + int var0, var1; + + numColumns = columns; + var1 = 0; + columns--; + for (i = 0; i < rows; i++) + { + const u16 *var2 = src; + var0 = 0; + for (j = 0; j < numColumns; j++) + { + if (var2[j] != 0xFFFF) + var0 = 1; + } + + if (!var0) + { + src += numColumns; + continue; + } + + for (k = 0; k < columns; k++) + { + dest = CopyEasyChatWord(dest, *src); + if (*src != 0xFFFF) + { + *dest = CHAR_SPACE; + dest++; + } + + src++; + } + + dest = CopyEasyChatWord(dest, *(src++)); + if (var1 == 0) + *dest = CHAR_NEWLINE; + else + *dest = CHAR_PROMPT_SCROLL; + + dest++; + var1++; + } + + dest--; + *dest = EOS; + return dest; +} + +static u16 GetEasyChatWordStringLength(u16 easyChatWord) +{ + if (easyChatWord == 0xFFFF) + return 0; + + if (sub_811EAA4(easyChatWord)) + { + return StringLength(gText_ThreeQuestionMarks); + } + else + { + u16 index = EC_INDEX(easyChatWord); + u8 groupId = EC_GROUP(easyChatWord); + return StringLength(GetEasyChatWord(groupId, index)); + } +} + +bool8 sub_811EDC4(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3) +{ + u8 i, j; + + for (i = 0; i < arg2; i++) + { + u16 totalLength = arg1 - 1; + for (j = 0; j < arg1; j++) + totalLength += GetEasyChatWordStringLength(*(easyChatWords++)); + + if (totalLength > arg3) + return TRUE; + } + + return FALSE; +} + +u16 sub_811EE38(u16 groupId) +{ + u16 index = Random() % gEasyChatGroups[groupId].numWords; + if (groupId == EC_GROUP_POKEMON + || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 + || groupId == EC_GROUP_MOVE_2) + { + index = gEasyChatGroups[groupId].wordData.valueList[index]; + } + + return EC_WORD(groupId, index); +} + +u16 sub_811EE90(u16 groupId) +{ + if (!sub_811EA28(groupId)) + return 0xFFFF; + + if (groupId == EC_GROUP_POKEMON) + return sub_811F108(); + + return sub_811EE38(groupId); +} + +void sub_811EECC(void) +{ + u16 *easyChatWords; + int columns, rows; + switch (gSpecialVar_0x8004) + { + case 0: + easyChatWords = gSaveBlock1Ptr->unk2BB0; + columns = 2; + rows = 2; + break; + case 1: + easyChatWords = gSaveBlock1Ptr->unk2BBC; + if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + { + columns = 2; + rows = 3; + } + else + { + columns = 3; + rows = 2; + } + break; + case 2: + easyChatWords = gSaveBlock1Ptr->unk2BC8; + columns = 3; + rows = 2; + break; + case 3: + easyChatWords = gSaveBlock1Ptr->unk2BD4; + columns = 3; + rows = 2; + break; + default: + return; + } + + ConvertEasyChatWordsToString(gStringVar4, easyChatWords, columns, rows); + ShowFieldAutoScrollMessage(gStringVar4); +} + +void sub_811EF6C(void) +{ + int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE; + u16 easyChatWord = sub_811EE90(groupId); + CopyEasyChatWord(gStringVar2, easyChatWord); +} + +u8 sub_811EF98(u8 additionalPhraseId) +{ + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId & 0x7; + return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1; +} + +void sub_811EFC0(u8 additionalPhraseId) +{ + if (additionalPhraseId < 33) + { + int byteOffset = additionalPhraseId / 8; + int shift = additionalPhraseId & 0x7; + gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; + } +} + +u8 sub_811EFF0(void) +{ + u8 i; + u8 numAdditionalPhrasesUnlocked; + + for (i = 0, numAdditionalPhrasesUnlocked = 0; i < 33; i++) + { + if (sub_811EF98(i)) + numAdditionalPhrasesUnlocked++; + } + + return numAdditionalPhrasesUnlocked; +} diff --git a/src/mail.c b/src/mail.c index 45e96e85e..aa4ba571f 100644 --- a/src/mail.c +++ b/src/mail.c @@ -102,7 +102,7 @@ struct MailRead /*0x021d*/ u8 language; /*0x021e*/ bool8 playerIsSender; /*0x0220*/ u8 * (*parserSingle)(u8 *dest, u16 word); - /*0x0224*/ void (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); + /*0x0224*/ u8 * (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2); /*0x0228*/ const struct MailLayout *layout; /*0x022c*/ u8 bg1TilemapBuffer[0x1000]; /*0x122c*/ u8 bg2TilemapBuffer[0x1000]; -- cgit v1.2.3 From 7742e28dad96fd908d87a3412d0127be10f65ed0 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 25 Feb 2019 22:20:00 +0100 Subject: Easy chat nonmatchings fix do {} while(0); --- src/easy_chat.c | 550 ++++++++++---------------------------------------------- 1 file changed, 96 insertions(+), 454 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 51b25c42a..3fdc88823 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -790,47 +790,51 @@ bool32 sub_811AB44(void) return FALSE; } -#ifdef NONMATCHING static u16 sub_811AB68(void) { - if (gMain.newKeys & A_BUTTON) - { - sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - return 9; - } - else if (gMain.newKeys & B_BUTTON) - { - return sub_811B150(); - } - else if (gMain.newKeys & START_BUTTON) - { - return sub_811B1B4(); - } - else if (gMain.newKeys & DPAD_UP) - { - gEasyChatScreen->mainCursorRow--; - } - else if (gMain.newKeys & DPAD_LEFT) - { - gEasyChatScreen->mainCursorColumn--; - } - else if (gMain.newKeys & DPAD_DOWN) - { - gEasyChatScreen->mainCursorRow++; - } - else if (gMain.newKeys & DPAD_RIGHT) - { - gEasyChatScreen->mainCursorColumn++; - } - else + do { + if (gMain.newKeys & A_BUTTON) + { + sub_811BF78(); + gEasyChatScreen->state = 2; + gEasyChatScreen->unk_0a = 0; + gEasyChatScreen->unk_0b = 0; + gEasyChatScreen->unk_0c = 0; + return 9; + } + else if (gMain.newKeys & B_BUTTON) + { + return sub_811B150(); + } + else if (gMain.newKeys & START_BUTTON) + { + return sub_811B1B4(); + } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow++; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } + return 0; - } - + } while (0); + if (gEasyChatScreen->mainCursorRow < 0) gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; @@ -857,238 +861,61 @@ static u16 sub_811AB68(void) return 2; } -#else -NAKED -static u16 sub_811AB68(void) -{ - asm_unified("\n\ - push {r4-r7,lr}\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811ABB8\n\ - bl sub_811BF78\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r3, [r1]\n\ - movs r2, 0\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x4]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xA]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xB]\n\ - ldr r0, [r1]\n\ - strb r2, [r0, 0xC]\n\ - movs r0, 0x9\n\ - b RETURN\n\ - .pool\n\ -_0811AB9C:\n\ - movs r0, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC68_dpad_left\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC58_dpad_down\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC48_dpad_right\n\ - movs r0, 0\n\ - b RETURN\n\ -_0811ABB8:\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC78_b_button\n\ - movs r0, 0x8\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0811AC7E_start_button\n\ - movs r0, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AB9C\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ -_0811ABD8:\n\ - strb r0, [r1, 0x6]\n\ -_0811ABDA:\n\ - adds r7, r2, 0\n\ - adds r4, r7, 0\n\ - ldr r2, [r4]\n\ - movs r0, 0x6\n\ - ldrsb r0, [r2, r0]\n\ - ldr r6, =gEasyChatScreenTemplates\n\ - cmp r0, 0\n\ - bge _0811ABF8\n\ - ldrb r0, [r2, 0x1]\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r1, r6\n\ - ldrb r0, [r1, 0x2]\n\ - strb r0, [r2, 0x6]\n\ -_0811ABF8:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - adds r5, r6, 0\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r5\n\ - ldrb r0, [r0, 0x2]\n\ - cmp r2, r0\n\ - ble _0811AC14\n\ - movs r0, 0\n\ - strb r0, [r3, 0x6]\n\ -_0811AC14:\n\ - ldr r3, [r4]\n\ - movs r2, 0x6\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r5\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r2, r0\n\ - bne _0811AC88\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0x2\n\ - ble _0811AC36\n\ - movs r0, 0x2\n\ - strb r0, [r3, 0x5]\n\ -_0811AC36:\n\ - ldr r1, [r4]\n\ - movs r0, 0x1\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x3\n\ - b RETURN\n\ - .pool\n\ -_0811AC48_dpad_right:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC58_dpad_down:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - adds r0, 0x1\n\ - b _0811ABD8\n\ - .pool\n\ -_0811AC68_dpad_left:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811ABDA\n\ - .pool\n\ -_0811AC78_b_button:\n\ - bl sub_811B150\n\ - b _0811AC82\n\ -_0811AC7E_start_button:\n\ - bl sub_811B1B4\n\ -_0811AC82:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b RETURN\n\ -_0811AC88:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r3, r0]\n\ - cmp r0, 0\n\ - bge _0811AC96\n\ - ldrb r0, [r1, 0x1]\n\ - subs r0, 0x1\n\ - strb r0, [r3, 0x5]\n\ -_0811AC96:\n\ - ldr r3, [r4]\n\ - movs r2, 0x5\n\ - ldrsb r2, [r3, r2]\n\ - ldrb r1, [r3, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r2, r0\n\ - blt _0811ACB0\n\ - movs r0, 0\n\ - strb r0, [r3, 0x5]\n\ -_0811ACB0:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811ACCA\n\ - ldr r2, [r7]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811ACCA\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811ACCA:\n\ - movs r0, 0x2\n\ -RETURN:\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING - -#ifdef NONMATCHING + static u16 sub_811ACDC(void) { - int numFooterColumns; - - if (gMain.newKeys & A_BUTTON) + do { - switch (gEasyChatScreen->mainCursorColumn) + if (gMain.newKeys & A_BUTTON) + { + switch (gEasyChatScreen->mainCursorColumn) + { + case 0: + return sub_811B184(); + case 1: + return sub_811B150(); + case 2: + return sub_811B1B4(); + case 3: + return sub_811B264(); + } + } + + if (gMain.newKeys & B_BUTTON) { - case 0: - return sub_811B184(); - case 1: return sub_811B150(); - case 2: + } + else if (gMain.newKeys & START_BUTTON) + { return sub_811B1B4(); - case 3: - return sub_811B264(); } - } + else if (gMain.newKeys & DPAD_UP) + { + gEasyChatScreen->mainCursorRow--; + break; + } + else if (gMain.newKeys & DPAD_LEFT) + { + gEasyChatScreen->mainCursorColumn--; + break; + } + else if (gMain.newKeys & DPAD_DOWN) + { + gEasyChatScreen->mainCursorRow = 0; + break; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gEasyChatScreen->mainCursorColumn++; + break; + } - if (gMain.newKeys & B_BUTTON) - return sub_811B150(); - else if (gMain.newKeys & START_BUTTON) - return sub_811B1B4(); - else if (gMain.newKeys & DPAD_UP) - gEasyChatScreen->mainCursorRow--; - else if (gMain.newKeys & DPAD_LEFT) - gEasyChatScreen->mainCursorColumn--; - else if (gMain.newKeys & DPAD_DOWN) - gEasyChatScreen->mainCursorRow = 0; - else if (gMain.newKeys & DPAD_RIGHT) - gEasyChatScreen->mainCursorColumn++; - else return 0; + } while (0); if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) { - numFooterColumns = sub_811BA3C() ? 4 : 3; + int numFooterColumns = sub_811BA3C() ? 4 : 3; if (gEasyChatScreen->mainCursorColumn < 0) gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; @@ -1100,198 +927,13 @@ static u16 sub_811ACDC(void) if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; - + if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) gEasyChatScreen->mainCursorColumn = 0; gEasyChatScreen->state = 0; return 2; } -#else -NAKED -static u16 sub_811ACDC(void) -{ - asm_unified("\n\ - push {r4-r6,lr}\n\ - ldr r2, =gMain\n\ - ldrh r1, [r2, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0811AD4A\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0x5]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _0811AD3E\n\ - b _0811AD24\n\ - .pool\n\ -_0811AD04:\n\ - movs r0, 0x20\n\ - ands r0, r2\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0\n\ - bne _0811ADE0\n\ - movs r0, 0x80\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADD0\n\ - movs r0, 0x10\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADC0\n\ - movs r0, 0\n\ - b _0811AE32\n\ -_0811AD24:\n\ - cmp r0, 0x1\n\ - bgt _0811AD2E\n\ - cmp r0, 0\n\ - beq _0811AD38\n\ - b _0811AD4A\n\ -_0811AD2E:\n\ - cmp r0, 0x2\n\ - beq _0811ADF6\n\ - cmp r0, 0x3\n\ - beq _0811AD44\n\ - b _0811AD4A\n\ -_0811AD38:\n\ - bl sub_811B184\n\ - b _0811ADFA\n\ -_0811AD3E:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811AD44:\n\ - bl sub_811B264\n\ - b _0811ADFA\n\ -_0811AD4A:\n\ - ldrh r2, [r2, 0x2E]\n\ - movs r0, 0x2\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF0\n\ - movs r0, 0x8\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _0811ADF6\n\ - movs r0, 0x40\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - beq _0811AD04\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x6]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x6]\n\ -_0811AD6E:\n\ - adds r6, r2, 0\n\ -_0811AD70:\n\ - adds r5, r6, 0\n\ - ldr r4, [r5]\n\ - movs r3, 0x6\n\ - ldrsb r3, [r4, r3]\n\ - ldr r2, =gEasyChatScreenTemplates\n\ - ldrb r1, [r4, 0x1]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r0, r2\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r3, r0\n\ - bne _0811AE00\n\ - bl sub_811BA3C\n\ - movs r2, 0x3\n\ - cmp r0, 0\n\ - beq _0811AD96\n\ - movs r2, 0x4\n\ -_0811AD96:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0\n\ - bge _0811ADA4\n\ - subs r0, r2, 0x1\n\ - strb r0, [r1, 0x5]\n\ -_0811ADA4:\n\ - ldr r1, [r5]\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, r2\n\ - blt _0811ADB2\n\ - movs r0, 0\n\ - strb r0, [r1, 0x5]\n\ -_0811ADB2:\n\ - movs r0, 0x3\n\ - b _0811AE32\n\ - .pool\n\ -_0811ADC0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADD0:\n\ - ldr r1, =gEasyChatScreen\n\ - ldr r0, [r1]\n\ - strb r3, [r0, 0x6]\n\ - adds r6, r1, 0\n\ - b _0811AD70\n\ - .pool\n\ -_0811ADE0:\n\ - ldr r2, =gEasyChatScreen\n\ - ldr r1, [r2]\n\ - ldrb r0, [r1, 0x5]\n\ - subs r0, 0x1\n\ - strb r0, [r1, 0x5]\n\ - b _0811AD6E\n\ - .pool\n\ -_0811ADF0:\n\ - bl sub_811B150\n\ - b _0811ADFA\n\ -_0811ADF6:\n\ - bl sub_811B1B4\n\ -_0811ADFA:\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - b _0811AE32\n\ -_0811AE00:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r4, r0]\n\ - ldrb r1, [r1, 0x1]\n\ - cmp r0, r1\n\ - blt _0811AE0E\n\ - subs r0, r1, 0x1\n\ - strb r0, [r4, 0x5]\n\ -_0811AE0E:\n\ - bl sub_811AB44\n\ - cmp r0, 0\n\ - beq _0811AE28\n\ - ldr r2, [r6]\n\ - ldr r0, [r2, 0x4]\n\ - ldr r1, =0x00ffff00\n\ - ands r0, r1\n\ - ldr r1, =0x00040100\n\ - cmp r0, r1\n\ - bne _0811AE28\n\ - movs r0, 0\n\ - strb r0, [r2, 0x5]\n\ -_0811AE28:\n\ - ldr r0, =gEasyChatScreen\n\ - ldr r1, [r0]\n\ - movs r0, 0\n\ - strb r0, [r1, 0x4]\n\ - movs r0, 0x2\n\ -_0811AE32:\n\ - pop {r4-r6}\n\ - pop {r1}\n\ - bx r1\n\ - .pool"); -} -#endif // NONMATCHING static u16 sub_811AE44(void) { @@ -1617,7 +1259,7 @@ static int sub_811B2B0(void) var1 = sub_811F5B0(); if (var1 == 0) return 0; - + gEasyChatScreen->unk_0f = (var1 - 1) / 2; gEasyChatScreen->unk_0e = 0; gEasyChatScreen->unk_10 = 0; @@ -1984,7 +1626,7 @@ static u16 sub_811B794(u32 arg0) gEasyChatScreen->unk_0e += 4; if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; - + sub_811B9A0(); return 22; } @@ -2287,7 +1929,7 @@ static int sub_811BD64(void) if (gEasyChatScreen->kind == 17) return sub_811BCF4(); - + saveBlock1 = gSaveBlock1Ptr; for (i = 0; i < 9; i++) { @@ -2401,7 +2043,7 @@ int sub_811BF88(int easyChatWord) static bool8 sub_811BF8C(void) { if (!sub_811CE94()) - return 0; + return 0; else return 1; } @@ -2555,7 +2197,7 @@ static bool8 sub_811C30C(void) int trueStringWidth; u8 var2; u8 sp0[64]; - + ecWordBuffer = sub_811BA94(); var0 = sub_811BA68(); cursorColumn = sub_811BAB8(); @@ -2775,7 +2417,7 @@ static bool8 sub_811C6C0(void) if (!sub_811DAA4() && !sub_811E5B8()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + gUnknown_0203A11C->unk0++; } break; case 2: @@ -3517,7 +3159,7 @@ static void sub_811D424(u16 *tilemap) x++; for (; x < right; x++) tilemap[y * 32 + x] = 0x1000; - + tilemap[y* 32 + x] = 0x1007; } } @@ -4456,10 +4098,10 @@ u16 EasyChat_GetNumWordsInGroup(u8 groupId) { if (groupId == EC_GROUP_POKEMON) return GetNationalPokedexCount(FLAG_GET_SEEN); - + if (sub_811EA28(groupId)) - return gEasyChatGroups[groupId].numEnabledWords; - + return gEasyChatGroups[groupId].numEnabledWords; + return 0; } @@ -4472,7 +4114,7 @@ bool8 sub_811EAA4(u16 easyChatWord) const u16 *list; if (easyChatWord == 0xFFFF) return FALSE; - + groupId = EC_GROUP(easyChatWord); index = EC_INDEX(easyChatWord); if (groupId >= EC_NUM_GROUPS) -- cgit v1.2.3 From b60611c38e904dac5c83f76fc2fbb880baaf0d33 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Feb 2019 11:17:41 -0600 Subject: Finish decompiling easy_chat.c code --- src/easy_chat.c | 464 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 443 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 3fdc88823..6a103dd7b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -141,9 +141,26 @@ struct EasyChatGroup u16 numEnabledWords; }; +struct Unk203A120 +{ + u16 unk0; + u16 unk2[EC_NUM_GROUPS]; + u16 unk2E[27]; + u16 unk64[27][270]; + u8 filler3958[0x2C]; + u16 unk3984[0x10E]; + u16 unk3BA0; +}; /*size = 0x3BA4*/ + +struct EasyChatWordsByLetter +{ + const u16 *words; + int numWords; +}; + EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; -EWRAM_DATA void *gUnknown_0203A120 = 0; +EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; static void sub_811A2C0(u8); static void sub_811A278(void); @@ -178,9 +195,9 @@ static bool8 sub_811BFA4(void); static void sub_811C13C(void); static void sub_811C158(u16); static bool8 sub_811C170(void); -bool8 sub_811F28C(void); -void sub_811F2B8(void); -u8 sub_811F3AC(void); +static bool8 sub_811F28C(void); +static void sub_811F2B8(void); +static u8 sub_811F3AC(void); int sub_811BA3C(void); int sub_811B184(void); int sub_811B264(void); @@ -202,13 +219,13 @@ static int sub_811BDB0(void); static int sub_811BD2C(void); int sub_811BCF4(void); static u16 sub_811B8E8(void); -int sub_811F3B8(u8); -void sub_811F548(int, u16); +static u8 sub_811F3B8(u8); +static void sub_811F548(int, u16); static int sub_811B908(void); -u16 sub_811F5B0(void); +static u16 sub_811F5B0(void); static void sub_811B488(u16); u16 sub_811B940(void); -u16 sub_811F578(u16); +static u16 sub_811F578(u16); int sub_811BF88(int); static u16 sub_811B8C8(void); static int sub_811B568(u32); @@ -310,7 +327,7 @@ static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); static void sub_811D794(void); -const u8 *sub_811F424(u8); +static const u8 *GetEasyChatWordGroupName(u8); static void sub_811D864(u8, u8); static void sub_811D950(u8, u8); static void sub_811DADC(u8); @@ -319,9 +336,16 @@ static void sub_811E0EC(s8, s8); static void sub_811E1A4(s8, s8); static void sub_811E2DC(struct Sprite *); static void sub_811E34C(u8, u8); -bool8 sub_811F0F8(void); -u16 sub_811F108(void); -u8 *CopyEasyChatWordPadded(u8 *, u16, u16); +static bool8 sub_811F0F8(void); +static u16 sub_811F108(void); +static void sub_811F2D4(void); +static void sub_811F46C(void); +static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); +static u8 sub_811F860(u16); +static u16 sub_811F5C4(u16); +static u16 sub_811F6B8(u16); +bool8 sub_811F764(u16, u8); +static int sub_811F838(u16); extern const struct { u16 word; @@ -356,6 +380,13 @@ extern const u8 gUnknown_08597D08[]; extern const u8 gUnknown_08597E60[][4]; extern const u8 *const gUnknown_08597E6C[][4]; extern const struct EasyChatGroup gEasyChatGroups[]; +extern const u16 gUnknown_0859E62C[]; +extern const u16 gUnknown_0859E634[]; +extern const u16 gUnknown_0859E640[]; +extern const u16 gUnknown_0859E64C[]; +extern const u8 *const gEasyChatGroupNamePointers[]; +extern const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[]; +extern const u16 gUnknown_0859E658[1]; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -1248,8 +1279,8 @@ static int sub_811B2B0(void) if (gEasyChatScreen->unk_09 == 0) { - u8 var0 = sub_811F3B8(sub_811B8E8()); - sub_811F548(0, var0); + u8 groupId = sub_811F3B8(sub_811B8E8()); + sub_811F548(0, groupId); } else { @@ -3265,14 +3296,14 @@ static void sub_811D6F4(void) { for (x = 0; x < 2; x++) { - u8 index = sub_811F3B8(i++); - if (index == 22) + u8 groupId = sub_811F3B8(i++); + if (groupId == EC_NUM_GROUPS) { sub_811DDAC(sub_811BBBC(), 0); return; } - sub_811D028(2, 1, sub_811F424(index), x * 84 + 10, y, 0xFF, NULL); + sub_811D028(2, 1, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, 0xFF, NULL); } y += 16; @@ -4077,7 +4108,7 @@ static void sub_811E948(void) PutWindowTilemap(windowId); } -bool8 sub_811EA28(u8 groupId) +static bool8 sub_811EA28(u8 groupId) { switch (groupId) { @@ -4397,10 +4428,10 @@ void sub_811EF6C(void) CopyEasyChatWord(gStringVar2, easyChatWord); } -u8 sub_811EF98(u8 additionalPhraseId) +static bool8 sub_811EF98(u8 additionalPhraseId) { int byteOffset = additionalPhraseId / 8; - int shift = additionalPhraseId & 0x7; + int shift = additionalPhraseId % 8; return (gSaveBlock1Ptr->additionalPhrases[byteOffset] >> shift) & 1; } @@ -4409,7 +4440,7 @@ void sub_811EFC0(u8 additionalPhraseId) if (additionalPhraseId < 33) { int byteOffset = additionalPhraseId / 8; - int shift = additionalPhraseId & 0x7; + int shift = additionalPhraseId % 8; gSaveBlock1Ptr->additionalPhrases[byteOffset] |= 1 << shift; } } @@ -4427,3 +4458,394 @@ u8 sub_811EFF0(void) return numAdditionalPhrasesUnlocked; } + +u16 sub_811F01C(void) +{ + u16 i; + u16 additionalPhraseId; + u8 numAdditionalPhrasesUnlocked = sub_811EFF0(); + if (numAdditionalPhrasesUnlocked == 33) + return 0xFFFF; + + additionalPhraseId = Random() % (33 - numAdditionalPhrasesUnlocked); + for (i = 0; i < 33; i++) + { + if (!sub_811EF98(i)) + { + if (additionalPhraseId) + { + additionalPhraseId--; + } + else + { + sub_811EFC0(i); + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + } + + return 0xFFFF; +} + +u16 sub_811F090(void) +{ + u16 i; + u16 additionalPhraseId = sub_811EFF0(); + if (additionalPhraseId == 0) + return 0xFFFF; + + additionalPhraseId = Random() % additionalPhraseId; + for (i = 0; i < 33; i++) + { + if (sub_811EF98(i)) + { + if (additionalPhraseId) + additionalPhraseId--; + else + return EC_WORD(EC_GROUP_TRENDY_SAYING, i); + } + } + + return 0xFFFF; +} + +static bool8 sub_811F0F8(void) +{ + return IsNationalPokedexEnabled(); +} + +static u16 sub_811F108(void) +{ + u16 i; + u16 numWords; + const u16 *species; + u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON); + if (index == 0) + return 0xFFFF; + + index = Random() % index; + species = gEasyChatGroups[EC_GROUP_POKEMON].wordData.valueList; + numWords = gEasyChatGroups[EC_GROUP_POKEMON].numWords; + for (i = 0; i < numWords; i++) + { + u16 dexNum = SpeciesToNationalPokedexNum(*species); + if (GetSetPokedexFlag(dexNum, FLAG_GET_SEEN)) + { + if (index) + index--; + else + return EC_WORD(EC_GROUP_POKEMON, *species); + } + + species++; + } + + return 0xFFFF; +} + +void InitEasyChatPhrases(void) +{ + u16 i, j; + + for (i = 0; i < 4; i++) + gSaveBlock1Ptr->unk2BB0[i] = gUnknown_0859E62C[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BBC[i] = gUnknown_0859E634[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BC8[i] = gUnknown_0859E640[i]; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->unk2BD4[i] = gUnknown_0859E64C[i]; + + for (i = 0; i < MAIL_COUNT; i++) + { + for (j = 0; j < MAIL_WORDS_COUNT; j++) + gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; + } + + // BUG: This is supposed to clear 64 bits, but this loop is clearing 64 bytes. + // However, this bug has no resulting effect on gameplay because only the + // Mauville old man data is corrupted, which is initialized directly after + // this function is called when starting a new game. + for (i = 0; i < 64; i++) + gSaveBlock1Ptr->additionalPhrases[i] = 0; +} + +static bool8 sub_811F28C(void) +{ + gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); + if (!gUnknown_0203A120) + return FALSE; + + sub_811F2D4(); + sub_811F46C(); + return TRUE; +} + +static void sub_811F2B8(void) +{ + if (gUnknown_0203A120) + FREE_AND_SET_NULL(gUnknown_0203A120); +} + +static void sub_811F2D4(void) +{ + int i; + + gUnknown_0203A120->unk0 = 0; + if (GetNationalPokedexCount(FLAG_GET_SEEN)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + + for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + + if (FlagGet(FLAG_SYS_GAME_CLEAR)) + { + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + } + + if (FlagGet(FLAG_SYS_HIPSTER_MEET)) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + + if (IsNationalPokedexEnabled()) + gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; +} + +static u8 sub_811F3AC(void) +{ + return gUnknown_0203A120->unk0; +} + +static u8 sub_811F3B8(u8 index) +{ + if (index >= gUnknown_0203A120->unk0) + return EC_NUM_GROUPS; + else + return gUnknown_0203A120->unk2[index]; +} + +u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) +{ + u16 i; + u8 *str = StringCopy(dest, gEasyChatGroupNamePointers[groupId]); + for (i = str - dest; i < totalChars; i++) + { + *str = CHAR_SPACE; + str++; + } + + *str = EOS; + return str; +} + +static const u8 *GetEasyChatWordGroupName(u8 groupId) +{ + return gEasyChatGroupNamePointers[groupId]; +} + +static u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars) +{ + u16 i; + u8 *str = CopyEasyChatWord(dest, easyChatWord); + for (i = str - dest; i < totalChars; i++) + { + *str = CHAR_SPACE; + str++; + } + + *str = EOS; + return str; +} + +static void sub_811F46C(void) +{ + int i, j, k; + int numWords; + const u16 *words; + u16 numToProcess; + int index; + + for (i = 0; i < 27; i++) + { + numWords = gEasyChatWordsByLetterPointers[i].numWords; + words = gEasyChatWordsByLetterPointers[i].words; + gUnknown_0203A120->unk2E[i] = 0; + index = 0; + for (j = 0; j < numWords; j++) + { + if (*words == 0xFFFF) + { + words++; + numToProcess = *words; + words++; + j += 1 + numToProcess; + } + else + { + numToProcess = 1; + } + + for (k = 0; k < numToProcess; k++) + { + if (sub_811F860(words[k])) + { + gUnknown_0203A120->unk64[i][index++] = words[k]; + gUnknown_0203A120->unk2E[i]++; + break; + } + } + + words += numToProcess; + } + } +} + +static void sub_811F548(int arg0, u16 groupId) +{ + if (!arg0) + gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + else + gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); +} + +static u16 sub_811F578(u16 arg0) +{ + if (arg0 >= gUnknown_0203A120->unk3BA0) + return 0xFFFF; + else + return gUnknown_0203A120->unk3984[arg0]; +} + +static u16 sub_811F5B0(void) +{ + return gUnknown_0203A120->unk3BA0; +} + +static u16 sub_811F5C4(u16 groupId) +{ + u32 i; + int totalWords; + const u16 *list; + const struct EasyChatWordInfo *wordInfo; + u16 numWords = gEasyChatGroups[groupId].numWords; + + if (groupId == EC_GROUP_POKEMON || groupId == EC_GROUP_POKEMON_2 + || groupId == EC_GROUP_MOVE_1 || groupId == EC_GROUP_MOVE_2) + { + list = gEasyChatGroups[groupId].wordData.valueList; + for (i = 0, totalWords = 0; i < numWords; i++) + { + if (sub_811F764(list[i], groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + } + + return totalWords; + } + else + { + wordInfo = gEasyChatGroups[groupId].wordData.words; + for (i = 0, totalWords = 0; i < numWords; i++) + { + u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; + if (sub_811F764(alphabeticalOrder, groupId)) + gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + } + + return totalWords; + } +} + +static u16 sub_811F6B8(u16 alphabeticalGroup) +{ + u16 i; + u16 totalWords; + + for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + + return totalWords; +} + +static bool8 sub_811F72C(u8 arg0) +{ + int i; + for (i = 0; i < gUnknown_0203A120->unk0; i++) + { + if (gUnknown_0203A120->unk2[i] == arg0) + return TRUE; + } + + return FALSE; +} + +bool8 sub_811F764(u16 wordIndex, u8 groupId) +{ + switch (groupId) + { + case EC_GROUP_POKEMON: + return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + case EC_GROUP_POKEMON_2: + if (sub_811F838(wordIndex)) + GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); + return TRUE; + case EC_GROUP_MOVE_1: + case EC_GROUP_MOVE_2: + return TRUE; + case EC_GROUP_TRENDY_SAYING: + return sub_811EF98(wordIndex); + default: + return gEasyChatGroups[groupId].wordData.words[wordIndex].enabled; + } +} + +static int sub_811F838(u16 species) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(gUnknown_0859E658); i++) + { + if (gUnknown_0859E658[i] == species) + return TRUE; + } + + return FALSE; +} + +static u8 sub_811F860(u16 easyChatWord) +{ + u8 groupId = EC_GROUP(easyChatWord); + u32 index = EC_INDEX(easyChatWord); + if (!sub_811F72C(groupId)) + return FALSE; + else + return sub_811F764(index, groupId); +} + +void InitializeEasyChatWordArray(u16 *words, u16 length) +{ + u16 i; + for (i = length - 1; i != 0xFFFF; i--) + *(words++) = 0xFFFF; +} + +void sub_811F8BC(void) +{ + int i; + u16 *words = GetSaveBlock1Field3564(); + for (i = 0; i < 4; i++) + words[i] = 0xFFFF; +} + +bool32 sub_811F8D8(int easyChatWord) +{ + int groupId = EC_GROUP(easyChatWord); + int mask = 0x7F; + int index = EC_INDEX(easyChatWord); + if (!sub_811EA28(groupId & mask)) + return FALSE; + else + return sub_811F764(index, groupId & mask); +} -- cgit v1.2.3 From 231355f84dccd11329d81d074fa36135cfad4f94 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 26 Feb 2019 11:24:12 -0600 Subject: Decompile easy_chat data --- src/data/easy_chat/easy_chat_group_actions.h | 471 ++++ src/data/easy_chat/easy_chat_group_adjectives.h | 219 ++ src/data/easy_chat/easy_chat_group_battle.h | 381 +++ src/data/easy_chat/easy_chat_group_conditions.h | 417 +++ src/data/easy_chat/easy_chat_group_endings.h | 417 +++ src/data/easy_chat/easy_chat_group_events.h | 177 ++ src/data/easy_chat/easy_chat_group_feelings.h | 417 +++ src/data/easy_chat/easy_chat_group_greetings.h | 255 ++ src/data/easy_chat/easy_chat_group_hobbies.h | 327 +++ src/data/easy_chat/easy_chat_group_lifestyle.h | 273 ++ src/data/easy_chat/easy_chat_group_misc.h | 255 ++ src/data/easy_chat/easy_chat_group_move_1.h | 158 ++ src/data/easy_chat/easy_chat_group_move_2.h | 204 ++ src/data/easy_chat/easy_chat_group_people.h | 453 ++++ src/data/easy_chat/easy_chat_group_pokemon.h | 206 ++ src/data/easy_chat/easy_chat_group_pokemon2.h | 255 ++ src/data/easy_chat/easy_chat_group_speech.h | 363 +++ src/data/easy_chat/easy_chat_group_status.h | 657 +++++ src/data/easy_chat/easy_chat_group_time.h | 273 ++ src/data/easy_chat/easy_chat_group_trainer.h | 165 ++ src/data/easy_chat/easy_chat_group_trendy_saying.h | 201 ++ src/data/easy_chat/easy_chat_group_voices.h | 381 +++ src/data/easy_chat/easy_chat_groups.h | 137 + src/data/easy_chat/easy_chat_words_by_letter.h | 2750 ++++++++++++++++++++ src/easy_chat.c | 1145 ++++++-- 25 files changed, 10729 insertions(+), 228 deletions(-) create mode 100755 src/data/easy_chat/easy_chat_group_actions.h create mode 100755 src/data/easy_chat/easy_chat_group_adjectives.h create mode 100755 src/data/easy_chat/easy_chat_group_battle.h create mode 100755 src/data/easy_chat/easy_chat_group_conditions.h create mode 100755 src/data/easy_chat/easy_chat_group_endings.h create mode 100755 src/data/easy_chat/easy_chat_group_events.h create mode 100755 src/data/easy_chat/easy_chat_group_feelings.h create mode 100755 src/data/easy_chat/easy_chat_group_greetings.h create mode 100755 src/data/easy_chat/easy_chat_group_hobbies.h create mode 100755 src/data/easy_chat/easy_chat_group_lifestyle.h create mode 100755 src/data/easy_chat/easy_chat_group_misc.h create mode 100755 src/data/easy_chat/easy_chat_group_move_1.h create mode 100755 src/data/easy_chat/easy_chat_group_move_2.h create mode 100755 src/data/easy_chat/easy_chat_group_people.h create mode 100755 src/data/easy_chat/easy_chat_group_pokemon.h create mode 100755 src/data/easy_chat/easy_chat_group_pokemon2.h create mode 100755 src/data/easy_chat/easy_chat_group_speech.h create mode 100755 src/data/easy_chat/easy_chat_group_status.h create mode 100755 src/data/easy_chat/easy_chat_group_time.h create mode 100755 src/data/easy_chat/easy_chat_group_trainer.h create mode 100755 src/data/easy_chat/easy_chat_group_trendy_saying.h create mode 100755 src/data/easy_chat/easy_chat_group_voices.h create mode 100755 src/data/easy_chat/easy_chat_groups.h create mode 100755 src/data/easy_chat/easy_chat_words_by_letter.h (limited to 'src') diff --git a/src/data/easy_chat/easy_chat_group_actions.h b/src/data/easy_chat/easy_chat_group_actions.h new file mode 100755 index 000000000..06a8e7303 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_actions.h @@ -0,0 +1,471 @@ +const u8 gEasyChatWord_Meets[] = _("MEETS"); +const u8 gEasyChatWord_Concede[] = _("CONCEDE"); +const u8 gEasyChatWord_Give[] = _("GIVE"); +const u8 gEasyChatWord_Gives[] = _("GIVES"); +const u8 gEasyChatWord_Played[] = _("PLAYED"); +const u8 gEasyChatWord_Plays[] = _("PLAYS"); +const u8 gEasyChatWord_Collect[] = _("COLLECT"); +const u8 gEasyChatWord_Walking[] = _("WALKING"); +const u8 gEasyChatWord_Walks[] = _("WALKS"); +const u8 gEasyChatWord_Says[] = _("SAYS"); +const u8 gEasyChatWord_Went[] = _("WENT"); +const u8 gEasyChatWord_Said[] = _("SAID"); +const u8 gEasyChatWord_WakeUp[] = _("WAKE UP"); +const u8 gEasyChatWord_WakesUp[] = _("WAKES UP"); +const u8 gEasyChatWord_Angers[] = _("ANGERS"); +const u8 gEasyChatWord_Teach[] = _("TEACH"); +const u8 gEasyChatWord_Teaches[] = _("TEACHES"); +const u8 gEasyChatWord_Please[] = _("PLEASE"); +const u8 gEasyChatWord_Learn[] = _("LEARN"); +const u8 gEasyChatWord_Change[] = _("CHANGE"); +const u8 gEasyChatWord_Story[] = _("STORY"); +const u8 gEasyChatWord_Trust[] = _("TRUST"); +const u8 gEasyChatWord_Lavish[] = _("LAVISH"); +const u8 gEasyChatWord_Listens[] = _("LISTENS"); +const u8 gEasyChatWord_Hearing[] = _("HEARING"); +const u8 gEasyChatWord_Trains[] = _("TRAINS"); +const u8 gEasyChatWord_Choose[] = _("CHOOSE"); +const u8 gEasyChatWord_Come[] = _("COME"); +const u8 gEasyChatWord_Came[] = _("CAME"); +const u8 gEasyChatWord_Search[] = _("SEARCH"); +const u8 gEasyChatWord_Make[] = _("MAKE"); +const u8 gEasyChatWord_Cause[] = _("CAUSE"); +const u8 gEasyChatWord_Know[] = _("KNOW"); +const u8 gEasyChatWord_Knows[] = _("KNOWS"); +const u8 gEasyChatWord_Refuse[] = _("REFUSE"); +const u8 gEasyChatWord_Stores[] = _("STORES"); +const u8 gEasyChatWord_Brag[] = _("BRAG"); +const u8 gEasyChatWord_Ignorant[] = _("IGNORANT"); +const u8 gEasyChatWord_Thinks[] = _("THINKS"); +const u8 gEasyChatWord_Believe[] = _("BELIEVE"); +const u8 gEasyChatWord_Slide[] = _("SLIDE"); +const u8 gEasyChatWord_Eats[] = _("EATS"); +const u8 gEasyChatWord_Use[] = _("USE"); +const u8 gEasyChatWord_Uses[] = _("USES"); +const u8 gEasyChatWord_Using[] = _("USING"); +const u8 gEasyChatWord_Couldnt[] = _("COULDN'T"); +const u8 gEasyChatWord_Capable[] = _("CAPABLE"); +const u8 gEasyChatWord_Disappear[] = _("DISAPPEAR"); +const u8 gEasyChatWord_Appear[] = _("APPEAR"); +const u8 gEasyChatWord_Throw[] = _("THROW"); +const u8 gEasyChatWord_Worry[] = _("WORRY"); +const u8 gEasyChatWord_Slept[] = _("SLEPT"); +const u8 gEasyChatWord_Sleep[] = _("SLEEP"); +const u8 gEasyChatWord_Release[] = _("RELEASE"); +const u8 gEasyChatWord_Drinks[] = _("DRINKS"); +const u8 gEasyChatWord_Runs[] = _("RUNS"); +const u8 gEasyChatWord_Run[] = _("RUN"); +const u8 gEasyChatWord_Works[] = _("WORKS"); +const u8 gEasyChatWord_Working[] = _("WORKING"); +const u8 gEasyChatWord_Talking[] = _("TALKING"); +const u8 gEasyChatWord_Talk[] = _("TALK"); +const u8 gEasyChatWord_Sink[] = _("SINK"); +const u8 gEasyChatWord_Smack[] = _("SMACK"); +const u8 gEasyChatWord_Pretend[] = _("PRETEND"); +const u8 gEasyChatWord_Praise[] = _("PRAISE"); +const u8 gEasyChatWord_Overdo[] = _("OVERDO"); +const u8 gEasyChatWord_Show[] = _("SHOW"); +const u8 gEasyChatWord_Looks[] = _("LOOKS"); +const u8 gEasyChatWord_Sees[] = _("SEES"); +const u8 gEasyChatWord_Seek[] = _("SEEK"); +const u8 gEasyChatWord_Own[] = _("OWN"); +const u8 gEasyChatWord_Take[] = _("TAKE"); +const u8 gEasyChatWord_Allow[] = _("ALLOW"); +const u8 gEasyChatWord_Forget[] = _("FORGET"); +const u8 gEasyChatWord_Forgets[] = _("FORGETS"); +const u8 gEasyChatWord_Appears[] = _("APPEARS"); +const u8 gEasyChatWord_Faint[] = _("FAINT"); +const u8 gEasyChatWord_Fainted[] = _("FAINTED"); + +const struct EasyChatWordInfo gEasyChatGroup_Actions[] = { + { + .text = gEasyChatWord_Meets, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Concede, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Give, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gives, + .alphabeticalOrder = 75, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Played, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plays, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Collect, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walking, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walks, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Says, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Went, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Said, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WakeUp, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WakesUp, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Angers, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teach, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teaches, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Please, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Learn, + .alphabeticalOrder = 76, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Change, + .alphabeticalOrder = 77, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Story, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trust, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lavish, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Listens, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hearing, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trains, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Choose, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Come, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Came, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Search, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Make, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cause, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Know, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Knows, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Refuse, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stores, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Brag, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ignorant, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thinks, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Believe, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slide, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eats, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Use, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Uses, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Using, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Couldnt, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Capable, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappear, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appear, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Throw, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Worry, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slept, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sleep, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Release, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drinks, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Runs, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Run, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Works, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Working, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talking, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talk, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sink, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smack, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pretend, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Praise, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overdo, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Show, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Looks, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sees, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seek, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Own, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Take, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Allow, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forget, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forgets, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appears, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Faint, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fainted, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_adjectives.h b/src/data/easy_chat/easy_chat_group_adjectives.h new file mode 100755 index 000000000..1c7474118 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_adjectives.h @@ -0,0 +1,219 @@ +const u8 gEasyChatWord_Wandering[] = _("WANDERING"); +const u8 gEasyChatWord_Rickety[] = _("RICKETY"); +const u8 gEasyChatWord_RockSolid[] = _("ROCK-SOLID"); +const u8 gEasyChatWord_Hungry[] = _("HUNGRY"); +const u8 gEasyChatWord_Tight[] = _("TIGHT"); +const u8 gEasyChatWord_Ticklish[] = _("TICKLISH"); +const u8 gEasyChatWord_Twirling[] = _("TWIRLING"); +const u8 gEasyChatWord_Spiraling[] = _("SPIRALING"); +const u8 gEasyChatWord_Thirsty[] = _("THIRSTY"); +const u8 gEasyChatWord_Lolling[] = _("LOLLING"); +const u8 gEasyChatWord_Silky[] = _("SILKY"); +const u8 gEasyChatWord_Sadly[] = _("SADLY"); +const u8 gEasyChatWord_Hopeless[] = _("HOPELESS"); +const u8 gEasyChatWord_Useless[] = _("USELESS"); +const u8 gEasyChatWord_Drooling[] = _("DROOLING"); +const u8 gEasyChatWord_Exciting[] = _("EXCITING"); +const u8 gEasyChatWord_Thick[] = _("THICK"); +const u8 gEasyChatWord_Smooth[] = _("SMOOTH"); +const u8 gEasyChatWord_Slimy[] = _("SLIMY"); +const u8 gEasyChatWord_Thin[] = _("THIN"); +const u8 gEasyChatWord_Break[] = _("BREAK"); +const u8 gEasyChatWord_Voracious[] = _("VORACIOUS"); +const u8 gEasyChatWord_Scatter[] = _("SCATTER"); +const u8 gEasyChatWord_Awesome[] = _("AWESOME"); +const u8 gEasyChatWord_Wimpy[] = _("WIMPY"); +const u8 gEasyChatWord_Wobbly[] = _("WOBBLY"); +const u8 gEasyChatWord_Shaky[] = _("SHAKY"); +const u8 gEasyChatWord_Ripped[] = _("RIPPED"); +const u8 gEasyChatWord_Shredded[] = _("SHREDDED"); +const u8 gEasyChatWord_Increasing[] = _("INCREASING"); +const u8 gEasyChatWord_Yet[] = _("YET"); +const u8 gEasyChatWord_Destroyed[] = _("DESTROYED"); +const u8 gEasyChatWord_Fiery[] = _("FIERY"); +const u8 gEasyChatWord_LoveyDovey[] = _("LOVEY-DOVEY"); +const u8 gEasyChatWord_Happily[] = _("HAPPILY"); +const u8 gEasyChatWord_Anticipation[] = _("ANTICIPATION"); + +const struct EasyChatWordInfo gEasyChatGroup_Adjectives[] = { + { + .text = gEasyChatWord_Wandering, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rickety, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RockSolid, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hungry, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tight, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ticklish, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Twirling, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spiraling, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thirsty, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lolling, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Silky, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sadly, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hopeless, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Useless, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drooling, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Exciting, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thick, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smooth, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Slimy, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thin, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Break, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Voracious, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Scatter, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awesome, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wimpy, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wobbly, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shaky, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ripped, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shredded, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Increasing, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yet, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Destroyed, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fiery, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LoveyDovey, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happily, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anticipation, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_battle.h b/src/data/easy_chat/easy_chat_group_battle.h new file mode 100755 index 000000000..0f97f50c9 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_battle.h @@ -0,0 +1,381 @@ +const u8 gEasyChatWord_MatchUp[] = _("MATCH UP"); +const u8 gEasyChatWord_Go[] = _("GO"); +const u8 gEasyChatWord_No1[] = _("NO. 1"); +const u8 gEasyChatWord_Decide[] = _("DECIDE"); +const u8 gEasyChatWord_LetMeWin[] = _("LET ME WIN"); +const u8 gEasyChatWord_Wins[] = _("WINS"); +const u8 gEasyChatWord_Win[] = _("WIN"); +const u8 gEasyChatWord_Won[] = _("WON"); +const u8 gEasyChatWord_IfIWin[] = _("IF I WIN"); +const u8 gEasyChatWord_WhenIWin[] = _("WHEN I WIN"); +const u8 gEasyChatWord_CantWin[] = _("CAN'T WIN"); +const u8 gEasyChatWord_CanWin[] = _("CAN WIN"); +const u8 gEasyChatWord_NoMatch[] = _("NO MATCH"); +const u8 gEasyChatWord_Spirit[] = _("SPIRIT"); +const u8 gEasyChatWord_Decided[] = _("DECIDED"); +const u8 gEasyChatWord_TrumpCard[] = _("TRUMP CARD"); +const u8 gEasyChatWord_TakeThat[] = _("TAKE THAT"); +const u8 gEasyChatWord_ComeOn[] = _("COME ON"); +const u8 gEasyChatWord_Attack[] = _("ATTACK"); +const u8 gEasyChatWord_Surrender[] = _("SURRENDER"); +const u8 gEasyChatWord_Gutsy[] = _("GUTSY"); +const u8 gEasyChatWord_Talent[] = _("TALENT"); +const u8 gEasyChatWord_Strategy[] = _("STRATEGY"); +const u8 gEasyChatWord_Smite[] = _("SMITE"); +const u8 gEasyChatWord_Match[] = _("MATCH"); +const u8 gEasyChatWord_Victory[] = _("VICTORY"); +const u8 gEasyChatWord_Offensive[] = _("OFFENSIVE"); +const u8 gEasyChatWord_Sense[] = _("SENSE"); +const u8 gEasyChatWord_Versus[] = _("VERSUS"); +const u8 gEasyChatWord_Fights[] = _("FIGHTS"); +const u8 gEasyChatWord_Power[] = _("POWER"); +const u8 gEasyChatWord_Challenge[] = _("CHALLENGE"); +const u8 gEasyChatWord_Strong[] = _("STRONG"); +const u8 gEasyChatWord_TooStrong[] = _("TOO STRONG"); +const u8 gEasyChatWord_GoEasy[] = _("GO EASY"); +const u8 gEasyChatWord_Foe[] = _("FOE"); +const u8 gEasyChatWord_Genius[] = _("GENIUS"); +const u8 gEasyChatWord_Legend[] = _("LEGEND"); +const u8 gEasyChatWord_Escape[] = _("ESCAPE"); +const u8 gEasyChatWord_Aim[] = _("AIM"); +const u8 gEasyChatWord_Battle[] = _("BATTLE"); +const u8 gEasyChatWord_Fight[] = _("FIGHT"); +const u8 gEasyChatWord_Resuscitate[] = _("RESUSCITATE"); +const u8 gEasyChatWord_Points[] = _("POINTS"); +const u8 gEasyChatWord_Serious[] = _("SERIOUS"); +const u8 gEasyChatWord_GiveUp[] = _("GIVE UP"); +const u8 gEasyChatWord_Loss[] = _("LOSS"); +const u8 gEasyChatWord_IfILose[] = _("IF I LOSE"); +const u8 gEasyChatWord_Lost[] = _("LOST"); +const u8 gEasyChatWord_Lose[] = _("LOSE"); +const u8 gEasyChatWord_Guard[] = _("GUARD"); +const u8 gEasyChatWord_Partner[] = _("PARTNER"); +const u8 gEasyChatWord_Reject[] = _("REJECT"); +const u8 gEasyChatWord_Accept[] = _("ACCEPT"); +const u8 gEasyChatWord_Invincible[] = _("INVINCIBLE"); +const u8 gEasyChatWord_Received[] = _("RECEIVED"); +const u8 gEasyChatWord_Easy[] = _("EASY"); +const u8 gEasyChatWord_Weak[] = _("WEAK"); +const u8 gEasyChatWord_TooWeak[] = _("TOO WEAK"); +const u8 gEasyChatWord_Pushover[] = _("PUSHOVER"); +const u8 gEasyChatWord_Leader[] = _("LEADER"); +const u8 gEasyChatWord_Rule[] = _("RULE"); +const u8 gEasyChatWord_Move[] = _("MOVE"); + +const struct EasyChatWordInfo gEasyChatGroup_Battle[] = { + { + .text = gEasyChatWord_MatchUp, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Go, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_No1, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Decide, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LetMeWin, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wins, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Win, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Won, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IfIWin, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhenIWin, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CantWin, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CanWin, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NoMatch, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spirit, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Decided, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TrumpCard, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TakeThat, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ComeOn, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Attack, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Surrender, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gutsy, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Talent, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Strategy, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smite, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Match, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Victory, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Offensive, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sense, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Versus, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fights, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Power, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Challenge, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Strong, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooStrong, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoEasy, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Foe, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Genius, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Legend, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Escape, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aim, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Battle, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fight, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Resuscitate, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Points, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Serious, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GiveUp, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Loss, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IfILose, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lost, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lose, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Guard, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Partner, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Reject, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Accept, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Invincible, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Received, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Easy, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weak, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooWeak, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pushover, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Leader, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rule, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Move, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_conditions.h b/src/data/easy_chat/easy_chat_group_conditions.h new file mode 100755 index 000000000..a8d8ee874 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_conditions.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Hot[] = _("HOT"); +const u8 gEasyChatWord_Exists[] = _("EXISTS"); +const u8 gEasyChatWord_Excess[] = _("EXCESS"); +const u8 gEasyChatWord_Approved[] = _("APPROVED"); +const u8 gEasyChatWord_Has[] = _("HAS"); +const u8 gEasyChatWord_Good[] = _("GOOD"); +const u8 gEasyChatWord_Less[] = _("LESS"); +const u8 gEasyChatWord_Momentum[] = _("MOMENTUM"); +const u8 gEasyChatWord_Going[] = _("GOING"); +const u8 gEasyChatWord_Weird[] = _("WEIRD"); +const u8 gEasyChatWord_Busy[] = _("BUSY"); +const u8 gEasyChatWord_Together[] = _("TOGETHER"); +const u8 gEasyChatWord_Full[] = _("FULL"); +const u8 gEasyChatWord_Absent[] = _("ABSENT"); +const u8 gEasyChatWord_Being[] = _("BEING"); +const u8 gEasyChatWord_Need[] = _("NEED"); +const u8 gEasyChatWord_Tasty[] = _("TASTY"); +const u8 gEasyChatWord_Skilled[] = _("SKILLED"); +const u8 gEasyChatWord_Noisy[] = _("NOISY"); +const u8 gEasyChatWord_Big[] = _("BIG"); +const u8 gEasyChatWord_Late[] = _("LATE"); +const u8 gEasyChatWord_Close[] = _("CLOSE"); +const u8 gEasyChatWord_Docile[] = _("DOCILE"); +const u8 gEasyChatWord_Amusing[] = _("AMUSING"); +const u8 gEasyChatWord_Entertaining[] = _("ENTERTAINING"); +const u8 gEasyChatWord_Perfection[] = _("PERFECTION"); +const u8 gEasyChatWord_Pretty[] = _("PRETTY"); +const u8 gEasyChatWord_Healthy[] = _("HEALTHY"); +const u8 gEasyChatWord_Excellent[] = _("EXCELLENT"); +const u8 gEasyChatWord_UpsideDown[] = _("UPSIDE DOWN"); +const u8 gEasyChatWord_Cold[] = _("COLD"); +const u8 gEasyChatWord_Refreshing[] = _("REFRESHING"); +const u8 gEasyChatWord_Unavoidable[] = _("UNAVOIDABLE"); +const u8 gEasyChatWord_Much[] = _("MUCH"); +const u8 gEasyChatWord_Overwhelming[] = _("OVERWHELMING"); +const u8 gEasyChatWord_Fabulous[] = _("FABULOUS"); +const u8 gEasyChatWord_Else[] = _("ELSE"); +const u8 gEasyChatWord_Expensive[] = _("EXPENSIVE"); +const u8 gEasyChatWord_Correct[] = _("CORRECT"); +const u8 gEasyChatWord_Impossible[] = _("IMPOSSIBLE"); +const u8 gEasyChatWord_Small[] = _("SMALL"); +const u8 gEasyChatWord_Different[] = _("DIFFERENT"); +const u8 gEasyChatWord_Tired[] = _("TIRED"); +const u8 gEasyChatWord_Skill[] = _("SKILL"); +const u8 gEasyChatWord_Top[] = _("TOP"); +const u8 gEasyChatWord_NonStop[] = _("NON-STOP"); +const u8 gEasyChatWord_Preposterous[] = _("PREPOSTEROUS"); +const u8 gEasyChatWord_None[] = _("NONE"); +const u8 gEasyChatWord_Nothing[] = _("NOTHING"); +const u8 gEasyChatWord_Natural[] = _("NATURAL"); +const u8 gEasyChatWord_Becomes[] = _("BECOMES"); +const u8 gEasyChatWord_Lukewarm[] = _("LUKEWARM"); +const u8 gEasyChatWord_Fast[] = _("FAST"); +const u8 gEasyChatWord_Low[] = _("LOW"); +const u8 gEasyChatWord_Awful[] = _("AWFUL"); +const u8 gEasyChatWord_Alone[] = _("ALONE"); +const u8 gEasyChatWord_Bored[] = _("BORED"); +const u8 gEasyChatWord_Secret[] = _("SECRET"); +const u8 gEasyChatWord_Mystery[] = _("MYSTERY"); +const u8 gEasyChatWord_Lacks[] = _("LACKS"); +const u8 gEasyChatWord_Best[] = _("BEST"); +const u8 gEasyChatWord_Lousy[] = _("LOUSY"); +const u8 gEasyChatWord_Mistake[] = _("MISTAKE"); +const u8 gEasyChatWord_Kind[] = _("KIND"); +const u8 gEasyChatWord_Well[] = _("WELL"); +const u8 gEasyChatWord_Weakened[] = _("WEAKENED"); +const u8 gEasyChatWord_Simple[] = _("SIMPLE"); +const u8 gEasyChatWord_Seems[] = _("SEEMS"); +const u8 gEasyChatWord_Badly[] = _("BADLY"); + +const struct EasyChatWordInfo gEasyChatGroup_Conditions[] = { + { + .text = gEasyChatWord_Hot, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Exists, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excess, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Approved, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Has, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Good, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Less, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Momentum, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Going, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weird, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Busy, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Together, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Full, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Absent, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Being, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Need, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tasty, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Skilled, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Noisy, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Big, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Late, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Close, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Docile, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Amusing, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Entertaining, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Perfection, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pretty, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Healthy, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excellent, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UpsideDown, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cold, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Refreshing, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Unavoidable, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Much, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overwhelming, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fabulous, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Else, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Expensive, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Correct, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Impossible, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Small, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Different, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tired, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Skill, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Top, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NonStop, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Preposterous, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_None, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nothing, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Natural, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Becomes, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lukewarm, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fast, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Low, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awful, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Alone, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bored, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Secret, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mystery, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lacks, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Best, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lousy, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mistake, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kind, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Well, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weakened, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Simple, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seems, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Badly, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_endings.h b/src/data/easy_chat/easy_chat_group_endings.h new file mode 100755 index 000000000..afaea48cb --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_endings.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Will[] = _("WILL"); +const u8 gEasyChatWord_WillBeHere[] = _("WILL BE HERE"); +const u8 gEasyChatWord_Or[] = _("OR"); +const u8 gEasyChatWord_Times[] = _("TIMES"); +const u8 gEasyChatWord_Wonder[] = _("WONDER"); +const u8 gEasyChatWord_IsItQues[] = _("IS IT?"); +const u8 gEasyChatWord_Be[] = _("BE"); +const u8 gEasyChatWord_Gimme[] = _("GIMME"); +const u8 gEasyChatWord_Could[] = _("COULD"); +const u8 gEasyChatWord_LikelyTo[] = _("LIKELY TO"); +const u8 gEasyChatWord_Would[] = _("WOULD"); +const u8 gEasyChatWord_Is[] = _("IS"); +const u8 gEasyChatWord_IsntItQues[] = _("ISN'T IT?"); +const u8 gEasyChatWord_Lets[] = _("LET'S"); +const u8 gEasyChatWord_Other[] = _("OTHER"); +const u8 gEasyChatWord_Are[] = _("ARE"); +const u8 gEasyChatWord_Was[] = _("WAS"); +const u8 gEasyChatWord_Were[] = _("WERE"); +const u8 gEasyChatWord_Those[] = _("THOSE"); +const u8 gEasyChatWord_Isnt[] = _("ISN'T"); +const u8 gEasyChatWord_Wont[] = _("WON'T"); +const u8 gEasyChatWord_Cant[] = _("CAN'T"); +const u8 gEasyChatWord_Can[] = _("CAN"); +const u8 gEasyChatWord_Dont[] = _("DON'T"); +const u8 gEasyChatWord_Do[] = _("DO"); +const u8 gEasyChatWord_Does[] = _("DOES"); +const u8 gEasyChatWord_Whom[] = _("WHOM"); +const u8 gEasyChatWord_Which[] = _("WHICH"); +const u8 gEasyChatWord_Wasnt[] = _("WASN'T"); +const u8 gEasyChatWord_Werent[] = _("WEREN'T"); +const u8 gEasyChatWord_Have[] = _("HAVE"); +const u8 gEasyChatWord_Havent[] = _("HAVEN'T"); +const u8 gEasyChatWord_A[] = _("A"); +const u8 gEasyChatWord_An[] = _("AN"); +const u8 gEasyChatWord_Not[] = _("NOT"); +const u8 gEasyChatWord_There[] = _("THERE"); +const u8 gEasyChatWord_OkQues[] = _("OK?"); +const u8 gEasyChatWord_So[] = _("SO"); +const u8 gEasyChatWord_Maybe[] = _("MAYBE"); +const u8 gEasyChatWord_About[] = _("ABOUT"); +const u8 gEasyChatWord_Over[] = _("OVER"); +const u8 gEasyChatWord_It[] = _("IT"); +const u8 gEasyChatWord_All[] = _("ALL"); +const u8 gEasyChatWord_For[] = _("FOR"); +const u8 gEasyChatWord_On[] = _("ON"); +const u8 gEasyChatWord_Off[] = _("OFF"); +const u8 gEasyChatWord_As[] = _("AS"); +const u8 gEasyChatWord_To[] = _("TO"); +const u8 gEasyChatWord_With[] = _("WITH"); +const u8 gEasyChatWord_Better[] = _("BETTER"); +const u8 gEasyChatWord_Ever[] = _("EVER"); +const u8 gEasyChatWord_Since[] = _("SINCE"); +const u8 gEasyChatWord_Of[] = _("OF"); +const u8 gEasyChatWord_BelongsTo[] = _("BELONGS TO"); +const u8 gEasyChatWord_At[] = _("AT"); +const u8 gEasyChatWord_In[] = _("IN"); +const u8 gEasyChatWord_Out[] = _("OUT"); +const u8 gEasyChatWord_Too[] = _("TOO"); +const u8 gEasyChatWord_Like[] = _("LIKE"); +const u8 gEasyChatWord_Did[] = _("DID"); +const u8 gEasyChatWord_Didnt[] = _("DIDN'T"); +const u8 gEasyChatWord_Doesnt[] = _("DOESN'T"); +const u8 gEasyChatWord_Without[] = _("WITHOUT"); +const u8 gEasyChatWord_After[] = _("AFTER"); +const u8 gEasyChatWord_Before[] = _("BEFORE"); +const u8 gEasyChatWord_While[] = _("WHILE"); +const u8 gEasyChatWord_Than[] = _("THAN"); +const u8 gEasyChatWord_Once[] = _("ONCE"); +const u8 gEasyChatWord_Anywhere[] = _("ANYWHERE"); + +const struct EasyChatWordInfo gEasyChatGroup_Endings[] = { + { + .text = gEasyChatWord_Will, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WillBeHere, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Or, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Times, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wonder, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IsItQues, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Be, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gimme, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Could, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LikelyTo, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Would, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Is, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IsntItQues, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lets, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Other, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Are, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Was, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Were, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Those, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Isnt, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wont, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cant, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Can, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dont, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Do, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Does, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whom, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Which, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wasnt, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Werent, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Have, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Havent, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_A, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_An, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Not, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_There, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OkQues, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_So, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Maybe, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_About, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Over, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_It, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_All, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_For, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_On, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Off, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_As, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_To, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_With, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Better, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ever, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Since, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Of, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BelongsTo, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_At, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_In, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Out, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Too, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Like, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Did, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Didnt, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Doesnt, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Without, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_After, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Before, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_While, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Than, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Once, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anywhere, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_events.h b/src/data/easy_chat/easy_chat_group_events.h new file mode 100755 index 000000000..8d9cf7e24 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_events.h @@ -0,0 +1,177 @@ +const u8 gEasyChatWord_Appeal[] = _("APPEAL"); +const u8 gEasyChatWord_Events[] = _("EVENTS"); +const u8 gEasyChatWord_StayAtHome[] = _("STAY-AT-HOME"); +const u8 gEasyChatWord_Berry[] = _("BERRY"); +const u8 gEasyChatWord_Contest[] = _("CONTEST"); +const u8 gEasyChatWord_Mc[] = _("MC"); +const u8 gEasyChatWord_Judge[] = _("JUDGE"); +const u8 gEasyChatWord_Super[] = _("SUPER"); +const u8 gEasyChatWord_Stage[] = _("STAGE"); +const u8 gEasyChatWord_HallOfFame[] = _("HALL OF FAME"); +const u8 gEasyChatWord_Evolution[] = _("EVOLUTION"); +const u8 gEasyChatWord_Hyper[] = _("HYPER"); +const u8 gEasyChatWord_BattleTower[] = _("BATTLE TOWER"); +const u8 gEasyChatWord_Leaders[] = _("LEADERS"); +const u8 gEasyChatWord_BattleRoom[] = _("BATTLE ROOM"); +const u8 gEasyChatWord_Hidden[] = _("HIDDEN"); +const u8 gEasyChatWord_SecretBase[] = _("SECRET BASE"); +const u8 gEasyChatWord_Blend[] = _("BLEND"); +const u8 gEasyChatWord_POKEBLOCK[] = _("{POKEBLOCK}"); +const u8 gEasyChatWord_Master[] = _("MASTER"); +const u8 gEasyChatWord_Rank[] = _("RANK"); +const u8 gEasyChatWord_Ribbon[] = _("RIBBON"); +const u8 gEasyChatWord_Crush[] = _("CRUSH"); +const u8 gEasyChatWord_Direct[] = _("DIRECT"); +const u8 gEasyChatWord_Tower[] = _("TOWER"); +const u8 gEasyChatWord_Union[] = _("UNION"); +const u8 gEasyChatWord_Room[] = _("ROOM"); +const u8 gEasyChatWord_Wireless[] = _("WIRELESS"); +const u8 gEasyChatWord_Frontier[] = _("FRONTIER"); + +const struct EasyChatWordInfo gEasyChatGroup_Events[] = { + { + .text = gEasyChatWord_Appeal, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Events, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_StayAtHome, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Berry, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Contest, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mc, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Judge, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Super, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stage, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HallOfFame, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Evolution, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hyper, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleTower, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Leaders, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleRoom, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hidden, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SecretBase, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Blend, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_POKEBLOCK, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Master, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rank, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ribbon, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Crush, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Direct, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tower, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Union, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Room, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wireless, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Frontier, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_feelings.h b/src/data/easy_chat/easy_chat_group_feelings.h new file mode 100755 index 000000000..2dda71808 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_feelings.h @@ -0,0 +1,417 @@ +const u8 gEasyChatWord_Meet[] = _("MEET"); +const u8 gEasyChatWord_Play[] = _("PLAY"); +const u8 gEasyChatWord_Hurried[] = _("HURRIED"); +const u8 gEasyChatWord_Goes[] = _("GOES"); +const u8 gEasyChatWord_Giddy[] = _("GIDDY"); +const u8 gEasyChatWord_Happy[] = _("HAPPY"); +const u8 gEasyChatWord_Happiness[] = _("HAPPINESS"); +const u8 gEasyChatWord_Excite[] = _("EXCITE"); +const u8 gEasyChatWord_Important[] = _("IMPORTANT"); +const u8 gEasyChatWord_Funny[] = _("FUNNY"); +const u8 gEasyChatWord_Got[] = _("GOT"); +const u8 gEasyChatWord_GoHome[] = _("GO HOME"); +const u8 gEasyChatWord_Disappointed[] = _("DISAPPOINTED"); +const u8 gEasyChatWord_Disappoints[] = _("DISAPPOINTS"); +const u8 gEasyChatWord_Sad[] = _("SAD"); +const u8 gEasyChatWord_Try[] = _("TRY"); +const u8 gEasyChatWord_Tries[] = _("TRIES"); +const u8 gEasyChatWord_Hears[] = _("HEARS"); +const u8 gEasyChatWord_Think[] = _("THINK"); +const u8 gEasyChatWord_Hear[] = _("HEAR"); +const u8 gEasyChatWord_Wants[] = _("WANTS"); +const u8 gEasyChatWord_Misheard[] = _("MISHEARD"); +const u8 gEasyChatWord_Dislike[] = _("DISLIKE"); +const u8 gEasyChatWord_Angry[] = _("ANGRY"); +const u8 gEasyChatWord_Anger[] = _("ANGER"); +const u8 gEasyChatWord_Scary[] = _("SCARY"); +const u8 gEasyChatWord_Lonesome[] = _("LONESOME"); +const u8 gEasyChatWord_Disappoint[] = _("DISAPPOINT"); +const u8 gEasyChatWord_Joy[] = _("JOY"); +const u8 gEasyChatWord_Gets[] = _("GETS"); +const u8 gEasyChatWord_Never[] = _("NEVER"); +const u8 gEasyChatWord_Darn[] = _("DARN"); +const u8 gEasyChatWord_Downcast[] = _("DOWNCAST"); +const u8 gEasyChatWord_Incredible[] = _("INCREDIBLE"); +const u8 gEasyChatWord_Likes[] = _("LIKES"); +const u8 gEasyChatWord_Dislikes[] = _("DISLIKES"); +const u8 gEasyChatWord_Boring[] = _("BORING"); +const u8 gEasyChatWord_Care[] = _("CARE"); +const u8 gEasyChatWord_Cares[] = _("CARES"); +const u8 gEasyChatWord_AllRight[] = _("ALL RIGHT"); +const u8 gEasyChatWord_Adore[] = _("ADORE"); +const u8 gEasyChatWord_Disaster[] = _("DISASTER"); +const u8 gEasyChatWord_Enjoy[] = _("ENJOY"); +const u8 gEasyChatWord_Enjoys[] = _("ENJOYS"); +const u8 gEasyChatWord_Eat[] = _("EAT"); +const u8 gEasyChatWord_Lacking[] = _("LACKING"); +const u8 gEasyChatWord_Bad[] = _("BAD"); +const u8 gEasyChatWord_Hard[] = _("HARD"); +const u8 gEasyChatWord_Terrible[] = _("TERRIBLE"); +const u8 gEasyChatWord_Should[] = _("SHOULD"); +const u8 gEasyChatWord_Nice[] = _("NICE"); +const u8 gEasyChatWord_Drink[] = _("DRINK"); +const u8 gEasyChatWord_Surprise[] = _("SURPRISE"); +const u8 gEasyChatWord_Fear[] = _("FEAR"); +const u8 gEasyChatWord_Want[] = _("WANT"); +const u8 gEasyChatWord_Wait[] = _("WAIT"); +const u8 gEasyChatWord_Satisfied[] = _("SATISFIED"); +const u8 gEasyChatWord_See[] = _("SEE"); +const u8 gEasyChatWord_Rare[] = _("RARE"); +const u8 gEasyChatWord_Negative[] = _("NEGATIVE"); +const u8 gEasyChatWord_Done[] = _("DONE"); +const u8 gEasyChatWord_Danger[] = _("DANGER"); +const u8 gEasyChatWord_Defeated[] = _("DEFEATED"); +const u8 gEasyChatWord_Beat[] = _("BEAT"); +const u8 gEasyChatWord_Great[] = _("GREAT"); +const u8 gEasyChatWord_Romantic[] = _("ROMANTIC"); +const u8 gEasyChatWord_Question[] = _("QUESTION"); +const u8 gEasyChatWord_Understand[] = _("UNDERSTAND"); +const u8 gEasyChatWord_Understands[] = _("UNDERSTANDS"); + +const struct EasyChatWordInfo gEasyChatGroup_Feelings[] = { + { + .text = gEasyChatWord_Meet, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Play, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hurried, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Goes, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Giddy, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happy, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happiness, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excite, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Important, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Funny, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Got, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoHome, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappointed, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappoints, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sad, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Try, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tries, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hears, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Think, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hear, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wants, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Misheard, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dislike, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Angry, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anger, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Scary, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lonesome, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disappoint, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Joy, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gets, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Never, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Darn, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Downcast, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Incredible, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Likes, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dislikes, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Boring, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Care, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cares, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AllRight, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adore, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Disaster, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enjoy, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enjoys, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eat, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lacking, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bad, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hard, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Terrible, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Should, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nice, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drink, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Surprise, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fear, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Want, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wait, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Satisfied, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_See, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rare, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Negative, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Done, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Danger, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Defeated, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beat, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Great, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Romantic, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Question, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Understand, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Understands, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_greetings.h b/src/data/easy_chat/easy_chat_group_greetings.h new file mode 100755 index 000000000..4df08bf7d --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_greetings.h @@ -0,0 +1,255 @@ +const u8 gEasyChatWord_Thanks[] = _("THANKS"); +const u8 gEasyChatWord_Yes[] = _("YES"); +const u8 gEasyChatWord_HereGoes[] = _("HERE GOES"); +const u8 gEasyChatWord_HereICome[] = _("HERE I COME"); +const u8 gEasyChatWord_HereItIs[] = _("HERE IT IS"); +const u8 gEasyChatWord_Yeah[] = _("YEAH"); +const u8 gEasyChatWord_Welcome[] = _("WELCOME"); +const u8 gEasyChatWord_Oi[] = _("OI"); +const u8 gEasyChatWord_HowDo[] = _("HOW DO"); +const u8 gEasyChatWord_Congrats[] = _("CONGRATS"); +const u8 gEasyChatWord_GiveMe[] = _("GIVE ME"); +const u8 gEasyChatWord_Sorry[] = _("SORRY"); +const u8 gEasyChatWord_Apologize[] = _("APOLOGIZE"); +const u8 gEasyChatWord_Forgive[] = _("FORGIVE"); +const u8 gEasyChatWord_HeyThere[] = _("HEY, THERE"); +const u8 gEasyChatWord_Hello[] = _("HELLO"); +const u8 gEasyChatWord_GoodBye[] = _("GOOD-BYE"); +const u8 gEasyChatWord_ThankYou[] = _("THANK YOU"); +const u8 gEasyChatWord_IveArrived[] = _("I'VE ARRIVED"); +const u8 gEasyChatWord_Pardon[] = _("PARDON"); +const u8 gEasyChatWord_Excuse[] = _("EXCUSE"); +const u8 gEasyChatWord_SeeYa[] = _("SEE YA"); +const u8 gEasyChatWord_ExcuseMe[] = _("EXCUSE ME"); +const u8 gEasyChatWord_WellThen[] = _("WELL, THEN"); +const u8 gEasyChatWord_GoAhead[] = _("GO AHEAD"); +const u8 gEasyChatWord_Appreciate[] = _("APPRECIATE"); +const u8 gEasyChatWord_HeyQues[] = _("HEY?"); +const u8 gEasyChatWord_WhatsUpQues[] = _("WHAT'S UP?"); +const u8 gEasyChatWord_HuhQues[] = _("HUH?"); +const u8 gEasyChatWord_No[] = _("NO"); +const u8 gEasyChatWord_Hi[] = _("HI"); +const u8 gEasyChatWord_YeahYeah[] = _("YEAH, YEAH"); +const u8 gEasyChatWord_ByeBye[] = _("BYE-BYE"); +const u8 gEasyChatWord_MeetYou[] = _("MEET YOU"); +const u8 gEasyChatWord_Hey[] = _("HEY"); +const u8 gEasyChatWord_Smell[] = _("SMELL"); +const u8 gEasyChatWord_Listening[] = _("LISTENING"); +const u8 gEasyChatWord_HooHah[] = _("HOO-HAH"); +const u8 gEasyChatWord_Yahoo[] = _("YAHOO"); +const u8 gEasyChatWord_Yo[] = _("YO"); +const u8 gEasyChatWord_ComeOver[] = _("COME OVER"); +const u8 gEasyChatWord_CountOn[] = _("COUNT ON"); + +const struct EasyChatWordInfo gEasyChatGroup_Greetings[] = { + { + .text = gEasyChatWord_Thanks, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yes, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereGoes, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereICome, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HereItIs, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yeah, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Welcome, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oi, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HowDo, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Congrats, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GiveMe, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sorry, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Apologize, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forgive, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HeyThere, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hello, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoodBye, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThankYou, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IveArrived, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pardon, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Excuse, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SeeYa, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ExcuseMe, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WellThen, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_GoAhead, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Appreciate, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HeyQues, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhatsUpQues, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HuhQues, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_No, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hi, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YeahYeah, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ByeBye, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MeetYou, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hey, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smell, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Listening, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HooHah, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yahoo, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yo, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ComeOver, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CountOn, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_hobbies.h b/src/data/easy_chat/easy_chat_group_hobbies.h new file mode 100755 index 000000000..fcd73d017 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_hobbies.h @@ -0,0 +1,327 @@ +const u8 gEasyChatWord_Idol[] = _("IDOL"); +const u8 gEasyChatWord_Anime[] = _("ANIME"); +const u8 gEasyChatWord_Song[] = _("SONG"); +const u8 gEasyChatWord_Movie[] = _("MOVIE"); +const u8 gEasyChatWord_Sweets[] = _("SWEETS"); +const u8 gEasyChatWord_Chat[] = _("CHAT"); +const u8 gEasyChatWord_ChildsPlay[] = _("CHILD'S PLAY"); +const u8 gEasyChatWord_Toys[] = _("TOYS"); +const u8 gEasyChatWord_Music[] = _("MUSIC"); +const u8 gEasyChatWord_Cards[] = _("CARDS"); +const u8 gEasyChatWord_Shopping[] = _("SHOPPING"); +const u8 gEasyChatWord_Camera[] = _("CAMERA"); +const u8 gEasyChatWord_Viewing[] = _("VIEWING"); +const u8 gEasyChatWord_Spectator[] = _("SPECTATOR"); +const u8 gEasyChatWord_Gourmet[] = _("GOURMET"); +const u8 gEasyChatWord_Game[] = _("GAME"); +const u8 gEasyChatWord_Rpg[] = _("RPG"); +const u8 gEasyChatWord_Collection[] = _("COLLECTION"); +const u8 gEasyChatWord_Complete[] = _("COMPLETE"); +const u8 gEasyChatWord_Magazine[] = _("MAGAZINE"); +const u8 gEasyChatWord_Walk[] = _("WALK"); +const u8 gEasyChatWord_Bike[] = _("BIKE"); +const u8 gEasyChatWord_Hobby[] = _("HOBBY"); +const u8 gEasyChatWord_Sports[] = _("SPORTS"); +const u8 gEasyChatWord_Software[] = _("SOFTWARE"); +const u8 gEasyChatWord_Songs[] = _("SONGS"); +const u8 gEasyChatWord_Diet[] = _("DIET"); +const u8 gEasyChatWord_Treasure[] = _("TREASURE"); +const u8 gEasyChatWord_Travel[] = _("TRAVEL"); +const u8 gEasyChatWord_Dance[] = _("DANCE"); +const u8 gEasyChatWord_Channel[] = _("CHANNEL"); +const u8 gEasyChatWord_Making[] = _("MAKING"); +const u8 gEasyChatWord_Fishing[] = _("FISHING"); +const u8 gEasyChatWord_Date[] = _("DATE"); +const u8 gEasyChatWord_Design[] = _("DESIGN"); +const u8 gEasyChatWord_Locomotive[] = _("LOCOMOTIVE"); +const u8 gEasyChatWord_PlushDoll[] = _("PLUSH DOLL"); +const u8 gEasyChatWord_Pc[] = _("PC"); +const u8 gEasyChatWord_Flowers[] = _("FLOWERS"); +const u8 gEasyChatWord_Hero[] = _("HERO"); +const u8 gEasyChatWord_Nap[] = _("NAP"); +const u8 gEasyChatWord_Heroine[] = _("HEROINE"); +const u8 gEasyChatWord_Fashion[] = _("FASHION"); +const u8 gEasyChatWord_Adventure[] = _("ADVENTURE"); +const u8 gEasyChatWord_Board[] = _("BOARD"); +const u8 gEasyChatWord_Ball[] = _("BALL"); +const u8 gEasyChatWord_Book[] = _("BOOK"); +const u8 gEasyChatWord_Festival[] = _("FESTIVAL"); +const u8 gEasyChatWord_Comics[] = _("COMICS"); +const u8 gEasyChatWord_Holiday[] = _("HOLIDAY"); +const u8 gEasyChatWord_Plans[] = _("PLANS"); +const u8 gEasyChatWord_Trendy[] = _("TRENDY"); +const u8 gEasyChatWord_Vacation[] = _("VACATION"); +const u8 gEasyChatWord_Look[] = _("LOOK"); + +const struct EasyChatWordInfo gEasyChatGroup_Hobbies[] = { + { + .text = gEasyChatWord_Idol, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Anime, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Song, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Movie, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sweets, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Chat, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ChildsPlay, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Toys, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Music, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cards, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shopping, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Camera, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Viewing, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spectator, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gourmet, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Game, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rpg, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Collection, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Complete, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Magazine, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Walk, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bike, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hobby, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sports, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Software, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Songs, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Diet, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Treasure, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Travel, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dance, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Channel, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Making, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fishing, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Date, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Design, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Locomotive, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PlushDoll, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pc, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flowers, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hero, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nap, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heroine, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fashion, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adventure, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Board, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ball, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Book, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Festival, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Comics, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Holiday, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plans, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trendy, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Vacation, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Look, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_lifestyle.h b/src/data/easy_chat/easy_chat_group_lifestyle.h new file mode 100755 index 000000000..9ed60025d --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_lifestyle.h @@ -0,0 +1,273 @@ +const u8 gEasyChatWord_Chores[] = _("CHORES"); +const u8 gEasyChatWord_Home[] = _("HOME"); +const u8 gEasyChatWord_Money[] = _("MONEY"); +const u8 gEasyChatWord_Allowance[] = _("ALLOWANCE"); +const u8 gEasyChatWord_Bath[] = _("BATH"); +const u8 gEasyChatWord_Conversation[] = _("CONVERSATION"); +const u8 gEasyChatWord_School[] = _("SCHOOL"); +const u8 gEasyChatWord_Commemorate[] = _("COMMEMORATE"); +const u8 gEasyChatWord_Habit[] = _("HABIT"); +const u8 gEasyChatWord_Group[] = _("GROUP"); +const u8 gEasyChatWord_Word[] = _("WORD"); +const u8 gEasyChatWord_Store[] = _("STORE"); +const u8 gEasyChatWord_Service[] = _("SERVICE"); +const u8 gEasyChatWord_Work[] = _("WORK"); +const u8 gEasyChatWord_System[] = _("SYSTEM"); +const u8 gEasyChatWord_Train[] = _("TRAIN"); +const u8 gEasyChatWord_Class[] = _("CLASS"); +const u8 gEasyChatWord_Lessons[] = _("LESSONS"); +const u8 gEasyChatWord_Information[] = _("INFORMATION"); +const u8 gEasyChatWord_Living[] = _("LIVING"); +const u8 gEasyChatWord_Teacher[] = _("TEACHER"); +const u8 gEasyChatWord_Tournament[] = _("TOURNAMENT"); +const u8 gEasyChatWord_Letter[] = _("LETTER"); +const u8 gEasyChatWord_Event[] = _("EVENT"); +const u8 gEasyChatWord_Digital[] = _("DIGITAL"); +const u8 gEasyChatWord_Test[] = _("TEST"); +const u8 gEasyChatWord_DeptStore[] = _("DEPT. STORE"); +const u8 gEasyChatWord_Television[] = _("TELEVISION"); +const u8 gEasyChatWord_Phone[] = _("PHONE"); +const u8 gEasyChatWord_Item[] = _("ITEM"); +const u8 gEasyChatWord_Name[] = _("NAME"); +const u8 gEasyChatWord_News[] = _("NEWS"); +const u8 gEasyChatWord_Popular[] = _("POPULAR"); +const u8 gEasyChatWord_Party[] = _("PARTY"); +const u8 gEasyChatWord_Study[] = _("STUDY"); +const u8 gEasyChatWord_Machine[] = _("MACHINE"); +const u8 gEasyChatWord_Mail[] = _("MAIL"); +const u8 gEasyChatWord_Message[] = _("MESSAGE"); +const u8 gEasyChatWord_Promise[] = _("PROMISE"); +const u8 gEasyChatWord_Dream[] = _("DREAM"); +const u8 gEasyChatWord_Kindergarten[] = _("KINDERGARTEN"); +const u8 gEasyChatWord_Life[] = _("LIFE"); +const u8 gEasyChatWord_Radio[] = _("RADIO"); +const u8 gEasyChatWord_Rental[] = _("RENTAL"); +const u8 gEasyChatWord_World[] = _("WORLD"); + +const struct EasyChatWordInfo gEasyChatGroup_Lifestyle[] = { + { + .text = gEasyChatWord_Chores, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Home, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Money, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Allowance, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bath, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Conversation, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_School, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Commemorate, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Habit, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Group, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Word, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Store, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Service, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Work, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_System, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Train, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Class, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lessons, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Information, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Living, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Teacher, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tournament, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Letter, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Event, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Digital, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Test, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_DeptStore, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Television, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Phone, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Item, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Name, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_News, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Popular, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Party, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Study, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Machine, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mail, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Message, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Promise, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dream, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kindergarten, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Life, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Radio, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rental, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_World, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_misc.h b/src/data/easy_chat/easy_chat_group_misc.h new file mode 100755 index 000000000..fbc9a7069 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_misc.h @@ -0,0 +1,255 @@ +const u8 gEasyChatWord_Highs[] = _("HIGHS"); +const u8 gEasyChatWord_Lows[] = _("LOWS"); +const u8 gEasyChatWord_Um[] = _("UM"); +const u8 gEasyChatWord_Rear[] = _("REAR"); +const u8 gEasyChatWord_Things[] = _("THINGS"); +const u8 gEasyChatWord_Thing[] = _("THING"); +const u8 gEasyChatWord_Below[] = _("BELOW"); +const u8 gEasyChatWord_Above[] = _("ABOVE"); +const u8 gEasyChatWord_Back[] = _("BACK"); +const u8 gEasyChatWord_High[] = _("HIGH"); +const u8 gEasyChatWord_Here[] = _("HERE"); +const u8 gEasyChatWord_Inside[] = _("INSIDE"); +const u8 gEasyChatWord_Outside[] = _("OUTSIDE"); +const u8 gEasyChatWord_Beside[] = _("BESIDE"); +const u8 gEasyChatWord_ThisIsItExcl[] = _("THIS IS IT!"); +const u8 gEasyChatWord_This[] = _("THIS"); +const u8 gEasyChatWord_Every[] = _("EVERY"); +const u8 gEasyChatWord_These[] = _("THESE"); +const u8 gEasyChatWord_TheseWere[] = _("THESE WERE"); +const u8 gEasyChatWord_Down[] = _("DOWN"); +const u8 gEasyChatWord_That[] = _("THAT"); +const u8 gEasyChatWord_ThoseAre[] = _("THOSE ARE"); +const u8 gEasyChatWord_ThoseWere[] = _("THOSE WERE"); +const u8 gEasyChatWord_ThatsItExcl[] = _("THAT'S IT!"); +const u8 gEasyChatWord_Am[] = _("AM"); +const u8 gEasyChatWord_ThatWas[] = _("THAT WAS"); +const u8 gEasyChatWord_Front[] = _("FRONT"); +const u8 gEasyChatWord_Up[] = _("UP"); +const u8 gEasyChatWord_Choice[] = _("CHOICE"); +const u8 gEasyChatWord_Far[] = _("FAR"); +const u8 gEasyChatWord_Away[] = _("AWAY"); +const u8 gEasyChatWord_Near[] = _("NEAR"); +const u8 gEasyChatWord_Where[] = _("WHERE"); +const u8 gEasyChatWord_When[] = _("WHEN"); +const u8 gEasyChatWord_What[] = _("WHAT"); +const u8 gEasyChatWord_Deep[] = _("DEEP"); +const u8 gEasyChatWord_Shallow[] = _("SHALLOW"); +const u8 gEasyChatWord_Why[] = _("WHY"); +const u8 gEasyChatWord_Confused[] = _("CONFUSED"); +const u8 gEasyChatWord_Opposite[] = _("OPPOSITE"); +const u8 gEasyChatWord_Left[] = _("LEFT"); +const u8 gEasyChatWord_Right[] = _("RIGHT"); + +const struct EasyChatWordInfo gEasyChatGroup_Misc[] = { + { + .text = gEasyChatWord_Highs, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lows, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Um, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rear, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Things, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thing, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Below, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Above, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Back, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_High, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Here, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Inside, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Outside, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beside, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThisIsItExcl, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_This, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Every, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_These, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TheseWere, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Down, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_That, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThoseAre, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThoseWere, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThatsItExcl, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Am, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThatWas, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Front, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Up, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Choice, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Far, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Away, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Near, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Where, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_When, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_What, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Deep, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shallow, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Why, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Confused, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Opposite, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Left, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Right, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_move_1.h b/src/data/easy_chat/easy_chat_group_move_1.h new file mode 100755 index 000000000..3b0e8acca --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_move_1.h @@ -0,0 +1,158 @@ +#include "constants/moves.h" + +const u16 gEasyChatGroup_Move1[] = { + MOVE_ABSORB, + MOVE_AEROBLAST, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_ANCIENT_POWER, + MOVE_AROMATHERAPY, + MOVE_ASTONISH, + MOVE_AURORA_BEAM, + MOVE_BIDE, + MOVE_BIND, + MOVE_BITE, + MOVE_BRICK_BREAK, + MOVE_BUBBLE, + MOVE_CHARGE, + MOVE_CHARM, + MOVE_CLAMP, + MOVE_CONFUSE_RAY, + MOVE_CONSTRICT, + MOVE_COSMIC_POWER, + MOVE_COUNTER, + MOVE_CRABHAMMER, + MOVE_CROSS_CHOP, + MOVE_CRUNCH, + MOVE_CUT, + MOVE_DIG, + MOVE_DISABLE, + MOVE_DOUBLE_TEAM, + MOVE_DOUBLE_EDGE, + MOVE_DOUBLE_SLAP, + MOVE_EARTHQUAKE, + MOVE_ENCORE, + MOVE_ENDEAVOR, + MOVE_ENDURE, + MOVE_EXTRASENSORY, + MOVE_EXTREME_SPEED, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FISSURE, + MOVE_FLAIL, + MOVE_FLAME_WHEEL, + MOVE_FLAMETHROWER, + MOVE_FLATTER, + MOVE_FLY, + MOVE_FOCUS_ENERGY, + MOVE_FOCUS_PUNCH, + MOVE_FOLLOW_ME, + MOVE_GIGA_DRAIN, + MOVE_GRASS_WHISTLE, + MOVE_GROWTH, + MOVE_GRUDGE, + MOVE_GUST, + MOVE_HAIL, + MOVE_HARDEN, + MOVE_HAZE, + MOVE_HEADBUTT, + MOVE_HEAL_BELL, + MOVE_HYPNOSIS, + MOVE_ICE_BALL, + MOVE_ICY_WIND, + MOVE_IRON_TAIL, + MOVE_KARATE_CHOP, + MOVE_KINESIS, + MOVE_LEECH_LIFE, + MOVE_LICK, + MOVE_LOVELY_KISS, + MOVE_LOW_KICK, + MOVE_MEAN_LOOK, + MOVE_MEMENTO, + MOVE_METAL_SOUND, + MOVE_METEOR_MASH, + MOVE_MIND_READER, + MOVE_MIRROR_MOVE, + MOVE_MIST, + MOVE_MORNING_SUN, + MOVE_NATURE_POWER, + MOVE_NIGHTMARE, + MOVE_OCTAZOOKA, + MOVE_ODOR_SLEUTH, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PAIN_SPLIT, + MOVE_POWDER_SNOW, + MOVE_PSYBEAM, + MOVE_PSYCH_UP, + MOVE_PSYCHIC, + MOVE_PSYCHO_BOOST, + MOVE_PSYWAVE, + MOVE_PURSUIT, + MOVE_RAGE, + MOVE_RAIN_DANCE, + MOVE_RAPID_SPIN, + MOVE_RAZOR_WIND, + MOVE_RECOVER, + MOVE_RETURN, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_SMASH, + MOVE_ROCK_THROW, + MOVE_ROCK_TOMB, + MOVE_ROLLOUT, + MOVE_SACRED_FIRE, + MOVE_SAFEGUARD, + MOVE_SAND_TOMB, + MOVE_SAND_ATTACK, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SCREECH, + MOVE_SELF_DESTRUCT, + MOVE_SHADOW_BALL, + MOVE_SHADOW_PUNCH, + MOVE_SHARPEN, + MOVE_SHEER_COLD, + MOVE_SIGNAL_BEAM, + MOVE_SILVER_WIND, + MOVE_SING, + MOVE_SKETCH, + MOVE_SKILL_SWAP, + MOVE_SKY_ATTACK, + MOVE_SKY_UPPERCUT, + MOVE_SLASH, + MOVE_SMELLING_SALT, + MOVE_SMOG, + MOVE_SMOKESCREEN, + MOVE_SNORE, + MOVE_SOLAR_BEAM, + MOVE_SONIC_BOOM, + MOVE_SPARK, + MOVE_SPIDER_WEB, + MOVE_SPITE, + MOVE_SPORE, + MOVE_STRENGTH, + MOVE_STRING_SHOT, + MOVE_STUN_SPORE, + MOVE_SUBMISSION, + MOVE_SUPER_FANG, + MOVE_SWAGGER, + MOVE_SWEET_SCENT, + MOVE_SWIFT, + MOVE_SYNTHESIS, + MOVE_TAIL_WHIP, + MOVE_THRASH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_PUNCH, + MOVE_TICKLE, + MOVE_TORMENT, + MOVE_UPROAR, + MOVE_VITAL_THROW, + MOVE_WATER_SPOUT, + MOVE_WEATHER_BALL, + MOVE_WHIRLPOOL, + MOVE_WILL_O_WISP, + MOVE_WITHDRAW, + MOVE_YAWN, +}; diff --git a/src/data/easy_chat/easy_chat_group_move_2.h b/src/data/easy_chat/easy_chat_group_move_2.h new file mode 100755 index 000000000..e0a0cd379 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_move_2.h @@ -0,0 +1,204 @@ +#include "constants/moves.h" + +const u16 gEasyChatGroup_Move2[] = { + MOVE_ACID, + MOVE_ACID_ARMOR, + MOVE_AERIAL_ACE, + MOVE_AMNESIA, + MOVE_ARM_THRUST, + MOVE_ASSIST, + MOVE_ATTRACT, + MOVE_BARRAGE, + MOVE_BARRIER, + MOVE_BATON_PASS, + MOVE_BEAT_UP, + MOVE_BELLY_DRUM, + MOVE_BLAST_BURN, + MOVE_BLAZE_KICK, + MOVE_BLIZZARD, + MOVE_BLOCK, + MOVE_BODY_SLAM, + MOVE_BONE_CLUB, + MOVE_BONE_RUSH, + MOVE_BONEMERANG, + MOVE_BOUNCE, + MOVE_BUBBLE_BEAM, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_CAMOUFLAGE, + MOVE_COMET_PUNCH, + MOVE_CONFUSION, + MOVE_CONVERSION, + MOVE_CONVERSION_2, + MOVE_COTTON_SPORE, + MOVE_COVET, + MOVE_CRUSH_CLAW, + MOVE_CURSE, + MOVE_DEFENSE_CURL, + MOVE_DESTINY_BOND, + MOVE_DETECT, + MOVE_DIVE, + MOVE_DIZZY_PUNCH, + MOVE_DOOM_DESIRE, + MOVE_DOUBLE_KICK, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_RAGE, + MOVE_DRAGON_BREATH, + MOVE_DREAM_EATER, + MOVE_DRILL_PECK, + MOVE_DYNAMIC_PUNCH, + MOVE_EGG_BOMB, + MOVE_EMBER, + MOVE_ERUPTION, + MOVE_EXPLOSION, + MOVE_FAINT_ATTACK, + MOVE_FAKE_OUT, + MOVE_FALSE_SWIPE, + MOVE_FEATHER_DANCE, + MOVE_FIRE_BLAST, + MOVE_FIRE_PUNCH, + MOVE_FIRE_SPIN, + MOVE_FLASH, + MOVE_FORESIGHT, + MOVE_FRENZY_PLANT, + MOVE_FRUSTRATION, + MOVE_FURY_ATTACK, + MOVE_FURY_CUTTER, + MOVE_FURY_SWIPES, + MOVE_FUTURE_SIGHT, + MOVE_GLARE, + MOVE_GROWL, + MOVE_GUILLOTINE, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HI_JUMP_KICK, + MOVE_HIDDEN_POWER, + MOVE_HORN_ATTACK, + MOVE_HORN_DRILL, + MOVE_HOWL, + MOVE_HYDRO_CANNON, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_HYPER_FANG, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_PUNCH, + MOVE_ICICLE_SPEAR, + MOVE_IMPRISON, + MOVE_INGRAIN, + MOVE_IRON_DEFENSE, + MOVE_JUMP_KICK, + MOVE_KNOCK_OFF, + MOVE_LEAF_BLADE, + MOVE_LEECH_SEED, + MOVE_LEER, + MOVE_LIGHT_SCREEN, + MOVE_LOCK_ON, + MOVE_LUSTER_PURGE, + MOVE_MACH_PUNCH, + MOVE_MAGIC_COAT, + MOVE_MAGICAL_LEAF, + MOVE_MAGNITUDE, + MOVE_MEDITATE, + MOVE_MEGA_DRAIN, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MEGAHORN, + MOVE_METAL_CLAW, + MOVE_METRONOME, + MOVE_MILK_DRINK, + MOVE_MIMIC, + MOVE_MINIMIZE, + MOVE_MIRROR_COAT, + MOVE_MIST_BALL, + MOVE_MOONLIGHT, + MOVE_MUD_SHOT, + MOVE_MUD_SPORT, + MOVE_MUD_SLAP, + MOVE_MUDDY_WATER, + MOVE_NEEDLE_ARM, + MOVE_NIGHT_SHADE, + MOVE_PAY_DAY, + MOVE_PECK, + MOVE_PERISH_SONG, + MOVE_PETAL_DANCE, + MOVE_PIN_MISSILE, + MOVE_POISON_FANG, + MOVE_POISON_GAS, + MOVE_POISON_STING, + MOVE_POISON_TAIL, + MOVE_POISON_POWDER, + MOVE_POUND, + MOVE_PRESENT, + MOVE_PROTECT, + MOVE_QUICK_ATTACK, + MOVE_RAZOR_LEAF, + MOVE_RECYCLE, + MOVE_REFLECT, + MOVE_REFRESH, + MOVE_REST, + MOVE_REVENGE, + MOVE_ROAR, + MOVE_ROCK_BLAST, + MOVE_ROLE_PLAY, + MOVE_ROLLING_KICK, + MOVE_SCRATCH, + MOVE_SECRET_POWER, + MOVE_SEISMIC_TOSS, + MOVE_SHOCK_WAVE, + MOVE_SKULL_BASH, + MOVE_SLACK_OFF, + MOVE_SLAM, + MOVE_SLEEP_POWDER, + MOVE_SLEEP_TALK, + MOVE_SLUDGE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOFT_BOILED, + MOVE_SPIKE_CANNON, + MOVE_SPIKES, + MOVE_SPIT_UP, + MOVE_SPLASH, + MOVE_STEEL_WING, + MOVE_STOCKPILE, + MOVE_STOMP, + MOVE_STRUGGLE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SUPERPOWER, + MOVE_SUPERSONIC, + MOVE_SURF, + MOVE_SWALLOW, + MOVE_SWEET_KISS, + MOVE_SWORDS_DANCE, + MOVE_TACKLE, + MOVE_TAIL_GLOW, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TEETER_DANCE, + MOVE_TELEPORT, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_THUNDER_SHOCK, + MOVE_TOXIC, + MOVE_TRANSFORM, + MOVE_TRI_ATTACK, + MOVE_TRICK, + MOVE_TRIPLE_KICK, + MOVE_TWINEEDLE, + MOVE_TWISTER, + MOVE_VICE_GRIP, + MOVE_VINE_WHIP, + MOVE_VOLT_TACKLE, + MOVE_WATER_GUN, + MOVE_WATER_PULSE, + MOVE_WATER_SPORT, + MOVE_WATERFALL, + MOVE_WHIRLWIND, + MOVE_WING_ATTACK, + MOVE_WISH, + MOVE_WRAP, + MOVE_ZAP_CANNON, +}; diff --git a/src/data/easy_chat/easy_chat_group_people.h b/src/data/easy_chat/easy_chat_group_people.h new file mode 100755 index 000000000..17d2d5339 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_people.h @@ -0,0 +1,453 @@ +const u8 gEasyChatWord_Opponent[] = _("OPPONENT"); +const u8 gEasyChatWord_I[] = _("I"); +const u8 gEasyChatWord_You[] = _("YOU"); +const u8 gEasyChatWord_Yours[] = _("YOURS"); +const u8 gEasyChatWord_Son[] = _("SON"); +const u8 gEasyChatWord_Your[] = _("YOUR"); +const u8 gEasyChatWord_Youre[] = _("YOU'RE"); +const u8 gEasyChatWord_Youve[] = _("YOU'VE"); +const u8 gEasyChatWord_Mother[] = _("MOTHER"); +const u8 gEasyChatWord_Grandfather[] = _("GRANDFATHER"); +const u8 gEasyChatWord_Uncle[] = _("UNCLE"); +const u8 gEasyChatWord_Father[] = _("FATHER"); +const u8 gEasyChatWord_Boy[] = _("BOY"); +const u8 gEasyChatWord_Adult[] = _("ADULT"); +const u8 gEasyChatWord_Brother[] = _("BROTHER"); +const u8 gEasyChatWord_Sister[] = _("SISTER"); +const u8 gEasyChatWord_Grandmother[] = _("GRANDMOTHER"); +const u8 gEasyChatWord_Aunt[] = _("AUNT"); +const u8 gEasyChatWord_Parent[] = _("PARENT"); +const u8 gEasyChatWord_Man[] = _("MAN"); +const u8 gEasyChatWord_Me[] = _("ME"); +const u8 gEasyChatWord_Girl[] = _("GIRL"); +const u8 gEasyChatWord_Babe[] = _("BABE"); +const u8 gEasyChatWord_Family[] = _("FAMILY"); +const u8 gEasyChatWord_Her[] = _("HER"); +const u8 gEasyChatWord_Him[] = _("HIM"); +const u8 gEasyChatWord_He[] = _("HE"); +const u8 gEasyChatWord_Place[] = _("PLACE"); +const u8 gEasyChatWord_Daughter[] = _("DAUGHTER"); +const u8 gEasyChatWord_His[] = _("HIS"); +const u8 gEasyChatWord_Hes[] = _("HE'S"); +const u8 gEasyChatWord_Arent[] = _("AREN'T"); +const u8 gEasyChatWord_Siblings[] = _("SIBLINGS"); +const u8 gEasyChatWord_Kid[] = _("KID"); +const u8 gEasyChatWord_Children[] = _("CHILDREN"); +const u8 gEasyChatWord_Mr[] = _("MR."); +const u8 gEasyChatWord_Mrs[] = _("MRS."); +const u8 gEasyChatWord_Myself[] = _("MYSELF"); +const u8 gEasyChatWord_IWas[] = _("I WAS"); +const u8 gEasyChatWord_ToMe[] = _("TO ME"); +const u8 gEasyChatWord_My[] = _("MY"); +const u8 gEasyChatWord_IAm[] = _("I AM"); +const u8 gEasyChatWord_Ive[] = _("I'VE"); +const u8 gEasyChatWord_Who[] = _("WHO"); +const u8 gEasyChatWord_Someone[] = _("SOMEONE"); +const u8 gEasyChatWord_WhoWas[] = _("WHO WAS"); +const u8 gEasyChatWord_ToWhom[] = _("TO WHOM"); +const u8 gEasyChatWord_Whose[] = _("WHOSE"); +const u8 gEasyChatWord_WhoIs[] = _("WHO IS"); +const u8 gEasyChatWord_Its[] = _("IT'S"); +const u8 gEasyChatWord_Lady[] = _("LADY"); +const u8 gEasyChatWord_Friend[] = _("FRIEND"); +const u8 gEasyChatWord_Ally[] = _("ALLY"); +const u8 gEasyChatWord_Person[] = _("PERSON"); +const u8 gEasyChatWord_Dude[] = _("DUDE"); +const u8 gEasyChatWord_They[] = _("THEY"); +const u8 gEasyChatWord_TheyWere[] = _("THEY WERE"); +const u8 gEasyChatWord_ToThem[] = _("TO THEM"); +const u8 gEasyChatWord_Their[] = _("THEIR"); +const u8 gEasyChatWord_Theyre[] = _("THEY'RE"); +const u8 gEasyChatWord_Theyve[] = _("THEY'VE"); +const u8 gEasyChatWord_We[] = _("WE"); +const u8 gEasyChatWord_Been[] = _("BEEN"); +const u8 gEasyChatWord_ToUs[] = _("TO US"); +const u8 gEasyChatWord_Our[] = _("OUR"); +const u8 gEasyChatWord_WeAre[] = _("WE'RE"); +const u8 gEasyChatWord_Rival[] = _("RIVAL"); +const u8 gEasyChatWord_Weve[] = _("WE'VE"); +const u8 gEasyChatWord_Woman[] = _("WOMAN"); +const u8 gEasyChatWord_She[] = _("SHE"); +const u8 gEasyChatWord_SheWas[] = _("SHE WAS"); +const u8 gEasyChatWord_ToHer[] = _("TO HER"); +const u8 gEasyChatWord_Hers[] = _("HERS"); +const u8 gEasyChatWord_SheIs[] = _("SHE IS"); +const u8 gEasyChatWord_Some[] = _("SOME"); + +const struct EasyChatWordInfo gEasyChatGroup_People[] = { + { + .text = gEasyChatWord_Opponent, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_I, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_You, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yours, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Son, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Your, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Youre, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Youve, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mother, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grandfather, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Uncle, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Father, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Boy, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Adult, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Brother, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sister, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grandmother, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aunt, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Parent, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Man, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Me, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Girl, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Babe, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Family, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Her, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Him, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_He, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Place, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daughter, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_His, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hes, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Arent, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Siblings, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kid, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Children, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mr, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mrs, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Myself, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IWas, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToMe, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_My, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_IAm, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ive, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Who, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Someone, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhoWas, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToWhom, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whose, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhoIs, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Its, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lady, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Friend, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ally, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Person, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dude, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_They, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TheyWere, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToThem, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Their, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Theyre, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Theyve, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_We, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Been, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToUs, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Our, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WeAre, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rival, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Weve, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Woman, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_She, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SheWas, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ToHer, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hers, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SheIs, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Some, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_pokemon.h b/src/data/easy_chat/easy_chat_group_pokemon.h new file mode 100755 index 000000000..9993a5144 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_pokemon.h @@ -0,0 +1,206 @@ +#include "constants/species.h" + +const u16 gEasyChatGroup_Pokemon[] = { + SPECIES_ABRA, + SPECIES_ABSOL, + SPECIES_AGGRON, + SPECIES_ALAKAZAM, + SPECIES_ALTARIA, + SPECIES_ANORITH, + SPECIES_ARMALDO, + SPECIES_ARON, + SPECIES_AZUMARILL, + SPECIES_AZURILL, + SPECIES_BAGON, + SPECIES_BALTOY, + SPECIES_BANETTE, + SPECIES_BARBOACH, + SPECIES_BEAUTIFLY, + SPECIES_BELDUM, + SPECIES_BELLOSSOM, + SPECIES_BLAZIKEN, + SPECIES_BRELOOM, + SPECIES_CACNEA, + SPECIES_CACTURNE, + SPECIES_CAMERUPT, + SPECIES_CARVANHA, + SPECIES_CASCOON, + SPECIES_CASTFORM, + SPECIES_CHIMECHO, + SPECIES_CHINCHOU, + SPECIES_CLAMPERL, + SPECIES_CLAYDOL, + SPECIES_COMBUSKEN, + SPECIES_CORPHISH, + SPECIES_CORSOLA, + SPECIES_CRADILY, + SPECIES_CRAWDAUNT, + SPECIES_CROBAT, + SPECIES_DELCATTY, + SPECIES_DEOXYS, + SPECIES_DODRIO, + SPECIES_DODUO, + SPECIES_DONPHAN, + SPECIES_DUSCLOPS, + SPECIES_DUSKULL, + SPECIES_DUSTOX, + SPECIES_ELECTRIKE, + SPECIES_ELECTRODE, + SPECIES_EXPLOUD, + SPECIES_FEEBAS, + SPECIES_FLYGON, + SPECIES_GARDEVOIR, + SPECIES_GEODUDE, + SPECIES_GIRAFARIG, + SPECIES_GLALIE, + SPECIES_GLOOM, + SPECIES_GOLBAT, + SPECIES_GOLDEEN, + SPECIES_GOLDUCK, + SPECIES_GOLEM, + SPECIES_GOREBYSS, + SPECIES_GRAVELER, + SPECIES_GRIMER, + SPECIES_GROUDON, + SPECIES_GROVYLE, + SPECIES_GRUMPIG, + SPECIES_GULPIN, + SPECIES_GYARADOS, + SPECIES_HARIYAMA, + SPECIES_HERACROSS, + SPECIES_HORSEA, + SPECIES_HUNTAIL, + SPECIES_IGGLYBUFF, + SPECIES_ILLUMISE, + SPECIES_JIGGLYPUFF, + SPECIES_JIRACHI, + SPECIES_KADABRA, + SPECIES_KECLEON, + SPECIES_KINGDRA, + SPECIES_KIRLIA, + SPECIES_KOFFING, + SPECIES_KYOGRE, + SPECIES_LAIRON, + SPECIES_LANTURN, + SPECIES_LATIAS, + SPECIES_LATIOS, + SPECIES_LILEEP, + SPECIES_LINOONE, + SPECIES_LOMBRE, + SPECIES_LOTAD, + SPECIES_LOUDRED, + SPECIES_LUDICOLO, + SPECIES_LUNATONE, + SPECIES_LUVDISC, + SPECIES_MACHAMP, + SPECIES_MACHOKE, + SPECIES_MACHOP, + SPECIES_MAGCARGO, + SPECIES_MAGIKARP, + SPECIES_MAGNEMITE, + SPECIES_MAGNETON, + SPECIES_MAKUHITA, + SPECIES_MANECTRIC, + SPECIES_MARILL, + SPECIES_MARSHTOMP, + SPECIES_MASQUERAIN, + SPECIES_MAWILE, + SPECIES_MEDICHAM, + SPECIES_MEDITITE, + SPECIES_METAGROSS, + SPECIES_METANG, + SPECIES_MIGHTYENA, + SPECIES_MILOTIC, + SPECIES_MINUN, + SPECIES_MUDKIP, + SPECIES_MUK, + SPECIES_NATU, + SPECIES_NINCADA, + SPECIES_NINETALES, + SPECIES_NINJASK, + SPECIES_NOSEPASS, + SPECIES_NUMEL, + SPECIES_NUZLEAF, + SPECIES_ODDISH, + SPECIES_PELIPPER, + SPECIES_PHANPY, + SPECIES_PICHU, + SPECIES_PIKACHU, + SPECIES_PINSIR, + SPECIES_PLUSLE, + SPECIES_POOCHYENA, + SPECIES_PSYDUCK, + SPECIES_RAICHU, + SPECIES_RALTS, + SPECIES_RAYQUAZA, + SPECIES_REGICE, + SPECIES_REGIROCK, + SPECIES_REGISTEEL, + SPECIES_RELICANTH, + SPECIES_RHYDON, + SPECIES_RHYHORN, + SPECIES_ROSELIA, + SPECIES_SABLEYE, + SPECIES_SALAMENCE, + SPECIES_SANDSHREW, + SPECIES_SANDSLASH, + SPECIES_SCEPTILE, + SPECIES_SEADRA, + SPECIES_SEAKING, + SPECIES_SEALEO, + SPECIES_SEEDOT, + SPECIES_SEVIPER, + SPECIES_SHARPEDO, + SPECIES_SHEDINJA, + SPECIES_SHELGON, + SPECIES_SHIFTRY, + SPECIES_SHROOMISH, + SPECIES_SHUPPET, + SPECIES_SILCOON, + SPECIES_SKARMORY, + SPECIES_SKITTY, + SPECIES_SLAKING, + SPECIES_SLAKOTH, + SPECIES_SLUGMA, + SPECIES_SNORUNT, + SPECIES_SOLROCK, + SPECIES_SPHEAL, + SPECIES_SPINDA, + SPECIES_SPOINK, + SPECIES_STARMIE, + SPECIES_STARYU, + SPECIES_SURSKIT, + SPECIES_SWABLU, + SPECIES_SWALOT, + SPECIES_SWAMPERT, + SPECIES_SWELLOW, + SPECIES_TAILLOW, + SPECIES_TENTACOOL, + SPECIES_TENTACRUEL, + SPECIES_TORCHIC, + SPECIES_TORKOAL, + SPECIES_TRAPINCH, + SPECIES_TREECKO, + SPECIES_TROPIUS, + SPECIES_VIBRAVA, + SPECIES_VIGOROTH, + SPECIES_VILEPLUME, + SPECIES_VOLBEAT, + SPECIES_VOLTORB, + SPECIES_VULPIX, + SPECIES_WAILMER, + SPECIES_WAILORD, + SPECIES_WALREIN, + SPECIES_WEEZING, + SPECIES_WHISCASH, + SPECIES_WHISMUR, + SPECIES_WIGGLYTUFF, + SPECIES_WINGULL, + SPECIES_WOBBUFFET, + SPECIES_WURMPLE, + SPECIES_WYNAUT, + SPECIES_XATU, + SPECIES_ZANGOOSE, + SPECIES_ZIGZAGOON, + SPECIES_ZUBAT, +}; diff --git a/src/data/easy_chat/easy_chat_group_pokemon2.h b/src/data/easy_chat/easy_chat_group_pokemon2.h new file mode 100755 index 000000000..35b0a03cb --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_pokemon2.h @@ -0,0 +1,255 @@ +#include "constants/species.h" + +const u16 gEasyChatGroup_Pokemon2[] = { + SPECIES_ABRA, + SPECIES_AERODACTYL, + SPECIES_AIPOM, + SPECIES_ALAKAZAM, + SPECIES_AMPHAROS, + SPECIES_ARBOK, + SPECIES_ARCANINE, + SPECIES_ARIADOS, + SPECIES_ARTICUNO, + SPECIES_AZUMARILL, + SPECIES_BAYLEEF, + SPECIES_BEEDRILL, + SPECIES_BELLOSSOM, + SPECIES_BELLSPROUT, + SPECIES_BLASTOISE, + SPECIES_BLISSEY, + SPECIES_BULBASAUR, + SPECIES_BUTTERFREE, + SPECIES_CATERPIE, + SPECIES_CELEBI, + SPECIES_CHANSEY, + SPECIES_CHARIZARD, + SPECIES_CHARMANDER, + SPECIES_CHARMELEON, + SPECIES_CHIKORITA, + SPECIES_CHINCHOU, + SPECIES_CLEFABLE, + SPECIES_CLEFAIRY, + SPECIES_CLEFFA, + SPECIES_CLOYSTER, + SPECIES_CORSOLA, + SPECIES_CROBAT, + SPECIES_CROCONAW, + SPECIES_CUBONE, + SPECIES_CYNDAQUIL, + SPECIES_DELIBIRD, + SPECIES_DEWGONG, + SPECIES_DIGLETT, + SPECIES_DITTO, + SPECIES_DODRIO, + SPECIES_DODUO, + SPECIES_DONPHAN, + SPECIES_DRAGONAIR, + SPECIES_DRAGONITE, + SPECIES_DRATINI, + SPECIES_DROWZEE, + SPECIES_DUGTRIO, + SPECIES_DUNSPARCE, + SPECIES_EEVEE, + SPECIES_EKANS, + SPECIES_ELECTABUZZ, + SPECIES_ELECTRODE, + SPECIES_ELEKID, + SPECIES_ENTEI, + SPECIES_ESPEON, + SPECIES_EXEGGCUTE, + SPECIES_EXEGGUTOR, + SPECIES_FARFETCHD, + SPECIES_FEAROW, + SPECIES_FERALIGATR, + SPECIES_FLAAFFY, + SPECIES_FLAREON, + SPECIES_FORRETRESS, + SPECIES_FURRET, + SPECIES_GASTLY, + SPECIES_GENGAR, + SPECIES_GEODUDE, + SPECIES_GIRAFARIG, + SPECIES_GLIGAR, + SPECIES_GLOOM, + SPECIES_GOLBAT, + SPECIES_GOLDEEN, + SPECIES_GOLDUCK, + SPECIES_GOLEM, + SPECIES_GRANBULL, + SPECIES_GRAVELER, + SPECIES_GRIMER, + SPECIES_GROWLITHE, + SPECIES_GYARADOS, + SPECIES_HAUNTER, + SPECIES_HERACROSS, + SPECIES_HITMONCHAN, + SPECIES_HITMONLEE, + SPECIES_HITMONTOP, + SPECIES_HO_OH, + SPECIES_HOOTHOOT, + SPECIES_HOPPIP, + SPECIES_HORSEA, + SPECIES_HOUNDOOM, + SPECIES_HOUNDOUR, + SPECIES_HYPNO, + SPECIES_IGGLYBUFF, + SPECIES_IVYSAUR, + SPECIES_JIGGLYPUFF, + SPECIES_JOLTEON, + SPECIES_JUMPLUFF, + SPECIES_JYNX, + SPECIES_KABUTO, + SPECIES_KABUTOPS, + SPECIES_KADABRA, + SPECIES_KAKUNA, + SPECIES_KANGASKHAN, + SPECIES_KINGDRA, + SPECIES_KINGLER, + SPECIES_KOFFING, + SPECIES_KRABBY, + SPECIES_LANTURN, + SPECIES_LAPRAS, + SPECIES_LARVITAR, + SPECIES_LEDIAN, + SPECIES_LEDYBA, + SPECIES_LICKITUNG, + SPECIES_LUGIA, + SPECIES_MACHAMP, + SPECIES_MACHOKE, + SPECIES_MACHOP, + SPECIES_MAGBY, + SPECIES_MAGCARGO, + SPECIES_MAGIKARP, + SPECIES_MAGMAR, + SPECIES_MAGNEMITE, + SPECIES_MAGNETON, + SPECIES_MANKEY, + SPECIES_MANTINE, + SPECIES_MAREEP, + SPECIES_MARILL, + SPECIES_MAROWAK, + SPECIES_MEGANIUM, + SPECIES_MEOWTH, + SPECIES_METAPOD, + SPECIES_MEW, + SPECIES_MEWTWO, + SPECIES_MILTANK, + SPECIES_MISDREAVUS, + SPECIES_MOLTRES, + SPECIES_MR_MIME, + SPECIES_MUK, + SPECIES_MURKROW, + SPECIES_NATU, + SPECIES_NIDOKING, + SPECIES_NIDOQUEEN, + SPECIES_NIDORAN_F, + SPECIES_NIDORAN_M, + SPECIES_NIDORINA, + SPECIES_NIDORINO, + SPECIES_NINETALES, + SPECIES_NOCTOWL, + SPECIES_OCTILLERY, + SPECIES_ODDISH, + SPECIES_OMANYTE, + SPECIES_OMASTAR, + SPECIES_ONIX, + SPECIES_PARAS, + SPECIES_PARASECT, + SPECIES_PERSIAN, + SPECIES_PHANPY, + SPECIES_PICHU, + SPECIES_PIDGEOT, + SPECIES_PIDGEOTTO, + SPECIES_PIDGEY, + SPECIES_PIKACHU, + SPECIES_PILOSWINE, + SPECIES_PINECO, + SPECIES_PINSIR, + SPECIES_POLITOED, + SPECIES_POLIWAG, + SPECIES_POLIWHIRL, + SPECIES_POLIWRATH, + SPECIES_PONYTA, + SPECIES_PORYGON, + SPECIES_PORYGON2, + SPECIES_PRIMEAPE, + SPECIES_PSYDUCK, + SPECIES_PUPITAR, + SPECIES_QUAGSIRE, + SPECIES_QUILAVA, + SPECIES_QWILFISH, + SPECIES_RAICHU, + SPECIES_RAIKOU, + SPECIES_RAPIDASH, + SPECIES_RATICATE, + SPECIES_RATTATA, + SPECIES_REMORAID, + SPECIES_RHYDON, + SPECIES_RHYHORN, + SPECIES_SANDSHREW, + SPECIES_SANDSLASH, + SPECIES_SCIZOR, + SPECIES_SCYTHER, + SPECIES_SEADRA, + SPECIES_SEAKING, + SPECIES_SEEL, + SPECIES_SENTRET, + SPECIES_SHELLDER, + SPECIES_SHUCKLE, + SPECIES_SKARMORY, + SPECIES_SKIPLOOM, + SPECIES_SLOWBRO, + SPECIES_SLOWKING, + SPECIES_SLOWPOKE, + SPECIES_SLUGMA, + SPECIES_SMEARGLE, + SPECIES_SMOOCHUM, + SPECIES_SNEASEL, + SPECIES_SNORLAX, + SPECIES_SNUBBULL, + SPECIES_SPEAROW, + SPECIES_SPINARAK, + SPECIES_SQUIRTLE, + SPECIES_STANTLER, + SPECIES_STARMIE, + SPECIES_STARYU, + SPECIES_STEELIX, + SPECIES_SUDOWOODO, + SPECIES_SUICUNE, + SPECIES_SUNFLORA, + SPECIES_SUNKERN, + SPECIES_SWINUB, + SPECIES_TANGELA, + SPECIES_TAUROS, + SPECIES_TEDDIURSA, + SPECIES_TENTACOOL, + SPECIES_TENTACRUEL, + SPECIES_TOGEPI, + SPECIES_TOGETIC, + SPECIES_TOTODILE, + SPECIES_TYPHLOSION, + SPECIES_TYRANITAR, + SPECIES_TYROGUE, + SPECIES_UMBREON, + SPECIES_UNOWN, + SPECIES_URSARING, + SPECIES_VAPOREON, + SPECIES_VENOMOTH, + SPECIES_VENONAT, + SPECIES_VENUSAUR, + SPECIES_VICTREEBEL, + SPECIES_VILEPLUME, + SPECIES_VOLTORB, + SPECIES_VULPIX, + SPECIES_WARTORTLE, + SPECIES_WEEDLE, + SPECIES_WEEPINBELL, + SPECIES_WEEZING, + SPECIES_WIGGLYTUFF, + SPECIES_WOBBUFFET, + SPECIES_WOOPER, + SPECIES_XATU, + SPECIES_YANMA, + SPECIES_ZAPDOS, + SPECIES_ZUBAT, +}; diff --git a/src/data/easy_chat/easy_chat_group_speech.h b/src/data/easy_chat/easy_chat_group_speech.h new file mode 100755 index 000000000..013b454c0 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_speech.h @@ -0,0 +1,363 @@ +const u8 gEasyChatWord_Listen[] = _("LISTEN"); +const u8 gEasyChatWord_NotVery[] = _("NOT VERY"); +const u8 gEasyChatWord_Mean[] = _("MEAN"); +const u8 gEasyChatWord_Lie[] = _("LIE"); +const u8 gEasyChatWord_Lay[] = _("LAY"); +const u8 gEasyChatWord_Recommend[] = _("RECOMMEND"); +const u8 gEasyChatWord_Nitwit[] = _("NITWIT"); +const u8 gEasyChatWord_Quite[] = _("QUITE"); +const u8 gEasyChatWord_From[] = _("FROM"); +const u8 gEasyChatWord_Feeling[] = _("FEELING"); +const u8 gEasyChatWord_But[] = _("BUT"); +const u8 gEasyChatWord_However[] = _("HOWEVER"); +const u8 gEasyChatWord_Case[] = _("CASE"); +const u8 gEasyChatWord_The[] = _("THE"); +const u8 gEasyChatWord_Miss[] = _("MISS"); +const u8 gEasyChatWord_How[] = _("HOW"); +const u8 gEasyChatWord_Hit[] = _("HIT"); +const u8 gEasyChatWord_Enough[] = _("ENOUGH"); +const u8 gEasyChatWord_ALot[] = _("A LOT"); +const u8 gEasyChatWord_ALittle[] = _("A LITTLE"); +const u8 gEasyChatWord_Absolutely[] = _("ABSOLUTELY"); +const u8 gEasyChatWord_And[] = _("AND"); +const u8 gEasyChatWord_Only[] = _("ONLY"); +const u8 gEasyChatWord_Around[] = _("AROUND"); +const u8 gEasyChatWord_Probably[] = _("PROBABLY"); +const u8 gEasyChatWord_If[] = _("IF"); +const u8 gEasyChatWord_Very[] = _("VERY"); +const u8 gEasyChatWord_ATinyBit[] = _("A TINY BIT"); +const u8 gEasyChatWord_Wild[] = _("WILD"); +const u8 gEasyChatWord_Thats[] = _("THAT'S"); +const u8 gEasyChatWord_Just[] = _("JUST"); +const u8 gEasyChatWord_EvenSo[] = _("EVEN SO,"); +const u8 gEasyChatWord_MustBe[] = _("MUST BE"); +const u8 gEasyChatWord_Naturally[] = _("NATURALLY"); +const u8 gEasyChatWord_ForNow[] = _("FOR NOW,"); +const u8 gEasyChatWord_Understood[] = _("UNDERSTOOD"); +const u8 gEasyChatWord_Joking[] = _("JOKING"); +const u8 gEasyChatWord_Ready[] = _("READY"); +const u8 gEasyChatWord_Something[] = _("SOMETHING"); +const u8 gEasyChatWord_Somehow[] = _("SOMEHOW"); +const u8 gEasyChatWord_Although[] = _("ALTHOUGH"); +const u8 gEasyChatWord_Also[] = _("ALSO"); +const u8 gEasyChatWord_Perfect[] = _("PERFECT"); +const u8 gEasyChatWord_AsMuchAs[] = _("AS MUCH AS"); +const u8 gEasyChatWord_Really[] = _("REALLY"); +const u8 gEasyChatWord_Truly[] = _("TRULY"); +const u8 gEasyChatWord_Seriously[] = _("SERIOUSLY"); +const u8 gEasyChatWord_Totally[] = _("TOTALLY"); +const u8 gEasyChatWord_Until[] = _("UNTIL"); +const u8 gEasyChatWord_AsIf[] = _("AS IF"); +const u8 gEasyChatWord_Mood[] = _("MOOD"); +const u8 gEasyChatWord_Rather[] = _("RATHER"); +const u8 gEasyChatWord_Awfully[] = _("AWFULLY"); +const u8 gEasyChatWord_Mode[] = _("MODE"); +const u8 gEasyChatWord_More[] = _("MORE"); +const u8 gEasyChatWord_TooLate[] = _("TOO LATE"); +const u8 gEasyChatWord_Finally[] = _("FINALLY"); +const u8 gEasyChatWord_Any[] = _("ANY"); +const u8 gEasyChatWord_Instead[] = _("INSTEAD"); +const u8 gEasyChatWord_Fantastic[] = _("FANTASTIC"); + +const struct EasyChatWordInfo gEasyChatGroup_Speech[] = { + { + .text = gEasyChatWord_Listen, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NotVery, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mean, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lie, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lay, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Recommend, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nitwit, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Quite, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_From, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Feeling, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_But, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_However, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Case, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_The, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Miss, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_How, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hit, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Enough, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ALot, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ALittle, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Absolutely, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_And, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Only, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Around, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Probably, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_If, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Very, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ATinyBit, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wild, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thats, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Just, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EvenSo, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MustBe, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Naturally, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ForNow, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Understood, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Joking, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ready, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Something, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Somehow, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Although, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Also, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Perfect, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AsMuchAs, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Really, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Truly, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Seriously, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Totally, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Until, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AsIf, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mood, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rather, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Awfully, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mode, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_More, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_TooLate, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Finally, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Any, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Instead, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fantastic, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_status.h b/src/data/easy_chat/easy_chat_group_status.h new file mode 100755 index 000000000..d4958c3ad --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_status.h @@ -0,0 +1,657 @@ +const u8 gEasyChatWord_Dark[] = _("DARK"); +const u8 gEasyChatWord_Stench[] = _("STENCH"); +const u8 gEasyChatWord_ThickFat[] = _("THICK FAT"); +const u8 gEasyChatWord_RainDish[] = _("RAIN DISH"); +const u8 gEasyChatWord_Drizzle[] = _("DRIZZLE"); +const u8 gEasyChatWord_ArenaTrap[] = _("ARENA TRAP"); +const u8 gEasyChatWord_Intimidate[] = _("INTIMIDATE"); +const u8 gEasyChatWord_RockHead[] = _("ROCK HEAD"); +const u8 gEasyChatWord_Color[] = _("COLOR"); +const u8 gEasyChatWord_AltColor[] = _("ALT. COLOR"); +const u8 gEasyChatWord_Rock[] = _("ROCK"); +const u8 gEasyChatWord_Beautiful[] = _("BEAUTIFUL"); +const u8 gEasyChatWord_Beauty[] = _("BEAUTY"); +const u8 gEasyChatWord_AirLock[] = _("AIR LOCK"); +const u8 gEasyChatWord_Psychic[] = _("PSYCHIC"); +const u8 gEasyChatWord_HyperCutter[] = _("HYPER CUTTER"); +const u8 gEasyChatWord_Fighting[] = _("FIGHTING"); +const u8 gEasyChatWord_ShadowTag[] = _("SHADOW TAG"); +const u8 gEasyChatWord_Smart[] = _("SMART"); +const u8 gEasyChatWord_Smartness[] = _("SMARTNESS"); +const u8 gEasyChatWord_SpeedBoost[] = _("SPEED BOOST"); +const u8 gEasyChatWord_Cool[] = _("COOL"); +const u8 gEasyChatWord_Coolness[] = _("COOLNESS"); +const u8 gEasyChatWord_BattleArmor[] = _("BATTLE ARMOR"); +const u8 gEasyChatWord_Cute[] = _("CUTE"); +const u8 gEasyChatWord_Cuteness[] = _("CUTENESS"); +const u8 gEasyChatWord_Sturdy[] = _("STURDY"); +const u8 gEasyChatWord_SuctionCups[] = _("SUCTION CUPS"); +const u8 gEasyChatWord_Grass[] = _("GRASS"); +const u8 gEasyChatWord_ClearBody[] = _("CLEAR BODY"); +const u8 gEasyChatWord_Torrent[] = _("TORRENT"); +const u8 gEasyChatWord_Ghost[] = _("GHOST"); +const u8 gEasyChatWord_Ice[] = _("ICE"); +const u8 gEasyChatWord_Guts[] = _("GUTS"); +const u8 gEasyChatWord_RoughSkin[] = _("ROUGH SKIN"); +const u8 gEasyChatWord_ShellArmor[] = _("SHELL ARMOR"); +const u8 gEasyChatWord_NaturalCure[] = _("NATURAL CURE"); +const u8 gEasyChatWord_Damp[] = _("DAMP"); +const u8 gEasyChatWord_Ground[] = _("GROUND"); +const u8 gEasyChatWord_Limber[] = _("LIMBER"); +const u8 gEasyChatWord_MagnetPull[] = _("MAGNET PULL"); +const u8 gEasyChatWord_WhiteSmoke[] = _("WHITE SMOKE"); +const u8 gEasyChatWord_Synchronize[] = _("SYNCHRONIZE"); +const u8 gEasyChatWord_Overgrow[] = _("OVERGROW"); +const u8 gEasyChatWord_SwiftSwim[] = _("SWIFT SWIM"); +const u8 gEasyChatWord_SandStream[] = _("SAND STREAM"); +const u8 gEasyChatWord_SandVeil[] = _("SAND VEIL"); +const u8 gEasyChatWord_KeenEye[] = _("KEEN EYE"); +const u8 gEasyChatWord_InnerFocus[] = _("INNER FOCUS"); +const u8 gEasyChatWord_Static[] = _("STATIC"); +const u8 gEasyChatWord_Type[] = _("TYPE"); +const u8 gEasyChatWord_Tough[] = _("TOUGH"); +const u8 gEasyChatWord_Toughness[] = _("TOUGHNESS"); +const u8 gEasyChatWord_ShedSkin[] = _("SHED SKIN"); +const u8 gEasyChatWord_HugePower[] = _("HUGE POWER"); +const u8 gEasyChatWord_VoltAbsorb[] = _("VOLT ABSORB"); +const u8 gEasyChatWord_WaterAbsorb[] = _("WATER ABSORB"); +const u8 gEasyChatWord_Electric[] = _("ELECTRIC"); +const u8 gEasyChatWord_Forecast[] = _("FORECAST"); +const u8 gEasyChatWord_SereneGrace[] = _("SERENE GRACE"); +const u8 gEasyChatWord_Poison[] = _("POISON"); +const u8 gEasyChatWord_PoisonPoint[] = _("POISON POINT"); +const u8 gEasyChatWord_Dragon[] = _("DRAGON"); +const u8 gEasyChatWord_Trace[] = _("TRACE"); +const u8 gEasyChatWord_Oblivious[] = _("OBLIVIOUS"); +const u8 gEasyChatWord_Truant[] = _("TRUANT"); +const u8 gEasyChatWord_RunAway[] = _("RUN AWAY"); +const u8 gEasyChatWord_StickyHold[] = _("STICKY HOLD"); +const u8 gEasyChatWord_CloudNine[] = _("CLOUD NINE"); +const u8 gEasyChatWord_Normal[] = _("NORMAL"); +const u8 gEasyChatWord_Steel[] = _("STEEL"); +const u8 gEasyChatWord_Illuminate[] = _("ILLUMINATE"); +const u8 gEasyChatWord_EarlyBird[] = _("EARLY BIRD"); +const u8 gEasyChatWord_Hustle[] = _("HUSTLE"); +const u8 gEasyChatWord_Shine[] = _("SHINE"); +const u8 gEasyChatWord_Flying[] = _("FLYING"); +const u8 gEasyChatWord_Drought[] = _("DROUGHT"); +const u8 gEasyChatWord_Lightningrod[] = _("LIGHTNINGROD"); +const u8 gEasyChatWord_Compoundeyes[] = _("COMPOUNDEYES"); +const u8 gEasyChatWord_MarvelScale[] = _("MARVEL SCALE"); +const u8 gEasyChatWord_WonderGuard[] = _("WONDER GUARD"); +const u8 gEasyChatWord_Insomnia[] = _("INSOMNIA"); +const u8 gEasyChatWord_Levitate[] = _("LEVITATE"); +const u8 gEasyChatWord_Plus[] = _("PLUS"); +const u8 gEasyChatWord_Pressure[] = _("PRESSURE"); +const u8 gEasyChatWord_LiquidOoze[] = _("LIQUID OOZE"); +const u8 gEasyChatWord_ColorChange[] = _("COLOR CHANGE"); +const u8 gEasyChatWord_Soundproof[] = _("SOUNDPROOF"); +const u8 gEasyChatWord_EffectSpore[] = _("EFFECT SPORE"); +const u8 gEasyChatWord_Pkrs[] = _("{PK}RS"); +const u8 gEasyChatWord_Fire[] = _("FIRE"); +const u8 gEasyChatWord_FlameBody[] = _("FLAME BODY"); +const u8 gEasyChatWord_Minus[] = _("MINUS"); +const u8 gEasyChatWord_OwnTempo[] = _("OWN TEMPO"); +const u8 gEasyChatWord_MagmaArmor[] = _("MAGMA ARMOR"); +const u8 gEasyChatWord_Water[] = _("WATER"); +const u8 gEasyChatWord_WaterVeil[] = _("WATER VEIL"); +const u8 gEasyChatWord_Bug[] = _("BUG"); +const u8 gEasyChatWord_Swarm[] = _("SWARM"); +const u8 gEasyChatWord_CuteCharm[] = _("CUTE CHARM"); +const u8 gEasyChatWord_Immunity[] = _("IMMUNITY"); +const u8 gEasyChatWord_Blaze[] = _("BLAZE"); +const u8 gEasyChatWord_Pickup[] = _("PICKUP"); +const u8 gEasyChatWord_Pattern[] = _("PATTERN"); +const u8 gEasyChatWord_FlashFire[] = _("FLASH FIRE"); +const u8 gEasyChatWord_VitalSpirit[] = _("VITAL SPIRIT"); +const u8 gEasyChatWord_Chlorophyll[] = _("CHLOROPHYLL"); +const u8 gEasyChatWord_PurePower[] = _("PURE POWER"); +const u8 gEasyChatWord_ShieldDust[] = _("SHIELD DUST"); + +const struct EasyChatWordInfo gEasyChatGroup_Status[] = { + { + .text = gEasyChatWord_Dark, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stench, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ThickFat, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RainDish, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drizzle, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ArenaTrap, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Intimidate, + .alphabeticalOrder = 101, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RockHead, + .alphabeticalOrder = 97, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Color, + .alphabeticalOrder = 106, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AltColor, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Rock, + .alphabeticalOrder = 68, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beautiful, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beauty, + .alphabeticalOrder = 86, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AirLock, + .alphabeticalOrder = 78, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Psychic, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HyperCutter, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fighting, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShadowTag, + .alphabeticalOrder = 99, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smart, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Smartness, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SpeedBoost, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cool, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Coolness, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_BattleArmor, + .alphabeticalOrder = 76, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cute, + .alphabeticalOrder = 72, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cuteness, + .alphabeticalOrder = 88, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sturdy, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SuctionCups, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Grass, + .alphabeticalOrder = 90, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ClearBody, + .alphabeticalOrder = 91, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Torrent, + .alphabeticalOrder = 104, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ghost, + .alphabeticalOrder = 75, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ice, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Guts, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RoughSkin, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShellArmor, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_NaturalCure, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Damp, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ground, + .alphabeticalOrder = 73, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Limber, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MagnetPull, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WhiteSmoke, + .alphabeticalOrder = 71, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Synchronize, + .alphabeticalOrder = 100, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Overgrow, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SwiftSwim, + .alphabeticalOrder = 81, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SandStream, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SandVeil, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_KeenEye, + .alphabeticalOrder = 82, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_InnerFocus, + .alphabeticalOrder = 77, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Static, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Type, + .alphabeticalOrder = 85, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tough, + .alphabeticalOrder = 94, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Toughness, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShedSkin, + .alphabeticalOrder = 79, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HugePower, + .alphabeticalOrder = 92, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_VoltAbsorb, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WaterAbsorb, + .alphabeticalOrder = 69, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Electric, + .alphabeticalOrder = 64, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forecast, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SereneGrace, + .alphabeticalOrder = 93, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Poison, + .alphabeticalOrder = 103, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PoisonPoint, + .alphabeticalOrder = 102, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dragon, + .alphabeticalOrder = 89, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trace, + .alphabeticalOrder = 83, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oblivious, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Truant, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_RunAway, + .alphabeticalOrder = 84, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_StickyHold, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CloudNine, + .alphabeticalOrder = 107, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Normal, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Steel, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Illuminate, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EarlyBird, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hustle, + .alphabeticalOrder = 66, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shine, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flying, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Drought, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lightningrod, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Compoundeyes, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MarvelScale, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WonderGuard, + .alphabeticalOrder = 108, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Insomnia, + .alphabeticalOrder = 74, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Levitate, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Plus, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pressure, + .alphabeticalOrder = 87, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_LiquidOoze, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ColorChange, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Soundproof, + .alphabeticalOrder = 70, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EffectSpore, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pkrs, + .alphabeticalOrder = 67, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fire, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_FlameBody, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Minus, + .alphabeticalOrder = 98, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OwnTempo, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MagmaArmor, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Water, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WaterVeil, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bug, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Swarm, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_CuteCharm, + .alphabeticalOrder = 63, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Immunity, + .alphabeticalOrder = 65, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Blaze, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pickup, + .alphabeticalOrder = 105, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pattern, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_FlashFire, + .alphabeticalOrder = 95, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_VitalSpirit, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Chlorophyll, + .alphabeticalOrder = 96, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_PurePower, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ShieldDust, + .alphabeticalOrder = 80, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_time.h b/src/data/easy_chat/easy_chat_group_time.h new file mode 100755 index 000000000..691dde70c --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_time.h @@ -0,0 +1,273 @@ +const u8 gEasyChatWord_Fall[] = _("FALL"); +const u8 gEasyChatWord_Morning[] = _("MORNING"); +const u8 gEasyChatWord_Tomorrow[] = _("TOMORROW"); +const u8 gEasyChatWord_Last[] = _("LAST"); +const u8 gEasyChatWord_Day[] = _("DAY"); +const u8 gEasyChatWord_Sometime[] = _("SOMETIME"); +const u8 gEasyChatWord_Always[] = _("ALWAYS"); +const u8 gEasyChatWord_Current[] = _("CURRENT"); +const u8 gEasyChatWord_Forever[] = _("FOREVER"); +const u8 gEasyChatWord_Days[] = _("DAYS"); +const u8 gEasyChatWord_End[] = _("END"); +const u8 gEasyChatWord_Tuesday[] = _("TUESDAY"); +const u8 gEasyChatWord_Yesterday[] = _("YESTERDAY"); +const u8 gEasyChatWord_Today[] = _("TODAY"); +const u8 gEasyChatWord_Friday[] = _("FRIDAY"); +const u8 gEasyChatWord_Monday[] = _("MONDAY"); +const u8 gEasyChatWord_Later[] = _("LATER"); +const u8 gEasyChatWord_Earlier[] = _("EARLIER"); +const u8 gEasyChatWord_Another[] = _("ANOTHER"); +const u8 gEasyChatWord_Time[] = _("TIME"); +const u8 gEasyChatWord_Finish[] = _("FINISH"); +const u8 gEasyChatWord_Wednesday[] = _("WEDNESDAY"); +const u8 gEasyChatWord_Soon[] = _("SOON"); +const u8 gEasyChatWord_Start[] = _("START"); +const u8 gEasyChatWord_Month[] = _("MONTH"); +const u8 gEasyChatWord_Stop[] = _("STOP"); +const u8 gEasyChatWord_Now[] = _("NOW"); +const u8 gEasyChatWord_Final[] = _("FINAL"); +const u8 gEasyChatWord_Next[] = _("NEXT"); +const u8 gEasyChatWord_Age[] = _("AGE"); +const u8 gEasyChatWord_Saturday[] = _("SATURDAY"); +const u8 gEasyChatWord_Summer[] = _("SUMMER"); +const u8 gEasyChatWord_Sunday[] = _("SUNDAY"); +const u8 gEasyChatWord_Beginning[] = _("BEGINNING"); +const u8 gEasyChatWord_Spring[] = _("SPRING"); +const u8 gEasyChatWord_Daytime[] = _("DAYTIME"); +const u8 gEasyChatWord_Winter[] = _("WINTER"); +const u8 gEasyChatWord_Daily[] = _("DAILY"); +const u8 gEasyChatWord_Olden[] = _("OLDEN"); +const u8 gEasyChatWord_Almost[] = _("ALMOST"); +const u8 gEasyChatWord_Nearly[] = _("NEARLY"); +const u8 gEasyChatWord_Thursday[] = _("THURSDAY"); +const u8 gEasyChatWord_Nighttime[] = _("NIGHTTIME"); +const u8 gEasyChatWord_Night[] = _("NIGHT"); +const u8 gEasyChatWord_Week[] = _("WEEK"); + +const struct EasyChatWordInfo gEasyChatGroup_Time[] = { + { + .text = gEasyChatWord_Fall, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Morning, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tomorrow, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Last, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Day, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sometime, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Always, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Current, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Forever, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Days, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_End, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tuesday, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yesterday, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Today, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Friday, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Monday, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Later, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Earlier, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Another, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Time, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Finish, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wednesday, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Soon, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Start, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Month, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Stop, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Now, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Final, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Next, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Age, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Saturday, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Summer, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sunday, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Beginning, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Spring, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daytime, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Winter, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Daily, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Olden, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Almost, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nearly, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Thursday, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nighttime, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Night, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Week, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_trainer.h b/src/data/easy_chat/easy_chat_group_trainer.h new file mode 100755 index 000000000..a4e1ddfd6 --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_trainer.h @@ -0,0 +1,165 @@ +const u8 gEasyChatWord_IChooseYou[] = _("I CHOOSE YOU"); +const u8 gEasyChatWord_Gotcha[] = _("GOTCHA"); +const u8 gEasyChatWord_Trade[] = _("TRADE"); +const u8 gEasyChatWord_Sapphire[] = _("SAPPHIRE"); +const u8 gEasyChatWord_Evolve[] = _("EVOLVE"); +const u8 gEasyChatWord_Encyclopedia[] = _("ENCYCLOPEDIA"); +const u8 gEasyChatWord_Nature[] = _("NATURE"); +const u8 gEasyChatWord_Center[] = _("CENTER"); +const u8 gEasyChatWord_Egg[] = _("EGG"); +const u8 gEasyChatWord_Link[] = _("LINK"); +const u8 gEasyChatWord_SpAbility[] = _("SP. ABILITY"); +const u8 gEasyChatWord_Trainer[] = _("TRAINER"); +const u8 gEasyChatWord_Version[] = _("VERSION"); +const u8 gEasyChatWord_Pokenav[] = _("POKéNAV"); +const u8 gEasyChatWord_Pokemon[] = _("POKéMON"); +const u8 gEasyChatWord_Get[] = _("GET"); +const u8 gEasyChatWord_Pokedex[] = _("POKéDEX"); +const u8 gEasyChatWord_Ruby[] = _("RUBY"); +const u8 gEasyChatWord_Level[] = _("LEVEL"); +const u8 gEasyChatWord_Red[] = _("RED"); +const u8 gEasyChatWord_Green[] = _("GREEN"); +const u8 gEasyChatWord_Bag[] = _("BAG"); +const u8 gEasyChatWord_Flame[] = _("FLAME"); +const u8 gEasyChatWord_Gold[] = _("GOLD"); +const u8 gEasyChatWord_Leaf[] = _("LEAF"); +const u8 gEasyChatWord_Silver[] = _("SILVER"); +const u8 gEasyChatWord_Emerald[] = _("EMERALD"); + +const struct EasyChatWordInfo gEasyChatGroup_Trainer[] = { + { + .text = gEasyChatWord_IChooseYou, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gotcha, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trade, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sapphire, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Evolve, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Encyclopedia, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nature, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Center, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Egg, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Link, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SpAbility, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Trainer, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Version, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokenav, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokemon, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Get, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Pokedex, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ruby, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Level, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Red, + .alphabeticalOrder = 19, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Green, + .alphabeticalOrder = 17, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Bag, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flame, + .alphabeticalOrder = 25, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Gold, + .alphabeticalOrder = 10, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Leaf, + .alphabeticalOrder = 2, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Silver, + .alphabeticalOrder = 11, + .enabled = FALSE, + }, + { + .text = gEasyChatWord_Emerald, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_trendy_saying.h b/src/data/easy_chat/easy_chat_group_trendy_saying.h new file mode 100755 index 000000000..46ce1201a --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_trendy_saying.h @@ -0,0 +1,201 @@ +const u8 gEasyChatWord_KthxBye[] = _("KTHX, BYE."); +const u8 gEasyChatWord_YesSirExcl[] = _("YES, SIR!"); +const u8 gEasyChatWord_AvantGarde[] = _("AVANT GARDE"); +const u8 gEasyChatWord_Couple[] = _("COUPLE"); +const u8 gEasyChatWord_MuchObliged[] = _("MUCH OBLIGED"); +const u8 gEasyChatWord_YeehawExcl[] = _("YEEHAW!"); +const u8 gEasyChatWord_Mega[] = _("MEGA"); +const u8 gEasyChatWord_1HitKOExcl[] = _("1-HIT KO!"); +const u8 gEasyChatWord_Destiny[] = _("DESTINY"); +const u8 gEasyChatWord_Cancel[] = _("CANCEL"); +const u8 gEasyChatWord_New[] = _("NEW"); +const u8 gEasyChatWord_Flatten[] = _("FLATTEN"); +const u8 gEasyChatWord_Kidding[] = _("KIDDING"); +const u8 gEasyChatWord_Loser[] = _("LOSER"); +const u8 gEasyChatWord_Losing[] = _("LOSING"); +const u8 gEasyChatWord_Happening[] = _("HAPPENING"); +const u8 gEasyChatWord_HipAnd[] = _("HIP AND"); +const u8 gEasyChatWord_Shake[] = _("SHAKE"); +const u8 gEasyChatWord_Shady[] = _("SHADY"); +const u8 gEasyChatWord_Upbeat[] = _("UPBEAT"); +const u8 gEasyChatWord_Modern[] = _("MODERN"); +const u8 gEasyChatWord_SmellYa[] = _("SMELL YA"); +const u8 gEasyChatWord_Bang[] = _("BANG"); +const u8 gEasyChatWord_Knockout[] = _("KNOCKOUT"); +const u8 gEasyChatWord_Hassle[] = _("HASSLE"); +const u8 gEasyChatWord_Winner[] = _("WINNER"); +const u8 gEasyChatWord_Fever[] = _("FEVER"); +const u8 gEasyChatWord_Wannabe[] = _("WANNABE"); +const u8 gEasyChatWord_Baby[] = _("BABY"); +const u8 gEasyChatWord_Heart[] = _("HEART"); +const u8 gEasyChatWord_Old[] = _("OLD"); +const u8 gEasyChatWord_Young[] = _("YOUNG"); +const u8 gEasyChatWord_Ugly[] = _("UGLY"); + +const struct EasyChatWordInfo gEasyChatGroup_TrendySaying[] = { + { + .text = gEasyChatWord_KthxBye, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YesSirExcl, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_AvantGarde, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Couple, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_MuchObliged, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_YeehawExcl, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mega, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_1HitKOExcl, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Destiny, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cancel, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_New, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Flatten, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Kidding, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Loser, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Losing, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Happening, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_HipAnd, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shake, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shady, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Upbeat, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Modern, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_SmellYa, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Bang, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Knockout, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hassle, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Winner, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fever, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wannabe, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Baby, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heart, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Old, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Young, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ugly, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_group_voices.h b/src/data/easy_chat/easy_chat_group_voices.h new file mode 100755 index 000000000..6dad874ec --- /dev/null +++ b/src/data/easy_chat/easy_chat_group_voices.h @@ -0,0 +1,381 @@ +const u8 gEasyChatWord_Excl[] = _("!"); +const u8 gEasyChatWord_ExclExcl[] = _("!!"); +const u8 gEasyChatWord_QuesExcl[] = _("?!"); +const u8 gEasyChatWord_Ques[] = _("?"); +const u8 gEasyChatWord_Ellipsis[] = _("…"); +const u8 gEasyChatWord_EllipsisExcl[] = _("…!"); +const u8 gEasyChatWord_EllipsisEllipsisEllipsis[] = _("………"); +const u8 gEasyChatWord_Dash[] = _("-"); +const u8 gEasyChatWord_DashDashDash[] = _("- - -"); +const u8 gEasyChatWord_UhOh[] = _("UH-OH"); +const u8 gEasyChatWord_Waaah[] = _("WAAAH"); +const u8 gEasyChatWord_Ahaha[] = _("AHAHA"); +const u8 gEasyChatWord_OhQues[] = _("OH?"); +const u8 gEasyChatWord_Nope[] = _("NOPE"); +const u8 gEasyChatWord_Urgh[] = _("URGH"); +const u8 gEasyChatWord_Hmm[] = _("HMM"); +const u8 gEasyChatWord_Whoah[] = _("WHOAH"); +const u8 gEasyChatWord_WroooaarExcl[] = _("WROOOAAR!"); +const u8 gEasyChatWord_Wow[] = _("WOW"); +const u8 gEasyChatWord_Giggle[] = _("GIGGLE"); +const u8 gEasyChatWord_Sigh[] = _("SIGH"); +const u8 gEasyChatWord_Unbelievable[] = _("UNBELIEVABLE"); +const u8 gEasyChatWord_Cries[] = _("CRIES"); +const u8 gEasyChatWord_Agree[] = _("AGREE"); +const u8 gEasyChatWord_EhQues[] = _("EH?"); +const u8 gEasyChatWord_Cry[] = _("CRY"); +const u8 gEasyChatWord_Ehehe[] = _("EHEHE"); +const u8 gEasyChatWord_OiOiOi[] = _("OI, OI, OI"); +const u8 gEasyChatWord_OhYeah[] = _("OH, YEAH"); +const u8 gEasyChatWord_Oh[] = _("OH"); +const u8 gEasyChatWord_Oops[] = _("OOPS"); +const u8 gEasyChatWord_Shocked[] = _("SHOCKED"); +const u8 gEasyChatWord_Eek[] = _("EEK"); +const u8 gEasyChatWord_Graaah[] = _("GRAAAH"); +const u8 gEasyChatWord_Gwahahaha[] = _("GWAHAHAHA"); +const u8 gEasyChatWord_Way[] = _("WAY"); +const u8 gEasyChatWord_Tch[] = _("TCH"); +const u8 gEasyChatWord_Hehe[] = _("HEHE"); +const u8 gEasyChatWord_Hah[] = _("HAH"); +const u8 gEasyChatWord_Yup[] = _("YUP"); +const u8 gEasyChatWord_Hahaha[] = _("HAHAHA"); +const u8 gEasyChatWord_Aiyeeh[] = _("AIYEEH"); +const u8 gEasyChatWord_Hiyah[] = _("HIYAH"); +const u8 gEasyChatWord_Fufufu[] = _("FUFUFU"); +const u8 gEasyChatWord_Lol[] = _("LOL"); +const u8 gEasyChatWord_Snort[] = _("SNORT"); +const u8 gEasyChatWord_Humph[] = _("HUMPH"); +const u8 gEasyChatWord_Hehehe[] = _("HEHEHE"); +const u8 gEasyChatWord_Heh[] = _("HEH"); +const u8 gEasyChatWord_Hohoho[] = _("HOHOHO"); +const u8 gEasyChatWord_UhHuh[] = _("UH-HUH"); +const u8 gEasyChatWord_OhDear[] = _("OH, DEAR"); +const u8 gEasyChatWord_Arrgh[] = _("ARRGH"); +const u8 gEasyChatWord_Mufufu[] = _("MUFUFU"); +const u8 gEasyChatWord_Mmm[] = _("MMM"); +const u8 gEasyChatWord_OhKay[] = _("OH-KAY"); +const u8 gEasyChatWord_Okay[] = _("OKAY"); +const u8 gEasyChatWord_Lalala[] = _("LALALA"); +const u8 gEasyChatWord_Yay[] = _("YAY"); +const u8 gEasyChatWord_Aww[] = _("AWW"); +const u8 gEasyChatWord_Wowee[] = _("WOWEE"); +const u8 gEasyChatWord_Gwah[] = _("GWAH"); +const u8 gEasyChatWord_Wahahaha[] = _("WAHAHAHA"); + +const struct EasyChatWordInfo gEasyChatGroup_Voices[] = { + { + .text = gEasyChatWord_Excl, + .alphabeticalOrder = 0, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_ExclExcl, + .alphabeticalOrder = 1, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_QuesExcl, + .alphabeticalOrder = 7, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ques, + .alphabeticalOrder = 8, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ellipsis, + .alphabeticalOrder = 4, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EllipsisExcl, + .alphabeticalOrder = 5, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EllipsisEllipsisEllipsis, + .alphabeticalOrder = 6, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Dash, + .alphabeticalOrder = 3, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_DashDashDash, + .alphabeticalOrder = 2, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UhOh, + .alphabeticalOrder = 23, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Waaah, + .alphabeticalOrder = 11, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ahaha, + .alphabeticalOrder = 41, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhQues, + .alphabeticalOrder = 52, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Nope, + .alphabeticalOrder = 59, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Urgh, + .alphabeticalOrder = 22, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hmm, + .alphabeticalOrder = 25, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Whoah, + .alphabeticalOrder = 32, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_WroooaarExcl, + .alphabeticalOrder = 24, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wow, + .alphabeticalOrder = 26, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Giggle, + .alphabeticalOrder = 43, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Sigh, + .alphabeticalOrder = 19, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Unbelievable, + .alphabeticalOrder = 33, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cries, + .alphabeticalOrder = 61, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Agree, + .alphabeticalOrder = 34, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_EhQues, + .alphabeticalOrder = 38, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Cry, + .alphabeticalOrder = 40, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Ehehe, + .alphabeticalOrder = 48, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OiOiOi, + .alphabeticalOrder = 37, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhYeah, + .alphabeticalOrder = 47, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oh, + .alphabeticalOrder = 42, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Oops, + .alphabeticalOrder = 15, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Shocked, + .alphabeticalOrder = 49, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Eek, + .alphabeticalOrder = 46, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Graaah, + .alphabeticalOrder = 57, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gwahahaha, + .alphabeticalOrder = 44, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Way, + .alphabeticalOrder = 54, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Tch, + .alphabeticalOrder = 53, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hehe, + .alphabeticalOrder = 13, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hah, + .alphabeticalOrder = 29, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yup, + .alphabeticalOrder = 51, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hahaha, + .alphabeticalOrder = 28, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aiyeeh, + .alphabeticalOrder = 55, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hiyah, + .alphabeticalOrder = 12, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Fufufu, + .alphabeticalOrder = 27, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lol, + .alphabeticalOrder = 56, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Snort, + .alphabeticalOrder = 30, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Humph, + .alphabeticalOrder = 31, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hehehe, + .alphabeticalOrder = 20, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Heh, + .alphabeticalOrder = 45, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Hohoho, + .alphabeticalOrder = 36, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_UhHuh, + .alphabeticalOrder = 50, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhDear, + .alphabeticalOrder = 9, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Arrgh, + .alphabeticalOrder = 21, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mufufu, + .alphabeticalOrder = 14, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Mmm, + .alphabeticalOrder = 10, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_OhKay, + .alphabeticalOrder = 62, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Okay, + .alphabeticalOrder = 35, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Lalala, + .alphabeticalOrder = 16, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Yay, + .alphabeticalOrder = 18, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Aww, + .alphabeticalOrder = 60, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wowee, + .alphabeticalOrder = 17, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Gwah, + .alphabeticalOrder = 58, + .enabled = TRUE, + }, + { + .text = gEasyChatWord_Wahahaha, + .alphabeticalOrder = 39, + .enabled = TRUE, + }, +}; diff --git a/src/data/easy_chat/easy_chat_groups.h b/src/data/easy_chat/easy_chat_groups.h new file mode 100755 index 000000000..df114d980 --- /dev/null +++ b/src/data/easy_chat/easy_chat_groups.h @@ -0,0 +1,137 @@ +#include "easy_chat.h" + +#include "easy_chat_group_pokemon.h" +#include "easy_chat_group_trainer.h" +#include "easy_chat_group_status.h" +#include "easy_chat_group_battle.h" +#include "easy_chat_group_greetings.h" +#include "easy_chat_group_people.h" +#include "easy_chat_group_voices.h" +#include "easy_chat_group_speech.h" +#include "easy_chat_group_endings.h" +#include "easy_chat_group_feelings.h" +#include "easy_chat_group_conditions.h" +#include "easy_chat_group_actions.h" +#include "easy_chat_group_lifestyle.h" +#include "easy_chat_group_hobbies.h" +#include "easy_chat_group_time.h" +#include "easy_chat_group_misc.h" +#include "easy_chat_group_adjectives.h" +#include "easy_chat_group_events.h" +#include "easy_chat_group_move_1.h" +#include "easy_chat_group_move_2.h" +#include "easy_chat_group_trendy_saying.h" +#include "easy_chat_group_pokemon2.h" + +const struct EasyChatGroup gEasyChatGroups[] = { + { + .wordData = {.valueList = gEasyChatGroup_Pokemon}, + .numWords = 202, + .numEnabledWords = 202, + }, + { + .wordData = {.words = gEasyChatGroup_Trainer}, + .numWords = 27, + .numEnabledWords = 21, + }, + { + .wordData = {.words = gEasyChatGroup_Status}, + .numWords = 109, + .numEnabledWords = 109, + }, + { + .wordData = {.words = gEasyChatGroup_Battle}, + .numWords = 63, + .numEnabledWords = 63, + }, + { + .wordData = {.words = gEasyChatGroup_Greetings}, + .numWords = 42, + .numEnabledWords = 42, + }, + { + .wordData = {.words = gEasyChatGroup_People}, + .numWords = 75, + .numEnabledWords = 75, + }, + { + .wordData = {.words = gEasyChatGroup_Voices}, + .numWords = 63, + .numEnabledWords = 63, + }, + { + .wordData = {.words = gEasyChatGroup_Speech}, + .numWords = 60, + .numEnabledWords = 60, + }, + { + .wordData = {.words = gEasyChatGroup_Endings}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Feelings}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Conditions}, + .numWords = 69, + .numEnabledWords = 69, + }, + { + .wordData = {.words = gEasyChatGroup_Actions}, + .numWords = 78, + .numEnabledWords = 78, + }, + { + .wordData = {.words = gEasyChatGroup_Lifestyle}, + .numWords = 45, + .numEnabledWords = 45, + }, + { + .wordData = {.words = gEasyChatGroup_Hobbies}, + .numWords = 54, + .numEnabledWords = 54, + }, + { + .wordData = {.words = gEasyChatGroup_Time}, + .numWords = 45, + .numEnabledWords = 45, + }, + { + .wordData = {.words = gEasyChatGroup_Misc}, + .numWords = 42, + .numEnabledWords = 42, + }, + { + .wordData = {.words = gEasyChatGroup_Adjectives}, + .numWords = 36, + .numEnabledWords = 36, + }, + { + .wordData = {.words = gEasyChatGroup_Events}, + .numWords = 29, + .numEnabledWords = 29, + }, + { + .wordData = {.valueList = gEasyChatGroup_Move1}, + .numWords = 154, + .numEnabledWords = 154, + }, + { + .wordData = {.valueList = gEasyChatGroup_Move2}, + .numWords = 200, + .numEnabledWords = 200, + }, + { + .wordData = {.words = gEasyChatGroup_TrendySaying}, + .numWords = 33, + .numEnabledWords = 33, + }, + { + .wordData = {.valueList = gEasyChatGroup_Pokemon2}, + .numWords = 251, + .numEnabledWords = 251, + }, +}; diff --git a/src/data/easy_chat/easy_chat_words_by_letter.h b/src/data/easy_chat/easy_chat_words_by_letter.h new file mode 100755 index 000000000..927b9db2f --- /dev/null +++ b/src/data/easy_chat/easy_chat_words_by_letter.h @@ -0,0 +1,2750 @@ +#include "easy_chat.h" +#include "constants/easy_chat.h" + +const u16 gEasyChatWordsByLetter_Others[] = { + EC_WORD_EXCL, + EC_WORD_EXCL_EXCL, + EC_WORD_DASH, + EC_WORD_DASH_DASH_DASH, + EC_WORD_ELLIPSIS, + EC_WORD_ELLIPSIS_EXCL, + EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, + EC_WORD_1_HIT_KO_EXCL, + EC_WORD_QUES, + EC_WORD_QUES_EXCL, +}; + +const u16 gEasyChatWordsByLetter_A[] = { + EC_WORD_A, + EC_WORD_A_LITTLE, + EC_WORD_A_LOT, + EC_WORD_A_TINY_BIT, + EC_WORD_ABOUT, + EC_WORD_ABOVE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(ABRA), + EC_POKEMON2(ABRA), + EC_WORD_ABSENT, + EC_POKEMON(ABSOL), + EC_WORD_ABSOLUTELY, + EC_MOVE(ABSORB), + EC_WORD_ACCEPT, + EC_MOVE2(ACID), + EC_MOVE2(ACID_ARMOR), + EC_WORD_ADORE, + EC_WORD_ADULT, + EC_WORD_ADVENTURE, + EC_MOVE2(AERIAL_ACE), + EC_MOVE(AEROBLAST), + EC_POKEMON2(AERODACTYL), + EC_WORD_AFTER, + EC_WORD_AGE, + EC_POKEMON(AGGRON), + EC_MOVE(AGILITY), + EC_WORD_AGREE, + EC_WORD_AHAHA, + EC_WORD_AIM, + EC_POKEMON2(AIPOM), + EC_MOVE(AIR_CUTTER), + EC_WORD_AIR_LOCK, + EC_WORD_AIYEEH, + -1, 2, // Doubled pokemon species name + EC_POKEMON(ALAKAZAM), + EC_POKEMON2(ALAKAZAM), + EC_WORD_ALL, + EC_WORD_ALL_RIGHT, + EC_WORD_ALLOW, + EC_WORD_ALLOWANCE, + EC_WORD_ALLY, + EC_WORD_ALMOST, + EC_WORD_ALONE, + EC_WORD_ALSO, + EC_WORD_ALT_COLOR, + EC_POKEMON(ALTARIA), + EC_WORD_ALTHOUGH, + EC_WORD_ALWAYS, + EC_WORD_AM, + EC_MOVE2(AMNESIA), + EC_POKEMON2(AMPHAROS), + EC_WORD_AMUSING, + EC_WORD_AN, + EC_MOVE(ANCIENT_POWER), + EC_WORD_AND, + EC_WORD_ANGER, + EC_WORD_ANGERS, + EC_WORD_ANGRY, + EC_WORD_ANIME, + EC_POKEMON(ANORITH), + EC_WORD_ANOTHER, + EC_WORD_ANTICIPATION, + EC_WORD_ANY, + EC_WORD_ANYWHERE, + EC_WORD_APOLOGIZE, + EC_WORD_APPEAL, + EC_WORD_APPEAR, + EC_WORD_APPEARS, + EC_WORD_APPRECIATE, + EC_WORD_APPROVED, + EC_POKEMON2(ARBOK), + EC_POKEMON2(ARCANINE), + EC_WORD_ARE, + EC_WORD_AREN_T, + EC_WORD_ARENA_TRAP, + EC_POKEMON2(ARIADOS), + EC_MOVE2(ARM_THRUST), + EC_POKEMON(ARMALDO), + EC_MOVE(AROMATHERAPY), + EC_POKEMON(ARON), + EC_WORD_AROUND, + EC_WORD_ARRGH, + EC_POKEMON2(ARTICUNO), + EC_WORD_AS, + EC_WORD_AS_IF, + EC_WORD_AS_MUCH_AS, + EC_MOVE2(ASSIST), + EC_MOVE(ASTONISH), + EC_WORD_AT, + EC_WORD_ATTACK, + EC_MOVE2(ATTRACT), + EC_WORD_AUNT, + EC_MOVE(AURORA_BEAM), + EC_WORD_AVANT_GARDE, + EC_WORD_AWAY, + EC_WORD_AWESOME, + EC_WORD_AWFUL, + EC_WORD_AWFULLY, + EC_WORD_AWW, + -1, 2, // Doubled pokemon species name + EC_POKEMON(AZUMARILL), + EC_POKEMON2(AZUMARILL), + EC_POKEMON(AZURILL), +}; + +const u16 gEasyChatWordsByLetter_B[] = { + EC_WORD_BABE, + EC_WORD_BABY, + EC_WORD_BACK, + EC_WORD_BAD, + EC_WORD_BADLY, + EC_WORD_BAG, + EC_POKEMON(BAGON), + EC_WORD_BALL, + EC_POKEMON(BALTOY), + EC_POKEMON(BANETTE), + EC_WORD_BANG, + EC_POKEMON(BARBOACH), + EC_MOVE2(BARRAGE), + EC_MOVE2(BARRIER), + EC_WORD_BATH, + EC_MOVE2(BATON_PASS), + EC_WORD_BATTLE, + EC_WORD_BATTLE_ARMOR, + EC_WORD_BATTLE_ROOM, + EC_WORD_BATTLE_TOWER, + EC_POKEMON2(BAYLEEF), + EC_WORD_BE, + EC_WORD_BEAT, + EC_MOVE2(BEAT_UP), + EC_POKEMON(BEAUTIFLY), + EC_WORD_BEAUTIFUL, + EC_WORD_BEAUTY, + EC_WORD_BECOMES, + EC_POKEMON2(BEEDRILL), + EC_WORD_BEEN, + EC_WORD_BEFORE, + EC_WORD_BEGINNING, + EC_WORD_BEING, + EC_POKEMON(BELDUM), + EC_WORD_BELIEVE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(BELLOSSOM), + EC_POKEMON2(BELLOSSOM), + EC_POKEMON2(BELLSPROUT), + EC_MOVE2(BELLY_DRUM), + EC_WORD_BELONGS_TO, + EC_WORD_BELOW, + EC_WORD_BERRY, + EC_WORD_BESIDE, + EC_WORD_BEST, + EC_WORD_BETTER, + EC_MOVE(BIDE), + EC_WORD_BIG, + EC_WORD_BIKE, + EC_MOVE(BIND), + EC_MOVE(BITE), + EC_MOVE2(BLAST_BURN), + EC_POKEMON2(BLASTOISE), + EC_WORD_BLAZE, + EC_MOVE2(BLAZE_KICK), + EC_POKEMON(BLAZIKEN), + EC_WORD_BLEND, + EC_POKEMON2(BLISSEY), + EC_MOVE2(BLIZZARD), + EC_MOVE2(BLOCK), + EC_WORD_BOARD, + EC_MOVE2(BODY_SLAM), + EC_MOVE2(BONE_CLUB), + EC_MOVE2(BONE_RUSH), + EC_MOVE2(BONEMERANG), + EC_WORD_BOOK, + EC_WORD_BORED, + EC_WORD_BORING, + EC_MOVE2(BOUNCE), + EC_WORD_BOY, + EC_WORD_BRAG, + EC_WORD_BREAK, + EC_POKEMON(BRELOOM), + EC_MOVE(BRICK_BREAK), + EC_WORD_BROTHER, + EC_MOVE(BUBBLE), + EC_MOVE2(BUBBLE_BEAM), + EC_WORD_BUG, + EC_POKEMON2(BULBASAUR), + EC_MOVE2(BULK_UP), + EC_MOVE2(BULLET_SEED), + EC_WORD_BUSY, + EC_WORD_BUT, + EC_POKEMON2(BUTTERFREE), + EC_WORD_BYE_BYE, +}; + +const u16 gEasyChatWordsByLetter_C[] = { + EC_POKEMON(CACNEA), + EC_POKEMON(CACTURNE), + EC_MOVE2(CALM_MIND), + EC_WORD_CAME, + EC_WORD_CAMERA, + EC_POKEMON(CAMERUPT), + EC_MOVE2(CAMOUFLAGE), + EC_WORD_CAN, + EC_WORD_CAN_WIN, + EC_WORD_CAN_T, + EC_WORD_CAN_T_WIN, + EC_WORD_CANCEL, + EC_WORD_CAPABLE, + EC_WORD_CARDS, + EC_WORD_CARE, + EC_WORD_CARES, + EC_POKEMON(CARVANHA), + EC_POKEMON(CASCOON), + EC_WORD_CASE, + EC_POKEMON(CASTFORM), + EC_POKEMON2(CATERPIE), + EC_WORD_CAUSE, + EC_POKEMON2(CELEBI), + EC_WORD_CENTER, + EC_WORD_CHALLENGE, + EC_WORD_CHANGE, + EC_WORD_CHANNEL, + EC_POKEMON2(CHANSEY), + EC_MOVE(CHARGE), + EC_POKEMON2(CHARIZARD), + EC_MOVE(CHARM), + EC_POKEMON2(CHARMANDER), + EC_POKEMON2(CHARMELEON), + EC_WORD_CHAT, + EC_POKEMON2(CHIKORITA), + EC_WORD_CHILD_S_PLAY, + EC_WORD_CHILDREN, + EC_POKEMON(CHIMECHO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(CHINCHOU), + EC_POKEMON2(CHINCHOU), + EC_WORD_CHLOROPHYLL, + EC_WORD_CHOICE, + EC_WORD_CHOOSE, + EC_WORD_CHORES, + EC_MOVE(CLAMP), + EC_POKEMON(CLAMPERL), + EC_WORD_CLASS, + EC_POKEMON(CLAYDOL), + EC_WORD_CLEAR_BODY, + EC_POKEMON2(CLEFABLE), + EC_POKEMON2(CLEFAIRY), + EC_POKEMON2(CLEFFA), + EC_WORD_CLOSE, + EC_WORD_CLOUD_NINE, + EC_POKEMON2(CLOYSTER), + EC_WORD_COLD, + EC_WORD_COLLECT, + EC_WORD_COLLECTION, + EC_WORD_COLOR, + EC_WORD_COLOR_CHANGE, + EC_POKEMON(COMBUSKEN), + EC_WORD_COME, + EC_WORD_COME_ON, + EC_WORD_COME_OVER, + EC_MOVE2(COMET_PUNCH), + EC_WORD_COMICS, + EC_WORD_COMMEMORATE, + EC_WORD_COMPLETE, + EC_WORD_COMPOUNDEYES, + EC_WORD_CONCEDE, + EC_MOVE(CONFUSE_RAY), + EC_WORD_CONFUSED, + EC_MOVE2(CONFUSION), + EC_WORD_CONGRATS, + EC_MOVE(CONSTRICT), + EC_WORD_CONTEST, + EC_WORD_CONVERSATION, + EC_MOVE2(CONVERSION), + EC_MOVE2(CONVERSION_2), + EC_WORD_COOL, + EC_WORD_COOLNESS, + EC_POKEMON(CORPHISH), + EC_WORD_CORRECT, + -1, 2, // Doubled pokemon species name + EC_POKEMON(CORSOLA), + EC_POKEMON2(CORSOLA), + EC_MOVE(COSMIC_POWER), + EC_MOVE2(COTTON_SPORE), + EC_WORD_COULD, + EC_WORD_COULDN_T, + EC_WORD_COUNT_ON, + EC_MOVE(COUNTER), + EC_WORD_COUPLE, + EC_MOVE2(COVET), + EC_MOVE(CRABHAMMER), + EC_POKEMON(CRADILY), + EC_POKEMON(CRAWDAUNT), + EC_WORD_CRIES, + -1, 2, // Doubled pokemon species name + EC_POKEMON(CROBAT), + EC_POKEMON2(CROBAT), + EC_POKEMON2(CROCONAW), + EC_MOVE(CROSS_CHOP), + EC_MOVE(CRUNCH), + EC_WORD_CRUSH, + EC_MOVE2(CRUSH_CLAW), + EC_WORD_CRY, + EC_POKEMON2(CUBONE), + EC_WORD_CURRENT, + EC_MOVE2(CURSE), + EC_MOVE(CUT), + EC_WORD_CUTE, + EC_WORD_CUTE_CHARM, + EC_WORD_CUTENESS, + EC_POKEMON2(CYNDAQUIL), +}; + +const u16 gEasyChatWordsByLetter_D[] = { + EC_WORD_DAILY, + EC_WORD_DAMP, + EC_WORD_DANCE, + EC_WORD_DANGER, + EC_WORD_DARK, + EC_WORD_DARN, + EC_WORD_DATE, + EC_WORD_DAUGHTER, + EC_WORD_DAY, + EC_WORD_DAYS, + EC_WORD_DAYTIME, + EC_WORD_DECIDE, + EC_WORD_DECIDED, + EC_WORD_DEEP, + EC_WORD_DEFEATED, + EC_MOVE2(DEFENSE_CURL), + EC_POKEMON(DELCATTY), + EC_POKEMON2(DELIBIRD), + EC_POKEMON(DEOXYS), + EC_WORD_DEPT_STORE, + EC_WORD_DESIGN, + EC_WORD_DESTINY, + EC_MOVE2(DESTINY_BOND), + EC_WORD_DESTROYED, + EC_MOVE2(DETECT), + EC_POKEMON2(DEWGONG), + EC_WORD_DID, + EC_WORD_DIDN_T, + EC_WORD_DIET, + EC_WORD_DIFFERENT, + EC_MOVE(DIG), + EC_WORD_DIGITAL, + EC_POKEMON2(DIGLETT), + EC_WORD_DIRECT, + EC_MOVE(DISABLE), + EC_WORD_DISAPPEAR, + EC_WORD_DISAPPOINT, + EC_WORD_DISAPPOINTED, + EC_WORD_DISAPPOINTS, + EC_WORD_DISASTER, + EC_WORD_DISLIKE, + EC_WORD_DISLIKES, + EC_POKEMON2(DITTO), + EC_MOVE2(DIVE), + EC_MOVE2(DIZZY_PUNCH), + EC_WORD_DO, + EC_WORD_DOCILE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(DODRIO), + EC_POKEMON2(DODRIO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(DODUO), + EC_POKEMON2(DODUO), + EC_WORD_DOES, + EC_WORD_DOESN_T, + EC_WORD_DON_T, + EC_WORD_DONE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(DONPHAN), + EC_POKEMON2(DONPHAN), + EC_MOVE2(DOOM_DESIRE), + EC_MOVE2(DOUBLE_KICK), + EC_MOVE(DOUBLE_TEAM), + EC_MOVE(DOUBLE_EDGE), + EC_MOVE(DOUBLE_SLAP), + EC_WORD_DOWN, + EC_WORD_DOWNCAST, + EC_WORD_DRAGON, + EC_MOVE2(DRAGON_CLAW), + EC_MOVE2(DRAGON_DANCE), + EC_MOVE2(DRAGON_RAGE), + EC_POKEMON2(DRAGONAIR), + EC_MOVE2(DRAGON_BREATH), + EC_POKEMON2(DRAGONITE), + EC_POKEMON2(DRATINI), + EC_WORD_DREAM, + EC_MOVE2(DREAM_EATER), + EC_MOVE2(DRILL_PECK), + EC_WORD_DRINK, + EC_WORD_DRINKS, + EC_WORD_DRIZZLE, + EC_WORD_DROOLING, + EC_WORD_DROUGHT, + EC_POKEMON2(DROWZEE), + EC_WORD_DUDE, + EC_POKEMON2(DUGTRIO), + EC_POKEMON2(DUNSPARCE), + EC_POKEMON(DUSCLOPS), + EC_POKEMON(DUSKULL), + EC_POKEMON(DUSTOX), + EC_MOVE2(DYNAMIC_PUNCH), +}; + +const u16 gEasyChatWordsByLetter_E[] = { + EC_WORD_EARLIER, + EC_WORD_EARLY_BIRD, + EC_MOVE(EARTHQUAKE), + EC_WORD_EASY, + EC_WORD_EAT, + EC_WORD_EATS, + EC_WORD_EEK, + EC_POKEMON2(EEVEE), + EC_WORD_EFFECT_SPORE, + EC_WORD_EGG, + EC_MOVE2(EGG_BOMB), + EC_WORD_EH_QUES, + EC_WORD_EHEHE, + EC_POKEMON2(EKANS), + EC_POKEMON2(ELECTABUZZ), + EC_WORD_ELECTRIC, + EC_POKEMON(ELECTRIKE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ELECTRODE), + EC_POKEMON2(ELECTRODE), + EC_POKEMON2(ELEKID), + EC_WORD_ELSE, + EC_MOVE2(EMBER), + EC_WORD_EMERALD, + EC_MOVE(ENCORE), + EC_WORD_ENCYCLOPEDIA, + EC_WORD_END, + EC_MOVE(ENDEAVOR), + EC_MOVE(ENDURE), + EC_WORD_ENJOY, + EC_WORD_ENJOYS, + EC_WORD_ENOUGH, + EC_POKEMON2(ENTEI), + EC_WORD_ENTERTAINING, + EC_MOVE2(ERUPTION), + EC_WORD_ESCAPE, + EC_POKEMON2(ESPEON), + EC_WORD_EVEN_SO, + EC_WORD_EVENT, + EC_WORD_EVENTS, + EC_WORD_EVER, + EC_WORD_EVERY, + EC_WORD_EVOLUTION, + EC_WORD_EVOLVE, + EC_WORD_EXCELLENT, + EC_WORD_EXCESS, + EC_WORD_EXCITE, + EC_WORD_EXCITING, + EC_WORD_EXCUSE, + EC_WORD_EXCUSE_ME, + EC_POKEMON2(EXEGGCUTE), + EC_POKEMON2(EXEGGUTOR), + EC_WORD_EXISTS, + EC_WORD_EXPENSIVE, + EC_MOVE2(EXPLOSION), + EC_POKEMON(EXPLOUD), + EC_MOVE(EXTRASENSORY), + EC_MOVE(EXTREME_SPEED), +}; + +const u16 gEasyChatWordsByLetter_F[] = { + EC_WORD_FABULOUS, + EC_MOVE(FACADE), + EC_WORD_FAINT, + EC_MOVE2(FAINT_ATTACK), + EC_WORD_FAINTED, + EC_MOVE2(FAKE_OUT), + EC_MOVE(FAKE_TEARS), + EC_WORD_FALL, + EC_MOVE2(FALSE_SWIPE), + EC_WORD_FAMILY, + EC_WORD_FANTASTIC, + EC_WORD_FAR, + EC_POKEMON2(FARFETCHD), + EC_WORD_FASHION, + EC_WORD_FAST, + EC_WORD_FATHER, + EC_WORD_FEAR, + EC_POKEMON2(FEAROW), + EC_MOVE2(FEATHER_DANCE), + EC_POKEMON(FEEBAS), + EC_WORD_FEELING, + EC_POKEMON2(FERALIGATR), + EC_WORD_FESTIVAL, + EC_WORD_FEVER, + EC_WORD_FIERY, + EC_WORD_FIGHT, + EC_WORD_FIGHTING, + EC_WORD_FIGHTS, + EC_WORD_FINAL, + EC_WORD_FINALLY, + EC_WORD_FINISH, + EC_WORD_FIRE, + EC_MOVE2(FIRE_BLAST), + EC_MOVE2(FIRE_PUNCH), + EC_MOVE2(FIRE_SPIN), + EC_WORD_FISHING, + EC_MOVE(FISSURE), + EC_POKEMON2(FLAAFFY), + EC_MOVE(FLAIL), + EC_WORD_FLAME, + EC_WORD_FLAME_BODY, + EC_MOVE(FLAME_WHEEL), + EC_MOVE(FLAMETHROWER), + EC_POKEMON2(FLAREON), + EC_MOVE2(FLASH), + EC_WORD_FLASH_FIRE, + EC_WORD_FLATTEN, + EC_MOVE(FLATTER), + EC_WORD_FLOWERS, + EC_MOVE(FLY), + EC_POKEMON(FLYGON), + EC_WORD_FLYING, + EC_MOVE(FOCUS_ENERGY), + EC_MOVE(FOCUS_PUNCH), + EC_WORD_FOE, + EC_MOVE(FOLLOW_ME), + EC_WORD_FOR, + EC_WORD_FOR_NOW, + EC_WORD_FORECAST, + EC_MOVE2(FORESIGHT), + EC_WORD_FOREVER, + EC_WORD_FORGET, + EC_WORD_FORGETS, + EC_WORD_FORGIVE, + EC_POKEMON2(FORRETRESS), + EC_MOVE2(FRENZY_PLANT), + EC_WORD_FRIDAY, + EC_WORD_FRIEND, + EC_WORD_FROM, + EC_WORD_FRONT, + EC_WORD_FRONTIER, + EC_MOVE2(FRUSTRATION), + EC_WORD_FUFUFU, + EC_WORD_FULL, + EC_WORD_FUNNY, + EC_POKEMON2(FURRET), + EC_MOVE2(FURY_ATTACK), + EC_MOVE2(FURY_CUTTER), + EC_MOVE2(FURY_SWIPES), + EC_MOVE2(FUTURE_SIGHT), +}; + +const u16 gEasyChatWordsByLetter_G[] = { + EC_WORD_GAME, + EC_POKEMON(GARDEVOIR), + EC_POKEMON2(GASTLY), + EC_POKEMON2(GENGAR), + EC_WORD_GENIUS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GEODUDE), + EC_POKEMON2(GEODUDE), + EC_WORD_GET, + EC_WORD_GETS, + EC_WORD_GHOST, + EC_WORD_GIDDY, + EC_MOVE(GIGA_DRAIN), + EC_WORD_GIGGLE, + EC_WORD_GIMME, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GIRAFARIG), + EC_POKEMON2(GIRAFARIG), + EC_WORD_GIRL, + EC_WORD_GIVE, + EC_WORD_GIVE_ME, + EC_WORD_GIVE_UP, + EC_WORD_GIVES, + EC_POKEMON(GLALIE), + EC_MOVE2(GLARE), + EC_POKEMON2(GLIGAR), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GLOOM), + EC_POKEMON2(GLOOM), + EC_WORD_GO, + EC_WORD_GO_AHEAD, + EC_WORD_GO_EASY, + EC_WORD_GO_HOME, + EC_WORD_GOES, + EC_WORD_GOING, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLBAT), + EC_POKEMON2(GOLBAT), + EC_WORD_GOLD, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLDEEN), + EC_POKEMON2(GOLDEEN), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLDUCK), + EC_POKEMON2(GOLDUCK), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GOLEM), + EC_POKEMON2(GOLEM), + EC_WORD_GOOD, + EC_WORD_GOOD_BYE, + EC_POKEMON(GOREBYSS), + EC_WORD_GOT, + EC_WORD_GOTCHA, + EC_WORD_GOURMET, + EC_WORD_GRAAAH, + EC_POKEMON2(GRANBULL), + EC_WORD_GRANDFATHER, + EC_WORD_GRANDMOTHER, + EC_WORD_GRASS, + EC_MOVE(GRASS_WHISTLE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(GRAVELER), + EC_POKEMON2(GRAVELER), + EC_WORD_GREAT, + EC_WORD_GREEN, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GRIMER), + EC_POKEMON2(GRIMER), + EC_POKEMON(GROUDON), + EC_WORD_GROUND, + EC_WORD_GROUP, + EC_POKEMON(GROVYLE), + EC_MOVE2(GROWL), + EC_POKEMON2(GROWLITHE), + EC_MOVE(GROWTH), + EC_MOVE(GRUDGE), + EC_POKEMON(GRUMPIG), + EC_WORD_GUARD, + EC_MOVE2(GUILLOTINE), + EC_POKEMON(GULPIN), + EC_MOVE(GUST), + EC_WORD_GUTS, + EC_WORD_GUTSY, + EC_WORD_GWAH, + EC_WORD_GWAHAHAHA, + -1, 2, // Doubled pokemon species name + EC_POKEMON(GYARADOS), + EC_POKEMON2(GYARADOS), +}; + +const u16 gEasyChatWordsByLetter_H[] = { + EC_WORD_HABIT, + EC_WORD_HAH, + EC_WORD_HAHAHA, + EC_MOVE(HAIL), + EC_WORD_HALL_OF_FAME, + EC_WORD_HAPPENING, + EC_WORD_HAPPILY, + EC_WORD_HAPPINESS, + EC_WORD_HAPPY, + EC_WORD_HARD, + EC_MOVE(HARDEN), + EC_POKEMON(HARIYAMA), + EC_WORD_HAS, + EC_WORD_HASSLE, + EC_POKEMON2(HAUNTER), + EC_WORD_HAVE, + EC_WORD_HAVEN_T, + EC_MOVE(HAZE), + EC_WORD_HE, + EC_WORD_HE_S, + EC_MOVE(HEADBUTT), + EC_MOVE(HEAL_BELL), + EC_WORD_HEALTHY, + EC_WORD_HEAR, + EC_WORD_HEARING, + EC_WORD_HEARS, + EC_WORD_HEART, + EC_MOVE2(HEAT_WAVE), + EC_WORD_HEH, + EC_WORD_HEHE, + EC_WORD_HEHEHE, + EC_WORD_HELLO, + EC_MOVE2(HELPING_HAND), + EC_WORD_HER, + -1, 2, // Doubled pokemon species name + EC_POKEMON(HERACROSS), + EC_POKEMON2(HERACROSS), + EC_WORD_HERE, + EC_WORD_HERE_GOES, + EC_WORD_HERE_I_COME, + EC_WORD_HERE_IT_IS, + EC_WORD_HERO, + EC_WORD_HEROINE, + EC_WORD_HERS, + EC_WORD_HEY, + EC_WORD_HEY_THERE, + EC_WORD_HEY_QUES, + EC_WORD_HI, + EC_MOVE2(HI_JUMP_KICK), + EC_WORD_HIDDEN, + EC_MOVE2(HIDDEN_POWER), + EC_WORD_HIGH, + EC_WORD_HIGHS, + EC_WORD_HIM, + EC_WORD_HIP_AND, + EC_WORD_HIS, + EC_WORD_HIT, + EC_POKEMON2(HITMONCHAN), + EC_POKEMON2(HITMONLEE), + EC_POKEMON2(HITMONTOP), + EC_WORD_HIYAH, + EC_WORD_HMM, + EC_POKEMON2(HO_OH), + EC_WORD_HOBBY, + EC_WORD_HOHOHO, + EC_WORD_HOLIDAY, + EC_WORD_HOME, + EC_WORD_HOO_HAH, + EC_POKEMON2(HOOTHOOT), + EC_WORD_HOPELESS, + EC_POKEMON2(HOPPIP), + EC_MOVE2(HORN_ATTACK), + EC_MOVE2(HORN_DRILL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(HORSEA), + EC_POKEMON2(HORSEA), + EC_WORD_HOT, + EC_POKEMON2(HOUNDOOM), + EC_POKEMON2(HOUNDOUR), + EC_WORD_HOW, + EC_WORD_HOW_DO, + EC_WORD_HOWEVER, + EC_MOVE2(HOWL), + EC_WORD_HUGE_POWER, + EC_WORD_HUH_QUES, + EC_WORD_HUMPH, + EC_WORD_HUNGRY, + EC_POKEMON(HUNTAIL), + EC_WORD_HURRIED, + EC_WORD_HUSTLE, + EC_MOVE2(HYDRO_CANNON), + EC_MOVE2(HYDRO_PUMP), + EC_WORD_HYPER, + EC_MOVE2(HYPER_BEAM), + EC_WORD_HYPER_CUTTER, + EC_MOVE2(HYPER_FANG), + EC_MOVE2(HYPER_VOICE), + EC_POKEMON2(HYPNO), + EC_MOVE(HYPNOSIS), +}; + +const u16 gEasyChatWordsByLetter_I[] = { + EC_WORD_I, + EC_WORD_I_AM, + EC_WORD_I_CHOOSE_YOU, + EC_WORD_I_WAS, + EC_WORD_I_VE, + EC_WORD_I_VE_ARRIVED, + EC_WORD_ICE, + EC_MOVE(ICE_BALL), + EC_MOVE2(ICE_BEAM), + EC_MOVE2(ICE_PUNCH), + EC_MOVE2(ICICLE_SPEAR), + EC_MOVE(ICY_WIND), + EC_WORD_IDOL, + EC_WORD_IF, + EC_WORD_IF_I_LOSE, + EC_WORD_IF_I_WIN, + -1, 2, // Doubled pokemon species name + EC_POKEMON(IGGLYBUFF), + EC_POKEMON2(IGGLYBUFF), + EC_WORD_IGNORANT, + EC_WORD_ILLUMINATE, + EC_POKEMON(ILLUMISE), + EC_WORD_IMMUNITY, + EC_WORD_IMPORTANT, + EC_WORD_IMPOSSIBLE, + EC_MOVE2(IMPRISON), + EC_WORD_IN, + EC_WORD_INCREASING, + EC_WORD_INCREDIBLE, + EC_WORD_INFORMATION, + EC_MOVE2(INGRAIN), + EC_WORD_INNER_FOCUS, + EC_WORD_INSIDE, + EC_WORD_INSOMNIA, + EC_WORD_INSTEAD, + EC_WORD_INTIMIDATE, + EC_WORD_INVINCIBLE, + EC_MOVE2(IRON_DEFENSE), + EC_MOVE(IRON_TAIL), + EC_WORD_IS, + EC_WORD_IS_IT_QUES, + EC_WORD_ISN_T, + EC_WORD_ISN_T_IT_QUES, + EC_WORD_IT, + EC_WORD_IT_S, + EC_WORD_ITEM, + EC_POKEMON2(IVYSAUR), +}; + +const u16 gEasyChatWordsByLetter_J[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON(JIGGLYPUFF), + EC_POKEMON2(JIGGLYPUFF), + EC_POKEMON(JIRACHI), + EC_WORD_JOKING, + EC_POKEMON2(JOLTEON), + EC_WORD_JOY, + EC_WORD_JUDGE, + EC_MOVE2(JUMP_KICK), + EC_POKEMON2(JUMPLUFF), + EC_WORD_JUST, + EC_POKEMON2(JYNX), +}; + +const u16 gEasyChatWordsByLetter_K[] = { + EC_POKEMON2(KABUTO), + EC_POKEMON2(KABUTOPS), + -1, 2, // Doubled pokemon species name + EC_POKEMON(KADABRA), + EC_POKEMON2(KADABRA), + EC_POKEMON2(KAKUNA), + EC_POKEMON2(KANGASKHAN), + EC_MOVE(KARATE_CHOP), + EC_POKEMON(KECLEON), + EC_WORD_KEEN_EYE, + EC_WORD_KID, + EC_WORD_KIDDING, + EC_WORD_KIND, + EC_WORD_KINDERGARTEN, + EC_MOVE(KINESIS), + -1, 2, // Doubled pokemon species name + EC_POKEMON(KINGDRA), + EC_POKEMON2(KINGDRA), + EC_POKEMON2(KINGLER), + EC_POKEMON(KIRLIA), + EC_MOVE2(KNOCK_OFF), + EC_WORD_KNOCKOUT, + EC_WORD_KNOW, + EC_WORD_KNOWS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(KOFFING), + EC_POKEMON2(KOFFING), + EC_POKEMON2(KRABBY), + EC_WORD_KTHX_BYE, + EC_POKEMON(KYOGRE), +}; + +const u16 gEasyChatWordsByLetter_L[] = { + EC_WORD_LACKING, + EC_WORD_LACKS, + EC_WORD_LADY, + EC_POKEMON(LAIRON), + EC_WORD_LALALA, + -1, 2, // Doubled pokemon species name + EC_POKEMON(LANTURN), + EC_POKEMON2(LANTURN), + EC_POKEMON2(LAPRAS), + EC_POKEMON2(LARVITAR), + EC_WORD_LAST, + EC_WORD_LATE, + EC_WORD_LATER, + EC_POKEMON(LATIAS), + EC_POKEMON(LATIOS), + EC_WORD_LAVISH, + EC_WORD_LAY, + EC_WORD_LEADER, + EC_WORD_LEADERS, + EC_WORD_LEAF, + EC_MOVE2(LEAF_BLADE), + EC_WORD_LEARN, + EC_POKEMON2(LEDIAN), + EC_POKEMON2(LEDYBA), + EC_MOVE(LEECH_LIFE), + EC_MOVE2(LEECH_SEED), + EC_MOVE2(LEER), + EC_WORD_LEFT, + EC_WORD_LEGEND, + EC_WORD_LESS, + EC_WORD_LESSONS, + EC_WORD_LET_ME_WIN, + EC_WORD_LET_S, + EC_WORD_LETTER, + EC_WORD_LEVEL, + EC_WORD_LEVITATE, + EC_MOVE(LICK), + EC_POKEMON2(LICKITUNG), + EC_WORD_LIE, + EC_WORD_LIFE, + EC_MOVE2(LIGHT_SCREEN), + EC_WORD_LIGHTNINGROD, + EC_WORD_LIKE, + EC_WORD_LIKELY_TO, + EC_WORD_LIKES, + EC_POKEMON(LILEEP), + EC_WORD_LIMBER, + EC_WORD_LINK, + EC_POKEMON(LINOONE), + EC_WORD_LIQUID_OOZE, + EC_WORD_LISTEN, + EC_WORD_LISTENING, + EC_WORD_LISTENS, + EC_WORD_LIVING, + EC_MOVE2(LOCK_ON), + EC_WORD_LOCOMOTIVE, + EC_WORD_LOL, + EC_WORD_LOLLING, + EC_POKEMON(LOMBRE), + EC_WORD_LONESOME, + EC_WORD_LOOK, + EC_WORD_LOOKS, + EC_WORD_LOSE, + EC_WORD_LOSER, + EC_WORD_LOSING, + EC_WORD_LOSS, + EC_WORD_LOST, + EC_POKEMON(LOTAD), + EC_POKEMON(LOUDRED), + EC_WORD_LOUSY, + EC_MOVE(LOVELY_KISS), + EC_WORD_LOVEY_DOVEY, + EC_WORD_LOW, + EC_MOVE(LOW_KICK), + EC_WORD_LOWS, + EC_POKEMON(LUDICOLO), + EC_POKEMON2(LUGIA), + EC_WORD_LUKEWARM, + EC_POKEMON(LUNATONE), + EC_MOVE2(LUSTER_PURGE), + EC_POKEMON(LUVDISC), +}; + +const u16 gEasyChatWordsByLetter_M[] = { + EC_MOVE2(MACH_PUNCH), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHAMP), + EC_POKEMON2(MACHAMP), + EC_WORD_MACHINE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHOKE), + EC_POKEMON2(MACHOKE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MACHOP), + EC_POKEMON2(MACHOP), + EC_WORD_MAGAZINE, + EC_POKEMON2(MAGBY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGCARGO), + EC_POKEMON2(MAGCARGO), + EC_MOVE2(MAGIC_COAT), + EC_MOVE2(MAGICAL_LEAF), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGIKARP), + EC_POKEMON2(MAGIKARP), + EC_WORD_MAGMA_ARMOR, + EC_POKEMON2(MAGMAR), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGNEMITE), + EC_POKEMON2(MAGNEMITE), + EC_WORD_MAGNET_PULL, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MAGNETON), + EC_POKEMON2(MAGNETON), + EC_MOVE2(MAGNITUDE), + EC_WORD_MAIL, + EC_WORD_MAKE, + EC_WORD_MAKING, + EC_POKEMON(MAKUHITA), + EC_WORD_MAN, + EC_POKEMON(MANECTRIC), + EC_POKEMON2(MANKEY), + EC_POKEMON2(MANTINE), + EC_POKEMON2(MAREEP), + -1, 2, // Doubled pokemon species name + EC_POKEMON(MARILL), + EC_POKEMON2(MARILL), + EC_POKEMON2(MAROWAK), + EC_POKEMON(MARSHTOMP), + EC_WORD_MARVEL_SCALE, + EC_POKEMON(MASQUERAIN), + EC_WORD_MASTER, + EC_WORD_MATCH, + EC_WORD_MATCH_UP, + EC_POKEMON(MAWILE), + EC_WORD_MAYBE, + EC_WORD_MC, + EC_WORD_ME, + EC_WORD_MEAN, + EC_MOVE(MEAN_LOOK), + EC_POKEMON(MEDICHAM), + EC_MOVE2(MEDITATE), + EC_POKEMON(MEDITITE), + EC_WORD_MEET, + EC_WORD_MEET_YOU, + EC_WORD_MEETS, + EC_WORD_MEGA, + EC_MOVE2(MEGA_DRAIN), + EC_MOVE2(MEGA_KICK), + EC_MOVE2(MEGA_PUNCH), + EC_MOVE2(MEGAHORN), + EC_POKEMON2(MEGANIUM), + EC_MOVE(MEMENTO), + EC_POKEMON2(MEOWTH), + EC_WORD_MESSAGE, + EC_POKEMON(METAGROSS), + EC_MOVE2(METAL_CLAW), + EC_MOVE(METAL_SOUND), + EC_POKEMON(METANG), + EC_POKEMON2(METAPOD), + EC_MOVE(METEOR_MASH), + EC_MOVE2(METRONOME), + EC_POKEMON2(MEW), + EC_POKEMON2(MEWTWO), + EC_POKEMON(MIGHTYENA), + EC_MOVE2(MILK_DRINK), + EC_POKEMON(MILOTIC), + EC_POKEMON2(MILTANK), + EC_MOVE2(MIMIC), + EC_MOVE(MIND_READER), + EC_MOVE2(MINIMIZE), + EC_POKEMON(MINUN), + EC_WORD_MINUS, + EC_MOVE2(MIRROR_COAT), + EC_MOVE(MIRROR_MOVE), + EC_POKEMON2(MISDREAVUS), + EC_WORD_MISHEARD, + EC_WORD_MISS, + EC_MOVE(MIST), + EC_MOVE2(MIST_BALL), + EC_WORD_MISTAKE, + EC_WORD_MMM, + EC_WORD_MODE, + EC_WORD_MODERN, + EC_POKEMON2(MOLTRES), + EC_WORD_MOMENTUM, + EC_WORD_MONDAY, + EC_WORD_MONEY, + EC_WORD_MONTH, + EC_WORD_MOOD, + EC_MOVE2(MOONLIGHT), + EC_WORD_MORE, + EC_WORD_MORNING, + EC_MOVE(MORNING_SUN), + EC_WORD_MOTHER, + EC_WORD_MOVE, + EC_WORD_MOVIE, + EC_WORD_MR, + EC_POKEMON2(MR_MIME), + EC_WORD_MRS, + EC_WORD_MUCH, + EC_WORD_MUCH_OBLIGED, + EC_MOVE2(MUD_SHOT), + EC_MOVE2(MUD_SPORT), + EC_MOVE2(MUD_SLAP), + EC_MOVE2(MUDDY_WATER), + EC_POKEMON(MUDKIP), + EC_WORD_MUFUFU, + -1, 2, // Doubled pokemon species name + EC_POKEMON(MUK), + EC_POKEMON2(MUK), + EC_POKEMON2(MURKROW), + EC_WORD_MUSIC, + EC_WORD_MUST_BE, + EC_WORD_MY, + EC_WORD_MYSELF, + EC_WORD_MYSTERY, +}; + +const u16 gEasyChatWordsByLetter_N[] = { + EC_WORD_NAME, + EC_WORD_NAP, + -1, 2, // Doubled pokemon species name + EC_POKEMON(NATU), + EC_POKEMON2(NATU), + EC_WORD_NATURAL, + EC_WORD_NATURAL_CURE, + EC_WORD_NATURALLY, + EC_WORD_NATURE, + EC_MOVE(NATURE_POWER), + EC_WORD_NEAR, + EC_WORD_NEARLY, + EC_WORD_NEED, + EC_MOVE2(NEEDLE_ARM), + EC_WORD_NEGATIVE, + EC_WORD_NEVER, + EC_WORD_NEW, + EC_WORD_NEWS, + EC_WORD_NEXT, + EC_WORD_NICE, + EC_POKEMON2(NIDOKING), + EC_POKEMON2(NIDOQUEEN), + EC_POKEMON2(NIDORAN_F), + EC_POKEMON2(NIDORAN_M), + EC_POKEMON2(NIDORINA), + EC_POKEMON2(NIDORINO), + EC_WORD_NIGHT, + EC_MOVE2(NIGHT_SHADE), + EC_MOVE(NIGHTMARE), + EC_WORD_NIGHTTIME, + EC_POKEMON(NINCADA), + -1, 2, // Doubled pokemon species name + EC_POKEMON(NINETALES), + EC_POKEMON2(NINETALES), + EC_POKEMON(NINJASK), + EC_WORD_NITWIT, + EC_WORD_NO, + EC_WORD_NO_MATCH, + EC_WORD_NO_1, + EC_POKEMON2(NOCTOWL), + EC_WORD_NOISY, + EC_WORD_NON_STOP, + EC_WORD_NONE, + EC_WORD_NOPE, + EC_WORD_NORMAL, + EC_POKEMON(NOSEPASS), + EC_WORD_NOT, + EC_WORD_NOT_VERY, + EC_WORD_NOTHING, + EC_WORD_NOW, + EC_POKEMON(NUMEL), + EC_POKEMON(NUZLEAF), +}; + +const u16 gEasyChatWordsByLetter_O[] = { + EC_WORD_OBLIVIOUS, + EC_MOVE(OCTAZOOKA), + EC_POKEMON2(OCTILLERY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ODDISH), + EC_POKEMON2(ODDISH), + EC_MOVE(ODOR_SLEUTH), + EC_WORD_OF, + EC_WORD_OFF, + EC_WORD_OFFENSIVE, + EC_WORD_OH, + EC_WORD_OH_DEAR, + EC_WORD_OH_YEAH, + EC_WORD_OH_KAY, + EC_WORD_OH_QUES, + EC_WORD_OI, + EC_WORD_OI_OI_OI, + EC_WORD_OK_QUES, + EC_WORD_OKAY, + EC_WORD_OLD, + EC_WORD_OLDEN, + EC_POKEMON2(OMANYTE), + EC_POKEMON2(OMASTAR), + EC_WORD_ON, + EC_WORD_ONCE, + EC_POKEMON2(ONIX), + EC_WORD_ONLY, + EC_WORD_OOPS, + EC_WORD_OPPONENT, + EC_WORD_OPPOSITE, + EC_WORD_OR, + EC_WORD_OTHER, + EC_WORD_OUR, + EC_WORD_OUT, + EC_MOVE(OUTRAGE), + EC_WORD_OUTSIDE, + EC_WORD_OVER, + EC_WORD_OVERDO, + EC_WORD_OVERGROW, + EC_MOVE(OVERHEAT), + EC_WORD_OVERWHELMING, + EC_WORD_OWN, + EC_WORD_OWN_TEMPO, +}; + +const u16 gEasyChatWordsByLetter_P[] = { + EC_MOVE(PAIN_SPLIT), + EC_POKEMON2(PARAS), + EC_POKEMON2(PARASECT), + EC_WORD_PARDON, + EC_WORD_PARENT, + EC_WORD_PARTNER, + EC_WORD_PARTY, + EC_WORD_PATTERN, + EC_MOVE2(PAY_DAY), + EC_WORD_PC, + EC_MOVE2(PECK), + EC_POKEMON(PELIPPER), + EC_WORD_PERFECT, + EC_WORD_PERFECTION, + EC_MOVE2(PERISH_SONG), + EC_POKEMON2(PERSIAN), + EC_WORD_PERSON, + EC_MOVE2(PETAL_DANCE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PHANPY), + EC_POKEMON2(PHANPY), + EC_WORD_PHONE, + -1, 2, // Doubled pokemon species name + EC_POKEMON(PICHU), + EC_POKEMON2(PICHU), + EC_WORD_PICKUP, + EC_POKEMON2(PIDGEOT), + EC_POKEMON2(PIDGEOTTO), + EC_POKEMON2(PIDGEY), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PIKACHU), + EC_POKEMON2(PIKACHU), + EC_POKEMON2(PILOSWINE), + EC_MOVE2(PIN_MISSILE), + EC_POKEMON2(PINECO), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PINSIR), + EC_POKEMON2(PINSIR), + EC_WORD_PKRS, + EC_WORD_PLACE, + EC_WORD_PLANS, + EC_WORD_PLAY, + EC_WORD_PLAYED, + EC_WORD_PLAYS, + EC_WORD_PLEASE, + EC_WORD_PLUS, + EC_WORD_PLUSH_DOLL, + EC_POKEMON(PLUSLE), + EC_WORD_POINTS, + EC_WORD_POISON, + EC_MOVE2(POISON_FANG), + EC_MOVE2(POISON_GAS), + EC_WORD_POISON_POINT, + EC_MOVE2(POISON_STING), + EC_MOVE2(POISON_TAIL), + EC_MOVE2(POISON_POWDER), + EC_WORD_POKEBLOCK, + EC_WORD_POKEDEX, + EC_WORD_POKEMON, + EC_WORD_POKENAV, + EC_POKEMON2(POLITOED), + EC_POKEMON2(POLIWAG), + EC_POKEMON2(POLIWHIRL), + EC_POKEMON2(POLIWRATH), + EC_POKEMON2(PONYTA), + EC_POKEMON(POOCHYENA), + EC_WORD_POPULAR, + EC_POKEMON2(PORYGON), + EC_POKEMON2(PORYGON2), + EC_MOVE2(POUND), + EC_MOVE(POWDER_SNOW), + EC_WORD_POWER, + EC_WORD_PRAISE, + EC_WORD_PREPOSTEROUS, + EC_MOVE2(PRESENT), + EC_WORD_PRESSURE, + EC_WORD_PRETEND, + EC_WORD_PRETTY, + EC_POKEMON2(PRIMEAPE), + EC_WORD_PROBABLY, + EC_WORD_PROMISE, + EC_MOVE2(PROTECT), + EC_MOVE(PSYBEAM), + EC_MOVE(PSYCH_UP), + -1, 2, // Doubled pokemon species name + EC_WORD_PSYCHIC, + EC_MOVE(PSYCHIC), + EC_MOVE(PSYCHO_BOOST), + -1, 2, // Doubled pokemon species name + EC_POKEMON(PSYDUCK), + EC_POKEMON2(PSYDUCK), + EC_MOVE(PSYWAVE), + EC_POKEMON2(PUPITAR), + EC_WORD_PURE_POWER, + EC_MOVE(PURSUIT), + EC_WORD_PUSHOVER, +}; + +const u16 gEasyChatWordsByLetter_Q[] = { + EC_POKEMON2(QUAGSIRE), + EC_WORD_QUESTION, + EC_MOVE2(QUICK_ATTACK), + EC_POKEMON2(QUILAVA), + EC_WORD_QUITE, + EC_POKEMON2(QWILFISH), +}; + +const u16 gEasyChatWordsByLetter_R[] = { + EC_WORD_RADIO, + EC_MOVE(RAGE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(RAICHU), + EC_POKEMON2(RAICHU), + EC_POKEMON2(RAIKOU), + EC_MOVE(RAIN_DANCE), + EC_WORD_RAIN_DISH, + EC_POKEMON(RALTS), + EC_WORD_RANK, + EC_MOVE(RAPID_SPIN), + EC_POKEMON2(RAPIDASH), + EC_WORD_RARE, + EC_WORD_RATHER, + EC_POKEMON2(RATICATE), + EC_POKEMON2(RATTATA), + EC_POKEMON(RAYQUAZA), + EC_MOVE2(RAZOR_LEAF), + EC_MOVE(RAZOR_WIND), + EC_WORD_READY, + EC_WORD_REALLY, + EC_WORD_REAR, + EC_WORD_RECEIVED, + EC_WORD_RECOMMEND, + EC_MOVE(RECOVER), + EC_MOVE2(RECYCLE), + EC_WORD_RED, + EC_MOVE2(REFLECT), + EC_MOVE2(REFRESH), + EC_WORD_REFRESHING, + EC_WORD_REFUSE, + EC_POKEMON(REGICE), + EC_POKEMON(REGIROCK), + EC_POKEMON(REGISTEEL), + EC_WORD_REJECT, + EC_WORD_RELEASE, + EC_POKEMON(RELICANTH), + EC_POKEMON2(REMORAID), + EC_WORD_RENTAL, + EC_MOVE2(REST), + EC_WORD_RESUSCITATE, + EC_MOVE(RETURN), + EC_MOVE2(REVENGE), + EC_MOVE(REVERSAL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(RHYDON), + EC_POKEMON2(RHYDON), + -1, 2, // Doubled pokemon species name + EC_POKEMON(RHYHORN), + EC_POKEMON2(RHYHORN), + EC_WORD_RIBBON, + EC_WORD_RICKETY, + EC_WORD_RIGHT, + EC_WORD_RIPPED, + EC_WORD_RIVAL, + EC_MOVE2(ROAR), + EC_WORD_ROCK, + EC_MOVE2(ROCK_BLAST), + EC_WORD_ROCK_HEAD, + EC_MOVE(ROCK_SLIDE), + EC_MOVE(ROCK_SMASH), + EC_MOVE(ROCK_THROW), + EC_MOVE(ROCK_TOMB), + EC_WORD_ROCK_SOLID, + EC_MOVE2(ROLE_PLAY), + EC_MOVE2(ROLLING_KICK), + EC_MOVE(ROLLOUT), + EC_WORD_ROMANTIC, + EC_WORD_ROOM, + EC_POKEMON(ROSELIA), + EC_WORD_ROUGH_SKIN, + EC_WORD_RPG, + EC_WORD_RUBY, + EC_WORD_RULE, + EC_WORD_RUN, + EC_WORD_RUN_AWAY, + EC_WORD_RUNS, +}; + +const u16 gEasyChatWordsByLetter_S[] = { + EC_POKEMON(SABLEYE), + EC_MOVE(SACRED_FIRE), + EC_WORD_SAD, + EC_WORD_SADLY, + EC_MOVE(SAFEGUARD), + EC_WORD_SAID, + EC_POKEMON(SALAMENCE), + EC_WORD_SAND_STREAM, + EC_MOVE(SAND_TOMB), + EC_WORD_SAND_VEIL, + EC_MOVE(SAND_ATTACK), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SANDSHREW), + EC_POKEMON2(SANDSHREW), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SANDSLASH), + EC_POKEMON2(SANDSLASH), + EC_MOVE(SANDSTORM), + EC_WORD_SAPPHIRE, + EC_WORD_SATISFIED, + EC_WORD_SATURDAY, + EC_WORD_SAYS, + EC_WORD_SCARY, + EC_MOVE(SCARY_FACE), + EC_WORD_SCATTER, + EC_POKEMON(SCEPTILE), + EC_WORD_SCHOOL, + EC_POKEMON2(SCIZOR), + EC_MOVE2(SCRATCH), + EC_MOVE(SCREECH), + EC_POKEMON2(SCYTHER), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SEADRA), + EC_POKEMON2(SEADRA), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SEAKING), + EC_POKEMON2(SEAKING), + EC_POKEMON(SEALEO), + EC_WORD_SEARCH, + EC_WORD_SECRET, + EC_WORD_SECRET_BASE, + EC_MOVE2(SECRET_POWER), + EC_WORD_SEE, + EC_WORD_SEE_YA, + EC_POKEMON(SEEDOT), + EC_WORD_SEEK, + EC_POKEMON2(SEEL), + EC_WORD_SEEMS, + EC_WORD_SEES, + EC_MOVE2(SEISMIC_TOSS), + EC_MOVE(SELF_DESTRUCT), + EC_WORD_SENSE, + EC_POKEMON2(SENTRET), + EC_WORD_SERENE_GRACE, + EC_WORD_SERIOUS, + EC_WORD_SERIOUSLY, + EC_WORD_SERVICE, + EC_POKEMON(SEVIPER), + EC_MOVE(SHADOW_BALL), + EC_MOVE(SHADOW_PUNCH), + EC_WORD_SHADOW_TAG, + EC_WORD_SHADY, + EC_WORD_SHAKE, + EC_WORD_SHAKY, + EC_WORD_SHALLOW, + EC_POKEMON(SHARPEDO), + EC_MOVE(SHARPEN), + EC_WORD_SHE, + EC_WORD_SHE_IS, + EC_WORD_SHE_WAS, + EC_WORD_SHED_SKIN, + EC_POKEMON(SHEDINJA), + EC_MOVE(SHEER_COLD), + EC_POKEMON(SHELGON), + EC_WORD_SHELL_ARMOR, + EC_POKEMON2(SHELLDER), + EC_WORD_SHIELD_DUST, + EC_POKEMON(SHIFTRY), + EC_WORD_SHINE, + EC_MOVE2(SHOCK_WAVE), + EC_WORD_SHOCKED, + EC_WORD_SHOPPING, + EC_WORD_SHOULD, + EC_WORD_SHOW, + EC_WORD_SHREDDED, + EC_POKEMON(SHROOMISH), + EC_POKEMON2(SHUCKLE), + EC_POKEMON(SHUPPET), + EC_WORD_SIBLINGS, + EC_WORD_SIGH, + EC_MOVE(SIGNAL_BEAM), + EC_POKEMON(SILCOON), + EC_WORD_SILKY, + EC_WORD_SILVER, + EC_MOVE(SILVER_WIND), + EC_WORD_SIMPLE, + EC_WORD_SINCE, + EC_MOVE(SING), + EC_WORD_SINK, + EC_WORD_SISTER, + -1, 2, // Doubled pokemon species name + EC_POKEMON(SKARMORY), + EC_POKEMON2(SKARMORY), + EC_MOVE(SKETCH), + EC_WORD_SKILL, + EC_MOVE(SKILL_SWAP), + EC_WORD_SKILLED, + EC_POKEMON2(SKIPLOOM), + EC_POKEMON(SKITTY), + EC_MOVE2(SKULL_BASH), + EC_MOVE(SKY_ATTACK), + EC_MOVE(SKY_UPPERCUT), + EC_MOVE2(SLACK_OFF), + EC_POKEMON(SLAKING), + EC_POKEMON(SLAKOTH), + EC_MOVE2(SLAM), + EC_MOVE(SLASH), + EC_WORD_SLEEP, + EC_MOVE2(SLEEP_POWDER), + EC_MOVE2(SLEEP_TALK), + EC_WORD_SLEPT, + EC_WORD_SLIDE, + EC_WORD_SLIMY, + EC_POKEMON2(SLOWBRO), + EC_POKEMON2(SLOWKING), + EC_POKEMON2(SLOWPOKE), + EC_MOVE2(SLUDGE), + EC_MOVE2(SLUDGE_BOMB), + -1, 2, // Doubled pokemon species name + EC_POKEMON(SLUGMA), + EC_POKEMON2(SLUGMA), + EC_WORD_SMACK, + EC_WORD_SMALL, + EC_WORD_SMART, + EC_WORD_SMARTNESS, + EC_POKEMON2(SMEARGLE), + EC_WORD_SMELL, + EC_WORD_SMELL_YA, + EC_MOVE(SMELLING_SALT), + EC_WORD_SMITE, + EC_MOVE(SMOG), + EC_MOVE(SMOKESCREEN), + EC_POKEMON2(SMOOCHUM), + EC_WORD_SMOOTH, + EC_MOVE2(SNATCH), + EC_POKEMON2(SNEASEL), + EC_MOVE(SNORE), + EC_POKEMON2(SNORLAX), + EC_WORD_SNORT, + EC_POKEMON(SNORUNT), + EC_POKEMON2(SNUBBULL), + EC_WORD_SO, + EC_MOVE2(SOFT_BOILED), + EC_WORD_SOFTWARE, + EC_MOVE(SOLAR_BEAM), + EC_POKEMON(SOLROCK), + EC_WORD_SOME, + EC_WORD_SOMEHOW, + EC_WORD_SOMEONE, + EC_WORD_SOMETHING, + EC_WORD_SOMETIME, + EC_WORD_SON, + EC_WORD_SONG, + EC_WORD_SONGS, + EC_MOVE(SONIC_BOOM), + EC_WORD_SOON, + EC_WORD_SORRY, + EC_WORD_SOUNDPROOF, + EC_WORD_SP_ABILITY, + EC_MOVE(SPARK), + EC_POKEMON2(SPEAROW), + EC_WORD_SPECTATOR, + EC_WORD_SPEED_BOOST, + EC_POKEMON(SPHEAL), + EC_MOVE(SPIDER_WEB), + EC_MOVE2(SPIKE_CANNON), + EC_MOVE2(SPIKES), + EC_POKEMON2(SPINARAK), + EC_POKEMON(SPINDA), + EC_WORD_SPIRALING, + EC_WORD_SPIRIT, + EC_MOVE2(SPIT_UP), + EC_MOVE(SPITE), + EC_MOVE2(SPLASH), + EC_POKEMON(SPOINK), + EC_MOVE(SPORE), + EC_WORD_SPORTS, + EC_WORD_SPRING, + EC_POKEMON2(SQUIRTLE), + EC_WORD_STAGE, + EC_POKEMON2(STANTLER), + -1, 2, // Doubled pokemon species name + EC_POKEMON(STARMIE), + EC_POKEMON2(STARMIE), + EC_WORD_START, + -1, 2, // Doubled pokemon species name + EC_POKEMON(STARYU), + EC_POKEMON2(STARYU), + EC_WORD_STATIC, + EC_WORD_STAY_AT_HOME, + EC_WORD_STEEL, + EC_MOVE2(STEEL_WING), + EC_POKEMON2(STEELIX), + EC_WORD_STENCH, + EC_WORD_STICKY_HOLD, + EC_MOVE2(STOCKPILE), + EC_MOVE2(STOMP), + EC_WORD_STOP, + EC_WORD_STORE, + EC_WORD_STORES, + EC_WORD_STORY, + EC_WORD_STRATEGY, + EC_MOVE(STRENGTH), + EC_MOVE(STRING_SHOT), + EC_WORD_STRONG, + EC_MOVE2(STRUGGLE), + EC_WORD_STUDY, + EC_MOVE(STUN_SPORE), + EC_WORD_STURDY, + EC_MOVE(SUBMISSION), + EC_MOVE2(SUBSTITUTE), + EC_WORD_SUCTION_CUPS, + EC_POKEMON2(SUDOWOODO), + EC_POKEMON2(SUICUNE), + EC_WORD_SUMMER, + EC_WORD_SUNDAY, + EC_POKEMON2(SUNFLORA), + EC_POKEMON2(SUNKERN), + EC_MOVE2(SUNNY_DAY), + EC_WORD_SUPER, + EC_MOVE(SUPER_FANG), + EC_MOVE2(SUPERPOWER), + EC_MOVE2(SUPERSONIC), + EC_MOVE2(SURF), + EC_WORD_SURPRISE, + EC_WORD_SURRENDER, + EC_POKEMON(SURSKIT), + EC_POKEMON(SWABLU), + EC_MOVE(SWAGGER), + EC_MOVE2(SWALLOW), + EC_POKEMON(SWALOT), + EC_POKEMON(SWAMPERT), + EC_WORD_SWARM, + EC_MOVE2(SWEET_KISS), + EC_MOVE(SWEET_SCENT), + EC_WORD_SWEETS, + EC_POKEMON(SWELLOW), + EC_MOVE(SWIFT), + EC_WORD_SWIFT_SWIM, + EC_POKEMON2(SWINUB), + EC_MOVE2(SWORDS_DANCE), + EC_WORD_SYNCHRONIZE, + EC_MOVE(SYNTHESIS), + EC_WORD_SYSTEM, +}; + +const u16 gEasyChatWordsByLetter_T[] = { + EC_MOVE2(TACKLE), + EC_MOVE2(TAIL_GLOW), + EC_MOVE(TAIL_WHIP), + EC_POKEMON(TAILLOW), + EC_WORD_TAKE, + EC_MOVE2(TAKE_DOWN), + EC_WORD_TAKE_THAT, + EC_WORD_TALENT, + EC_WORD_TALK, + EC_WORD_TALKING, + EC_POKEMON2(TANGELA), + EC_WORD_TASTY, + EC_MOVE2(TAUNT), + EC_POKEMON2(TAUROS), + EC_WORD_TCH, + EC_WORD_TEACH, + EC_WORD_TEACHER, + EC_WORD_TEACHES, + EC_POKEMON2(TEDDIURSA), + EC_MOVE2(TEETER_DANCE), + EC_MOVE2(TELEPORT), + EC_WORD_TELEVISION, + -1, 2, // Doubled pokemon species name + EC_POKEMON(TENTACOOL), + EC_POKEMON2(TENTACOOL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(TENTACRUEL), + EC_POKEMON2(TENTACRUEL), + EC_WORD_TERRIBLE, + EC_WORD_TEST, + EC_WORD_THAN, + EC_WORD_THANK_YOU, + EC_WORD_THANKS, + EC_WORD_THAT, + EC_WORD_THAT_WAS, + EC_WORD_THAT_S, + EC_WORD_THAT_S_IT_EXCL, + EC_WORD_THE, + EC_WORD_THEIR, + EC_WORD_THERE, + EC_WORD_THESE, + EC_WORD_THESE_WERE, + EC_WORD_THEY, + EC_WORD_THEY_WERE, + EC_WORD_THEY_RE, + EC_WORD_THEY_VE, + EC_WORD_THICK, + EC_WORD_THICK_FAT, + EC_MOVE2(THIEF), + EC_WORD_THIN, + EC_WORD_THING, + EC_WORD_THINGS, + EC_WORD_THINK, + EC_WORD_THINKS, + EC_WORD_THIRSTY, + EC_WORD_THIS, + EC_WORD_THIS_IS_IT_EXCL, + EC_WORD_THOSE, + EC_WORD_THOSE_ARE, + EC_WORD_THOSE_WERE, + EC_MOVE(THRASH), + EC_WORD_THROW, + EC_MOVE(THUNDER), + EC_MOVE2(THUNDER_WAVE), + EC_MOVE(THUNDERBOLT), + EC_MOVE(THUNDER_PUNCH), + EC_MOVE2(THUNDER_SHOCK), + EC_WORD_THURSDAY, + EC_MOVE(TICKLE), + EC_WORD_TICKLISH, + EC_WORD_TIGHT, + EC_WORD_TIME, + EC_WORD_TIMES, + EC_WORD_TIRED, + EC_WORD_TO, + EC_WORD_TO_HER, + EC_WORD_TO_ME, + EC_WORD_TO_THEM, + EC_WORD_TO_US, + EC_WORD_TO_WHOM, + EC_WORD_TODAY, + EC_POKEMON2(TOGEPI), + EC_WORD_TOGETHER, + EC_POKEMON2(TOGETIC), + EC_WORD_TOMORROW, + EC_WORD_TOO, + EC_WORD_TOO_LATE, + EC_WORD_TOO_STRONG, + EC_WORD_TOO_WEAK, + EC_WORD_TOP, + EC_POKEMON(TORCHIC), + EC_POKEMON(TORKOAL), + EC_MOVE(TORMENT), + EC_WORD_TORRENT, + EC_WORD_TOTALLY, + EC_POKEMON2(TOTODILE), + EC_WORD_TOUGH, + EC_WORD_TOUGHNESS, + EC_WORD_TOURNAMENT, + EC_WORD_TOWER, + EC_MOVE2(TOXIC), + EC_WORD_TOYS, + EC_WORD_TRACE, + EC_WORD_TRADE, + EC_WORD_TRAIN, + EC_WORD_TRAINER, + EC_WORD_TRAINS, + EC_MOVE2(TRANSFORM), + EC_POKEMON(TRAPINCH), + EC_WORD_TRAVEL, + EC_WORD_TREASURE, + EC_POKEMON(TREECKO), + EC_WORD_TRENDY, + EC_MOVE2(TRI_ATTACK), + EC_MOVE2(TRICK), + EC_WORD_TRIES, + EC_MOVE2(TRIPLE_KICK), + EC_POKEMON(TROPIUS), + EC_WORD_TRUANT, + EC_WORD_TRULY, + EC_WORD_TRUMP_CARD, + EC_WORD_TRUST, + EC_WORD_TRY, + EC_WORD_TUESDAY, + EC_MOVE2(TWINEEDLE), + EC_WORD_TWIRLING, + EC_MOVE2(TWISTER), + EC_WORD_TYPE, + EC_POKEMON2(TYPHLOSION), + EC_POKEMON2(TYRANITAR), + EC_POKEMON2(TYROGUE), +}; + +const u16 gEasyChatWordsByLetter_U[] = { + EC_WORD_UGLY, + EC_WORD_UH_HUH, + EC_WORD_UH_OH, + EC_WORD_UM, + EC_POKEMON2(UMBREON), + EC_WORD_UNAVOIDABLE, + EC_WORD_UNBELIEVABLE, + EC_WORD_UNCLE, + EC_WORD_UNDERSTAND, + EC_WORD_UNDERSTANDS, + EC_WORD_UNDERSTOOD, + EC_WORD_UNION, + EC_POKEMON2(UNOWN), + EC_WORD_UNTIL, + EC_WORD_UP, + EC_WORD_UPBEAT, + EC_MOVE(UPROAR), + EC_WORD_UPSIDE_DOWN, + EC_WORD_URGH, + EC_POKEMON2(URSARING), + EC_WORD_USE, + EC_WORD_USELESS, + EC_WORD_USES, + EC_WORD_USING, +}; + +const u16 gEasyChatWordsByLetter_V[] = { + EC_WORD_VACATION, + EC_POKEMON2(VAPOREON), + EC_POKEMON2(VENOMOTH), + EC_POKEMON2(VENONAT), + EC_POKEMON2(VENUSAUR), + EC_WORD_VERSION, + EC_WORD_VERSUS, + EC_WORD_VERY, + EC_POKEMON(VIBRAVA), + EC_MOVE2(VICE_GRIP), + EC_WORD_VICTORY, + EC_POKEMON2(VICTREEBEL), + EC_WORD_VIEWING, + EC_POKEMON(VIGOROTH), + -1, 2, // Doubled pokemon species name + EC_POKEMON(VILEPLUME), + EC_POKEMON2(VILEPLUME), + EC_MOVE2(VINE_WHIP), + EC_WORD_VITAL_SPIRIT, + EC_MOVE(VITAL_THROW), + EC_POKEMON(VOLBEAT), + EC_WORD_VOLT_ABSORB, + EC_MOVE2(VOLT_TACKLE), + -1, 2, // Doubled pokemon species name + EC_POKEMON(VOLTORB), + EC_POKEMON2(VOLTORB), + EC_WORD_VORACIOUS, + -1, 2, // Doubled pokemon species name + EC_POKEMON(VULPIX), + EC_POKEMON2(VULPIX), +}; + +const u16 gEasyChatWordsByLetter_W[] = { + EC_WORD_WAAAH, + EC_WORD_WAHAHAHA, + EC_POKEMON(WAILMER), + EC_POKEMON(WAILORD), + EC_WORD_WAIT, + EC_WORD_WAKE_UP, + EC_WORD_WAKES_UP, + EC_WORD_WALK, + EC_WORD_WALKING, + EC_WORD_WALKS, + EC_POKEMON(WALREIN), + EC_WORD_WANDERING, + EC_WORD_WANNABE, + EC_WORD_WANT, + EC_WORD_WANTS, + EC_POKEMON2(WARTORTLE), + EC_WORD_WAS, + EC_WORD_WASN_T, + EC_WORD_WATER, + EC_WORD_WATER_ABSORB, + EC_MOVE2(WATER_GUN), + EC_MOVE2(WATER_PULSE), + EC_MOVE2(WATER_SPORT), + EC_MOVE(WATER_SPOUT), + EC_WORD_WATER_VEIL, + EC_MOVE2(WATERFALL), + EC_WORD_WAY, + EC_WORD_WE, + EC_WORD_WE_RE, + EC_WORD_WE_VE, + EC_WORD_WEAK, + EC_WORD_WEAKENED, + EC_MOVE(WEATHER_BALL), + EC_WORD_WEDNESDAY, + EC_POKEMON2(WEEDLE), + EC_WORD_WEEK, + EC_POKEMON2(WEEPINBELL), + -1, 2, // Doubled pokemon species name + EC_POKEMON(WEEZING), + EC_POKEMON2(WEEZING), + EC_WORD_WEIRD, + EC_WORD_WELCOME, + EC_WORD_WELL, + EC_WORD_WELL_THEN, + EC_WORD_WENT, + EC_WORD_WERE, + EC_WORD_WEREN_T, + EC_WORD_WHAT, + EC_WORD_WHAT_S_UP_QUES, + EC_WORD_WHEN, + EC_WORD_WHEN_I_WIN, + EC_WORD_WHERE, + EC_WORD_WHICH, + EC_WORD_WHILE, + EC_MOVE(WHIRLPOOL), + EC_MOVE2(WHIRLWIND), + EC_POKEMON(WHISCASH), + EC_POKEMON(WHISMUR), + EC_WORD_WHITE_SMOKE, + EC_WORD_WHO, + EC_WORD_WHO_IS, + EC_WORD_WHO_WAS, + EC_WORD_WHOAH, + EC_WORD_WHOM, + EC_WORD_WHOSE, + EC_WORD_WHY, + -1, 2, // Doubled pokemon species name + EC_POKEMON(WIGGLYTUFF), + EC_POKEMON2(WIGGLYTUFF), + EC_WORD_WILD, + EC_WORD_WILL, + EC_WORD_WILL_BE_HERE, + EC_MOVE(WILL_O_WISP), + EC_WORD_WIMPY, + EC_WORD_WIN, + EC_MOVE2(WING_ATTACK), + EC_POKEMON(WINGULL), + EC_WORD_WINNER, + EC_WORD_WINS, + EC_WORD_WINTER, + EC_WORD_WIRELESS, + EC_MOVE2(WISH), + EC_WORD_WITH, + EC_MOVE(WITHDRAW), + EC_WORD_WITHOUT, + EC_WORD_WOBBLY, + -1, 2, // Doubled pokemon species name + EC_POKEMON(WOBBUFFET), + EC_POKEMON2(WOBBUFFET), + EC_WORD_WOMAN, + EC_WORD_WON, + EC_WORD_WON_T, + EC_WORD_WONDER, + EC_WORD_WONDER_GUARD, + EC_POKEMON2(WOOPER), + EC_WORD_WORD, + EC_WORD_WORK, + EC_WORD_WORKING, + EC_WORD_WORKS, + EC_WORD_WORLD, + EC_WORD_WORRY, + EC_WORD_WOULD, + EC_WORD_WOW, + EC_WORD_WOWEE, + EC_MOVE2(WRAP), + EC_WORD_WROOOAAR_EXCL, + EC_POKEMON(WURMPLE), + EC_POKEMON(WYNAUT), +}; + +const u16 gEasyChatWordsByLetter_X[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON(XATU), + EC_POKEMON2(XATU), +}; + +const u16 gEasyChatWordsByLetter_Y[] = { + EC_WORD_YAHOO, + EC_POKEMON2(YANMA), + EC_MOVE(YAWN), + EC_WORD_YAY, + EC_WORD_YEAH, + EC_WORD_YEAH_YEAH, + EC_WORD_YEEHAW_EXCL, + EC_WORD_YES, + EC_WORD_YES_SIR_EXCL, + EC_WORD_YESTERDAY, + EC_WORD_YET, + EC_WORD_YO, + EC_WORD_YOU, + EC_WORD_YOU_RE, + EC_WORD_YOU_VE, + EC_WORD_YOUNG, + EC_WORD_YOUR, + EC_WORD_YOURS, + EC_WORD_YUP, +}; + +const u16 gEasyChatWordsByLetter_Z[] = { + EC_POKEMON(ZANGOOSE), + EC_MOVE2(ZAP_CANNON), + EC_POKEMON2(ZAPDOS), + EC_POKEMON(ZIGZAGOON), + -1, 2, // Doubled pokemon species name + EC_POKEMON(ZUBAT), + EC_POKEMON2(ZUBAT), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHi[] = { + EC_POKEMON2(CLEFFA), + EC_WORD_AIYEEH, + EC_POKEMON2(WEEDLE), + EC_WORD_HERO, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(PIKACHU), + EC_POKEMON(PIKACHU), + EC_MOVE2(LIGHT_SCREEN), + EC_WORD_SHINE, + EC_WORD_LOW, + EC_POKEMON2(CLEFABLE), + EC_WORD_FLYING, + EC_POKEMON2(PIDGEOT), + EC_POKEMON2(PIDGEOTTO), + EC_WORD_LEFT, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(PICHU), + EC_POKEMON(PICHU), + EC_MOVE2(SCRATCH), + EC_WORD_SURPRISE, + EC_MOVE2(HYPER_FANG), + EC_POKEMON2(CLEFAIRY), + EC_WORD_DROUGHT, + EC_WORD_HIDDEN, + EC_WORD_PERSON, + EC_WORD_AWFUL, + EC_POKEMON2(CHARMANDER), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(STARYU), + EC_POKEMON(STARYU), + EC_WORD_ALONE, + EC_POKEMON2(CYNDAQUIL), + EC_MOVE2(EMBER), + EC_POKEMON(VIBRAVA), + EC_WORD_BORED, + EC_POKEMON2(SUNKERN), + EC_WORD_SECRET, + EC_WORD_SECRET_BASE, + EC_MOVE2(SECRET_POWER), + EC_POKEMON2(TEDDIURSA), + EC_WORD_HIYAH, + EC_MOVE2(DIZZY_PUNCH), + EC_WORD_LIGHTNINGROD, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VOLTORB), + EC_POKEMON(VOLTORB), + EC_WORD_DAYTIME, + EC_MOVE2(BULK_UP), + EC_WORD_NAP, + EC_WORD_HEROINE, + EC_POKEMON(FEEBAS), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseFu[] = { + EC_WORD_FIGHT, + EC_POKEMON2(MOLTRES), + EC_WORD_FASHION, + EC_WORD_FEAR, + EC_WORD_FEVER, + EC_MOVE2(IMPRISON), + EC_POKEMON2(FLAREON), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(ALAKAZAM), + EC_POKEMON(ALAKAZAM), + EC_POKEMON2(MAGMAR), + EC_POKEMON(GRUMPIG), + EC_MOVE2(FEATHER_DANCE), + EC_POKEMON2(FORRETRESS), + EC_MOVE2(WHIRLWIND), + EC_WORD_COMPOUNDEYES, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(WIGGLYTUFF), + EC_POKEMON(WIGGLYTUFF), + EC_MOVE2(BEAT_UP), + EC_WORD_MYSTERY, + EC_POKEMON2(IVYSAUR), + EC_POKEMON2(BULBASAUR), + EC_WORD_MARVEL_SCALE, + EC_WORD_WONDER_GUARD, + EC_POKEMON2(VENUSAUR), + EC_WORD_LACKS, + EC_WORD_RESUSCITATE, + EC_WORD_SMACK, + EC_WORD_FUFUFU, + EC_POKEMON2(AERODACTYL), + EC_WORD_WIMPY, + EC_POKEMON2(MAGBY), + EC_WORD_LOL, + EC_MOVE2(BLIZZARD), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(IGGLYBUFF), + EC_POKEMON(IGGLYBUFF), + EC_WORD_SNORT, + EC_MOVE2(STOMP), + EC_WORD_INSOMNIA, + EC_WORD_WINTER, + EC_WORD_LEVITATE, + EC_POKEMON(FLYGON), + EC_WORD_PLUS, + EC_MOVE2(BLAST_BURN), + EC_POKEMON(PLUSLE), + EC_POKEMON2(UMBREON), + EC_MOVE2(FLASH), + EC_WORD_WOBBLY, + EC_MOVE2(TEETER_DANCE), + EC_WORD_PRETEND, + EC_POKEMON2(ARTICUNO), + EC_WORD_WANNABE, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(JIGGLYPUFF), + EC_POKEMON(JIGGLYPUFF), + EC_POKEMON2(SNUBBULL), + EC_WORD_SHAKY, + EC_MOVE2(CRUSH_CLAW), + EC_MOVE2(BLAZE_KICK), + EC_MOVE2(PRESENT), + EC_WORD_PRESSURE, + EC_WORD_BLEND, + EC_WORD_FRONTIER, + EC_WORD_HUMPH, + EC_MOVE2(ERUPTION), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHe[] = { + EC_WORD_HEY, + EC_POKEMON(CORPHISH), + EC_WORD_BABY, + EC_POKEMON2(BAYLEEF), + EC_WORD_BEST, + EC_WORD_LOUSY, + EC_WORD_HEHEHE, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(GRIMER), + EC_POKEMON(GRIMER), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MUK), + EC_POKEMON(MUK), + EC_WORD_LIQUID_OOZE, + EC_MOVE2(SLUDGE), + EC_MOVE2(SLUDGE_BOMB), + EC_MOVE2(GLARE), + EC_WORD_HEH, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(HERACROSS), + EC_POKEMON(HERACROSS), + EC_POKEMON(PELIPPER), + EC_POKEMON2(HOUNDOOM), + EC_POKEMON2(PERSIAN), + EC_WORD_RIPPED, + EC_POKEMON2(LICKITUNG), + EC_WORD_STUDY, + EC_WORD_COLOR_CHANGE, + EC_MOVE2(TRANSFORM), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseHo[] = { + EC_MOVE2(POISON_TAIL), + EC_WORD_POINTS, + EC_POKEMON2(HO_OH), + EC_WORD_SOUNDPROOF, + EC_WORD_ADVENTURE, + EC_WORD_EFFECT_SPORE, + EC_MOVE2(ROAR), + EC_POKEMON(WAILORD), + EC_POKEMON(WAILMER), + EC_WORD_DUDE, + EC_WORD_BOARD, + EC_POKEMON2(HOOTHOOT), + EC_POKEMON(SALAMENCE), + EC_WORD_BALL, + EC_MOVE2(BONE_RUSH), + EC_WORD_THEY, + EC_WORD_THEY_WERE, + EC_WORD_TO_THEM, + EC_WORD_THEIR, + EC_WORD_THEY_RE, + EC_WORD_THEY_VE, + EC_WORD_POKENAV, + EC_WORD_POKEMON, + EC_WORD_GET, + EC_WORD_POKEDEX, + EC_WORD_PKRS, + EC_MOVE2(CAMOUFLAGE), + EC_WORD_WANT, + EC_MOVE2(COVET), + EC_POKEMON(AGGRON), + EC_MOVE2(TAIL_GLOW), + EC_POKEMON(POOCHYENA), + EC_POKEMON2(PIDGEY), + EC_WORD_AS_MUCH_AS, + EC_POKEMON2(PONYTA), + EC_MOVE2(BONE_CLUB), + EC_MOVE2(BONEMERANG), + EC_WORD_FIRE, + EC_MOVE2(FIRE_SPIN), + EC_WORD_FLAME_BODY, + EC_MOVE2(FIRE_PUNCH), + EC_POKEMON2(SKIPLOOM), + EC_WORD_HOHOHO, + EC_WORD_PRAISE, + EC_WORD_UH_HUH, + EC_POKEMON2(PORYGON), + EC_POKEMON2(PORYGON2), + EC_MOVE2(VOLT_TACKLE), + EC_WORD_POKEBLOCK, + EC_MOVE2(PERISH_SONG), + EC_WORD_SHREDDED, + EC_POKEMON(CASTFORM), + EC_WORD_BOOK, + EC_WORD_SERIOUS, + EC_WORD_REALLY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMa[] = { + EC_WORD_OH_DEAR, + EC_WORD_IN, + EC_WORD_GIVE_UP, + EC_WORD_MINUS, + EC_POKEMON(MINUN), + EC_WORD_DAILY, + EC_WORD_OWN_TEMPO, + EC_MOVE2(WRAP), + EC_MOVE2(SPIKES), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MAGCARGO), + EC_POKEMON(MAGCARGO), + EC_MOVE2(MAGNITUDE), + EC_POKEMON(MAKUHITA), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(SLUGMA), + EC_POKEMON(SLUGMA), + EC_WORD_MAGMA_ARMOR, + EC_POKEMON2(QUILAVA), + EC_WORD_OVERDO, + EC_WORD_LOSS, + EC_WORD_IF_I_LOSE, + EC_WORD_LOST, + EC_WORD_LOSE, + EC_WORD_TRULY, + EC_WORD_SERIOUSLY, + EC_MOVE2(MAGICAL_LEAF), + EC_MOVE2(MAGIC_COAT), + EC_WORD_MACHINE, + EC_WORD_OUT, + EC_WORD_MASTER, + EC_WORD_INCREASING, + EC_WORD_TOO, + EC_WORD_LIKE, + EC_POKEMON2(BELLSPROUT), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(WEEZING), + EC_POKEMON(WEEZING), + EC_WORD_SMELL, + EC_WORD_YET, + EC_WORD_MISTAKE, + EC_POKEMON(LINOONE), + EC_WORD_TOTALLY, + EC_MOVE2(MUD_SHOT), + EC_MOVE2(MACH_PUNCH), + EC_WORD_FESTIVAL, + EC_WORD_UNTIL, + EC_WORD_WAIT, + EC_WORD_GUARD, + EC_MOVE2(PROTECT), + EC_POKEMON(CASCOON), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MARILL), + EC_POKEMON(MARILL), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(AZUMARILL), + EC_POKEMON(AZUMARILL), + EC_MOVE2(DEFENSE_CURL), + EC_WORD_AS_IF, + EC_POKEMON(SWALOT), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(ELECTRODE), + EC_POKEMON(ELECTRODE), + EC_MOVE2(ROLLING_KICK), + EC_WORD_COMICS, + EC_POKEMON2(MANKEY), + EC_WORD_SATISFIED, + EC_POKEMON2(MANTINE), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMi[] = { + EC_WORD_PARTNER, + EC_MOVE2(SUBSTITUTE), + EC_WORD_RIGHT, + EC_MOVE2(DETECT), + EC_MOVE2(PIN_MISSILE), + EC_WORD_WATER, + EC_MOVE2(WATER_SPORT), + EC_POKEMON(MUDKIP), + EC_MOVE2(WATER_GUN), + EC_MOVE2(MIST_BALL), + EC_MOVE2(WATER_PULSE), + EC_WORD_WATER_VEIL, + EC_WORD_SHOW, + EC_WORD_SEE, + EC_WORD_DID, + EC_MOVE2(FURY_ATTACK), + EC_MOVE2(FURY_SWIPES), + EC_MOVE2(DESTINY_BOND), + EC_WORD_LOOKS, + EC_WORD_REJECT, + EC_WORD_ACCEPT, + EC_POKEMON2(DRATINI), + EC_MOVE2(FALSE_SWIPE), + EC_MOVE2(FORESIGHT), + EC_POKEMON2(MEW), + EC_POKEMON2(MEWTWO), + EC_MOVE2(MIRROR_COAT), + EC_MOVE2(FUTURE_SIGHT), + EC_WORD_SEES, + EC_MOVE2(MILK_DRINK), + EC_POKEMON2(MILTANK), + EC_POKEMON(MILOTIC), + EC_WORD_WE, + EC_WORD_BEEN, + EC_WORD_TO_US, + EC_WORD_OUR, + EC_WORD_WE_RE, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMu[] = { + EC_WORD_MOOD, + EC_POKEMON2(MISDREAVUS), + EC_WORD_OLDEN, + EC_WORD_ARRGH, + EC_WORD_BUG, + EC_WORD_SWARM, + EC_WORD_RATHER, + EC_POKEMON2(SMOOCHUM), + EC_WORD_INVINCIBLE, + EC_WORD_HEART, + EC_WORD_MUFUFU, + EC_WORD_MMM, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMe[] = { + EC_MOVE2(CALM_MIND), + EC_WORD_MAIL, + EC_MOVE2(MEGA_DRAIN), + EC_MOVE2(MEGA_KICK), + EC_MOVE2(MEGA_PUNCH), + EC_POKEMON2(MEGANIUM), + EC_MOVE2(MEGAHORN), + EC_WORD_SEEK, + EC_MOVE2(HIDDEN_POWER), + EC_WORD_RARE, + EC_POKEMON(METAGROSS), + EC_POKEMON2(DITTO), + EC_MOVE2(METAL_CLAW), + EC_POKEMON(METANG), + EC_WORD_DESTROYED, + EC_WORD_MESSAGE, + EC_WORD_AWFULLY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(TENTACOOL), + EC_POKEMON(TENTACOOL), + EC_WORD_FIERY, + EC_POKEMON2(MAREEP), + EC_MOVE2(ATTRACT), + EC_WORD_CUTE_CHARM, + EC_WORD_IMMUNITY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseMo[] = { + EC_WORD_ALMOST, + EC_WORD_BLAZE, + EC_WORD_NEARLY, + EC_WORD_MODE, + EC_WORD_OLD, + EC_WORD_THURSDAY, + EC_POKEMON2(FLAAFFY), + EC_WORD_LISTENING, + EC_WORD_OWN, + EC_WORD_MORE, + EC_WORD_DIDN_T, + EC_WORD_PICKUP, + EC_MOVE2(MIMIC), + EC_WORD_TOO_LATE, + EC_WORD_PATTERN, + EC_WORD_FLASH_FIRE, + EC_WORD_RECEIVED, + EC_POKEMON2(VENOMOTH), + EC_WORD_DOESN_T, + EC_POKEMON2(TANGELA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYa[] = { + EC_WORD_HOO_HAH, + EC_WORD_PROMISE, + EC_WORD_KIND, + EC_POKEMON(BALTOY), + EC_WORD_HOLIDAY, + EC_WORD_NEGATIVE, + EC_MOVE2(FRUSTRATION), + EC_WORD_DONE, + EC_WORD_FINALLY, + EC_WORD_ANY, + EC_WORD_YAHOO, + EC_POKEMON2(SLOWKING), + EC_POKEMON2(SLOWBRO), + EC_MOVE2(LEECH_SEED), + EC_POKEMON2(SLOWPOKE), + EC_WORD_DANGER, + EC_POKEMON2(MURKROW), + EC_POKEMON(SABLEYE), + EC_WORD_DEFEATED, + EC_WORD_BEAT, + EC_WORD_VITAL_SPIRIT, + EC_POKEMON(VIGOROTH), + EC_WORD_YOUNG, + EC_POKEMON2(YANMA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYu[] = { + EC_POKEMON(SNORUNT), + EC_WORD_TAKE, + EC_WORD_UNION, + EC_MOVE2(METRONOME), + EC_WORD_DREAM, + EC_MOVE2(DREAM_EATER), + EC_WORD_ALLOW, + EC_WORD_FORGET, + EC_POKEMON(CRADILY), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(KADABRA), + EC_POKEMON(KADABRA), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseYo[] = { + EC_WORD_WITHOUT, + EC_WORD_YO, + EC_MOVE2(ACID), + EC_WORD_COME_OVER, + EC_WORD_KINDERGARTEN, + EC_WORD_CHLOROPHYLL, + EC_WORD_AFTER, + EC_POKEMON2(LARVITAR), + EC_WORD_OH_KAY, + EC_WORD_BEFORE, + EC_WORD_GREAT, + EC_MOVE2(MEDITATE), + EC_WORD_PURE_POWER, + EC_WORD_WELL, + EC_MOVE2(SNATCH), + EC_WORD_OKAY, + EC_WORD_PLANS, + EC_WORD_NIGHTTIME, + EC_WORD_WHILE, + EC_POKEMON(DUSKULL), + EC_WORD_EASY, + EC_WORD_INSTEAD, + EC_WORD_NIGHT, + EC_POKEMON2(NOCTOWL), + EC_WORD_COUNT_ON, + EC_WORD_WEAK, + EC_WORD_TOO_WEAK, + EC_WORD_WEAKENED, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRa[] = { + EC_POKEMON2(RAIKOU), + EC_WORD_WEEK, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(RAICHU), + EC_POKEMON(RAICHU), + EC_WORD_RIVAL, + EC_WORD_LIFE, + EC_POKEMON(MANECTRIC), + EC_WORD_SIMPLE, + EC_WORD_PUSHOVER, + EC_POKEMON(SWAMPERT), + EC_POKEMON(ELECTRIKE), + EC_WORD_SEEMS, + EC_WORD_RADIO, + EC_MOVE2(LUSTER_PURGE), + EC_POKEMON2(CHANSEY), + EC_POKEMON2(RATICATE), + EC_POKEMON(LATIAS), + EC_POKEMON(LATIOS), + EC_POKEMON(LUVDISC), + EC_POKEMON2(LAPRAS), + EC_WORD_LOVEY_DOVEY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VILEPLUME), + EC_POKEMON(VILEPLUME), + EC_WORD_LALALA, + EC_POKEMON(RALTS), + EC_WORD_FORGETS, + EC_WORD_APPEARS, + EC_WORD_RANK, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(LANTURN), + EC_POKEMON(LANTURN), +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRi[] = { + EC_WORD_LEADER, + EC_MOVE2(LEAF_BLADE), + EC_POKEMON2(CHARMELEON), + EC_POKEMON2(CHARIZARD), + EC_MOVE2(RECYCLE), + EC_MOVE2(REFLECT), + EC_MOVE2(REFRESH), + EC_MOVE2(REVENGE), + EC_WORD_RIBBON, + EC_WORD_TRENDY, + EC_MOVE2(DRAGON_RAGE), + EC_MOVE2(DRAGON_BREATH), + EC_MOVE2(DRAGON_DANCE), + EC_WORD_VACATION, + EC_POKEMON(LILEEP), + EC_POKEMON2(URSARING), + EC_WORD_SHIELD_DUST, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRu[] = { + EC_POKEMON2(JYNX), + EC_WORD_ROOM, + EC_WORD_RULE, + EC_POKEMON2(LUGIA), + EC_WORD_LOOK, + EC_POKEMON(LUNATONE), + EC_WORD_RUBY, + EC_WORD_THAN, + EC_POKEMON(AZURILL), + EC_POKEMON(LUDICOLO), + EC_WORD_HAPPILY, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRe[] = { + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MAGNETON), + EC_POKEMON(MAGNETON), + EC_MOVE2(ICE_PUNCH), + EC_MOVE2(ICE_BEAM), + EC_POKEMON(REGICE), + EC_POKEMON(REGISTEEL), + EC_POKEMON(REGIROCK), + EC_POKEMON(RAYQUAZA), + EC_WORD_UGLY, + EC_POKEMON2(LEDIAN), + EC_POKEMON2(LEDYBA), + EC_WORD_FANTASTIC, + EC_WORD_LEVEL, + EC_MOVE2(FURY_CUTTER), + EC_MOVE2(COMET_PUNCH), + EC_WORD_RENTAL, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseRo[] = { + EC_MOVE2(SKULL_BASH), + -1, 2, // Doubled pokemon species name + EC_POKEMON2(VULPIX), + EC_POKEMON(VULPIX), + EC_POKEMON(ROSELIA), + EC_MOVE2(LOCK_ON), + EC_MOVE2(ROCK_BLAST), + EC_WORD_ROMANTIC, + EC_WORD_QUESTION, +}; + +const u16 gEasyChatWordsByLetter_UnusedJapaneseWa[] = { + EC_WORD_YAY, + EC_WORD_WORLD, + EC_WORD_AWW, + EC_WORD_WIRELESS, + EC_WORD_WOWEE, + EC_POKEMON(COMBUSKEN), + EC_WORD_UNDERSTAND, + EC_WORD_UNDERSTANDS, + EC_WORD_FAINT, + EC_WORD_ANTICIPATION, + EC_WORD_ONCE, + EC_WORD_MOVE, + EC_WORD_WE_VE, + EC_WORD_FAINTED, + EC_WORD_WOMAN, + EC_WORD_SHE, + EC_WORD_SHE_WAS, + EC_WORD_TO_HER, + EC_WORD_HERS, + EC_WORD_SHE_IS, + EC_WORD_SOME, + EC_POKEMON2(JUMPLUFF), + EC_MOVE2(COTTON_SPORE), + EC_WORD_GWAH, + EC_POKEMON2(TOTODILE), + EC_WORD_WAHAHAHA, + EC_WORD_ANYWHERE, + EC_MOVE2(STRUGGLE), + EC_WORD_BADLY, + -1, 2, // Doubled pokemon species name + EC_POKEMON2(MACHOP), + EC_POKEMON(MACHOP), +}; + +const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[] = { + { + .words = gEasyChatWordsByLetter_Others, + .numWords = 10, + }, + { + .words = gEasyChatWordsByLetter_A, + .numWords = 106, + }, + { + .words = gEasyChatWordsByLetter_B, + .numWords = 86, + }, + { + .words = gEasyChatWordsByLetter_C, + .numWords = 119, + }, + { + .words = gEasyChatWordsByLetter_D, + .numWords = 94, + }, + { + .words = gEasyChatWordsByLetter_E, + .numWords = 59, + }, + { + .words = gEasyChatWordsByLetter_F, + .numWords = 80, + }, + { + .words = gEasyChatWordsByLetter_G, + .numWords = 98, + }, + { + .words = gEasyChatWordsByLetter_H, + .numWords = 101, + }, + { + .words = gEasyChatWordsByLetter_I, + .numWords = 48, + }, + { + .words = gEasyChatWordsByLetter_J, + .numWords = 13, + }, + { + .words = gEasyChatWordsByLetter_K, + .numWords = 33, + }, + { + .words = gEasyChatWordsByLetter_L, + .numWords = 82, + }, + { + .words = gEasyChatWordsByLetter_M, + .numWords = 142, + }, + { + .words = gEasyChatWordsByLetter_N, + .numWords = 54, + }, + { + .words = gEasyChatWordsByLetter_O, + .numWords = 44, + }, + { + .words = gEasyChatWordsByLetter_P, + .numWords = 102, + }, + { + .words = gEasyChatWordsByLetter_Q, + .numWords = 6, + }, + { + .words = gEasyChatWordsByLetter_R, + .numWords = 80, + }, + { + .words = gEasyChatWordsByLetter_S, + .numWords = 262, + }, + { + .words = gEasyChatWordsByLetter_T, + .numWords = 133, + }, + { + .words = gEasyChatWordsByLetter_U, + .numWords = 24, + }, + { + .words = gEasyChatWordsByLetter_V, + .numWords = 33, + }, + { + .words = gEasyChatWordsByLetter_W, + .numWords = 111, + }, + { + .words = gEasyChatWordsByLetter_X, + .numWords = 4, + }, + { + .words = gEasyChatWordsByLetter_Y, + .numWords = 19, + }, + { + .words = gEasyChatWordsByLetter_Z, + .numWords = 8, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHi, + .numWords = 55, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseFu, + .numWords = 71, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHe, + .numWords = 32, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseHo, + .numWords = 55, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMa, + .numWords = 74, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMi, + .numWords = 37, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMu, + .numWords = 12, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMe, + .numWords = 26, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseMo, + .numWords = 20, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYa, + .numWords = 24, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYu, + .numWords = 13, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseYo, + .numWords = 28, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRa, + .numWords = 36, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRi, + .numWords = 17, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRu, + .numWords = 11, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRe, + .numWords = 18, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseRo, + .numWords = 10, + }, + { + .words = gEasyChatWordsByLetter_UnusedJapaneseWa, + .numWords = 33, + }, +}; diff --git a/src/easy_chat.c b/src/easy_chat.c index 6a103dd7b..3c436246d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "alloc.h" #include "bard_music.h" @@ -33,6 +31,7 @@ #include "constants/event_objects.h" #include "constants/flags.h" #include "constants/songs.h" +#include "constants/species.h" #define EZCHAT_TASK_STATE 0 #define EZCHAT_TASK_KIND 1 @@ -41,123 +40,6 @@ #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -struct EasyChatScreenTemplate -{ - u8 unk_00; - u8 numColumns; - u8 numRows; - u8 unk_03_0:7; - u8 unk_03_7:1; - const u8 *titleText; - const u8 *instructionsText1; - const u8 *instructionsText2; - const u8 *confirmText1; - const u8 *confirmText2; -}; - -struct EasyChatScreen -{ - /*0x00*/ u8 kind; - /*0x01*/ u8 templateId; - /*0x02*/ u8 numColumns; - /*0x03*/ u8 numRows; - /*0x04*/ u8 state; - /*0x05*/ s8 mainCursorColumn; - /*0x06*/ s8 mainCursorRow; - /*0x07*/ u8 unk_07; - /*0x08*/ u8 unk_08; - /*0x09*/ u8 unk_09; - /*0x0A*/ s8 unk_0a; - /*0x0B*/ s8 unk_0b; - /*0x0C*/ u8 unk_0c; - /*0x0D*/ u8 unk_0d; - /*0x0E*/ u8 unk_0e; - /*0x0F*/ u8 unk_0f; - /*0x10*/ s8 unk_10; - /*0x11*/ s8 unk_11; - /*0x12*/ u8 sizeParam; - /*0x13*/ u8 unk_13; - /*0x14*/ u8 unk_14[0x20]; - /*0x34*/ const u8 *titleText; - /*0x38*/ u16 *words; - /*0x3C*/ u16 ecWordBuffer[9]; -}; - -struct Unk203A11C -{ - u16 unk0; - u16 windowId; - u16 unk4; - u8 unk6; - u8 unk7; - s8 unk8; - u8 unk9; - u8 unkA; - u8 unkB[0xC1]; - u8 unkCC[0x202]; - u16 unk2CE; - int unk2D0; - int unk2D4; - struct Sprite *unk2D8; - struct Sprite *unk2DC; - struct Sprite *unk2E0; - struct Sprite *unk2E4; - struct Sprite *unk2E8; - struct Sprite *unk2EC; - struct Sprite *unk2F0; - struct Sprite *unk2F4; - struct Sprite *unk2F8; - struct Sprite *unk2FC; - u16 unk300[BG_SCREEN_SIZE / 2]; - u16 unkB00[BG_SCREEN_SIZE / 2]; -}; - -struct Unk08597C30 -{ - u8 unk0_0:5; - u8 unk0_5:3; - u8 unk1; - u8 unk2; - u8 unk3; -}; - -struct EasyChatWordInfo -{ - const u8 *text; - int alphabeticalOrder; - int enabled; -}; - -typedef union -{ - const u16 *valueList; - const struct EasyChatWordInfo *words; -} EasyChatGroupWordData; - -struct EasyChatGroup -{ - EasyChatGroupWordData wordData; - u16 numWords; - u16 numEnabledWords; -}; - -struct Unk203A120 -{ - u16 unk0; - u16 unk2[EC_NUM_GROUPS]; - u16 unk2E[27]; - u16 unk64[27][270]; - u8 filler3958[0x2C]; - u16 unk3984[0x10E]; - u16 unk3BA0; -}; /*size = 0x3BA4*/ - -struct EasyChatWordsByLetter -{ - const u16 *words; - int numWords; -}; - EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; @@ -169,7 +51,6 @@ static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); -void sub_811A8F0(void); static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); @@ -185,11 +66,11 @@ static u16 sub_811B0BC(void); static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); -u16 sub_811B1B4(void); -u8 sub_811BA68(void); +static u16 sub_811B1B4(void); +static u8 sub_811BA68(void); static u8 sub_811BCC8(u8); static void sub_811BDF0(u8 *); -void sub_811BF78(void); +static void sub_811BF78(void); static bool8 sub_811BF8C(void); static bool8 sub_811BFA4(void); static void sub_811C13C(void); @@ -198,9 +79,9 @@ static bool8 sub_811C170(void); static bool8 sub_811F28C(void); static void sub_811F2B8(void); static u8 sub_811F3AC(void); -int sub_811BA3C(void); -int sub_811B184(void); -int sub_811B264(void); +static int sub_811BA3C(void); +static int sub_811B184(void); +static int sub_811B264(void); static int sub_811B32C(void); static int sub_811B2B0(void); static int sub_811B33C(void); @@ -217,16 +98,16 @@ static void sub_811B454(void); static int sub_811BD64(void); static int sub_811BDB0(void); static int sub_811BD2C(void); -int sub_811BCF4(void); +static int sub_811BCF4(void); static u16 sub_811B8E8(void); static u8 sub_811F3B8(u8); static void sub_811F548(int, u16); static int sub_811B908(void); static u16 sub_811F5B0(void); static void sub_811B488(u16); -u16 sub_811B940(void); +static u16 sub_811B940(void); static u16 sub_811F578(u16); -int sub_811BF88(int); +static int sub_811BF88(int); static u16 sub_811B8C8(void); static int sub_811B568(u32); static int sub_811B634(u32); @@ -253,6 +134,7 @@ static void sub_811D2C8(void); static void sub_811D684(void); static void sub_811DE90(void); static void sub_811DEC4(void); +static void sub_811DF28(struct Sprite *); static void sub_811DE5C(u8, u8, u8, u8); static void sub_811E5D4(void); static void sub_811E720(void); @@ -322,7 +204,7 @@ static void sub_811D7C8(void); static int sub_811DE48(void); static void sub_811D7EC(void); static void sub_811D830(void); -void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); +static void sub_811D058(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); static void sub_811DD84(void); static void sub_811D6F4(void); static void sub_811D758(void); @@ -344,49 +226,856 @@ static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); static u8 sub_811F860(u16); static u16 sub_811F5C4(u16); static u16 sub_811F6B8(u16); -bool8 sub_811F764(u16, u8); +static bool8 sub_811F764(u16, u8); static int sub_811F838(u16); +static void sub_811A8CC(void); +static void sub_811A8F0(void); +static void sub_811A914(void); +static void sub_811A938(void); -extern const struct { +struct Unk8597530 +{ u16 word; MainCallback callback; -} gUnknown_08597530[4]; - -extern const struct EasyChatScreenTemplate gEasyChatScreenTemplates[21]; -extern const u8 gUnknown_08597748[][7]; -extern const u16 gUnknown_08597764[]; -extern const u16 gUnknown_0859776C[][2]; -extern const struct BgTemplate gUnknown_08597C54[4]; -extern const struct WindowTemplate gUnknown_08597C64[]; -extern const u32 gUnknown_08597B54[]; -extern const struct Unk08597C30 gUnknown_08597C30[]; -extern const u16 gUnknown_08597B14[]; -extern const u16 gUnknown_08597B34[]; -extern const u16 gUnknown_08597C1C[]; -extern const u16 gUnknown_08597C24[]; -extern const struct WindowTemplate gUnknown_08597C84; -extern const u8 gUnknown_08597C8C[4]; -extern const u8 *const gUnknown_08597C90[4]; -extern const struct SpriteSheet gUnknown_08597CA0[]; -extern const struct SpritePalette gUnknown_08597CC0[]; -extern const struct CompressedSpriteSheet gUnknown_08597CE8[]; -extern const struct SpriteTemplate gUnknown_08597D18; -extern const struct SpriteTemplate gUnknown_08597D68; -extern const struct SpriteTemplate gUnknown_08597DF0; -extern const struct SpriteTemplate gUnknown_08597DD0; -extern const struct SpriteTemplate gUnknown_08597E48; -extern const struct SpriteTemplate gUnknown_08597E30; -extern const u8 gUnknown_08597D08[]; -extern const u8 gUnknown_08597E60[][4]; -extern const u8 *const gUnknown_08597E6C[][4]; -extern const struct EasyChatGroup gEasyChatGroups[]; -extern const u16 gUnknown_0859E62C[]; -extern const u16 gUnknown_0859E634[]; -extern const u16 gUnknown_0859E640[]; -extern const u16 gUnknown_0859E64C[]; -extern const u8 *const gEasyChatGroupNamePointers[]; -extern const struct EasyChatWordsByLetter gEasyChatWordsByLetterPointers[]; -extern const u16 gUnknown_0859E658[1]; +}; + +static const struct Unk8597530 sUnknown_08597530[] = { + { + .word = 26, + .callback = sub_811A8CC, + }, + { + .word = 25, + .callback = sub_811A8F0, + }, + { + .word = 28, + .callback = sub_811A914, + }, + { + .word = 27, + .callback = sub_811A938, + }, +}; +static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + { + .unk_00 = 0, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Profile, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndMakeYourProfile, + .confirmText1 = gText_YourProfile, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 1, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_AtTheBattlesStart, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_YourFeelingAtTheBattlesStart, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 2, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponWinningABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouWin, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 3, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_UponLosingABattle, + .instructionsText1 = gText_CombineSixWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_WhatYouSayIfYouLose, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 4, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 2, + .unk_03_7 = 0, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage2, + .confirmText1 = gText_TheMailMessage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 5, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 5, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_LetsReplyToTheInterview, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 7, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 9, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_WhatsHipAndHappening, + .instructionsText1 = gText_CombineTwoWordsOrPhrases, + .instructionsText2 = gText_AndMakeATrendySaying, + .confirmText1 = gText_TheTrendySaying, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 16, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 7, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_AfterYouHaveReadTheQuiz, + .instructionsText2 = gText_QuestionPressTheAButton, + .confirmText1 = NULL, + .confirmText2 = NULL, + }, + { + .unk_00 = 15, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_OutOfTheListedChoices, + .instructionsText2 = gText_SelectTheAnswerToTheQuiz, + .confirmText1 = gText_TheAnswerColon, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 17, + .numColumns = 2, + .numRows = 5, + .unk_03_0 = 8, + .unk_03_7 = 1, + .titleText = NULL, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndCreateAQuiz, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 18, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 6, + .unk_03_7 = 1, + .titleText = gText_TheQuizAnswerIs, + .instructionsText1 = gText_PickAWordOrPhraseAnd, + .instructionsText2 = gText_SetTheQuizAnswer, + .confirmText1 = gText_IsThisQuizOK, + .confirmText2 = NULL, + }, + { + .unk_00 = 6, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheBardsSong2, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 19, + .numColumns = 2, + .numRows = 3, + .unk_03_0 = 1, + .unk_03_7 = 0, + .titleText = gText_ApprenticesPhrase, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_ApprenticePhrase, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 13, + .numColumns = 2, + .numRows = 1, + .unk_03_0 = 3, + .unk_03_7 = 0, + .titleText = gText_GoodSaying, + .instructionsText1 = gText_CombineTwoWordsOrPhrases2, + .instructionsText2 = gText_ToTeachHerAGoodSaying, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 10, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 12, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 11, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 14, + .numColumns = 1, + .numRows = 1, + .unk_03_0 = 4, + .unk_03_7 = 0, + .titleText = gText_FansQuestion, + .instructionsText1 = gText_FindWordsWhichFit, + .instructionsText2 = gText_TheTrainersImage, + .confirmText1 = gText_TheImage, + .confirmText2 = gText_IsAsShownOkay, + }, + { + .unk_00 = 20, + .numColumns = 2, + .numRows = 2, + .unk_03_0 = 0, + .unk_03_7 = 0, + .titleText = gText_Questionnaire, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndFillOutTheQuestionnaire, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay, + }, +}; + +static const u8 sUnknown_08597748[][7] = { + { 1, 2, 3, 4, 5, 6, 0}, + { 7, 8, 9, 10, 11, 12, 0}, + {13, 14, 15, 16, 17, 18, 19}, + {20, 21, 22, 23, 24, 25, 26}, +}; + +static const u16 sMysteryGiftPhrase[] = { + EC_WORD_LINK, + EC_WORD_TOGETHER, + EC_WORD_WITH, + EC_WORD_ALL, +}; + +static const u16 sBerryMasterWifePhrases[][2] = { + {EC_WORD_GREAT, EC_WORD_BATTLE}, + {EC_WORD_CHALLENGE, EC_WORD_CONTEST}, + {EC_WORD_OVERWHELMING, EC_POKEMON(LATIAS)}, + {EC_WORD_COOL, EC_POKEMON(LATIOS)}, + {EC_WORD_SUPER, EC_WORD_HUSTLE}, +}; + +static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); +static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); +static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); +static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); +static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); +static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); +static const u16 sUnknown_08597B34[] = INCBIN_U16("graphics/misc/interview_frame_green.gbapal"); +static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame_2.4bpp.lz"); +static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); +static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); + +static const struct Unk08597C30 gUnknown_08597C30[] = { + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 3, + .unk1 = 24, + .unk2 = 6, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 5, + .unk1 = 24, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 16, + .unk0_5 = 5, + .unk1 = 12, + .unk2 = 2, + .unk3 = 0, + }, + { + .unk0_0 = 3, + .unk0_5 = 4, + .unk1 = 24, + .unk2 = 4, + .unk3 = 0, + }, + { + .unk0_0 = 9, + .unk0_5 = 4, + .unk1 = 12, + .unk2 = 2, + .unk3 = 1, + }, + { + .unk0_0 = 5, + .unk0_5 = 3, + .unk1 = 0x14, + .unk2 = 10, + .unk3 = 3, + }, + { + .unk0_0 = 3, + .unk0_5 = 0, + .unk1 = 24, + .unk2 = 10, + .unk3 = 2, + }, +}; + +static const struct BgTemplate sEasyChatBgTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x80, + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0, + }, +}; + +static const struct WindowTemplate sEasyChatWindowTemplates[] = { + { + .bg = 1, + .tilemapLeft = 6, + .tilemapTop = 0, + .width = 18, + .height = 2, + .paletteNum = 10, + .baseBlock = 0x10, + }, + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 15, + .baseBlock = 0xA, + }, + { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 32, + .paletteNum = 3, + .baseBlock = 0, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate sEasyChatYesNoWindowTemplate = { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x6A, +}; + +static const u8 sText_Clear17[] = _("{CLEAR 17}"); + +static const u8 *const sUnknown_08597C90[] = { + gUnknown_862B810, + gUnknown_862B832, + gUnknown_862B84B, + gUnknown_862B86C, +}; + +static const struct SpriteSheet sUnknown_08597CA0[] = { + { + .data = sUnknown_085977A0, + .size = 0x0020, + .tag = 0 + }, + { + .data = sUnknown_085977C0, + .size = 0x0100, + .tag = 2 + }, + { + .data = sUnknown_085978C0, + .size = 0x0100, + .tag = 3 + }, + {0} +}; + +static const struct SpritePalette sUnknown_08597CC0[] = { + { + .data = sUnknown_08597780, + .tag = 0, + }, + { + .data = gEasyChatCursor_Pal, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Pal, + .tag = 2, + }, + { + .data = sUnknown_085979C0, + .tag = 3, + }, + {0} +}; + +static const struct CompressedSpriteSheet sUnknown_08597CE8[] = { + { + .data = sUnknown_085979E0, + .size = 0x0800, + .tag = 5, + }, + { + .data = gEasyChatCursor_Gfx, + .size = 0x1000, + .tag = 1, + }, + { + .data = gEasyChatRightWindow_Gfx, + .size = 0x0800, + .tag = 6, + }, + { + .data = gEasyChatMode_Gfx, + .size = 0x1000, + .tag = 4, + }, +}; + +static const u8 sUnknown_08597D08[] = {0, 12, 24, 56, 68, 80, 92}; + +static const struct OamData sOamData_8597D10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597D18 = { + .tileTag = 0, + .paletteTag = 0, + .oam = &sOamData_8597D10, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D30 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D38[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D40[] = { + ANIMCMD_FRAME(32, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D48[] = { + ANIMCMD_FRAME(64, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D50[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597D58[] = { + sUnknown_08597D38, + sUnknown_08597D40, + sUnknown_08597D48, + sUnknown_08597D50, +}; + +static const struct SpriteTemplate sUnknown_08597D68 = { + .tileTag = 1, + .paletteTag = 1, + .oam = &sUnknown_08597D30, + .anims = sUnknown_08597D58, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811DF28, +}; + +static const struct OamData sUnknown_08597D80 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597D88[] = { + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D90[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597D9C[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DA8[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_FRAME(96, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597DB4[] = { + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597DBC[] = { + sUnknown_08597D88, + sUnknown_08597D90, + sUnknown_08597D9C, + sUnknown_08597DA8, + sUnknown_08597DB4, +}; + +static const struct SpriteTemplate sUnknown_08597DD0 = { + .tileTag = 4, + .paletteTag = 2, + .oam = &sUnknown_08597D80, + .anims = sUnknown_08597DBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597DE8 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteTemplate sUnknown_08597DF0 = { + .tileTag = 6, + .paletteTag = 2, + .oam = &sUnknown_08597DE8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct OamData sUnknown_08597E08 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08597E10 = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sUnknown_08597E18[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sUnknown_08597E20[] = { + ANIMCMD_FRAME(4, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sUnknown_08597E28[] = { + sUnknown_08597E18, + sUnknown_08597E20, +}; + +static const struct SpriteTemplate sUnknown_08597E30 = { + .tileTag = 3, + .paletteTag = 2, + .oam = &sUnknown_08597E08, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const struct SpriteTemplate sUnknown_08597E48 = { + .tileTag = 2, + .paletteTag = 2, + .oam = &gUnknown_08597E10, + .anims = sUnknown_08597E28, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u8 sUnknown_08597E60[][4] = { + {16, 111, 196, 0}, + {16, 78, 130, 160}, + {16, 80, 134, 170}, +}; + +static const u8 *const sFooterTextOptions[][4] = { + {gText_DelAll, gText_Cancel5, gText_Ok2, NULL}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Quiz}, + {gText_DelAll, gText_Cancel5, gText_Ok2, gText_Answer}, +}; + +#include "data/easy_chat/easy_chat_groups.h" +#include "data/easy_chat/easy_chat_words_by_letter.h" + +const u8 *const gEasyChatGroupNamePointers[] = { + [EC_GROUP_POKEMON] = gEasyChatGroupName_Pokemon, + [EC_GROUP_TRAINER] = gEasyChatGroupName_Trainer, + [EC_GROUP_STATUS] = gEasyChatGroupName_Status, + [EC_GROUP_BATTLE] = gEasyChatGroupName_Battle, + [EC_GROUP_GREETINGS] = gEasyChatGroupName_Greetings, + [EC_GROUP_PEOPLE] = gEasyChatGroupName_People, + [EC_GROUP_VOICES] = gEasyChatGroupName_Voices, + [EC_GROUP_SPEECH] = gEasyChatGroupName_Speech, + [EC_GROUP_ENDINGS] = gEasyChatGroupName_Endings, + [EC_GROUP_FEELINGS] = gEasyChatGroupName_Feelings, + [EC_GROUP_CONDITIONS] = gEasyChatGroupName_Conditions, + [EC_GROUP_ACTIONS] = gEasyChatGroupName_Actions, + [EC_GROUP_LIFESTYLE] = gEasyChatGroupName_Lifestyle, + [EC_GROUP_HOBBIES] = gEasyChatGroupName_Hobbies, + [EC_GROUP_TIME] = gEasyChatGroupName_Time, + [EC_GROUP_MISC] = gEasyChatGroupName_Misc, + [EC_GROUP_ADJECTIVES] = gEasyChatGroupName_Adjectives, + [EC_GROUP_EVENTS] = gEasyChatGroupName_Events, + [EC_GROUP_MOVE_1] = gEasyChatGroupName_Move1, + [EC_GROUP_MOVE_2] = gEasyChatGroupName_Move2, + [EC_GROUP_TRENDY_SAYING] = gEasyChatGroupName_TrendySaying, + [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, +}; + +static const u16 sUnknown_0859E62C[] = { + EC_WORD_I_AM, + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_FRIEND, +}; + +static const u16 sUnknown_0859E634[] = { + EC_WORD_ARE, + EC_WORD_YOU, + EC_WORD_READY, + EC_WORD_QUES, + EC_WORD_HERE_I_COME, + EC_WORD_EXCL, +}; + +static const u16 sUnknown_0859E640[] = { + EC_WORD_YAY, + EC_WORD_YAY, + EC_WORD_EXCL_EXCL, + EC_WORD_I_VE, + EC_WORD_WON, + EC_WORD_EXCL_EXCL, +}; + +static const u16 sUnknown_0859E64C[] = { + EC_WORD_TOO, + EC_WORD_BAD, + EC_WORD_ELLIPSIS, + EC_WORD_WE, + EC_WORD_LOST, + EC_WORD_ELLIPSIS, +}; + +static const u16 sUnknown_0859E658[] = { + SPECIES_DEOXYS, +}; void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) { @@ -678,9 +1367,9 @@ static int sub_811A868(u16 word) { int i; - for (i = 0; i < ARRAY_COUNT(gUnknown_08597530); i ++) + for (i = 0; i < ARRAY_COUNT(sUnknown_08597530); i ++) { - if (word == gUnknown_08597530[i].word) + if (word == sUnknown_08597530[i].word) return i; } return -1; @@ -697,25 +1386,25 @@ static void sub_811A8A4(u16 word) i = sub_811A868(word); ResetTasks(); - sub_811A4D0(gUnknown_08597530[i].callback); + sub_811A4D0(sUnknown_08597530[i].callback); } -void sub_811A8CC(void) +static void sub_811A8CC(void) { sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A8F0(void) +static void sub_811A8F0(void) { sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A914(void) +static void sub_811A914(void) { sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); } -void sub_811A938(void) +static void sub_811A938(void) { sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } @@ -1157,7 +1846,7 @@ static u16 sub_811B150(void) } } -int sub_811B184(void) +static int sub_811B184(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind != 6) @@ -1173,7 +1862,7 @@ int sub_811B184(void) } } -u16 sub_811B1B4(void) +static u16 sub_811B1B4(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; if (gEasyChatScreen->kind == 17) @@ -1250,7 +1939,7 @@ u16 sub_811B1B4(void) } } -int sub_811B264(void) +static int sub_811B264(void) { gEasyChatScreen->unk_08 = gEasyChatScreen->state; switch (gEasyChatScreen->kind) @@ -1681,10 +2370,10 @@ static int sub_811B908(void) { int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; - return gUnknown_08597748[var1][var0]; + return sUnknown_08597748[var1][var0]; } -u16 sub_811B940(void) +static u16 sub_811B940(void) { return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; } @@ -1736,7 +2425,7 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -int sub_811BA3C(void) +static int sub_811BA3C(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; } @@ -1746,7 +2435,7 @@ u8 sub_811BA5C(void) return gEasyChatScreen->kind; } -u8 sub_811BA68(void) +static u8 sub_811BA68(void) { return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; } @@ -1927,7 +2616,7 @@ static u8 sub_811BCC8(u8 entryType) return 0; } -int sub_811BCF4(void) +static int sub_811BCF4(void) { int i; @@ -2046,7 +2735,7 @@ static void sub_811BE9C(void) static int sub_811BF20(void) { - return sub_811BC7C(gUnknown_08597764, 4) == 0; + return sub_811BC7C(sMysteryGiftPhrase, ARRAY_COUNT(sMysteryGiftPhrase)) == 0; } static u16 sub_811BF40(void) @@ -2054,19 +2743,19 @@ static u16 sub_811BF40(void) int i; for (i = 0; i < 5; i++) { - if (!sub_811BC7C(gUnknown_0859776C[i], 2)) + if (!sub_811BC7C(sBerryMasterWifePhrases[i], ARRAY_COUNT(*sBerryMasterWifePhrases))) return i + 1; } return 0; } -void sub_811BF78(void) +static void sub_811BF78(void) { gEasyChatScreen->unk_13 = 0; } -int sub_811BF88(int easyChatWord) +static int sub_811BF88(int easyChatWord) { return 0; } @@ -2085,10 +2774,10 @@ static bool8 sub_811BFA4(void) { case 0: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08597C54, ARRAY_COUNT(gUnknown_08597C54)); + InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); - InitWindows(gUnknown_08597C64); + InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); sub_811CF64(); sub_811CF04(); @@ -2104,7 +2793,7 @@ static bool8 sub_811BFA4(void) CopyBgTilemapBufferToVram(3); break; case 2: - DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08597B54, 0, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, sUnknown_08597B54, 0, 0, 0); CopyBgTilemapBufferToVram(1); break; case 3: @@ -2984,12 +3673,12 @@ static void sub_811CF64(void) { ResetPaletteFade(); LoadPalette(gEasyChatMode_Pal, 0, 32); - LoadPalette(gUnknown_08597B14, 1 * 16, 32); - LoadPalette(gUnknown_08597B34, 4 * 16, 32); - LoadPalette(gUnknown_08597C1C, 10 * 16, 8); - LoadPalette(gUnknown_08597C24, 11 * 16, 12); - LoadPalette(gUnknown_08597C24, 15 * 16, 12); - LoadPalette(gUnknown_08597C24, 3 * 16, 12); + LoadPalette(sUnknown_08597B14, 1 * 16, 32); + LoadPalette(sUnknown_08597B34, 4 * 16, 32); + LoadPalette(sUnknown_08597C1C, 10 * 16, 8); + LoadPalette(sUnknown_08597C24, 11 * 16, 12); + LoadPalette(sUnknown_08597C24, 15 * 16, 12); + LoadPalette(sUnknown_08597C24, 3 * 16, 12); } static void sub_811CFCC(void) @@ -3011,7 +3700,7 @@ void sub_811D028(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, vo AddTextPrinterParameterized(windowId, fontId, str, x, y, speed, callback); } -void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) +static void sub_811D058(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, u8 red, u8 green, u8 blue) { u8 color[3]; color[0] = red; @@ -3082,7 +3771,7 @@ static void sub_811D104(u8 arg0) static void sub_811D214(u8 initialCursorPos) { - CreateYesNoMenu(&gUnknown_08597C84, 1, 14, initialCursorPos); + CreateYesNoMenu(&sEasyChatYesNoWindowTemplate, 1, 14, initialCursorPos); } static void sub_811D230(void) @@ -3123,7 +3812,7 @@ static void sub_811D2C8(void) FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); for (i = 0; i < numRows; i++) { - memcpy(spC, gUnknown_08597C8C, sizeof(gUnknown_08597C8C)); + memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); if (var1) spC[2] = 6; @@ -3314,8 +4003,8 @@ static void sub_811D758(void) { u32 i; - for (i = 0; i < 4; i++) - sub_811D028(2, 1, gUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); + for (i = 0; i < ARRAY_COUNT(sUnknown_08597C90); i++) + sub_811D028(2, 1, sUnknown_08597C90[i], 10, 97 + i * 16, 0xFF, NULL); } static void sub_811D794(void) @@ -3647,10 +4336,10 @@ static void sub_811DE90(void) { u32 i; - LoadSpriteSheets(gUnknown_08597CA0); - LoadSpritePalettes(gUnknown_08597CC0); - for (i = 0; i < 4; i++) - LoadCompressedSpriteSheet(&gUnknown_08597CE8[i]); + LoadSpriteSheets(sUnknown_08597CA0); + LoadSpritePalettes(sUnknown_08597CC0); + for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) + LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); } static void sub_811DEC4(void) @@ -3658,12 +4347,12 @@ static void sub_811DEC4(void) u8 var0 = sub_811BA68(); int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; - u8 spriteId = CreateSprite(&gUnknown_08597D18, x, y, 2); + u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; gSprites[spriteId].data[1] = 1; } -void sub_811DF28(struct Sprite *sprite) +static void sub_811DF28(struct Sprite *sprite) { if (sprite->data[1]) { @@ -3698,11 +4387,11 @@ static void sub_811DFB0(void) static void sub_811DFC8(void) { - u8 spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; gUnknown_0203A11C->unk2DC->pos2.x = 32; - spriteId = CreateSprite(&gUnknown_08597D68, 0, 0, 3); + spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E0->pos2.x = -32; @@ -3773,7 +4462,7 @@ static void sub_811E1A4(s8 arg0, s8 arg1) } else { - x += gUnknown_08597D08[(u8)arg0 < 7 ? arg0 : 0]; + x += sUnknown_08597D08[arg0 < ARRAY_COUNT(sUnknown_08597D08) ? arg0 : 0]; anim = 3; } @@ -3799,7 +4488,7 @@ static void sub_811E1A4(s8 arg0, s8 arg1) static void sub_811E288(void) { - u8 spriteId = CreateSprite(&gUnknown_08597D18, 0, 0, 4); + u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; gUnknown_0203A11C->unk2E4->oam.priority = 2; @@ -3849,11 +4538,11 @@ static void sub_811E380(void) static void sub_811E3AC(void) { - u8 spriteId = CreateSprite(&gUnknown_08597DF0, 208, 128, 6); + u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; gUnknown_0203A11C->unk2E8->pos2.x = -64; - spriteId = CreateSprite(&gUnknown_08597DD0, 208, 80, 5); + spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; gUnknown_0203A11C->unk9 = 0; } @@ -3940,11 +4629,11 @@ static bool8 sub_811E5B8(void) static void sub_811E5D4(void) { - u8 spriteId = CreateSprite(&gUnknown_08597E48, 96, 80, 0); + u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); if (spriteId != MAX_SPRITES) gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_08597E48, 96, 156, 0); + spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); if (spriteId != MAX_SPRITES) { gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; @@ -3982,11 +4671,11 @@ static void sub_811E6E0(int arg0) static void sub_811E720(void) { - u8 spriteId = CreateSprite(&gUnknown_08597E30, 220, 84, 1); + u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); if (spriteId != MAX_SPRITES) gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; - spriteId = CreateSprite(&gUnknown_08597E30, 220, 156, 1); + spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); if (spriteId != MAX_SPRITES) { gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; @@ -4072,7 +4761,7 @@ static int sub_811E920(int arg0) { int var0 = sub_811E8E4(); if (var0 < 3) - return gUnknown_08597E60[var0][arg0] + 4; + return sUnknown_08597E60[var0][arg0] + 4; else return 0; } @@ -4097,10 +4786,10 @@ static void sub_811E948(void) FillWindowPixelBuffer(windowId, 0x11); for (i = 0; i < 4; i++) { - const u8 *str = gUnknown_08597E6C[var0][i]; + const u8 *str = sFooterTextOptions[var0][i]; if (str) { - int x = gUnknown_08597E60[var0][i]; + int x = sUnknown_08597E60[var0][i]; sub_811D028(windowId, 1, str, x, 1, 0, NULL); } } @@ -4548,16 +5237,16 @@ void InitEasyChatPhrases(void) u16 i, j; for (i = 0; i < 4; i++) - gSaveBlock1Ptr->unk2BB0[i] = gUnknown_0859E62C[i]; + gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BBC[i] = gUnknown_0859E634[i]; + gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BC8[i] = gUnknown_0859E640[i]; + gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BD4[i] = gUnknown_0859E64C[i]; + gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; for (i = 0; i < MAIL_COUNT; i++) { @@ -4782,7 +5471,7 @@ static bool8 sub_811F72C(u8 arg0) return FALSE; } -bool8 sub_811F764(u16 wordIndex, u8 groupId) +static bool8 sub_811F764(u16 wordIndex, u8 groupId) { switch (groupId) { @@ -4805,9 +5494,9 @@ bool8 sub_811F764(u16 wordIndex, u8 groupId) static int sub_811F838(u16 species) { u32 i; - for (i = 0; i < ARRAY_COUNT(gUnknown_0859E658); i++) + for (i = 0; i < ARRAY_COUNT(sUnknown_0859E658); i++) { - if (gUnknown_0859E658[i] == species) + if (sUnknown_0859E658[i] == species) return TRUE; } -- cgit v1.2.3 From accea672f16cb74b0ec16e0e740cf9f67a651dfb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:04:44 -0500 Subject: Incorporate feedback --- src/berry_blender.c | 9 ++------- src/cable_club.c | 8 ++++---- src/link.c | 2 +- src/overworld.c | 30 +++++++++++++++--------------- src/record_mixing.c | 2 +- src/rom_8011DC0.c | 4 ++-- src/start_menu.c | 4 ++-- 7 files changed, 27 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/berry_blender.c b/src/berry_blender.c index dd8117f08..87d24e717 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -34,6 +34,8 @@ #include "battle_records.h" #include "graphics.h" #include "new_game.h" +#include "save.h" +#include "link.h" #define BLENDER_SCORE_BEST 0 #define BLENDER_SCORE_GOOD 1 @@ -140,15 +142,8 @@ extern const u8 gText_Space[]; extern const u8 gText_BlenderMaxSpeedRecord[]; extern const u8 gText_234Players[]; -extern void sub_800A418(void); -extern u8 sub_800A9D8(void); extern void sub_81AABF0(void (*callback)(void)); extern void sub_800B4C0(void); -extern void ClearLinkCallback(void); -extern void sub_8009F8C(void); -extern void FullSaveGame(void); -extern bool8 CheckSaveFile(void); -extern void sub_80EECEC(void); // this file's functions static void BerryBlender_SetBackgroundsPos(void); diff --git a/src/cable_club.c b/src/cable_club.c index 83e1e55dd..f504ad8a8 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(LocalLinkPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLocalLinkPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -1028,7 +1028,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - SetLocalLinkPlayerId(gSpecialVar_0x8005); + SetgLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; diff --git a/src/link.c b/src/link.c index 72ac3e878..cf06e4958 100644 --- a/src/link.c +++ b/src/link.c @@ -302,7 +302,7 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void SetLocalLinkPlayerId(u8 playerId) +void SetgLocalLinkPlayerId(u8 playerId) { gLocalLinkPlayer.id = playerId; } diff --git a/src/overworld.c b/src/overworld.c index 95766805c..63143b7b4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -203,7 +203,7 @@ u16 *gBGTilemapBuffers3; u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 LocalLinkPlayerId; // This is our player id in a multiplayer mode. +u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -2194,13 +2194,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } static void sub_8086AE4(void) @@ -2210,7 +2210,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + LocalLinkPlayerId, y); + sub_8088B3C(x + gLocalLinkPlayerId, y); } static void sub_8086B14(void) @@ -2219,7 +2219,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= LocalLinkPlayerId; + x -= gLocalLinkPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2242,7 +2242,7 @@ static void CB1_UpdateLinkState(void) { if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 selfId = LocalLinkPlayerId; + u8 selfId = gLocalLinkPlayerId; UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); // Note: Because guestId is between 0 and 4, while the smallest key code is @@ -2296,7 +2296,7 @@ static void ResetAllTradingStates(void) } // Returns true if all connected players are in tradingState. -static bool32 AreAllPlayersInState(u16 tradingState) +static bool32 AreAllPlayersInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2307,7 +2307,7 @@ static bool32 AreAllPlayersInState(u16 tradingState) return TRUE; } -static bool32 AreAnyPlayersInTradingState(u16 tradingState) +static bool32 IsAnyPlayerInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2336,7 +2336,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay } return; } - if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isLocalPlayer) @@ -2629,7 +2629,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) // CB1_UpdateLinkState. if (sPlayerTradingStates[keyOrPlayerId] != PLAYER_TRADING_STATE_EXITING_ROOM) CheckRfuKeepAliveTimer(); - if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { ScriptContext1_SetupScript(EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); @@ -2651,20 +2651,20 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 sub_8087214(void) { - if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; - if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[LocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[LocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; - if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) + if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; return 0; } bool32 sub_808727C(void) { - return AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); + return IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index aafd7284b..e58fdcc4e 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -324,7 +324,7 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - SetLocalLinkPlayerId(gSpecialVar_0x8005); + SetgLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 0f3ebe633..3d85a9d1d 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 LocalLinkPlayerId; +extern u8 gLocalLinkPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/start_menu.c b/src/start_menu.c index 352f94bff..fb94fb3f7 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 LocalLinkPlayerId; +extern u8 gLocalLinkPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(LocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } -- cgit v1.2.3 From 6cb4c677cdf156d9d78f5f27bf3168882c1447ec Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:30:40 -0500 Subject: Fix backwards names --- src/decoration.c | 10 +++++----- src/menu.c | 4 ++-- src/player_pc.c | 2 +- src/roulette.c | 4 ++-- src/script_menu.c | 2 +- src/secret_base.c | 2 +- src/start_menu.c | 8 ++++---- 7 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/decoration.c b/src/decoration.c index 98c3ef028..207cb1bf0 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1628,7 +1628,7 @@ void sub_8128950(u8 taskId) void sub_81289D0(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A72C4); } @@ -1693,7 +1693,7 @@ void sub_8128AAC(u8 taskId) void sub_8128B80(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A72CC); } @@ -2588,7 +2588,7 @@ void sub_812A0E8(u8 taskId) void sub_812A1A0(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A7348); } @@ -2601,7 +2601,7 @@ void sub_812A1C0(u8 taskId) void sub_812A1F0(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A7350); } @@ -2725,7 +2725,7 @@ void sub_812A3D4(u8 taskId) void sub_812A458(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_085A741C); } diff --git a/src/menu.c b/src/menu.c index 39d6f3fd1..753bd52a9 100644 --- a/src/menu.c +++ b/src/menu.c @@ -458,12 +458,12 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *string, TaskFunc callback) CopyWindowToVram(0, 3); } -void DisplayYesNoMenuWithDefault(void) +void DisplayYesNoMenuDefaultYes(void) { CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0); } -void DisplayYesNoMenuWithDefaultDefaultNo(u8 initialCursorPos) +void DisplayYesNoMenuWithDefault(u8 initialCursorPos) { CreateYesNoMenu(&sYesNo_WindowTemplates, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, initialCursorPos); } diff --git a/src/player_pc.c b/src/player_pc.c index 6ba5999ce..028101edb 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -761,7 +761,7 @@ static void Mailbox_MoveToBag(u8 taskId) static void Mailbox_DrawYesNoBeforeMove(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); gTasks[taskId].func = Mailbox_MoveToBagYesNoPrompt; } diff --git a/src/roulette.c b/src/roulette.c index 4723e0687..e099e878c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1043,7 +1043,7 @@ static void sub_81408A8(u8 taskId) static void sub_8140914(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DrawStdWindowFrame(gUnknown_0203AB8C, 0); AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C13, 0, 1, TEXT_SPEED_FF, 0); CopyWindowToVram(gUnknown_0203AB8C, 3); @@ -3256,7 +3256,7 @@ static const struct SpriteTemplate gUnknown_085B7AEC = static void sub_81428C4(u8 r0) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(r0, &gUnknown_085B6408); } diff --git a/src/script_menu.c b/src/script_menu.c index ccbbcdfe1..409191803 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1202,7 +1202,7 @@ bool8 ScriptMenu_YesNo(u8 left, u8 top) else { gSpecialVar_Result = 0xFF; - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); taskId = CreateTask(Task_HandleYesNoInput, 0x50); return TRUE; } diff --git a/src/secret_base.c b/src/secret_base.c index 342a9960a..f8480fef0 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1033,7 +1033,7 @@ void sub_80E9FFC(u8 taskId) void sub_80EA06C(u8 taskId) { - DisplayYesNoMenuWithDefault(); + DisplayYesNoMenuDefaultYes(); DoYesNoFuncWithChoice(taskId, &gUnknown_0858D058); } diff --git a/src/start_menu.c b/src/start_menu.c index f88630aee..3fe1b7d61 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -961,7 +961,7 @@ static u8 SaveConfirmSaveCallback(void) static u8 SaveYesNoCallback(void) { - DisplayYesNoMenuWithDefault(); // Show Yes/No menu + DisplayYesNoMenuDefaultYes(); // Show Yes/No menu sSaveDialogCallback = SaveConfirmInputCallback; return SAVE_IN_PROGRESS; } @@ -1014,14 +1014,14 @@ static u8 SaveFileExistsCallback(void) static u8 SaveConfirmOverwriteDefaultNoCallback(void) { - DisplayYesNoMenuWithDefaultDefaultNo(1); // Show Yes/No menu (No selected as default) + DisplayYesNoMenuWithDefault(1); // Show Yes/No menu (No selected as default) sSaveDialogCallback = SaveOverwriteInputCallback; return SAVE_IN_PROGRESS; } static u8 SaveConfirmOverwriteCallback(void) { - DisplayYesNoMenuWithDefault(); // Show Yes/No menu + DisplayYesNoMenuDefaultYes(); // Show Yes/No menu sSaveDialogCallback = SaveOverwriteInputCallback; return SAVE_IN_PROGRESS; } @@ -1144,7 +1144,7 @@ static u8 BattlePyramidConfirmRetireCallback(void) static u8 BattlePyramidRetireYesNoCallback(void) { - DisplayYesNoMenuWithDefaultDefaultNo(1); // Show Yes/No menu (No selected as default) + DisplayYesNoMenuWithDefault(1); // Show Yes/No menu (No selected as default) sSaveDialogCallback = BattlePyramidRetireInputCallback; return SAVE_IN_PROGRESS; -- cgit v1.2.3 From b2c92ee8c5d8ea934b5c6c36cc4b06b66779d0fe Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:45:39 -0500 Subject: Missed some fill values Must have forgotten to check FillWindowPixelRect. --- src/battle_pyramid_bag.c | 2 +- src/easy_chat.c | 4 ++-- src/field_specials.c | 4 ++-- src/item_menu.c | 2 +- src/menu.c | 4 ++-- src/party_menu.c | 5 +++-- src/player_pc.c | 2 +- src/pokedex.c | 6 +++--- src/pokemon_summary_screen.c | 12 ++++++------ src/trainer_card.c | 2 +- 10 files changed, 22 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 20029b284..dec8d4bca 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -804,7 +804,7 @@ static void sub_81C5A98(u8 listMenuTaskId, u8 arg1) static void sub_81C5AB8(u8 y, u8 arg1) { if (arg1 == 0xFF) - FillWindowPixelRect(0, 0, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1); } diff --git a/src/easy_chat.c b/src/easy_chat.c index afc4c6c5b..5a3ebf69c 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -4106,9 +4106,9 @@ static void sub_811D950(u8 arg0, u8 arg1) var1 = 0; } - FillWindowPixelRect(2, 0x11, 0, y, 224, var2); + FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, 224, var2); if (var1) - FillWindowPixelRect(2, 0x11, 0, 0, 224, var1); + FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 224, var1); } static void sub_811D9B4(void) diff --git a/src/field_specials.c b/src/field_specials.c index 1cf16e74c..b4017f0ef 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3001,7 +3001,7 @@ static void sub_813AA60(u16 a0, u16 a1) if (a0 > 2 && a0 < 7) { - FillWindowPixelRect(0, 0x11, 0, 0, 216, 32); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 216, 32); switch (a0) { case 3: @@ -3140,7 +3140,7 @@ static void sub_813AD34(u8 a0, u16 a1) if (a0 == 9 || a0 == 10) { - FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); + FillWindowPixelRect(gUnknown_0203AB5E, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 96, 48); if (a0 == 10) { AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); diff --git a/src/item_menu.c b/src/item_menu.c index f561ebb36..8ade67614 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -896,7 +896,7 @@ void bag_menu_print_cursor_(u8 a, u8 b) void bag_menu_print_cursor(u8 a, u8 b) { if (b == 0xFF) - FillWindowPixelRect(0, 0, 0, a, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), 0, a, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else bag_menu_print(0, 1, gText_SelectorArrow2, 0, a, 0, 0, 0, b); diff --git a/src/menu.c b/src/menu.c index 753bd52a9..6a181532e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -934,7 +934,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos) width = GetMenuCursorDimensionByFont(sMenu.fontId, 0); height = GetMenuCursorDimensionByFont(sMenu.fontId, 1); - FillWindowPixelRect(sMenu.windowId, 0x11, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height); + FillWindowPixelRect(sMenu.windowId, PALETTE_NUM_TO_FILL_VALUE(1), sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height); AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0); } @@ -1313,7 +1313,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left; u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top; FillWindowPixelRect(sMenu.windowId, - 0x11, + PALETTE_NUM_TO_FILL_VALUE(1), xPos, yPos, cursorWidth, diff --git a/src/party_menu.c b/src/party_menu.c index ceb89ae30..03e267e74 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3479,8 +3479,9 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct Struct203CEDC *pt FillWindowPixelRect(ptr->windowId, gUnknown_08615AB8[0], ptr->unk0->unk4[20], ptr->unk0->unk4[21] + 1, hpFraction, 2); if (hpFraction != ptr->unk0->unk4[22]) { - FillWindowPixelRect(ptr->windowId, 13, ptr->unk0->unk4[20] + hpFraction, ptr->unk0->unk4[21], ptr->unk0->unk4[22] - hpFraction, 1); - FillWindowPixelRect(ptr->windowId, 2, ptr->unk0->unk4[20] + hpFraction, ptr->unk0->unk4[21] + 1, ptr->unk0->unk4[22] - hpFraction, 2); + // This appears to be an alternating fill + FillWindowPixelRect(ptr->windowId, 0x0D, ptr->unk0->unk4[20] + hpFraction, ptr->unk0->unk4[21], ptr->unk0->unk4[22] - hpFraction, 1); + FillWindowPixelRect(ptr->windowId, 0x02, ptr->unk0->unk4[20] + hpFraction, ptr->unk0->unk4[21] + 1, ptr->unk0->unk4[22] - hpFraction, 2); } CopyWindowToVram(ptr->windowId, 2); } diff --git a/src/player_pc.c b/src/player_pc.c index 028101edb..c088a6ce7 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1005,7 +1005,7 @@ static void sub_816BFE0(u8 y, u8 b, u8 speed) { u8 windowId = gUnknown_0203BCC4->windowIds[0]; if (b == 0xFF) - FillWindowPixelRect(windowId, 17, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(windowId, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); } diff --git a/src/pokedex.c b/src/pokedex.c index 2e5e8f213..f54fdbd29 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2152,7 +2152,7 @@ static void CreateCaughtBall(u16 a, u8 x, u8 y, u16 unused) if (a) BlitBitmapToWindow(0, gUnknown_0855D2BE, x * 8, y * 8, 8, 16); else - FillWindowPixelRect(0, 0, x * 8, y * 8, 8, 16); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x * 8, y * 8, 8, 16); } static u8 CreateMonName(u16 num, u8 left, u8 top) @@ -2170,7 +2170,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) void sub_80BD28C(u8 x, u8 y, u16 unused) { - FillWindowPixelRect(0, 0, x * 8, y * 8, 0x60, 16); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x * 8, y * 8, 0x60, 16); } static void CreateInitialPokemonSprites(u16 selectedMon, u16 b) @@ -4784,7 +4784,7 @@ void sub_80C1270(const u8 *str, u32 left, u32 top) void sub_80C12B0(u32 x, u32 y, u32 width, u32 height) { - FillWindowPixelRect(0, 0, x, y, width, height); + FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x, y, width, height); } void sub_80C12E0(u8 taskId) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 0f88b7d73..f0c68e7d0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3469,7 +3469,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) const u8 *text; if (moveIndex != 0) { - FillWindowPixelRect(14, 0, 53, 0, 19, 32); + FillWindowPixelRect(14, PALETTE_NUM_TO_FILL_VALUE(0), 53, 0, 19, 32); if (gBattleMoves[moveIndex].power < 2) { @@ -3619,7 +3619,7 @@ static void PrintNewMoveDetailsOrCancelText(void) static void sub_81C4064(void) { u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); - FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); + FillWindowPixelRect(windowId, PALETTE_NUM_TO_FILL_VALUE(0), 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } @@ -3628,11 +3628,11 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); - FillWindowPixelRect(windowId1, 0, 0, moveIndex1 * 16, 0x48, 0x10); - FillWindowPixelRect(windowId1, 0, 0, moveIndex2 * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex1 * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex2 * 16, 0x48, 0x10); - FillWindowPixelRect(windowId2, 0, 0, moveIndex1 * 16, 0x30, 0x10); - FillWindowPixelRect(windowId2, 0, 0, moveIndex2 * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex1 * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex2 * 16, 0x30, 0x10); PrintMoveNameAndPP(moveIndex1); PrintMoveNameAndPP(moveIndex2); diff --git a/src/trainer_card.c b/src/trainer_card.c index 1f9191632..8d244d656 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1103,7 +1103,7 @@ static void PrintTimeOnCard(void) r10 = width + 30; r7 -= r10; - FillWindowPixelRect(1, 0, r7, r4, r10, 15); + FillWindowPixelRect(1, PALETTE_NUM_TO_FILL_VALUE(0), r7, r4, r10, 15); ConvertIntToDecimalStringN(gStringVar4, hours, 1, 3); AddTextPrinterParameterized3(1, 1, r7, r4, gUnknown_0856FB0C, TEXT_SPEED_FF, gStringVar4); r7 += 18; -- cgit v1.2.3 From fe55580fe1e51c669033939125c939ed13a555d0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 03:42:04 -0500 Subject: Reverse engineer unusual weather events --- src/field_specials.c | 22 +++++++++++----------- src/match_call.c | 2 +- src/overworld.c | 2 +- src/region_map.c | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 307f81399..1accaa5e5 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3421,28 +3421,28 @@ bool8 sub_813B260(void) return FALSE; } -void sub_813B2E4(void) +void CreateUnusualWeatherEvent(void) { u16 randomValue = Random(); VarSet(VAR_0x4038, 0); if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { - VarSet(VAR_0x4037, (randomValue & 7) + 1); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE) { - VarSet(VAR_0x4037, (randomValue & 7) + 9); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } else if ((randomValue & 1) == 0) { randomValue = Random(); - VarSet(VAR_0x4037, (randomValue & 7) + 1); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else { randomValue = Random(); - VarSet(VAR_0x4037, (randomValue & 7) + 9); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } } @@ -3450,7 +3450,7 @@ bool32 sub_813B374(void) { static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var = VarGet(VAR_0x4037); + u16 var = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); @@ -3466,12 +3466,12 @@ bool32 sub_813B374(void) bool8 sub_813B3B0(void) { - static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; u16 var1 = VarGet(VAR_0x4038); - u16 var2 = VarGet(VAR_0x4037); + u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); - if (!var2) + if (unusualWeather == UNUSUAL_WEATHER_NONE) { return FALSE; } @@ -3510,14 +3510,14 @@ bool8 sub_813B3B0(void) } } - if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && + if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers[unusualWeather - 1] && gSaveBlock1Ptr->location.mapGroup == 0) { return TRUE; } else { - VarSet(VAR_0x4037, 0); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); return FALSE; } } diff --git a/src/match_call.c b/src/match_call.c index e7e91969f..de1181e8b 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1016,7 +1016,7 @@ static bool32 MapAllowsMatchCall(void) if (gMapHeader.regionMapSectionId == MAPSEC_SOOTOPOLIS_CITY && FlagGet(FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA) == TRUE - && FlagGet(FLAG_UNUSED_0x0DC) == FALSE) + && FlagGet(FLAG_NEVER_SET_0x0DC) == FALSE) return FALSE; if (gMapHeader.regionMapSectionId == MAPSEC_MT_CHIMNEY diff --git a/src/overworld.c b/src/overworld.c index a10d1e17a..edc4d402c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -411,7 +411,7 @@ static void Overworld_ResetStateAfterWhiteOut(void) if (VarGet(VAR_0x4039) == 1) { VarSet(VAR_0x4039, 0); - VarSet(VAR_0x4037, 0); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); } } diff --git a/src/region_map.c b/src/region_map.c index ff0c19167..5c85606a8 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1159,7 +1159,7 @@ static u16 RegionMap_GetTerraCaveMapSecId(void) { s16 idx; - idx = VarGet(VAR_0x4037) - 1; + idx = VarGet(VAR_UNUSUAL_WEATHER_LOCATION) - 1; if (idx < 0 || idx > 15) { idx = 0; @@ -1171,7 +1171,7 @@ static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y) { u16 idx; - idx = VarGet(VAR_0x4037); + idx = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); if (idx < 9 || idx > 16) { idx = 9; -- cgit v1.2.3 From c1348d22f3d85cbc7425e8498a023b9b525f7207 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 04:27:54 -0500 Subject: Name most event scripts related to unusual weather --- src/field_control_avatar.c | 2 +- src/field_specials.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index cffafaf9f..90f7f4d5e 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -559,7 +559,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) } if (sub_813B3B0() == TRUE) { - ScriptContext1_SetupScript(gUnknown_08273D1F); + ScriptContext1_SetupScript(UnusualWeather_EventScript_EndEventAndCleanup_1); return TRUE; } if (ShouldDoBrailleRegicePuzzle() == TRUE) diff --git a/src/field_specials.c b/src/field_specials.c index 1accaa5e5..a5edb0122 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3446,15 +3446,17 @@ void CreateUnusualWeatherEvent(void) } } -bool32 sub_813B374(void) +// Saves the map name for the current unusual weather location in gStringVar1, then +// returns TRUE if the weather is for Kyogre, and FALSE if it's for Groudon. +bool32 GetUnusualWeatherMapNameAndType(void) { - static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); + u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); - GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); + GetMapName(gStringVar1, sUnusualWeatherMapNumbers[unusualWeather - 1], 0); - if (var < 9) + if (unusualWeather < UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START) { return FALSE; } @@ -3466,7 +3468,8 @@ bool32 sub_813B374(void) bool8 sub_813B3B0(void) { - static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + // Duplicate array. + static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; u16 var1 = VarGet(VAR_0x4038); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); @@ -3510,7 +3513,7 @@ bool8 sub_813B3B0(void) } } - if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers[unusualWeather - 1] && + if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers_2[unusualWeather - 1] && gSaveBlock1Ptr->location.mapGroup == 0) { return TRUE; -- cgit v1.2.3 From 4b9e93850c50a2fbd380c061e129c76d33f6e452 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Feb 2019 12:45:31 -0600 Subject: Document easy chat screen types --- src/battle_tower.c | 8 +- src/easy_chat.c | 1694 ++++++++++++++++++++++++++------------------------- src/lilycove_lady.c | 6 +- src/party_menu.c | 13 +- src/trainer_card.c | 2 +- src/tv.c | 4 +- 6 files changed, 872 insertions(+), 855 deletions(-) (limited to 'src') diff --git a/src/battle_tower.c b/src/battle_tower.c index fbb77789e..06aaef48d 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -2401,9 +2401,9 @@ static void sub_8163EE4(void) for (i = 0; i < 6; i++) { - playerRecord->greeting[i] = gSaveBlock1Ptr->unk2BBC[i]; - playerRecord->speechWon[i] = gSaveBlock1Ptr->unk2BC8[i]; - playerRecord->speechLost[i] = gSaveBlock1Ptr->unk2BD4[i]; + playerRecord->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i]; + playerRecord->speechWon[i] = gSaveBlock1Ptr->easyChatBattleWon[i]; + playerRecord->speechLost[i] = gSaveBlock1Ptr->easyChatBattleLost[i]; } for (i = 0; i < 4; i++) @@ -3059,7 +3059,7 @@ static void FillEReaderTrainerWithPlayerData(void) j = 7; for (i = 0; i < 6; i++) { - ereaderTrainer->greeting[i] = gSaveBlock1Ptr->unk2BBC[i]; + ereaderTrainer->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i]; ereaderTrainer->farewellPlayerLost[i] = j; ereaderTrainer->farewellPlayerWon[i] = j + 6; j++; diff --git a/src/easy_chat.c b/src/easy_chat.c index 3c436246d..aa681eeba 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -34,18 +34,18 @@ #include "constants/species.h" #define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_KIND 1 +#define EZCHAT_TASK_TYPE 1 #define EZCHAT_TASK_WORDS 2 #define EZCHAT_TASK_MAINCALLBACK 4 #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; -EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; -EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; +static EWRAM_DATA struct EasyChatScreen *sEasyChatScreen = NULL; +static EWRAM_DATA struct Unk203A11C *sUnknown_0203A11C = NULL; +static EWRAM_DATA struct Unk203A120 *sUnknown_0203A120 = NULL; static void sub_811A2C0(u8); -static void sub_811A278(void); +static void MainCallback_EasyChatScreen(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); @@ -67,8 +67,8 @@ static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); static u16 sub_811B1B4(void); -static u8 sub_811BA68(void); -static u8 sub_811BCC8(u8); +static u8 GetEasyChatScreenFrameId(void); +static u8 GetEachChatScreenTemplateId(u8); static void sub_811BDF0(u8 *); static void sub_811BF78(void); static bool8 sub_811BF8C(void); @@ -79,7 +79,7 @@ static bool8 sub_811C170(void); static bool8 sub_811F28C(void); static void sub_811F2B8(void); static u8 sub_811F3AC(void); -static int sub_811BA3C(void); +static int FooterHasFourOptions(void); static int sub_811B184(void); static int sub_811B264(void); static int sub_811B32C(void); @@ -169,7 +169,7 @@ static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); static void sub_811DF60(u8, u8); -static int sub_811E920(int); +static int GetFooterOptionXOffset(int); static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); @@ -228,10 +228,10 @@ static u16 sub_811F5C4(u16); static u16 sub_811F6B8(u16); static bool8 sub_811F764(u16, u8); static int sub_811F838(u16); -static void sub_811A8CC(void); -static void sub_811A8F0(void); -static void sub_811A914(void); -static void sub_811A938(void); +static void DoQuizAnswerEasyChatScreen(void); +static void DoQuizQuestionEasyChatScreen(void); +static void DoQuizSetAnswerEasyChatScreen(void); +static void DoQuizSetQuestionEasyChatScreen(void); struct Unk8597530 { @@ -242,28 +242,29 @@ struct Unk8597530 static const struct Unk8597530 sUnknown_08597530[] = { { .word = 26, - .callback = sub_811A8CC, + .callback = DoQuizAnswerEasyChatScreen, }, { .word = 25, - .callback = sub_811A8F0, + .callback = DoQuizQuestionEasyChatScreen, }, { .word = 28, - .callback = sub_811A914, + .callback = DoQuizSetAnswerEasyChatScreen, }, { .word = 27, - .callback = sub_811A938, + .callback = DoQuizSetQuestionEasyChatScreen, }, }; -static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + +static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { { - .unk_00 = 0, + .type = EASY_CHAT_TYPE_PROFILE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Profile, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndMakeYourProfile, @@ -271,11 +272,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 1, + .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_AtTheBattlesStart, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -283,11 +284,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 2, + .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponWinningABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -295,11 +296,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 3, + .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponLosingABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -307,11 +308,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 4, + .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, - .unk_03_0 = 2, - .unk_03_7 = 0, + .frameId = 2, + .fourFooterOptions = FALSE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage2, @@ -319,11 +320,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 5, + .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 2, - .unk_03_0 = 5, - .unk_03_7 = 0, + .frameId = 5, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_LetsReplyToTheInterview, @@ -331,11 +332,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -343,11 +344,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 7, + .type = EASY_CHAT_TYPE_FAN_CLUB, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -355,11 +356,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 9, + .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_WhatsHipAndHappening, .instructionsText1 = gText_CombineTwoWordsOrPhrases, .instructionsText2 = gText_AndMakeATrendySaying, @@ -367,11 +368,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 16, + .type = EASY_CHAT_TYPE_QUIZ_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 7, - .unk_03_7 = 1, + .frameId = 7, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_AfterYouHaveReadTheQuiz, .instructionsText2 = gText_QuestionPressTheAButton, @@ -379,11 +380,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 15, + .type = EASY_CHAT_TYPE_QUIZ_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_OutOfTheListedChoices, .instructionsText2 = gText_SelectTheAnswerToTheQuiz, @@ -391,11 +392,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 17, + .type = EASY_CHAT_TYPE_QUIZ_SET_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 8, - .unk_03_7 = 1, + .frameId = 8, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndCreateAQuiz, @@ -403,11 +404,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 18, + .type = EASY_CHAT_TYPE_QUIZ_SET_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_PickAWordOrPhraseAnd, .instructionsText2 = gText_SetTheQuizAnswer, @@ -415,11 +416,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -427,11 +428,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 19, + .type = EASY_CHAT_TYPE_APPRENTICE, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_ApprenticesPhrase, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -439,11 +440,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 13, + .type = EASY_CHAT_TYPE_GOOD_SAYING, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_GoodSaying, .instructionsText1 = gText_CombineTwoWordsOrPhrases2, .instructionsText2 = gText_ToTeachHerAGoodSaying, @@ -451,11 +452,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 10, + .type = EASY_CHAT_TYPE_GABBY_AND_TY, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -463,11 +464,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 12, + .type = EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -475,11 +476,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 11, + .type = EASY_CHAT_TYPE_CONTEST_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -487,11 +488,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 14, + .type = EASY_CHAT_TYPE_FAN_QUESTION, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_FansQuestion, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -499,11 +500,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 20, + .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Questionnaire, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndFillOutTheQuestionnaire, @@ -534,10 +535,10 @@ static const u16 sBerryMasterWifePhrases[][2] = { {EC_WORD_SUPER, EC_WORD_HUSTLE}, }; -static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); -static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); -static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); -static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sEasyChatTriangleCursorPalette[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal"); +static const u32 sEasyChatTriangleCursorGfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); +static const u32 sEasyChatScrollIndicatorGfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); +static const u32 sEasyChatStartSelectButtonsGfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); @@ -546,69 +547,69 @@ static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); -static const struct Unk08597C30 gUnknown_08597C30[] = { +static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 3, - .unk1 = 24, - .unk2 = 6, - .unk3 = 0, + .left = 3, + .top = 3, + .width = 24, + .height = 6, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 0, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 5, - .unk1 = 24, - .unk2 = 2, - .unk3 = 0, + .left = 3, + .top = 5, + .width = 24, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 16, - .unk0_5 = 5, - .unk1 = 12, - .unk2 = 2, - .unk3 = 0, + .left = 16, + .top = 5, + .width = 12, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 9, - .unk0_5 = 4, - .unk1 = 12, - .unk2 = 2, - .unk3 = 1, + .left = 9, + .top = 4, + .width = 12, + .height = 2, + .footerId = 1, }, { - .unk0_0 = 5, - .unk0_5 = 3, - .unk1 = 0x14, - .unk2 = 10, - .unk3 = 3, + .left = 5, + .top = 3, + .width = 0x14, + .height = 10, + .footerId = 3, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 2, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 2, }, }; @@ -701,28 +702,28 @@ static const u8 *const sUnknown_08597C90[] = { gUnknown_862B86C, }; -static const struct SpriteSheet sUnknown_08597CA0[] = { +static const struct SpriteSheet sEasyChatSpriteSheets[] = { { - .data = sUnknown_085977A0, + .data = sEasyChatTriangleCursorGfx, .size = 0x0020, .tag = 0 }, { - .data = sUnknown_085977C0, + .data = sEasyChatScrollIndicatorGfx, .size = 0x0100, .tag = 2 }, { - .data = sUnknown_085978C0, + .data = sEasyChatStartSelectButtonsGfx, .size = 0x0100, .tag = 3 }, {0} }; -static const struct SpritePalette sUnknown_08597CC0[] = { +static const struct SpritePalette sEasyChatSpritePalettes[] = { { - .data = sUnknown_08597780, + .data = sEasyChatTriangleCursorPalette, .tag = 0, }, { @@ -999,7 +1000,7 @@ static const struct SpriteTemplate sUnknown_08597E48 = { .callback = SpriteCallbackDummy, }; -static const u8 sUnknown_08597E60[][4] = { +static const u8 sFooterOptionXOffsets[][4] = { {16, 111, 196, 0}, {16, 78, 130, 160}, {16, 80, 134, 170}, @@ -1039,14 +1040,14 @@ const u8 *const gEasyChatGroupNamePointers[] = { [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, }; -static const u16 sUnknown_0859E62C[] = { +static const u16 sDefaultProfileWords[] = { EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FRIEND, }; -static const u16 sUnknown_0859E634[] = { +static const u16 sDefaultBattleStartWords[] = { EC_WORD_ARE, EC_WORD_YOU, EC_WORD_READY, @@ -1077,20 +1078,20 @@ static const u16 sUnknown_0859E658[] = { SPECIES_DEOXYS, }; -void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) +void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType) { u8 taskId; ResetTasks(); taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[EZCHAT_TASK_KIND] = kind; - gTasks[taskId].data[EZCHAT_TASK_SIZE] = sizeParam; + gTasks[taskId].data[EZCHAT_TASK_TYPE] = type; + gTasks[taskId].data[EZCHAT_TASK_SIZE] = displayedPersonType; SetWordTaskArg(taskId, EZCHAT_TASK_WORDS, (u32)words); SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); - SetMainCallback2(sub_811A278); + SetMainCallback2(MainCallback_EasyChatScreen); } -static void sub_811A278(void) +static void MainCallback_EasyChatScreen(void) { RunTasks(); AnimateSprites(); @@ -1098,7 +1099,7 @@ static void sub_811A278(void) UpdatePaletteFade(); } -static void sub_811A290(void) +static void VBlankCallback_EasyChatScreen(void) { TransferPlttBuffer(); LoadOam(); @@ -1136,22 +1137,22 @@ static void sub_811A2FC(u8 taskId) switch (data[EZCHAT_TASK_STATE]) { case 0: - SetVBlankCallback(sub_811A290); + SetVBlankCallback(VBlankCallback_EasyChatScreen); BlendPalettes(0xFFFFFFFF, 16, 0); - BeginNormalPaletteFade(-1, -1, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, 0); data[EZCHAT_TASK_STATE] = 5; break; case 1: v0 = sub_811AAAC(); if (sub_811A88C(v0)) { - BeginNormalPaletteFade(-1, -2, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); data[EZCHAT_TASK_STATE] = 3; data[EZCHAT_TASK_UNK06] = v0; } else if (v0 == 0x18) { - BeginNormalPaletteFade(-1, -1, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, 0); data[EZCHAT_TASK_STATE] = 4; } else if (v0 != 0) @@ -1163,27 +1164,19 @@ static void sub_811A2FC(u8 taskId) break; case 2: if (!sub_811C170()) - { data[EZCHAT_TASK_STATE] = 1; - } break; case 3: if (!gPaletteFade.active) - { sub_811A8A4(data[EZCHAT_TASK_UNK06]); - } break; case 4: if (!gPaletteFade.active) - { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } break; case 5: if (!gPaletteFade.active) - { data[EZCHAT_TASK_STATE] = 1; - } break; } } @@ -1208,7 +1201,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!EasyChat_AllocateResources(data[EZCHAT_TASK_TYPE], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -1241,98 +1234,98 @@ static void sub_811A4D0(MainCallback callback) SetMainCallback2(callback); } -void easy_chat_input_maybe(void) +void ShowEasyChatScreen(void) { int i; u16 *words; struct MauvilleManBard *bard; - u8 sizeParam = 3; + u8 displayedPersonType = EASY_CHAT_PERSON_DISPLAY_NONE; switch (gSpecialVar_0x8004) { - case 0: - words = gSaveBlock1Ptr->unk2BB0; + case EASY_CHAT_TYPE_PROFILE: + words = gSaveBlock1Ptr->easyChatProfile; break; - case 1: - words = gSaveBlock1Ptr->unk2BBC; + case EASY_CHAT_TYPE_BATTLE_START: + words = gSaveBlock1Ptr->easyChatBattleStart; break; - case 2: - words = gSaveBlock1Ptr->unk2BC8; + case EASY_CHAT_TYPE_BATTLE_WON: + words = gSaveBlock1Ptr->easyChatBattleWon; break; - case 3: - words = gSaveBlock1Ptr->unk2BD4; + case EASY_CHAT_TYPE_BATTLE_LOST: + words = gSaveBlock1Ptr->easyChatBattleLost; break; - case 4: + case EASY_CHAT_TYPE_MAIL: words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; break; - case 6: + case EASY_CHAT_TYPE_BARD_SONG: bard = &gSaveBlock1Ptr->oldMan.bard; for (i = 0; i < 6; i ++) - { bard->temporaryLyrics[i] = bard->songLyrics[i]; - } + words = bard->temporaryLyrics; break; - case 5: + case EASY_CHAT_TYPE_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; - sizeParam = gSpecialVar_0x8006; + displayedPersonType = gSpecialVar_0x8006; break; - case 7: + case EASY_CHAT_TYPE_FAN_CLUB: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 8: + case EASY_CHAT_TYPE_UNK_8: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: words = (u16 *)gStringVar3; words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; break; - case 10: + case EASY_CHAT_TYPE_GABBY_AND_TY: words = gSaveBlock1Ptr->gabbyAndTyData.quote; *words = -1; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 11: + case EASY_CHAT_TYPE_CONTEST_INTERVIEW: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 12: + case EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: words = (u16 *)gStringVar3; InitializeEasyChatWordArray(words, 2); break; - case 14: + case EASY_CHAT_TYPE_FAN_QUESTION: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; words[0] = -1; - sizeParam = 2; + displayedPersonType = EASY_CHAT_PERSON_BOY; break; - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; break; - case 16: + case EASY_CHAT_TYPE_QUIZ_QUESTION: return; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; break; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; break; - case 19: + case EASY_CHAT_TYPE_APPRENTICE: words = gSaveBlock2Ptr->apprentices[0].easyChatWords; break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: words = GetSaveBlock1Field3564(); break; default: return; } + CleanupOverworldWindowsAndTilemaps(); - sub_811A20C(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, sizeParam); + DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, displayedPersonType); } static void sub_811A7E4(void) @@ -1351,7 +1344,7 @@ static void sub_811A7E4(void) lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; lilycoveLady->quiz.unk_016 = -1; CleanupOverworldWindowsAndTilemaps(); - sub_811A8F0(); + DoQuizQuestionEasyChatScreen(); } return; } @@ -1389,88 +1382,100 @@ static void sub_811A8A4(u16 word) sub_811A4D0(sUnknown_08597530[i].callback); } -static void sub_811A8CC(void) +static void DoQuizAnswerEasyChatScreen(void) { - sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_QUIZ_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A8F0(void) +static void DoQuizQuestionEasyChatScreen(void) { - sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A914(void) +static void DoQuizSetAnswerEasyChatScreen(void) { - sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A938(void) +static void DoQuizSetQuestionEasyChatScreen(void) { - sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) +static bool8 EasyChat_AllocateResources(u8 type, u16 *words, u8 displayedPersonType) { u8 templateId; int i; - gEasyChatScreen = malloc(sizeof(*gEasyChatScreen)); - if (gEasyChatScreen == NULL) - { + sEasyChatScreen = malloc(sizeof(*sEasyChatScreen)); + if (sEasyChatScreen == NULL) return FALSE; - } - gEasyChatScreen->kind = kind; - gEasyChatScreen->words = words; - gEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->mainCursorRow = 0; - gEasyChatScreen->unk_09 = 0; - gEasyChatScreen->sizeParam = sizeParam; - gEasyChatScreen->unk_13 = 0; - templateId = sub_811BCC8(kind); - if (kind == 0x10) + + sEasyChatScreen->type = type; + sEasyChatScreen->words = words; + sEasyChatScreen->mainCursorColumn = 0; + sEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->unk_09 = 0; + sEasyChatScreen->displayedPersonType = displayedPersonType; + sEasyChatScreen->unk_13 = 0; + templateId = GetEachChatScreenTemplateId(type); + if (type == EASY_CHAT_TYPE_QUIZ_QUESTION) { - sub_811BDF0(gEasyChatScreen->unk_14); - gEasyChatScreen->titleText = gEasyChatScreen->unk_14; - gEasyChatScreen->state = 7; + sub_811BDF0(sEasyChatScreen->unk_14); + sEasyChatScreen->titleText = sEasyChatScreen->unk_14; + sEasyChatScreen->state = 7; } else { - gEasyChatScreen->state = 0; - gEasyChatScreen->titleText = gEasyChatScreenTemplates[templateId].titleText; - } - gEasyChatScreen->numColumns = gEasyChatScreenTemplates[templateId].numColumns; - gEasyChatScreen->numRows = gEasyChatScreenTemplates[templateId].numRows; - gEasyChatScreen->unk_07 = gEasyChatScreen->numColumns * gEasyChatScreen->numRows; - gEasyChatScreen->templateId = templateId; - if (gEasyChatScreen->unk_07 > 9) - { - gEasyChatScreen->unk_07 = 9; + sEasyChatScreen->state = 0; + sEasyChatScreen->titleText = sEasyChatScreenTemplates[templateId].titleText; } + + sEasyChatScreen->numColumns = sEasyChatScreenTemplates[templateId].numColumns; + sEasyChatScreen->numRows = sEasyChatScreenTemplates[templateId].numRows; + sEasyChatScreen->unk_07 = sEasyChatScreen->numColumns * sEasyChatScreen->numRows; + sEasyChatScreen->templateId = templateId; + if (sEasyChatScreen->unk_07 > 9) + sEasyChatScreen->unk_07 = 9; + if (words != NULL) { - CpuCopy16(words, gEasyChatScreen->ecWordBuffer, gEasyChatScreen->unk_07 * sizeof(u16)); + CpuCopy16(words, sEasyChatScreen->ecWordBuffer, sEasyChatScreen->unk_07 * sizeof(u16)); } else { - for (i = 0; i < gEasyChatScreen->unk_07; i ++) - { - gEasyChatScreen->ecWordBuffer[i] = -1; - } - gEasyChatScreen->words = gEasyChatScreen->ecWordBuffer; + for (i = 0; i < sEasyChatScreen->unk_07; i ++) + sEasyChatScreen->ecWordBuffer[i] = -1; + + sEasyChatScreen->words = sEasyChatScreen->ecWordBuffer; } - gEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + + sEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; return TRUE; } static void EasyChat_FreeResources(void) { - if (gEasyChatScreen != NULL) - FREE_AND_SET_NULL(gEasyChatScreen); + if (sEasyChatScreen != NULL) + FREE_AND_SET_NULL(sEasyChatScreen); } static u16 sub_811AAAC(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 0: return sub_811AB68(); @@ -1500,7 +1505,7 @@ static u16 sub_811AAAC(void) bool32 sub_811AB44(void) { - switch (sub_811BA68()) + switch (GetEasyChatScreenFrameId()) { case 2: case 7: @@ -1517,10 +1522,10 @@ static u16 sub_811AB68(void) if (gMain.newKeys & A_BUTTON) { sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; + sEasyChatScreen->state = 2; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; return 9; } else if (gMain.newKeys & B_BUTTON) @@ -1533,51 +1538,51 @@ static u16 sub_811AB68(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow++; + sEasyChatScreen->mainCursorRow++; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow < 0) - gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; + if (sEasyChatScreen->mainCursorRow < 0) + sEasyChatScreen->mainCursorRow = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows; - if (gEasyChatScreen->mainCursorRow > gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) - gEasyChatScreen->mainCursorRow = 0; + if (sEasyChatScreen->mainCursorRow > sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) + sEasyChatScreen->mainCursorRow = 0; - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - if (gEasyChatScreen->mainCursorColumn > 2) - gEasyChatScreen->mainCursorColumn = 2; + if (sEasyChatScreen->mainCursorColumn > 2) + sEasyChatScreen->mainCursorColumn = 2; - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 3; } - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = 0; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; return 2; } @@ -1588,7 +1593,7 @@ static u16 sub_811ACDC(void) { if (gMain.newKeys & A_BUTTON) { - switch (gEasyChatScreen->mainCursorColumn) + switch (sEasyChatScreen->mainCursorColumn) { case 0: return sub_811B184(); @@ -1611,47 +1616,47 @@ static u16 sub_811ACDC(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->mainCursorRow = 0; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - int numFooterColumns = sub_811BA3C() ? 4 : 3; - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; + int numFooterColumns = FooterHasFourOptions() ? 4 : 3; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = numFooterColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= numFooterColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= numFooterColumns) + sEasyChatScreen->mainCursorColumn = 0; return 3; } - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 2; } @@ -1662,10 +1667,10 @@ static u16 sub_811AE44(void) if (gMain.newKeys & A_BUTTON) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) return sub_811B2B0(); - switch (gEasyChatScreen->unk_0b) + switch (sEasyChatScreen->unk_0b) { case 0: return sub_811B33C(); @@ -1698,7 +1703,7 @@ static u16 sub_811AF00(void) { if (gMain.newKeys & B_BUTTON) { - gEasyChatScreen->state = 2; + sEasyChatScreen->state = 2; return 14; } @@ -1734,11 +1739,11 @@ static u16 sub_811AF8C(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes gSpecialVar_Result = 0; - var0 = gEasyChatScreen->kind - 17; + var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) sub_811B3E4(); @@ -1754,7 +1759,7 @@ static u16 sub_811AFEC(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes sub_811BE9C(); @@ -1772,11 +1777,11 @@ static u16 sub_811B040(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 7; case 0: // Yes sub_811B418(); - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 8; default: return 0; @@ -1798,7 +1803,7 @@ static u16 sub_811B0BC(void) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; } @@ -1807,7 +1812,7 @@ static u16 sub_811B0BC(void) static u16 sub_811B0E8(void) { - gEasyChatScreen->state = 10; + sEasyChatScreen->state = 10; return 6; } @@ -1818,8 +1823,8 @@ static u16 sub_811B0F8(void) case MENU_B_PRESSED: // B Button case 1: // No sub_811B454(); - gEasyChatScreen->unk_08 = 0; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = 0; + sEasyChatScreen->state = 8; return 31; case 0: // Yes gSpecialVar_Result = sub_811B4EC(); @@ -1832,124 +1837,127 @@ static u16 sub_811B0F8(void) static u16 sub_811B150(void) { - if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 34; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 4; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 4; return 5; } } static int sub_811B184(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind != 6) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 5; + sEasyChatScreen->state = 5; return 4; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 32; } } static u16 sub_811B1B4(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind == 17) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) { if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 18) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) { if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 9 || gEasyChatScreen->kind == 13) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_TRENDY_PHRASE + || sEasyChatScreen->type == EASY_CHAT_TYPE_GOOD_SAYING) { if (!sub_811BD2C()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 33; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { if (sub_811BCF4()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 34; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 20) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUESTIONNAIRE) { - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } else { if (sub_811BCF4() == 1 || !sub_811B4EC()) { - gEasyChatScreen->state = 4; + sEasyChatScreen->state = 4; return 5; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } } static int sub_811B264(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - switch (gEasyChatScreen->kind) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + switch (sEasyChatScreen->type) { - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: return 25; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: sub_811B3E4(); return 28; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: sub_811B3E4(); return 27; default: @@ -1959,14 +1967,14 @@ static int sub_811B264(void) static u8 sub_811B2A4(void) { - return gEasyChatScreen->unk_08; + return sEasyChatScreen->stateBackup; } static int sub_811B2B0(void) { u16 var1; - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { u8 groupId = sub_811F3B8(sub_811B8E8()); sub_811F548(0, groupId); @@ -1980,36 +1988,36 @@ static int sub_811B2B0(void) if (var1 == 0) return 0; - gEasyChatScreen->unk_0f = (var1 - 1) / 2; - gEasyChatScreen->unk_0e = 0; - gEasyChatScreen->unk_10 = 0; - gEasyChatScreen->unk_11 = 0; - gEasyChatScreen->state = 3; + sEasyChatScreen->unk_0f = (var1 - 1) / 2; + sEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_11 = 0; + sEasyChatScreen->state = 3; return 11; } static int sub_811B32C(void) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 10; } static int sub_811B33C(void) { - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - if (!gEasyChatScreen->unk_09) - gEasyChatScreen->unk_09 = 1; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; + if (!sEasyChatScreen->unk_09) + sEasyChatScreen->unk_09 = 1; else - gEasyChatScreen->unk_09 = 0; + sEasyChatScreen->unk_09 = 0; return 23; } static int sub_811B368(void) { - if (gEasyChatScreen->kind == 6) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { PlaySE(SE_HAZURE); return 0; @@ -2032,14 +2040,14 @@ static int sub_811B394(void) else { sub_811B488(easyChatWord); - if (gEasyChatScreen->kind != 6) + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 12; } else { - gEasyChatScreen->state = 9; + sEasyChatScreen->state = 9; return 13; } } @@ -2048,36 +2056,36 @@ static int sub_811B394(void) static void sub_811B3E4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->words[i] = gEasyChatScreen->ecWordBuffer[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->words[i] = sEasyChatScreen->ecWordBuffer[i]; } static void sub_811B418(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = 0xFFFF; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = 0xFFFF; } static void sub_811B454(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = gEasyChatScreen->words[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = sEasyChatScreen->words[i]; } static void sub_811B488(u16 easyChatWord) { u16 index = sub_811B8C8(); - gEasyChatScreen->ecWordBuffer[index] = easyChatWord; + sEasyChatScreen->ecWordBuffer[index] = easyChatWord; } static u8 sub_811B4AC(void) { u16 i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != gEasyChatScreen->words[i]) + if (sEasyChatScreen->ecWordBuffer[i] != sEasyChatScreen->words[i]) return 1; } @@ -2086,7 +2094,7 @@ static u8 sub_811B4AC(void) static int sub_811B4EC(void) { - u8 var0 = gEasyChatScreen->kind - 17; + u8 var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) { if (sub_811BD64()) @@ -2105,9 +2113,9 @@ static int sub_811B4EC(void) static u16 sub_811B528(int arg0) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B568(arg0); else return sub_811B634(arg0); @@ -2123,32 +2131,32 @@ static int sub_811B568(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b != -gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_0b != -sEasyChatScreen->unk_0c) { - if (gEasyChatScreen->unk_0b) + if (sEasyChatScreen->unk_0b) { - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0b--; return 15; } else { - gEasyChatScreen->unk_0c--; + sEasyChatScreen->unk_0c--; return 17; } } break; case 3: - if (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c < gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c < sEasyChatScreen->unk_0d - 1) { int var0; - if (gEasyChatScreen->unk_0b < 3) + if (sEasyChatScreen->unk_0b < 3) { - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; var0 = 15; } else { - gEasyChatScreen->unk_0c++; + sEasyChatScreen->unk_0c++; var0 = 16; } @@ -2157,16 +2165,16 @@ static int sub_811B568(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else sub_811B744(); return 15; case 0: - if (gEasyChatScreen->unk_0a < 1) + if (sEasyChatScreen->unk_0a < 1) { - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); } @@ -2185,30 +2193,30 @@ static int sub_811B634(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b > 0) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b > 0) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 3; + sEasyChatScreen->unk_0b = 3; sub_811B978(); return 15; case 3: - if (gEasyChatScreen->unk_0b < 3) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 3) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; sub_811B978(); return 15; case 0: - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); return 15; case 1: - gEasyChatScreen->unk_0a--; - if (gEasyChatScreen->unk_0a < 0) + sEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a < 0) sub_811B744(); return 15; @@ -2222,26 +2230,26 @@ static int sub_811B6C4(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 2; + sEasyChatScreen->unk_0b = 2; return 15; case 3: - if (gEasyChatScreen->unk_0b < 2) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 2) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; return 15; case 1: - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; sub_811B768(); return 15; case 0: - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b++; return 15; } @@ -2250,21 +2258,21 @@ static int sub_811B6C4(u32 arg0) static void sub_811B744(void) { - gEasyChatScreen->unk_0a = 0xFF; - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0a = 0xFF; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; } static void sub_811B768(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { - gEasyChatScreen->unk_0a = 1; + sEasyChatScreen->unk_0a = 1; sub_811B978(); } else { - gEasyChatScreen->unk_0a = sub_811B960(gEasyChatScreen->unk_0b); + sEasyChatScreen->unk_0a = sub_811B960(sEasyChatScreen->unk_0b); } } @@ -2274,16 +2282,16 @@ static u16 sub_811B794(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e > 0) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e > 0) { - if (gEasyChatScreen->unk_11 > 0) + if (sEasyChatScreen->unk_11 > 0) { - gEasyChatScreen->unk_11--; + sEasyChatScreen->unk_11--; result = 18; } else { - gEasyChatScreen->unk_0e--; + sEasyChatScreen->unk_0e--; result = 19; } @@ -2292,16 +2300,16 @@ static u16 sub_811B794(u32 arg0) } break; case 3: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e < gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e < sEasyChatScreen->unk_0f) { - if (gEasyChatScreen->unk_11 < 3) + if (sEasyChatScreen->unk_11 < 3) { - gEasyChatScreen->unk_11++; + sEasyChatScreen->unk_11++; result = 18; } else { - gEasyChatScreen->unk_0e++; + sEasyChatScreen->unk_0e++; result = 20; } @@ -2310,42 +2318,42 @@ static u16 sub_811B794(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_10 > 0) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10 > 0) + sEasyChatScreen->unk_10--; else - gEasyChatScreen->unk_10 = 1; + sEasyChatScreen->unk_10 = 1; sub_811B9A0(); return 18; case 0: - if (gEasyChatScreen->unk_10 < 1) + if (sEasyChatScreen->unk_10 < 1) { - gEasyChatScreen->unk_10++; + sEasyChatScreen->unk_10++; if (sub_811BA1C()) - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } else { - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } return 18; case 4: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) { - if (gEasyChatScreen->unk_0e > 3) - gEasyChatScreen->unk_0e -= 4; + if (sEasyChatScreen->unk_0e > 3) + sEasyChatScreen->unk_0e -= 4; else - gEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_0e = 0; return 21; } break; case 5: - if (gEasyChatScreen->unk_0e <= gEasyChatScreen->unk_0f - 4) + if (sEasyChatScreen->unk_0e <= sEasyChatScreen->unk_0f - 4) { - gEasyChatScreen->unk_0e += 4; - if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) - gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; + sEasyChatScreen->unk_0e += 4; + if (sEasyChatScreen->unk_0e > sEasyChatScreen->unk_0f - 3) + sEasyChatScreen->unk_0e = sEasyChatScreen->unk_0f + 0xFD; sub_811B9A0(); return 22; @@ -2358,24 +2366,24 @@ static u16 sub_811B794(u32 arg0) static u16 sub_811B8C8(void) { - return (gEasyChatScreen->mainCursorRow * gEasyChatScreen->numColumns) + gEasyChatScreen->mainCursorColumn; + return (sEasyChatScreen->mainCursorRow * sEasyChatScreen->numColumns) + sEasyChatScreen->mainCursorColumn; } static u16 sub_811B8E8(void) { - return 2 * (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c) + gEasyChatScreen->unk_0a; + return 2 * (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c) + sEasyChatScreen->unk_0a; } static int sub_811B908(void) { - int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; - int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; + int var0 = (u8)sEasyChatScreen->unk_0a < 7 ? sEasyChatScreen->unk_0a : 0; + int var1 = (u8)sEasyChatScreen->unk_0b < 4 ? sEasyChatScreen->unk_0b : 0; return sUnknown_08597748[var1][var0]; } static u16 sub_811B940(void) { - return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; + return 2 * (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e) + sEasyChatScreen->unk_10; } static u8 sub_811B960(u8 arg0) @@ -2394,8 +2402,8 @@ static void sub_811B978(void) { while (sub_811B9C8()) { - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else break; } @@ -2405,8 +2413,8 @@ static void sub_811B9A0(void) { while (sub_811BA1C()) { - if (gEasyChatScreen->unk_10) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10) + sEasyChatScreen->unk_10--; else break; } @@ -2414,10 +2422,10 @@ static void sub_811B9A0(void) static u8 sub_811B9C8(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B8E8() >= sub_811F3AC() ? 1 : 0; else - return gEasyChatScreen->unk_0a > sub_811B960(gEasyChatScreen->unk_0b) ? 1 : 0; + return sEasyChatScreen->unk_0a > sub_811B960(sEasyChatScreen->unk_0b) ? 1 : 0; } static u8 sub_811BA1C(void) @@ -2425,73 +2433,73 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -static int sub_811BA3C(void) +static int FooterHasFourOptions(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].fourFooterOptions; } -u8 sub_811BA5C(void) +static u8 GetEasyChatScreenType(void) { - return gEasyChatScreen->kind; + return sEasyChatScreen->type; } -static u8 sub_811BA68(void) +static u8 GetEasyChatScreenFrameId(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].frameId; } -const u8 *sub_811BA88(void) +const u8 *GetTitleText(void) { - return gEasyChatScreen->titleText; + return sEasyChatScreen->titleText; } -u16 *sub_811BA94(void) +static u16 *GetEasyChatWordBuffer(void) { - return gEasyChatScreen->ecWordBuffer; + return sEasyChatScreen->ecWordBuffer; } -u8 sub_811BAA0(void) +static u8 GetNumRows(void) { - return gEasyChatScreen->numRows; + return sEasyChatScreen->numRows; } -u8 sub_811BAAC(void) +static u8 GetNumColumns(void) { - return gEasyChatScreen->numColumns; + return sEasyChatScreen->numColumns; } -u8 sub_811BAB8(void) +static u8 GetMainCursorColumn(void) { - return gEasyChatScreen->mainCursorColumn; + return sEasyChatScreen->mainCursorColumn; } -u8 sub_811BAC4(void) +static u8 GetMainCursorRow(void) { - return gEasyChatScreen->mainCursorRow; + return sEasyChatScreen->mainCursorRow; } static void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText2; } static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText2; } static void sub_811BB40(const u8 **str1, const u8 **str2) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 4: + case EASY_CHAT_TYPE_MAIL: *str1 = gText_StopGivingPkmnMail; *str2 = NULL; break; - case 15: - case 16: + case EASY_CHAT_TYPE_QUIZ_ANSWER: + case EASY_CHAT_TYPE_QUIZ_QUESTION: *str1 = gText_LikeToQuitQuiz; *str2 = gText_ChallengeQuestionMark; break; @@ -2511,34 +2519,34 @@ static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) void sub_811BB9C(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_0a; - *arg1 = gEasyChatScreen->unk_0b; + *arg0 = sEasyChatScreen->unk_0a; + *arg1 = sEasyChatScreen->unk_0b; } u8 sub_811BBB0(void) { - return gEasyChatScreen->unk_09; + return sEasyChatScreen->unk_09; } u8 sub_811BBBC(void) { - return gEasyChatScreen->unk_0c; + return sEasyChatScreen->unk_0c; } void sub_811BBC8(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_10; - *arg1 = gEasyChatScreen->unk_11; + *arg0 = sEasyChatScreen->unk_10; + *arg1 = sEasyChatScreen->unk_11; } u8 sub_811BBDC(void) { - return gEasyChatScreen->unk_0e; + return sEasyChatScreen->unk_0e; } u8 sub_811BBE8(void) { - return gEasyChatScreen->unk_0f; + return sEasyChatScreen->unk_0f; } static u8 unref_sub_811BBF4(void) @@ -2548,14 +2556,14 @@ static u8 unref_sub_811BBF4(void) int sub_811BBF8(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c) return 1; break; case 3: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) return 1; break; } @@ -2565,14 +2573,14 @@ int sub_811BBF8(void) int sub_811BC2C(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c + 4 <= gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c + 4 <= sEasyChatScreen->unk_0d - 1) return 1; break; case 3: - if (gEasyChatScreen->unk_0e + 4 <= gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_0e + 4 <= sEasyChatScreen->unk_0f) return 1; break; } @@ -2580,9 +2588,9 @@ int sub_811BC2C(void) return 0; } -static int sub_811BC70(void) +static int FooterHasFourOptions_(void) { - return sub_811BA3C(); + return FooterHasFourOptions(); } u8 sub_811BC7C(const u16 *arg0, u8 arg1) @@ -2591,25 +2599,25 @@ u8 sub_811BC7C(const u16 *arg0, u8 arg1) for (i = 0; i < arg1; i++) { - if (arg0[i] != gEasyChatScreen->ecWordBuffer[i]) + if (arg0[i] != sEasyChatScreen->ecWordBuffer[i]) return 1; } return 0; } -u8 sub_811BCBC(void) +static u8 GetDisplayedPersonType(void) { - return gEasyChatScreen->sizeParam; + return sEasyChatScreen->displayedPersonType; } -static u8 sub_811BCC8(u8 entryType) +static u8 GetEachChatScreenTemplateId(u8 type) { u32 i; - for (i = 0; i < ARRAY_COUNT(gEasyChatScreenTemplates); i++) + for (i = 0; i < ARRAY_COUNT(sEasyChatScreenTemplates); i++) { - if (gEasyChatScreenTemplates[i].unk_00 == entryType) + if (sEasyChatScreenTemplates[i].type == type) return i; } @@ -2620,9 +2628,9 @@ static int sub_811BCF4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] != 0xFFFF) return 0; } @@ -2633,9 +2641,9 @@ static int sub_811BD2C(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] == 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] == 0xFFFF) return 0; } @@ -2647,7 +2655,7 @@ static int sub_811BD64(void) int i; struct SaveBlock1 *saveBlock1; - if (gEasyChatScreen->kind == 17) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) return sub_811BCF4(); saveBlock1 = gSaveBlock1Ptr; @@ -2663,7 +2671,7 @@ static int sub_811BD64(void) static int sub_811BDB0(void) { struct LilycoveLadyQuiz *quiz; - if (gEasyChatScreen->kind == 18) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) return sub_811BCF4(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; @@ -2694,10 +2702,10 @@ static void sub_811BE54(void) u16 *ecWord; u8 *str; - ecWord = gEasyChatScreen->ecWordBuffer; + ecWord = sEasyChatScreen->ecWordBuffer; str = gStringVar2; i = 0; - while (i < gEasyChatScreen->unk_07) + while (i < sEasyChatScreen->unk_07) { str = CopyEasyChatWordPadded(str, *ecWord, 0); *str = 0; @@ -2712,22 +2720,22 @@ static void sub_811BE54(void) static void sub_811BE9C(void) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 0: + case EASY_CHAT_TYPE_PROFILE: FlagSet(FLAG_SYS_CHAT_USED); break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: if (sub_811BF20()) gSpecialVar_0x8004 = 2; else gSpecialVar_0x8004 = 0; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: sub_811BE54(); - gSpecialVar_0x8004 = sub_81226D8(gEasyChatScreen->ecWordBuffer); + gSpecialVar_0x8004 = sub_81226D8(sEasyChatScreen->ecWordBuffer); break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: gSpecialVar_0x8004 = sub_811BF40(); break; } @@ -2752,7 +2760,7 @@ static u16 sub_811BF40(void) static void sub_811BF78(void) { - gEasyChatScreen->unk_13 = 0; + sEasyChatScreen->unk_13 = 0; } static int sub_811BF88(int easyChatWord) @@ -2770,13 +2778,13 @@ static bool8 sub_811BF8C(void) static bool8 sub_811BFA4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); - SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); - SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); + SetBgTilemapBuffer(3, sUnknown_0203A11C->unkB00); + SetBgTilemapBuffer(1, sUnknown_0203A11C->unk300); InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); sub_811CF64(); @@ -2787,7 +2795,7 @@ static bool8 sub_811BFA4(void) DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); sub_811D60C(); - sub_811D424(gUnknown_0203A11C->unk300); + sub_811D424(sUnknown_0203A11C->unk300); sub_811D230(); sub_811E948(); CopyBgTilemapBufferToVram(3); @@ -2804,7 +2812,7 @@ static bool8 sub_811BFA4(void) break; case 4: sub_811DE90(); - if (sub_811BA5C() != 16) + if (GetEasyChatScreenType() != EASY_CHAT_TYPE_QUIZ_QUESTION) sub_811DEC4(); break; case 5: @@ -2830,26 +2838,26 @@ static bool8 sub_811BFA4(void) return FALSE; } - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return TRUE; } static void sub_811C13C(void) { - if (gUnknown_0203A11C) - FREE_AND_SET_NULL(gUnknown_0203A11C); + if (sUnknown_0203A11C) + FREE_AND_SET_NULL(sUnknown_0203A11C); } static void sub_811C158(u16 arg0) { - gUnknown_0203A11C->unk4 = arg0; - gUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk4 = arg0; + sUnknown_0203A11C->unk0 = 0; sub_811C170(); } static bool8 sub_811C170(void) { - switch (gUnknown_0203A11C->unk4) + switch (sUnknown_0203A11C->unk4) { case 0: return FALSE; case 1: return sub_811C2D4(); @@ -2892,11 +2900,11 @@ static bool8 sub_811C170(void) static bool8 sub_811C2D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2910,21 +2918,21 @@ static bool8 sub_811C30C(void) u8 i; u16 *ecWordBuffer; u16 *ecWord; - u8 var0; + u8 frameId; u8 cursorColumn, cursorRow, numColumns; s16 var1; int stringWidth; int trueStringWidth; u8 var2; - u8 sp0[64]; + u8 str[64]; - ecWordBuffer = sub_811BA94(); - var0 = sub_811BA68(); - cursorColumn = sub_811BAB8(); - cursorRow = sub_811BAC4(); - numColumns = sub_811BAAC(); + ecWordBuffer = GetEasyChatWordBuffer(); + frameId = GetEasyChatScreenFrameId(); + cursorColumn = GetMainCursorColumn(); + cursorRow = GetMainCursorRow(); + numColumns = GetNumColumns(); ecWord = &ecWordBuffer[cursorRow * numColumns]; - var1 = 8 * gUnknown_08597C30[var0].unk0_0 + 13; + var1 = 8 * sPhraseFrameDimensions[frameId].left + 13; for (i = 0; i < cursorColumn; i++) { if (*ecWord == 0xFFFF) @@ -2933,8 +2941,8 @@ static bool8 sub_811C30C(void) } else { - CopyEasyChatWord(sp0, *ecWord); - stringWidth = GetStringWidth(1, sp0, 0); + CopyEasyChatWord(str, *ecWord); + stringWidth = GetStringWidth(1, str, 0); } trueStringWidth = stringWidth + 17; @@ -2942,27 +2950,27 @@ static bool8 sub_811C30C(void) ecWord++; } - var2 = 8 * (gUnknown_08597C30[var0].unk0_5 + cursorRow * 2); + var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2); sub_811DF60(var1, var2 + 8); return FALSE; } static bool8 sub_811C3E4(void) { - u8 var0 = sub_811E920(sub_811BAB8()); - sub_811DF60(var0, 96); + u8 xOffset = GetFooterOptionXOffset(GetMainCursorColumn()); + sub_811DF60(xOffset, 96); return FALSE; } static bool8 sub_811C404(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(2); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2973,13 +2981,13 @@ static bool8 sub_811C404(void) static bool8 sub_811C448(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(3); sub_811D214(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2990,13 +2998,13 @@ static bool8 sub_811C448(void) static bool8 sub_811C48C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(1); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3007,14 +3015,14 @@ static bool8 sub_811C48C(void) static bool8 sub_811C4D0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3025,13 +3033,13 @@ static bool8 sub_811C4D0(void) static bool8 sub_811C518(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3042,31 +3050,31 @@ static bool8 sub_811C518(void) static bool8 sub_811C554(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); HideBg(0); sub_811DE5C(0, 0, 0, 0); sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3075,7 +3083,7 @@ static bool8 sub_811C554(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3088,31 +3096,31 @@ static bool8 sub_811C554(void) static bool8 sub_811C620(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (sub_811E4D0() == TRUE) break; sub_811D9CC(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 2: if (!sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3124,20 +3132,20 @@ static bool8 sub_811C620(void) static bool8 sub_811C6C0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E6B0(); sub_811E55C(); sub_811D9CC(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811DAA4() && !sub_811E5B8()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3145,7 +3153,7 @@ static bool8 sub_811C6C0(void) { sub_811D9CC(6); sub_811E578(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: @@ -3153,7 +3161,7 @@ static bool8 sub_811C6C0(void) { sub_811E64C(); sub_811DFC8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3172,11 +3180,11 @@ static bool8 sub_811C780(void) static bool8 sub_811C78C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) @@ -3193,17 +3201,17 @@ static bool8 sub_811C78C(void) static bool8 sub_811C7D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) { sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3216,33 +3224,33 @@ static bool8 sub_811C7D4(void) static bool8 sub_811C830(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811E4D0()) { sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D698(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3252,7 +3260,7 @@ static bool8 sub_811C830(void) sub_811E6E0(1); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3265,38 +3273,38 @@ static bool8 sub_811C830(void) static bool8 sub_811C8F0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3309,45 +3317,45 @@ static bool8 sub_811C8F0(void) static bool8 sub_811C99C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D104(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3360,34 +3368,34 @@ static bool8 sub_811C99C(void) static bool8 sub_811CA5C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!sub_811DAA4()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3396,7 +3404,7 @@ static bool8 sub_811CA5C(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3413,17 +3421,17 @@ static bool8 sub_811CB18(void) static bool8 sub_811CB24(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7A4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3432,7 +3440,7 @@ static bool8 sub_811CB24(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3445,17 +3453,17 @@ static bool8 sub_811CB24(void) static bool8 sub_811CB98(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3463,7 +3471,7 @@ static bool8 sub_811CB98(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3476,18 +3484,18 @@ static bool8 sub_811CB98(void) static bool8 sub_811CC08(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7EC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3496,7 +3504,7 @@ static bool8 sub_811CC08(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3509,18 +3517,18 @@ static bool8 sub_811CC08(void) static bool8 sub_811CC90(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D830(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3528,7 +3536,7 @@ static bool8 sub_811CC90(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3541,12 +3549,12 @@ static bool8 sub_811CC90(void) static bool8 sub_811CD14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3557,12 +3565,12 @@ static bool8 sub_811CD14(void) static bool8 sub_811CD54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3573,12 +3581,12 @@ static bool8 sub_811CD54(void) static bool8 sub_811CD94(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(6); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3589,12 +3597,12 @@ static bool8 sub_811CD94(void) static bool8 sub_811CDD4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(7); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3605,12 +3613,12 @@ static bool8 sub_811CDD4(void) static bool8 sub_811CE14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3621,12 +3629,12 @@ static bool8 sub_811CE14(void) static bool8 sub_811CE54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(9); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3637,22 +3645,22 @@ static bool8 sub_811CE54(void) static bool8 sub_811CE94(void) { - gUnknown_0203A11C = Alloc(sizeof(*gUnknown_0203A11C)); - if (!gUnknown_0203A11C) + sUnknown_0203A11C = Alloc(sizeof(*sUnknown_0203A11C)); + if (!sUnknown_0203A11C) return FALSE; - gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = NULL; - gUnknown_0203A11C->unk2DC = NULL; - gUnknown_0203A11C->unk2E0 = NULL; - gUnknown_0203A11C->unk2E4 = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2F0 = NULL; - gUnknown_0203A11C->unk2F4 = NULL; - gUnknown_0203A11C->unk2F8 = NULL; - gUnknown_0203A11C->unk2FC = NULL; - gUnknown_0203A11C->unkA = sub_811BC70(); + sUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk2D8 = NULL; + sUnknown_0203A11C->unk2DC = NULL; + sUnknown_0203A11C->unk2E0 = NULL; + sUnknown_0203A11C->unk2E4 = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2F0 = NULL; + sUnknown_0203A11C->unk2F4 = NULL; + sUnknown_0203A11C->unk2F8 = NULL; + sUnknown_0203A11C->unk2FC = NULL; + sUnknown_0203A11C->unkA = FooterHasFourOptions_(); return TRUE; } @@ -3684,7 +3692,7 @@ static void sub_811CF64(void) static void sub_811CFCC(void) { int xOffset; - const u8 *titleText = sub_811BA88(); + const u8 *titleText = GetTitleText(); if (!titleText) return; @@ -3776,19 +3784,19 @@ static void sub_811D214(u8 initialCursorPos) static void sub_811D230(void) { - u8 var0; + u8 frameId; struct WindowTemplate template; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); template.bg = 3; - template.tilemapLeft = gUnknown_08597C30[var0].unk0_0; - template.tilemapTop = gUnknown_08597C30[var0].unk0_5; - template.width = gUnknown_08597C30[var0].unk1; - template.height = gUnknown_08597C30[var0].unk2; + template.tilemapLeft = sPhraseFrameDimensions[frameId].left; + template.tilemapTop = sPhraseFrameDimensions[frameId].top; + template.width = sPhraseFrameDimensions[frameId].width; + template.height = sPhraseFrameDimensions[frameId].height; template.paletteNum = 11; template.baseBlock = 0x6C; - gUnknown_0203A11C->windowId = AddWindow(&template); - PutWindowTilemap(gUnknown_0203A11C->windowId); + sUnknown_0203A11C->windowId = AddWindow(&template); + PutWindowTilemap(sUnknown_0203A11C->windowId); } static void sub_811D2C8(void) @@ -3797,27 +3805,27 @@ static void sub_811D2C8(void) u16 *ecWord; u8 numColumns, numRows; u8 *str; - int var0; + int frameId; int var1; int i, j, k; - ecWord = sub_811BA94(); - numColumns = sub_811BAAC(); - numRows = sub_811BAA0(); - var0 = sub_811BA68(); + ecWord = GetEasyChatWordBuffer(); + numColumns = GetNumColumns(); + numRows = GetNumRows(); + frameId = GetEasyChatScreenFrameId(); var1 = 0; - if (var0 == 7) + if (frameId == 7) var1 = 1; - FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); + FillWindowPixelBuffer(sUnknown_0203A11C->windowId, 0x11); for (i = 0; i < numRows; i++) { memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); if (var1) spC[2] = 6; - str = gUnknown_0203A11C->unkB; - gUnknown_0203A11C->unkB[0] = EOS; + str = sUnknown_0203A11C->unkB; + sUnknown_0203A11C->unkB[0] = EOS; str = StringAppend(str, spC); for (j = 0; j < numColumns; j++) { @@ -3846,7 +3854,7 @@ static void sub_811D2C8(void) spC[2] = 3; str = StringAppend(str, spC); - if (var0 == 2 || var0 == 7 || var0 == 8) + if (frameId == 2 || frameId == 7 || frameId == 8) { if (j == 0 && i == 4) break; @@ -3854,27 +3862,27 @@ static void sub_811D2C8(void) } *str = EOS; - sub_811D028(gUnknown_0203A11C->windowId, 1, gUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + sub_811D028(sUnknown_0203A11C->windowId, 1, sUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); } - CopyWindowToVram(gUnknown_0203A11C->windowId, 3); + CopyWindowToVram(sUnknown_0203A11C->windowId, 3); } static void sub_811D424(u16 *tilemap) { - u8 var0; + u8 frameId; int right, bottom; int x, y; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); CpuFastFill(0, tilemap, BG_SCREEN_SIZE); - if (var0 == 2 || var0 == 8) + if (frameId == 2 || frameId == 8) { - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; - for (y = gUnknown_08597C30[var0].unk0_5; y < bottom; y++) + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; + for (y = sPhraseFrameDimensions[frameId].top; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3885,10 +3893,10 @@ static void sub_811D424(u16 *tilemap) } else { - y = gUnknown_08597C30[var0].unk0_5 - 1; - x = gUnknown_08597C30[var0].unk0_0 - 1; - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + y = sPhraseFrameDimensions[frameId].top - 1; + x = sPhraseFrameDimensions[frameId].left - 1; + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; tilemap[y * 32 + x] = 0x1001; x++; for (; x < right; x++) @@ -3898,7 +3906,7 @@ static void sub_811D424(u16 *tilemap) y++; for (; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3907,7 +3915,7 @@ static void sub_811D424(u16 *tilemap) tilemap[y* 32 + x] = 0x1007; } - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1009; x++; for (; x < right; x++) @@ -3919,12 +3927,12 @@ static void sub_811D424(u16 *tilemap) static void sub_811D60C(void) { - u8 var0; + u8 frameId; u16 *tilemap; tilemap = GetBgTilemapBuffer(3); - var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 2: tilemap += 0x2A0; @@ -4072,11 +4080,11 @@ static void sub_811D864(u8 arg0, u8 arg1) easyChatWord = sub_811F578(var0++); if (easyChatWord != 0xFFFF) { - CopyEasyChatWordPadded(gUnknown_0203A11C->unkCC, easyChatWord, 0); + CopyEasyChatWordPadded(sUnknown_0203A11C->unkCC, easyChatWord, 0); if (!sub_811BF88(easyChatWord)) - sub_811D028(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); + sub_811D028(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); else - sub_811D058(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); + sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); } } @@ -4122,48 +4130,48 @@ static void sub_811D9CC(int arg0) switch (arg0) { case 0: - gUnknown_0203A11C->unk6 = 0; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 0; + sUnknown_0203A11C->unk7 = 10; break; case 1: - gUnknown_0203A11C->unk6 = 9; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 9; + sUnknown_0203A11C->unk7 = 0; break; case 2: - gUnknown_0203A11C->unk6 = 11; - gUnknown_0203A11C->unk7 = 17; + sUnknown_0203A11C->unk6 = 11; + sUnknown_0203A11C->unk7 = 17; break; case 3: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 0; break; case 4: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 10; break; case 5: - gUnknown_0203A11C->unk6 = 18; - gUnknown_0203A11C->unk7 = 22; + sUnknown_0203A11C->unk6 = 18; + sUnknown_0203A11C->unk7 = 22; break; case 6: - gUnknown_0203A11C->unk6 = 22; - gUnknown_0203A11C->unk7 = 18; + sUnknown_0203A11C->unk6 = 22; + sUnknown_0203A11C->unk7 = 18; break; } - gUnknown_0203A11C->unk8 = gUnknown_0203A11C->unk6 < gUnknown_0203A11C->unk7 ? 1 : -1; + sUnknown_0203A11C->unk8 = sUnknown_0203A11C->unk6 < sUnknown_0203A11C->unk7 ? 1 : -1; } static bool8 sub_811DAA4(void) { u8 var0, var1; - if (gUnknown_0203A11C->unk6 == gUnknown_0203A11C->unk7) + if (sUnknown_0203A11C->unk6 == sUnknown_0203A11C->unk7) return FALSE; - gUnknown_0203A11C->unk6 += gUnknown_0203A11C->unk8; - sub_811DADC(gUnknown_0203A11C->unk6); - var0 = gUnknown_0203A11C->unk6; - var1 = gUnknown_0203A11C->unk7; + sUnknown_0203A11C->unk6 += sUnknown_0203A11C->unk8; + sub_811DADC(sUnknown_0203A11C->unk6); + var0 = sUnknown_0203A11C->unk6; + var1 = sUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } @@ -4244,7 +4252,7 @@ static void sub_811DC28(int left, int top, int width, int height) int bottom; int x, y; - tilemap = gUnknown_0203A11C->unk300; + tilemap = sUnknown_0203A11C->unk300; right = left + width - 1; bottom = top + height - 1; x = left; @@ -4278,7 +4286,7 @@ static void sub_811DC28(int left, int top, int width, int height) static void sub_811DD84(void) { ChangeBgY(2, 0x800, 0); - gUnknown_0203A11C->unk2CE = 0; + sUnknown_0203A11C->unk2CE = 0; } static void sub_811DDAC(s16 arg0, u8 arg1) @@ -4287,15 +4295,15 @@ static void sub_811DDAC(s16 arg0, u8 arg1) s16 var0; bgY = GetBgY(2); - gUnknown_0203A11C->unk2CE += arg0; + sUnknown_0203A11C->unk2CE += arg0; var0 = arg0 * 16; bgY += var0 << 8; if (arg1) { - gUnknown_0203A11C->unk2D0 = bgY; - gUnknown_0203A11C->unk2D4 = arg1 * 256; + sUnknown_0203A11C->unk2D0 = bgY; + sUnknown_0203A11C->unk2D4 = arg1 * 256; if (var0 < 0) - gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + sUnknown_0203A11C->unk2D4 = -sUnknown_0203A11C->unk2D4; } else { @@ -4308,20 +4316,20 @@ static bool8 sub_811DE10(void) int bgY; bgY = GetBgY(2); - if (bgY == gUnknown_0203A11C->unk2D0) + if (bgY == sUnknown_0203A11C->unk2D0) { return FALSE; } else { - ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + ChangeBgY(2, sUnknown_0203A11C->unk2D4, 1); return TRUE; } } static int sub_811DE48(void) { - return gUnknown_0203A11C->unk2CE; + return sUnknown_0203A11C->unk2CE; } static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) @@ -4336,19 +4344,19 @@ static void sub_811DE90(void) { u32 i; - LoadSpriteSheets(sUnknown_08597CA0); - LoadSpritePalettes(sUnknown_08597CC0); + LoadSpriteSheets(sEasyChatSpriteSheets); + LoadSpritePalettes(sEasyChatSpritePalettes); for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); } static void sub_811DEC4(void) { - u8 var0 = sub_811BA68(); - int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; - int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 frameId = GetEasyChatScreenFrameId(); + int x = sPhraseFrameDimensions[frameId].left * 8 + 13; + int y = sPhraseFrameDimensions[frameId].top * 8 + 8; u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); - gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; gSprites[spriteId].data[1] = 1; } @@ -4367,44 +4375,44 @@ static void sub_811DF28(struct Sprite *sprite) static void sub_811DF60(u8 x, u8 y) { - gUnknown_0203A11C->unk2D8->pos1.x = x; - gUnknown_0203A11C->unk2D8->pos1.y = y; - gUnknown_0203A11C->unk2D8->pos2.x = 0; - gUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->pos1.x = x; + sUnknown_0203A11C->unk2D8->pos1.y = y; + sUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; } static void sub_811DF90(void) { - gUnknown_0203A11C->unk2D8->data[0] = 0; - gUnknown_0203A11C->unk2D8->data[1] = 0; - gUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->data[1] = 0; + sUnknown_0203A11C->unk2D8->pos2.x = 0; } static void sub_811DFB0(void) { - gUnknown_0203A11C->unk2D8->data[1] = 1; + sUnknown_0203A11C->unk2D8->data[1] = 1; } static void sub_811DFC8(void) { u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; - gUnknown_0203A11C->unk2DC->pos2.x = 32; + sUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + sUnknown_0203A11C->unk2DC->pos2.x = 32; spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E0->pos2.x = -32; + sUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E0->pos2.x = -32; - gUnknown_0203A11C->unk2DC->hFlip = 1; + sUnknown_0203A11C->unk2DC->hFlip = 1; sub_811E088(); } static void sub_811E050(void) { - DestroySprite(gUnknown_0203A11C->unk2DC); - gUnknown_0203A11C->unk2DC = NULL; - DestroySprite(gUnknown_0203A11C->unk2E0); - gUnknown_0203A11C->unk2E0 = NULL; + DestroySprite(sUnknown_0203A11C->unk2DC); + sUnknown_0203A11C->unk2DC = NULL; + DestroySprite(sUnknown_0203A11C->unk2E0); + sUnknown_0203A11C->unk2E0 = NULL; } static void sub_811E088(void) @@ -4412,7 +4420,7 @@ static void sub_811E088(void) u8 var0; u8 var1; - if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + if (sUnknown_0203A11C->unk2DC && sUnknown_0203A11C->unk2E0) { sub_811BB9C(&var0, &var1); if (!sub_811BBB0()) @@ -4426,23 +4434,23 @@ static void sub_811E0EC(s8 arg0, s8 arg1) { if (arg0 != -1) { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); - gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 0); + sUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); - gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 0); + sUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } @@ -4466,32 +4474,32 @@ static void sub_811E1A4(s8 arg0, s8 arg1) anim = 3; } - StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); - gUnknown_0203A11C->unk2DC->pos1.x = x; - gUnknown_0203A11C->unk2DC->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, anim); + sUnknown_0203A11C->unk2DC->pos1.x = x; + sUnknown_0203A11C->unk2DC->pos1.y = y; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); - gUnknown_0203A11C->unk2E0->pos1.x = x; - gUnknown_0203A11C->unk2E0->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, anim); + sUnknown_0203A11C->unk2E0->pos1.x = x; + sUnknown_0203A11C->unk2E0->pos1.y = y; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } static void sub_811E288(void) { u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); - gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; - gUnknown_0203A11C->unk2E4->oam.priority = 2; + sUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + sUnknown_0203A11C->unk2E4->oam.priority = 2; sub_811E30C(); } @@ -4518,58 +4526,58 @@ static void sub_811E30C(void) static void sub_811E34C(u8 x, u8 y) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - gUnknown_0203A11C->unk2E4->pos1.x = x; - gUnknown_0203A11C->unk2E4->pos1.y = y; - gUnknown_0203A11C->unk2E4->pos2.x = 0; - gUnknown_0203A11C->unk2E4->data[0] = 0; + sUnknown_0203A11C->unk2E4->pos1.x = x; + sUnknown_0203A11C->unk2E4->pos1.y = y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } } static void sub_811E380(void) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - DestroySprite(gUnknown_0203A11C->unk2E4); - gUnknown_0203A11C->unk2E4 = NULL; + DestroySprite(sUnknown_0203A11C->unk2E4); + sUnknown_0203A11C->unk2E4 = NULL; } } static void sub_811E3AC(void) { u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); - gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E8->pos2.x = -64; + sUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E8->pos2.x = -64; spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); - gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; - gUnknown_0203A11C->unk9 = 0; + sUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + sUnknown_0203A11C->unk9 = 0; } static bool8 sub_811E418(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - gUnknown_0203A11C->unk2E8->pos2.x += 8; - if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + sUnknown_0203A11C->unk2E8->pos2.x += 8; + if (sUnknown_0203A11C->unk2E8->pos2.x >= 0) { - gUnknown_0203A11C->unk2E8->pos2.x = 0; + sUnknown_0203A11C->unk2E8->pos2.x = 0; if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); - gUnknown_0203A11C->unk9++; + sUnknown_0203A11C->unk9++; } break; case 1: - if (gUnknown_0203A11C->unk2EC->animEnded) + if (sUnknown_0203A11C->unk2EC->animEnded) { - gUnknown_0203A11C->unk9 = 2; + sUnknown_0203A11C->unk9 = 2; return FALSE; } } @@ -4579,29 +4587,29 @@ static bool8 sub_811E418(void) static void sub_811E4AC(void) { - gUnknown_0203A11C->unk9 = 0; - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); + sUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 3); } static bool8 sub_811E4D0(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - if (gUnknown_0203A11C->unk2EC->animEnded) - gUnknown_0203A11C->unk9 = 1; + if (sUnknown_0203A11C->unk2EC->animEnded) + sUnknown_0203A11C->unk9 = 1; break; case 1: - gUnknown_0203A11C->unk2E8->pos2.x -= 8; - if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + sUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (sUnknown_0203A11C->unk2E8->pos2.x <= -64) { - DestroySprite(gUnknown_0203A11C->unk2EC); - DestroySprite(gUnknown_0203A11C->unk2E8); - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk9++; + DestroySprite(sUnknown_0203A11C->unk2EC); + DestroySprite(sUnknown_0203A11C->unk2E8); + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk9++; return FALSE; } } @@ -4611,33 +4619,33 @@ static bool8 sub_811E4D0(void) static void sub_811E55C(void) { - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 4); } static void sub_811E578(void) { if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); } static bool8 sub_811E5B8(void) { - return !gUnknown_0203A11C->unk2EC->animEnded; + return !sUnknown_0203A11C->unk2EC->animEnded; } static void sub_811E5D4(void) { u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2F4->vFlip = 1; + sUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F4->vFlip = 1; } sub_811E6B0(); @@ -4645,27 +4653,27 @@ static void sub_811E5D4(void) static void sub_811E64C(void) { - gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); } static void sub_811E6B0(void) { - gUnknown_0203A11C->unk2F0->invisible = 1; - gUnknown_0203A11C->unk2F4->invisible = 1; + sUnknown_0203A11C->unk2F0->invisible = 1; + sUnknown_0203A11C->unk2F4->invisible = 1; } static void sub_811E6E0(int arg0) { if (!arg0) { - gUnknown_0203A11C->unk2F0->pos1.x = 96; - gUnknown_0203A11C->unk2F4->pos1.x = 96; + sUnknown_0203A11C->unk2F0->pos1.x = 96; + sUnknown_0203A11C->unk2F4->pos1.x = 96; } else { - gUnknown_0203A11C->unk2F0->pos1.x = 120; - gUnknown_0203A11C->unk2F4->pos1.x = 120; + sUnknown_0203A11C->unk2F0->pos1.x = 120; + sUnknown_0203A11C->unk2F4->pos1.x = 120; } } @@ -4673,13 +4681,13 @@ static void sub_811E720(void) { u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; - StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + sUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(sUnknown_0203A11C->unk2FC, 1); } sub_811E7F8(); @@ -4687,14 +4695,14 @@ static void sub_811E720(void) static void sub_811E794(void) { - gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); } static void sub_811E7F8(void) { - gUnknown_0203A11C->unk2F8->invisible = 1; - gUnknown_0203A11C->unk2FC->invisible = 1; + sUnknown_0203A11C->unk2F8->invisible = 1; + sUnknown_0203A11C->unk2FC->invisible = 1; } static void sub_811E828(void) @@ -4702,22 +4710,22 @@ static void sub_811E828(void) int graphicsId; u8 spriteId; - switch (sub_811BCBC()) + switch (GetDisplayedPersonType()) { - case 0: + case EASY_CHAT_PERSON_REPORTER_MALE: graphicsId = EVENT_OBJ_GFX_REPORTER_M; break; - case 1: + case EASY_CHAT_PERSON_REPORTER_FEMALE: graphicsId = EVENT_OBJ_GFX_REPORTER_F; break; - case 2: + case EASY_CHAT_PERSON_BOY: graphicsId = EVENT_OBJ_GFX_BOY_1; break; default: return; } - if (sub_811BA68() != 4) + if (GetEasyChatScreenFrameId() != 4) return; spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); @@ -4741,10 +4749,10 @@ static void sub_811E828(void) } } -int sub_811E8E4(void) +int GetFooterIndex(void) { - u8 var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + u8 frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 1: return 1; @@ -4757,11 +4765,11 @@ int sub_811E8E4(void) } } -static int sub_811E920(int arg0) +static int GetFooterOptionXOffset(int option) { - int var0 = sub_811E8E4(); - if (var0 < 3) - return sUnknown_08597E60[var0][arg0] + 4; + int footerIndex = GetFooterIndex(); + if (footerIndex < 3) + return sFooterOptionXOffsets[footerIndex][option] + 4; else return 0; } @@ -4771,8 +4779,8 @@ static void sub_811E948(void) int i; u16 windowId; struct WindowTemplate template; - int var0 = sub_811E8E4(); - if (var0 == 3) + int footerId = GetFooterIndex(); + if (footerId == 3) return; template.bg = 3; @@ -4786,10 +4794,10 @@ static void sub_811E948(void) FillWindowPixelBuffer(windowId, 0x11); for (i = 0; i < 4; i++) { - const u8 *str = sFooterTextOptions[var0][i]; + const u8 *str = sFooterTextOptions[footerId][i]; if (str) { - int x = sUnknown_08597E60[var0][i]; + int x = sFooterOptionXOffsets[footerId][i]; sub_811D028(windowId, 1, str, x, 1, 0, NULL); } } @@ -5075,13 +5083,13 @@ void sub_811EECC(void) switch (gSpecialVar_0x8004) { case 0: - easyChatWords = gSaveBlock1Ptr->unk2BB0; + easyChatWords = gSaveBlock1Ptr->easyChatProfile; columns = 2; rows = 2; break; case 1: - easyChatWords = gSaveBlock1Ptr->unk2BBC; - if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + easyChatWords = gSaveBlock1Ptr->easyChatBattleStart; + if (sub_811EDC4(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) { columns = 2; rows = 3; @@ -5093,12 +5101,12 @@ void sub_811EECC(void) } break; case 2: - easyChatWords = gSaveBlock1Ptr->unk2BC8; + easyChatWords = gSaveBlock1Ptr->easyChatBattleWon; columns = 3; rows = 2; break; case 3: - easyChatWords = gSaveBlock1Ptr->unk2BD4; + easyChatWords = gSaveBlock1Ptr->easyChatBattleLost; columns = 3; rows = 2; break; @@ -5237,16 +5245,16 @@ void InitEasyChatPhrases(void) u16 i, j; for (i = 0; i < 4; i++) - gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; + gSaveBlock1Ptr->easyChatProfile[i] = sDefaultProfileWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; + gSaveBlock1Ptr->easyChatBattleStart[i] = sDefaultBattleStartWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; + gSaveBlock1Ptr->easyChatBattleWon[i] = sUnknown_0859E640[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; + gSaveBlock1Ptr->easyChatBattleLost[i] = sUnknown_0859E64C[i]; for (i = 0; i < MAIL_COUNT; i++) { @@ -5264,8 +5272,8 @@ void InitEasyChatPhrases(void) static bool8 sub_811F28C(void) { - gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); - if (!gUnknown_0203A120) + sUnknown_0203A120 = Alloc(sizeof(*sUnknown_0203A120)); + if (!sUnknown_0203A120) return FALSE; sub_811F2D4(); @@ -5275,46 +5283,46 @@ static bool8 sub_811F28C(void) static void sub_811F2B8(void) { - if (gUnknown_0203A120) - FREE_AND_SET_NULL(gUnknown_0203A120); + if (sUnknown_0203A120) + FREE_AND_SET_NULL(sUnknown_0203A120); } static void sub_811F2D4(void) { int i; - gUnknown_0203A120->unk0 = 0; + sUnknown_0203A120->unk0 = 0; if (GetNationalPokedexCount(FLAG_GET_SEEN)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = i; if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; } if (FlagGet(FLAG_SYS_HIPSTER_MEET)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; if (IsNationalPokedexEnabled()) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; } static u8 sub_811F3AC(void) { - return gUnknown_0203A120->unk0; + return sUnknown_0203A120->unk0; } static u8 sub_811F3B8(u8 index) { - if (index >= gUnknown_0203A120->unk0) + if (index >= sUnknown_0203A120->unk0) return EC_NUM_GROUPS; else - return gUnknown_0203A120->unk2[index]; + return sUnknown_0203A120->unk2[index]; } u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) @@ -5362,7 +5370,7 @@ static void sub_811F46C(void) { numWords = gEasyChatWordsByLetterPointers[i].numWords; words = gEasyChatWordsByLetterPointers[i].words; - gUnknown_0203A120->unk2E[i] = 0; + sUnknown_0203A120->unk2E[i] = 0; index = 0; for (j = 0; j < numWords; j++) { @@ -5382,8 +5390,8 @@ static void sub_811F46C(void) { if (sub_811F860(words[k])) { - gUnknown_0203A120->unk64[i][index++] = words[k]; - gUnknown_0203A120->unk2E[i]++; + sUnknown_0203A120->unk64[i][index++] = words[k]; + sUnknown_0203A120->unk2E[i]++; break; } } @@ -5396,22 +5404,22 @@ static void sub_811F46C(void) static void sub_811F548(int arg0, u16 groupId) { if (!arg0) - gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); else - gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); } static u16 sub_811F578(u16 arg0) { - if (arg0 >= gUnknown_0203A120->unk3BA0) + if (arg0 >= sUnknown_0203A120->unk3BA0) return 0xFFFF; else - return gUnknown_0203A120->unk3984[arg0]; + return sUnknown_0203A120->unk3984[arg0]; } static u16 sub_811F5B0(void) { - return gUnknown_0203A120->unk3BA0; + return sUnknown_0203A120->unk3BA0; } static u16 sub_811F5C4(u16 groupId) @@ -5429,7 +5437,7 @@ static u16 sub_811F5C4(u16 groupId) for (i = 0, totalWords = 0; i < numWords; i++) { if (sub_811F764(list[i], groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); } return totalWords; @@ -5441,7 +5449,7 @@ static u16 sub_811F5C4(u16 groupId) { u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; if (sub_811F764(alphabeticalOrder, groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); } return totalWords; @@ -5453,8 +5461,8 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) u16 i; u16 totalWords; - for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) - gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + for (i = 0, totalWords = 0; i < sUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + sUnknown_0203A120->unk3984[totalWords++] = sUnknown_0203A120->unk64[alphabeticalGroup][i]; return totalWords; } @@ -5462,9 +5470,9 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) static bool8 sub_811F72C(u8 arg0) { int i; - for (i = 0; i < gUnknown_0203A120->unk0; i++) + for (i = 0; i < sUnknown_0203A120->unk0; i++) { - if (gUnknown_0203A120->unk2[i] == arg0) + if (sUnknown_0203A120->unk2[i] == arg0) return TRUE; } diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 3d4f8a90d..dc38d8848 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -695,7 +695,7 @@ u8 sub_818E2D8(void) void sub_818E2FC(void) { - easy_chat_input_maybe(); + ShowEasyChatScreen(); } bool8 sub_818E308(void) @@ -763,8 +763,8 @@ void sub_818E430(void) void sub_818E47C(void) { - gSpecialVar_0x8004 = 0x11; - easy_chat_input_maybe(); + gSpecialVar_0x8004 = EASY_CHAT_TYPE_QUIZ_SET_QUESTION; + ShowEasyChatScreen(); } void sub_818E490(void) diff --git a/src/party_menu.c b/src/party_menu.c index 645390aff..4103c212c 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -63,6 +63,7 @@ #include "window.h" #include "constants/battle.h" #include "constants/battle_frontier.h" +#include "constants/easy_chat.h" #include "constants/field_effects.h" #include "constants/flags.h" #include "constants/items.h" @@ -4211,7 +4212,11 @@ static void sub_81B452C(void) { u8 mail = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_MAIL); - sub_811A20C(4, gSaveBlock1Ptr->mail[mail].words, sub_81B4578, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_MAIL, + gSaveBlock1Ptr->mail[mail].words, + sub_81B4578, + EASY_CHAT_PERSON_DISPLAY_NONE); } static void sub_81B4578(void) @@ -6385,7 +6390,11 @@ static void sub_81B814C(void) sub_81B1DB8(&gPlayerParty[gUnknown_0203CEC8.unk9], gUnknown_0203CEC8.unkC); mail = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_MAIL); - sub_811A20C(4, gSaveBlock1Ptr->mail[mail].words, sub_81B81A8, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_MAIL, + gSaveBlock1Ptr->mail[mail].words, + sub_81B81A8, + EASY_CHAT_PERSON_DISPLAY_NONE); } static void sub_81B81A8(void) diff --git a/src/trainer_card.c b/src/trainer_card.c index 49a62284f..4019ef0bd 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -695,7 +695,7 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType) trainerCard->money = GetMoney(&gSaveBlock1Ptr->money); for (i = 0; i < 4; i++) - trainerCard->var_28[i] = gSaveBlock1Ptr->unk2BB0[i]; + trainerCard->var_28[i] = gSaveBlock1Ptr->easyChatProfile[i]; StringCopy(trainerCard->playerName, gSaveBlock2Ptr->playerName); diff --git a/src/tv.c b/src/tv.c index 248721083..f282b09f0 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2448,8 +2448,8 @@ void sub_80EE72C(void) show->trainerFanClub.kind = TVSHOW_TRAINER_FAN_CLUB; show->trainerFanClub.active = FALSE; StringCopy(show->trainerFanClub.playerName, gSaveBlock2Ptr->playerName); - show->trainerFanClub.words[0] = gSaveBlock1Ptr->unk2BB0[0]; - show->trainerFanClub.words[1] = gSaveBlock1Ptr->unk2BB0[1]; + show->trainerFanClub.words[0] = gSaveBlock1Ptr->easyChatProfile[0]; + show->trainerFanClub.words[1] = gSaveBlock1Ptr->easyChatProfile[1]; tv_store_id_3x(show); show->trainerFanClub.language = gGameLanguage; } -- cgit v1.2.3 From 4137dd7b0bd6dd661831856e4ca30b958d4beac9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 14:42:32 -0500 Subject: Identify unused, never read, and never written vars --- src/event_data.c | 14 +++++++------- src/field_control_avatar.c | 2 +- src/field_specials.c | 16 ++++++++-------- src/overworld.c | 6 ++++-- 4 files changed, 20 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/event_data.c b/src/event_data.c index e75c37773..5ca288e7b 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -131,13 +131,13 @@ void sub_809D4D8(void) void sub_809D570(void) { VarSet(VAR_EVENT_PICHU_SLOT, 0); - VarSet(VAR_0x40DE, 0); - VarSet(VAR_0x40DF, 0); - VarSet(VAR_0x40E0, 0); - VarSet(VAR_0x40E1, 0); - VarSet(VAR_0x40E2, 0); - VarSet(VAR_0x40E3, 0); - VarSet(VAR_0x40E4, 0); + VarSet(VAR_NEVER_READ_0x40DE, 0); + VarSet(VAR_NEVER_READ_0x40DF, 0); + VarSet(VAR_NEVER_READ_0x40E0, 0); + VarSet(VAR_NEVER_READ_0x40E1, 0); + VarSet(VAR_NEVER_READ_0x40E2, 0); + VarSet(VAR_NEVER_READ_0x40E3, 0); + VarSet(VAR_NEVER_READ_0x40E4, 0); } void DisableResetRTC(void) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 90f7f4d5e..7bb2b257d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -557,7 +557,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) ScriptContext1_SetupScript(EventScript_EggHatch); return TRUE; } - if (sub_813B3B0() == TRUE) + if (UnusualWeatherHasExpired() == TRUE) { ScriptContext1_SetupScript(UnusualWeather_EventScript_EndEventAndCleanup_1); return TRUE; diff --git a/src/field_specials.c b/src/field_specials.c index a5edb0122..7bfce8dd9 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3424,7 +3424,7 @@ bool8 sub_813B260(void) void CreateUnusualWeatherEvent(void) { u16 randomValue = Random(); - VarSet(VAR_0x4038, 0); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0); if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { @@ -3466,12 +3466,12 @@ bool32 GetUnusualWeatherMapNameAndType(void) } } -bool8 sub_813B3B0(void) +bool8 UnusualWeatherHasExpired(void) { // Duplicate array. static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var1 = VarGet(VAR_0x4038); + u16 steps = VarGet(VAR_UNUSUAL_WEATHER_STEP_COUNTER); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); if (unusualWeather == UNUSUAL_WEATHER_NONE) @@ -3479,9 +3479,9 @@ bool8 sub_813B3B0(void) return FALSE; } - if (++var1 > 999) + if (++steps > 999) { - VarSet(VAR_0x4038, 0); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0); if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) { switch (gSaveBlock1Ptr->location.mapNum) @@ -3491,7 +3491,7 @@ bool8 sub_813B3B0(void) case MAP_NUM(MARINE_CAVE_END): case MAP_NUM(TERRA_CAVE_ENTRANCE): case MAP_NUM(TERRA_CAVE_END): - VarSet(VAR_0x4039, 1); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1); return FALSE; default: break; @@ -3506,7 +3506,7 @@ bool8 sub_813B3B0(void) case MAP_NUM(UNDERWATER5): case MAP_NUM(UNDERWATER6): case MAP_NUM(UNDERWATER7): - VarSet(VAR_0x4039, 1); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1); return FALSE; default: break; @@ -3526,7 +3526,7 @@ bool8 sub_813B3B0(void) } else { - VarSet(VAR_0x4038, var1); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, steps); return FALSE; } } diff --git a/src/overworld.c b/src/overworld.c index edc4d402c..4206be448 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -408,9 +408,11 @@ static void Overworld_ResetStateAfterWhiteOut(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - if (VarGet(VAR_0x4039) == 1) + // If you were defeated by Kyogre/Groudon and the step counter has + // maxed out, end the unusual weather. + if (VarGet(VAR_SHOULD_END_UNUSUAL_WEATHER) == 1) { - VarSet(VAR_0x4039, 0); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 0); VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); } } -- cgit v1.2.3 From 648fc3d4f33b0df553b0fd3737843a1495351993 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 15:18:56 -0500 Subject: Name more unknown vars --- src/field_specials.c | 2 +- src/lottery_corner.c | 2 +- src/overworld.c | 6 +++--- src/secret_base.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 7bfce8dd9..a07e987eb 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3580,7 +3580,7 @@ bool32 sub_813B4E0(void) bool32 sub_813B514(void) { - if (!VarGet(VAR_0x403F)) + if (!VarGet(VAR_ALWAYS_ZERO_0x403F)) { return FALSE; } diff --git a/src/lottery_corner.c b/src/lottery_corner.c index bd7d17ef7..bb3bb7a5c 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -27,7 +27,7 @@ void ResetLotteryCorner(void) u16 rand = Random(); SetLotteryNumber((Random() << 16) | rand); - VarSet(VAR_POKELOT_PRIZE, 0); + VarSet(VAR_POKELOT_PRIZE_ITEM, 0); } void SetRandomLotteryNumber(u16 i) diff --git a/src/overworld.c b/src/overworld.c index 4206be448..8ca10a33b 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1018,7 +1018,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) case MAP_NUM(ROUTE128): return TRUE; default: - if (VarGet(VAR_0x405E) < 4) + if (VarGet(VAR_RAYQUAZA_STATE) < 4) return FALSE; switch (warp->mapNum) { @@ -1059,9 +1059,9 @@ static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp) static bool16 IsInflitratedSpaceCenter(struct WarpData *warp) { - if (VarGet(VAR_0x405D) == 0) + if (VarGet(VAR_MOSSDEEP_STATE) == 0) return FALSE; - else if (VarGet(VAR_0x405D) > 2) + else if (VarGet(VAR_MOSSDEEP_STATE) > 2) return FALSE; else if (warp->mapGroup != MAP_GROUP(MOSSDEEP_CITY_SPACE_CENTER_1F)) return FALSE; diff --git a/src/secret_base.c b/src/secret_base.c index adcab9cbc..7ff83dec8 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -407,7 +407,7 @@ void sub_80E9068(void) bool8 sub_80E909C(void) { - if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_0x4097) == 0) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_SECRET_BASE_SHOULD_BE_INIT) == 0) { return FALSE; } @@ -494,7 +494,7 @@ void sub_80E9238(u8 flagIn) sub_80E8CB0(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | 0xc00); } - else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) + else if (flagIn == 1 && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) { sub_80E8CB0(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | 0xc00); -- cgit v1.2.3 From e77e7844ea6b6cdba1a6386f144aa712aea1807b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 20:25:09 -0500 Subject: Name several vars, document some related events --- src/mirage_tower.c | 2 +- src/overworld.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mirage_tower.c b/src/mirage_tower.c index a8dd5d9de..4f5834db1 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -317,7 +317,7 @@ void SetMirageTowerVisibility(void) u16 rand; bool8 visible; - if (VarGet(VAR_0x40CB)) + if (VarGet(VAR_ROUTE_111_STATE)) { FlagClear(FLAG_MIRAGE_TOWER_VISIBLE); return; diff --git a/src/overworld.c b/src/overworld.c index 8ca10a33b..6055c74bb 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1034,7 +1034,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) static bool16 NoMusicInSotopolisWithLegendaries(struct WarpData *warp) { - if (VarGet(VAR_0x40CA) != 1) + if (VarGet(VAR_SKY_PILLAR_STATE) != 1) return FALSE; else if (warp->mapGroup != MAP_GROUP(SOOTOPOLIS_CITY)) return FALSE; @@ -1212,7 +1212,7 @@ void TryFadeOutOldMapMusic(void) if (FlagGet(FLAG_SPECIAL_FLAG_0x4001) != TRUE && warpMusic != GetCurrentMapMusic()) { if (currentMusic == MUS_NAMINORI - && VarGet(VAR_0x40CA) == 2 + && VarGet(VAR_SKY_PILLAR_STATE) == 2 && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SOOTOPOLIS_CITY) && sWarpDestination.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) -- cgit v1.2.3 From 66f0616a2d3fd3a8e09aabf9e3ee51cd88ae474f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 21:28:34 -0500 Subject: I guess I'm documenting Trainer Hill now --- src/load_save.c | 2 +- src/main.c | 14 +++++++------- src/save.c | 6 +++--- src/trainer_hill.c | 50 +++++++++++++++++++++++++------------------------- 4 files changed, 36 insertions(+), 36 deletions(-) (limited to 'src') diff --git a/src/load_save.c b/src/load_save.c index 0d19c6dae..d71e72802 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -99,7 +99,7 @@ void MoveSaveBlocks_ResetHeap(void) hblankCB = gMain.hblankCallback; gMain.vblankCallback = NULL; gMain.hblankCallback = NULL; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; saveBlock2Copy = (struct SaveBlock2 *)(gHeap); saveBlock1Copy = (struct SaveBlock1 *)(gHeap + sizeof(struct SaveBlock2)); diff --git a/src/main.c b/src/main.c index 61c5e3386..3e282775d 100644 --- a/src/main.c +++ b/src/main.c @@ -163,7 +163,7 @@ static void UpdateLinkAndCallCallbacks(void) static void InitMainCallbacks(void) { gMain.vblankCounter1 = 0; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); @@ -324,8 +324,8 @@ static void VBlankIntr(void) gMain.vblankCounter1++; - if (gUnknown_0203CF5C && *gUnknown_0203CF5C < 0xFFFFFFFF) - (*gUnknown_0203CF5C)++; + if (gVBlankCounterPointer && *gVBlankCounterPointer < 0xFFFFFFFF) + (*gVBlankCounterPointer)++; if (gMain.vblankCallback) gMain.vblankCallback(); @@ -393,14 +393,14 @@ static void WaitForVBlank(void) ; } -void sub_80008DC(u32 *var) +void SetVBlankCounterPointer(u32 *var) { - gUnknown_0203CF5C = var; + gVBlankCounterPointer = var; } -void sub_80008E8(void) +void ClearVBlankCounterPointer(void) { - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; } void DoSoftReset(void) diff --git a/src/save.c b/src/save.c index a22e20f0b..593ee8f2c 100644 --- a/src/save.c +++ b/src/save.c @@ -659,10 +659,10 @@ static void UpdateSaveAddresses(void) u8 HandleSavingData(u8 saveType) { u8 i; - u32 *backupVar = gUnknown_0203CF5C; + u32 *backupVar = gVBlankCounterPointer; u8 *tempAddr; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; UpdateSaveAddresses(); switch (saveType) { @@ -705,7 +705,7 @@ u8 HandleSavingData(u8 saveType) save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; } - gUnknown_0203CF5C = backupVar; + gVBlankCounterPointer = backupVar; return 0; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 42b196abd..60f67c91d 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -92,15 +92,15 @@ struct TrHillStruct2 // EWRAM static EWRAM_DATA struct TrHillStruct2 *sHillData = NULL; static EWRAM_DATA struct TrHillRoomTrainers *sRoomTrainers = NULL; -EWRAM_DATA u32 *gUnknown_0203CF5C = NULL; +EWRAM_DATA u32 *gVBlankCounterPointer = NULL; // This file's functions. -static void sub_81D581C(void); +static void TrainerHillStartChallenge(void); static void sub_81D58D8(void); static void sub_81D5924(void); static void sub_81D59D0(void); -static void sub_81D5A70(void); -static void sub_81D5AB4(void); +static void TrainerHillResumeTimer(void); +static void TrainerHillSetPlayerLost(void); static void sub_81D5AD0(void); static void sub_81D5B2C(void); static void sub_81D5BBC(void); @@ -263,12 +263,12 @@ static const u8 *const sFloorStrings[] = static void (* const sHillFunctions[])(void) = { - sub_81D581C, + TrainerHillStartChallenge, sub_81D58D8, sub_81D5924, sub_81D59D0, - sub_81D5A70, - sub_81D5AB4, + TrainerHillResumeTimer, + TrainerHillSetPlayerLost, sub_81D5AD0, sub_81D5B2C, sub_81D5BBC, @@ -371,7 +371,7 @@ void InitTrainerHillBattleStruct(void) } sRoomTrainers->facilityClass[i] = sHillData->tag.floors[sHillData->floorId].trainers[i].facilityClass; } - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); FreeDataStruct(); } @@ -425,7 +425,7 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId) FreeDataStruct(); } -static void sub_81D581C(void) +static void TrainerHillStartChallenge(void) { nullsub_2(); if (!sub_81D3B34()) @@ -434,8 +434,8 @@ static void sub_81D581C(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 0; gSaveBlock1Ptr->trainerHill.field_3D6C = 0; - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); - gSaveBlock1Ptr->trainerHill.field_3D64 = 0; + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; @@ -446,7 +446,7 @@ static void sub_81D581C(void) static void sub_81D58D8(void) { - sub_80008E8(); + ClearVBlankCounterPointer(); gSpecialVar_Result = 0; if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) gSpecialVar_Result++; @@ -483,9 +483,9 @@ static void sub_81D59D0(void) { gSpecialVar_Result = 2; } - else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.field_3D64) + else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.timer) { - SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.field_3D64); + SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.timer); gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.field_3D68; gSpecialVar_Result = 0; } @@ -497,27 +497,27 @@ static void sub_81D59D0(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 1; } -static void sub_81D5A70(void) +static void TrainerHillResumeTimer(void) { if (!gSaveBlock1Ptr->trainerHill.field_3D6E_0c) { - if (gSaveBlock1Ptr->trainerHill.field_3D64 >= HILL_MAX_TIME) - gSaveBlock1Ptr->trainerHill.field_3D64 = HILL_MAX_TIME; + if (gSaveBlock1Ptr->trainerHill.timer >= HILL_MAX_TIME) + gSaveBlock1Ptr->trainerHill.timer = HILL_MAX_TIME; else - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); } } -static void sub_81D5AB4(void) +static void TrainerHillSetPlayerLost(void) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0d = 1; + gSaveBlock1Ptr->trainerHill.hasLost = 1; } static void sub_81D5AD0(void) { - if (gSaveBlock1Ptr->trainerHill.field_3D6E_0d) + if (gSaveBlock1Ptr->trainerHill.hasLost) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0d = 0; + gSaveBlock1Ptr->trainerHill.hasLost = 0; gSpecialVar_Result = 0; } else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0e) @@ -535,7 +535,7 @@ static void sub_81D5B2C(void) { s32 total, minutes, secondsWhole, secondsFraction; - total = gSaveBlock1Ptr->trainerHill.field_3D64; + total = gSaveBlock1Ptr->trainerHill.timer; if (total >= HILL_MAX_TIME) total = HILL_MAX_TIME; @@ -1048,7 +1048,7 @@ bool32 sub_81D6534(void) static void sub_81D6568(void) { - if (gSaveBlock1Ptr->trainerHill.field_3D6E_0d) + if (gSaveBlock1Ptr->trainerHill.hasLost) gSpecialVar_Result = 0; else gSpecialVar_Result = 1; @@ -1103,7 +1103,7 @@ static u16 sub_81D6640(void) i = (i + 1) % 10; ptr = gUnknown_0862A5CC[var2][i]; - minutes = (signed)(gSaveBlock1Ptr->trainerHill.field_3D64) / (60 * 60); + minutes = (signed)(gSaveBlock1Ptr->trainerHill.timer) / (60 * 60); if (minutes < 12) id = 0; else if (minutes < 13) -- cgit v1.2.3 From 782979f1fc37c358a5c675a1c42afae9b0027805 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 22:16:01 -0500 Subject: Finish documenting trainer hill Trainer hill isn't anywhere close to done, but I figured out enough to name the VAR. That's all this PR should do. --- src/trainer_hill.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 60f67c91d..ee7e2287a 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -30,6 +30,7 @@ #include "constants/species.h" #include "constants/trainers.h" #include "constants/easy_chat.h" +#include "constants/trainer_hill.h" extern bool32 sub_81D3B34(void); @@ -101,7 +102,7 @@ static void sub_81D5924(void); static void sub_81D59D0(void); static void TrainerHillResumeTimer(void); static void TrainerHillSetPlayerLost(void); -static void sub_81D5AD0(void); +static void TrainerHillGetChallengeStatus(void); static void sub_81D5B2C(void); static void sub_81D5BBC(void); static void sub_81D5C00(void); @@ -112,7 +113,7 @@ static void sub_81D64DC(void); static void sub_81D64FC(void); static void sub_81D6518(void); static void sub_81D6568(void); -static void sub_81D65A0(void); +static void TrainerHillSetTag(void); static void SetUpDataStruct(void); static void FreeDataStruct(void); static void nullsub_2(void); @@ -269,7 +270,7 @@ static void (* const sHillFunctions[])(void) = sub_81D59D0, TrainerHillResumeTimer, TrainerHillSetPlayerLost, - sub_81D5AD0, + TrainerHillGetChallengeStatus, sub_81D5B2C, sub_81D5BBC, sub_81D5C00, @@ -280,7 +281,7 @@ static void (* const sHillFunctions[])(void) = sub_81D64FC, sub_81D6518, sub_81D6568, - sub_81D65A0, + TrainerHillSetTag, }; static const u8 *const sTagMatchStrings[] = @@ -318,7 +319,7 @@ void ResetTrainerHillResults(void) gSaveBlock2Ptr->frontier.field_EF9_1 = 0; gSaveBlock2Ptr->frontier.field_EF9_0 = 0; - gSaveBlock1Ptr->trainerHill.field_3D68 = 0; + gSaveBlock1Ptr->trainerHill.bestTime = 0; for (i = 0; i < 4; i++) SetTimerValue(&gSaveBlock1Ptr->trainerHillTimes[i], HILL_MAX_TIME); } @@ -438,7 +439,7 @@ static void TrainerHillStartChallenge(void) gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; - gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; + gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge = 0; gSaveBlock2Ptr->frontier.field_EE0 = 0; gBattleOutcome = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0a = 0; @@ -483,10 +484,10 @@ static void sub_81D59D0(void) { gSpecialVar_Result = 2; } - else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.timer) + else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.bestTime) > gSaveBlock1Ptr->trainerHill.timer) { - SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.timer); - gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.field_3D68; + SetTimerValue(&gSaveBlock1Ptr->trainerHill.bestTime, gSaveBlock1Ptr->trainerHill.timer); + gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.bestTime; gSpecialVar_Result = 0; } else @@ -513,21 +514,24 @@ static void TrainerHillSetPlayerLost(void) gSaveBlock1Ptr->trainerHill.hasLost = 1; } -static void sub_81D5AD0(void) +static void TrainerHillGetChallengeStatus(void) { if (gSaveBlock1Ptr->trainerHill.hasLost) { + // The player lost their last match. gSaveBlock1Ptr->trainerHill.hasLost = 0; - gSpecialVar_Result = 0; + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_LOST; } - else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0e) + else if (gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; - gSpecialVar_Result = 1; + // Unreachable code. Something relating to eCards? + gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge = 0; + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED; } else { - gSpecialVar_Result = 2; + // Continue playing. + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_NORMAL; } } @@ -575,7 +579,7 @@ static void sub_81D5C00(void) bool8 sub_81D5C18(void) { - if (VarGet(VAR_0x40D6) == 0) + if (VarGet(VAR_TRAINER_HILL_IS_ACTIVE) == 0) return FALSE; else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) return FALSE; @@ -1054,10 +1058,10 @@ static void sub_81D6568(void) gSpecialVar_Result = 1; } -static void sub_81D65A0(void) +static void TrainerHillSetTag(void) { gSaveBlock1Ptr->trainerHill.tag = gSpecialVar_0x8005; - gSaveBlock1Ptr->trainerHill.field_3D68 = gSaveBlock1Ptr->trainerHillTimes[gSpecialVar_0x8005]; + gSaveBlock1Ptr->trainerHill.bestTime = gSaveBlock1Ptr->trainerHillTimes[gSpecialVar_0x8005]; } static u8 sub_81D65E8(u8 arg0) -- cgit v1.2.3 From bf45b83c65026a84425e3bc1f99e269653ed8c8b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 23:54:51 -0500 Subject: Finish documenting event vars --- src/battle_setup.c | 2 +- src/event_data.c | 8 +-- src/field_control_avatar.c | 10 ++-- src/field_effect.c | 2 +- src/field_specials.c | 34 +++++------ src/fldeff_misc.c | 10 ++-- src/item.c | 4 +- src/overworld.c | 12 ++-- src/region_map.c | 4 +- src/secret_base.c | 144 ++++++++++++++++++++++----------------------- src/time_events.c | 2 +- src/tv.c | 26 ++++---- 12 files changed, 129 insertions(+), 129 deletions(-) (limited to 'src') diff --git a/src/battle_setup.c b/src/battle_setup.c index 7626420e9..40423697e 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -641,7 +641,7 @@ u8 BattleSetup_GetTerrainId(void) return BATTLE_TERRAIN_BUILDING; case MAP_TYPE_UNDERWATER: return BATTLE_TERRAIN_UNDERWATER; - case MAP_TYPE_6: + case MAP_TYPE_OCEAN_ROUTE: if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return BATTLE_TERRAIN_WATER; return BATTLE_TERRAIN_PLAIN; diff --git a/src/event_data.c b/src/event_data.c index 5ca288e7b..50628f984 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -23,8 +23,8 @@ EWRAM_DATA u16 gSpecialVar_LastTalked = 0; EWRAM_DATA u16 gSpecialVar_Facing = 0; EWRAM_DATA u16 gSpecialVar_MonBoxId = 0; EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0; -EWRAM_DATA u16 gSpecialVar_0x8014 = 0; -EWRAM_DATA static u8 gUnknown_020375FC[16] = {0}; +EWRAM_DATA u16 gSpecialVar_Unused_0x8014 = 0; +EWRAM_DATA static u8 gSpecialFlags[16] = {0}; extern u16 *const gSpecialVars[]; @@ -32,7 +32,7 @@ void InitEventData(void) { memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); memset(gSaveBlock1Ptr->vars, 0, sizeof(gSaveBlock1Ptr->vars)); - memset(gUnknown_020375FC, 0, sizeof(gUnknown_020375FC)); + memset(gSpecialFlags, 0, sizeof(gSpecialFlags)); } void ClearTempFieldEventData(void) @@ -199,7 +199,7 @@ u8 *GetFlagPointer(u16 id) else if (id < SPECIAL_FLAGS_START) return &gSaveBlock1Ptr->flags[id / 8]; else - return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8]; + return &gSpecialFlags[(id - SPECIAL_FLAGS_START) / 8]; } u8 FlagSet(u16 id) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 7bb2b257d..8a7076591 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -567,27 +567,27 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) ScriptContext1_SetupScript(IslandCave_EventScript_238EAF); return TRUE; } - if (is_tile_that_overrides_player_control() == TRUE) + if (ShouldDoWallyCall() == TRUE) { ScriptContext1_SetupScript(MauvilleCity_EventScript_1DF7BA); return TRUE; } - if (sub_8138120() == TRUE) + if (ShouldDoWinonaCall() == TRUE) { ScriptContext1_SetupScript(Route119_EventScript_1F49EC); return TRUE; } - if (sub_8138168() == TRUE) + if (ShouldDoScottCall() == TRUE) { ScriptContext1_SetupScript(LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6); return TRUE; } - if (sub_81381B0() == TRUE) + if (ShouldDoRoxanneCall() == TRUE) { ScriptContext1_SetupScript(RustboroCity_Gym_EventScript_21307B); return TRUE; } - if (sub_81381F8() == TRUE) + if (ShouldDoRivalRayquazaCall() == TRUE) { ScriptContext1_SetupScript(MossdeepCity_SpaceCenter_2F_EventScript_224175); return TRUE; diff --git a/src/field_effect.c b/src/field_effect.c index e7c0b39b9..74f7801bd 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2443,7 +2443,7 @@ static void sub_80B8410(struct Task *task) bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; - if (is_map_type_1_2_3_5_or_6(GetCurrentMapType()) == TRUE) + if (IsMapTypeOutside(GetCurrentMapType()) == TRUE) { taskId = CreateTask(sub_80B8554, 0xff); } else diff --git a/src/field_specials.c b/src/field_specials.c index a07e987eb..e603c3ebf 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -360,17 +360,17 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) return 0; } -bool32 is_tile_that_overrides_player_control(void) +bool32 ShouldDoWallyCall(void) { if (FlagGet(FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL)) { switch (gMapHeader.mapType) { - case 1: - case 2: - case 3: - case 6: - if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA) + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -387,7 +387,7 @@ bool32 is_tile_that_overrides_player_control(void) return TRUE; } -bool32 sub_8138120(void) +bool32 ShouldDoWinonaCall(void) { if (FlagGet(FLAG_REGISTER_WINONA_POKENAV)) { @@ -396,8 +396,8 @@ bool32 sub_8138120(void) case MAP_TYPE_TOWN: case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: - case MAP_TYPE_6: - if (++(*GetVarPointer(VAR_0x40F3)) < 10) + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_WINONA_CALL_STEP_COUNTER)) < 10) { return FALSE; } @@ -414,7 +414,7 @@ bool32 sub_8138120(void) return TRUE; } -bool32 sub_8138168(void) +bool32 ShouldDoScottCall(void) { if (FlagGet(FLAG_SCOTT_CALL_NATIONAL_DEX)) { @@ -424,7 +424,7 @@ bool32 sub_8138168(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F5)) < 0xA) + if (++(*GetVarPointer(VAR_SCOTT_CALL_STEP_COUNTER)) < 10) { return FALSE; } @@ -441,7 +441,7 @@ bool32 sub_8138168(void) return TRUE; } -bool32 sub_81381B0(void) +bool32 ShouldDoRoxanneCall(void) { if (FlagGet(FLAG_ENABLE_ROXANNE_FIRST_CALL)) { @@ -451,7 +451,7 @@ bool32 sub_81381B0(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA) + if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -468,7 +468,7 @@ bool32 sub_81381B0(void) return TRUE; } -bool32 sub_81381F8(void) +bool32 ShouldDoRivalRayquazaCall(void) { if (FlagGet(FLAG_DEFEATED_MAGMA_SPACE_CENTER)) { @@ -478,7 +478,7 @@ bool32 sub_81381F8(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA) + if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -1516,7 +1516,7 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(20); } @@ -1524,7 +1524,7 @@ void SetRoute119Weather(void) void SetRoute123Weather(void) { - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(21); } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index df4576a7f..d4d6075f3 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -1126,7 +1126,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x10); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x10); break; case 734: ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2); @@ -1137,7 +1137,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x20); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x20); break; case 756: gSpecialVar_Result = 1; @@ -1145,7 +1145,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; case 757: gSpecialVar_Result = 2; @@ -1153,7 +1153,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; case 758: gSpecialVar_Result = 3; @@ -1161,7 +1161,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; } } diff --git a/src/item.c b/src/item.c index 71c2dc0f7..0e13ddf4c 100644 --- a/src/item.c +++ b/src/item.c @@ -539,8 +539,8 @@ bool8 RemoveBagItem(u16 itemId, u16 count) if (CurrentMapIsSecretBase() == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x200); - VarSet(VAR_0x40ED, itemId); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId); } var = GetItemListPosition(pocket); diff --git a/src/overworld.c b/src/overworld.c index 6055c74bb..84eb80a06 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -678,7 +678,7 @@ void UpdateEscapeWarp(s16 x, s16 y) { u8 currMapType = GetCurrentMapType(); u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); - if (is_map_type_1_2_3_5_or_6(currMapType) && is_map_type_1_2_3_5_or_6(destMapType) != TRUE) + if (IsMapTypeOutside(currMapType) && IsMapTypeOutside(destMapType) != TRUE) SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x - 7, y - 6); } @@ -837,7 +837,7 @@ static void mli0_load_map(u32 a1) LoadEventObjTemplatesFromHeader(); } - v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType); + v2 = IsMapTypeOutside(gMapHeader.mapType); indoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); sub_80EB218(); @@ -925,7 +925,7 @@ static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *pla static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType) { - if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_6) + if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_OCEAN_ROUTE) return DIR_EAST; else if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE) return DIR_NORTH; @@ -1330,13 +1330,13 @@ u8 GetLastUsedWarpMapType(void) return GetMapTypeByWarpData(&gLastUsedWarp); } -bool8 is_map_type_1_2_3_5_or_6(u8 mapType) +bool8 IsMapTypeOutside(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN || mapType == MAP_TYPE_UNDERWATER || mapType == MAP_TYPE_CITY - || mapType == MAP_TYPE_6) + || mapType == MAP_TYPE_OCEAN_ROUTE) return TRUE; else return FALSE; @@ -1346,7 +1346,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN - || mapType == MAP_TYPE_6 + || mapType == MAP_TYPE_OCEAN_ROUTE || mapType == MAP_TYPE_CITY) return TRUE; else diff --git a/src/region_map.c b/src/region_map.c index 5c85606a8..814849bfd 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -883,7 +883,7 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: case MAP_TYPE_UNDERWATER: - case MAP_TYPE_6: + case MAP_TYPE_OCEAN_ROUTE: gRegionMap->mapSecId = gMapHeader.regionMapSectionId; gRegionMap->playerIsInCave = FALSE; mapWidth = gMapHeader.mapLayout->width; @@ -896,7 +896,7 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) } break; case MAP_TYPE_UNDERGROUND: - case MAP_TYPE_7: + case MAP_TYPE_UNUSED_2: if (gMapHeader.flags & 0x02) { mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum); diff --git a/src/secret_base.c b/src/secret_base.c index 7ff83dec8..02d627722 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -60,7 +60,7 @@ struct SecretBaseRecordMixer { // Static RAM declarations EWRAM_DATA u8 sCurSecretBaseId = 0; -EWRAM_DATA u8 gUnknown_0203A01D = 0; +EWRAM_DATA bool8 gIsInSecretBase = FALSE; EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; // Static ROM declarations @@ -1186,11 +1186,11 @@ void SecretBasePerStepCallback(u8 taskId) case 0: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - gUnknown_0203A01D = TRUE; + gIsInSecretBase = TRUE; } else { - gUnknown_0203A01D = FALSE; + gIsInSecretBase = FALSE; } PlayerGetDestCoords(&data[2], &data[3]); data[1] = 1; @@ -1201,103 +1201,103 @@ void SecretBasePerStepCallback(u8 taskId) { data[2] = x; data[3] = y; - VarSet(VAR_0x40EC, VarGet(VAR_0x40EC) + 1); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); behavior = MapGridGetMetatileBehaviorAt(x, y); tileId = MapGridGetMetatileIdAt(x, y); if (tileId == 0x234 || tileId == 0x23C) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x20); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); } } else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x01); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); } } else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x04); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); } } else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x200); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); } } else if (behavior == 0xc1 && tileId == 0x23d) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) ^ 0x1000); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); } } else if (behavior == 0x47 && tileId == 0x23e) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x1000); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) ^ 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); } } else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x80); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); } } else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) { PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { switch ((int)MapGridGetMetatileIdAt(x, y)) { case 0x338: case 0x33c: case 0x340: - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x02); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); break; case 0x228: - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x100); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); break; } } } else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x400); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); } ShatterSecretBaseBreakableDoor(x, y); } else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (gUnknown_0203A01D == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8000); + if (gIsInSecretBase == TRUE) { + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); } } else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x4000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); } } else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x02); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); } } } @@ -1780,33 +1780,33 @@ void sub_80EB18C(struct SecretBaseRecord *bases) void sub_80EB1AC(void) { - VarSet(VAR_0x40EC, 0); - VarSet(VAR_0x40ED, 0); - VarSet(VAR_0x40EE, 0); - VarSet(VAR_0x40EF, 0); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, 0); if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40F0, TRUE); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, TRUE); } else { - VarSet(VAR_0x40F0, FALSE); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } - gUnknown_0203A01D = FALSE; + gIsInSecretBase = FALSE; } void sub_80EB218(void) { - if (VarGet(VAR_0x40F0) && gUnknown_0203A01D == TRUE && !CurrentMapIsSecretBase()) + if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gIsInSecretBase == TRUE && !CurrentMapIsSecretBase()) { - VarSet(VAR_0x40F0, FALSE); - gUnknown_0203A01D = FALSE; + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); + gIsInSecretBase = FALSE; sub_80EEA70(); - VarSet(VAR_0x40EC, 0); - VarSet(VAR_0x40ED, 0); - VarSet(VAR_0x40EE, 0); - VarSet(VAR_0x40EF, 0); - VarSet(VAR_0x40F0, FALSE); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } } @@ -1814,7 +1814,7 @@ void sub_80EB290(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800); } } @@ -1822,7 +1822,7 @@ void sub_80EB2C8(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x400); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400); } } @@ -1830,9 +1830,9 @@ void sub_80EB300(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x2000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x2000); } } @@ -1840,9 +1840,9 @@ void sub_80EB368(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x800); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x800); } } @@ -1850,9 +1850,9 @@ void sub_80EB3D0(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x1000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x1000); } } @@ -1860,9 +1860,9 @@ void sub_80EB438(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x001); } } @@ -1891,7 +1891,7 @@ void sub_80EB498(void) case 0x334: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x4000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000); } break; } @@ -1909,7 +1909,7 @@ void sub_80EB56C(void) case 0x28b: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x40); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40); } break; case 0x2d8: @@ -1932,21 +1932,21 @@ void sub_80EB56C(void) case 0x2fb: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8); } break; case 0x22c: case 0x233: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x40); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40); } break; case 0x288: case 0x289: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); } break; case 0x22d: @@ -1954,7 +1954,7 @@ void sub_80EB56C(void) case 0x22f: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); } break; case 0x287: @@ -1982,7 +1982,7 @@ void sub_80EB56C(void) case 0x2cf: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; } @@ -2009,7 +2009,7 @@ void sub_80EB9E0(void) case 0x2c6: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; } @@ -2047,14 +2047,14 @@ void sub_80EBB28(void) case 0x2c7: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; case 0x280: case 0x281: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); } break; case 0x225: @@ -2062,7 +2062,7 @@ void sub_80EBB28(void) case 0x227: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); } break; } @@ -2080,7 +2080,7 @@ void sub_80EBE7C(void) case 0x28e: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x4); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4); } break; } diff --git a/src/time_events.c b/src/time_events.c index 9702d321f..9263bffac 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void) 1, // 23 }; - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType())) + if (IsMapTypeOutside(GetLastUsedWarpMapType())) { RtcCalcLocalTime(); if (tide[gLocalTime.hours]) diff --git a/src/tv.c b/src/tv.c index 248721083..d53cec8b2 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2565,13 +2565,13 @@ void sub_80EEA70(void) show->secretBaseSecrets.kind = TVSHOW_SECRET_BASE_SECRETS; show->secretBaseSecrets.active = FALSE; StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); - show->secretBaseSecrets.stepsInBase = VarGet(VAR_0x40EC); + show->secretBaseSecrets.stepsInBase = VarGet(VAR_SECRET_BASE_STEP_COUNTER); sub_80E980C(); StringCopy(strbuf, gStringVar1); StripExtCtrlCodes(strbuf); StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); - show->secretBaseSecrets.item = VarGet(VAR_0x40ED); - show->secretBaseSecrets.flags = VarGet(VAR_0x40EE) + (VarGet(VAR_0x40EF) << 16); + show->secretBaseSecrets.item = VarGet(VAR_SECRET_BASE_LAST_ITEM_USED); + show->secretBaseSecrets.flags = VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) + (VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) << 16); tv_store_id_3x(show); show->secretBaseSecrets.language = gGameLanguage; if (show->secretBaseSecrets.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].language == LANGUAGE_JAPANESE) @@ -7350,7 +7350,7 @@ static void DoTVShowWhatsNo1InHoennToday(void) ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); } -u8 sub_80F5180(TVShow *show) +u8 TVShowGetFlagCount(TVShow *show) { u8 i; u8 tot; @@ -7365,7 +7365,7 @@ u8 sub_80F5180(TVShow *show) return tot; } -u8 sub_80F51AC(TVShow *show, u8 a1) +u8 TVShowGetStateForFlagNumber(TVShow *show, u8 a1) { u8 i; u8 tot; @@ -7399,7 +7399,7 @@ static void DoTVShowSecretBaseSecrets(void) case 0: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); if (bitCount == 0) { sTVShowState = 8; @@ -7408,12 +7408,12 @@ static void DoTVShowSecretBaseSecrets(void) { show->secretBaseSecrets.savedState = 1; sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[0]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); } break; case 1: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); switch (bitCount) { case 1: @@ -7423,11 +7423,11 @@ static void DoTVShowSecretBaseSecrets(void) show->secretBaseSecrets.savedState = 2; if (sTVSecretBaseSecretsRandomValues[0] == 0) { - sTVShowState = sub_80F51AC(show, 1); + sTVShowState = TVShowGetStateForFlagNumber(show, 1); } else { - sTVShowState = sub_80F51AC(show, 0); + sTVShowState = TVShowGetStateForFlagNumber(show, 0); } break; default: @@ -7440,13 +7440,13 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 2; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[1]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); break; } break; case 2: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); if (bitCount == 2) { sTVShowState = 9; @@ -7462,7 +7462,7 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 3; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[2]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); } break; case 3: -- cgit v1.2.3 From 99bfd8c80fcfcafa55166ff65f5264c727b16ed0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 28 Feb 2019 00:10:44 -0500 Subject: VAR_0x3F20 is not a var --- src/decoration.c | 2 +- src/secret_base.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/decoration.c b/src/decoration.c index 2ac49b98c..1635528d9 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1254,7 +1254,7 @@ void sub_8127E18(void) break; } } - VarSet(VAR_0x3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + VarSet(UNKNOWN_VAR_OFFSET_3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); gSpecialVar_0x8005 = gMapHeader.events->eventObjects[j].localId; gSpecialVar_0x8006 = sCurDecorMapX; gSpecialVar_0x8007 = sCurDecorMapY; diff --git a/src/secret_base.c b/src/secret_base.c index 02d627722..cf35deb07 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -552,7 +552,7 @@ void sub_80E933C(void) metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7); if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatile) == TRUE || MetatileBehavior_IsLargeMatCenter(metatile) == TRUE) { - gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].graphicsId + VAR_0x3F20; + gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].graphicsId + UNKNOWN_VAR_OFFSET_3F20; VarSet(gSpecialVar_Result, gDecorations[roomDecor[decorIdx]].tiles[0]); gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].localId; FlagClear(gSpecialVar_0x8004 + 0xAE); -- cgit v1.2.3 From baf95a8e7ab5bf295f10c4e30d043c9629f2d2a3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 1 Mar 2019 00:08:37 +0100 Subject: get rid of ugly cast --- src/battle_anim_effects_2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 0c6f2ef11..ee6676e64 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1417,7 +1417,7 @@ static void AnimTask_WithdrawStep(u8 taskId) } } -// Animates a "zap of energy" used in KINESIS. +// Animates a "zap of energy" used in KINESIS. // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip @@ -1592,7 +1592,7 @@ void sub_8103AA4(struct Sprite *sprite) sprite->data[3] = sub_8151534(sub_8151534(b, a), sub_8151624(0x1C0)); sprite->data[4] = sub_8151534(sub_8151534(c, a), sub_8151624(0x1C0)); sprite->callback = sub_8103A00; - } + } } static void sub_8103BE4(u8 taskId) @@ -3470,7 +3470,7 @@ void AnimOrbitFast(struct Sprite *sprite) static void AnimOrbitFastStep(struct Sprite *sprite) { - if ((u16)(sprite->data[1] - 64) < 128) + if (sprite->data[1] >= 64 && sprite->data[1] <= 191) sprite->subpriority = sprite->data[7] + 1; else sprite->subpriority = sprite->data[7] - 1; -- cgit v1.2.3 From 5c8cc5225ff7c11533f8421039e6e9e75adcee90 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 11:24:09 -0500 Subject: document slot machine --- src/roulette.c | 4 +- src/slot_machine.c | 1872 +++++++++++++++++++++++++++------------------------- src/task.c | 3 - src/tv.c | 16 +- 4 files changed, 996 insertions(+), 899 deletions(-) (limited to 'src') diff --git a/src/roulette.c b/src/roulette.c index a6a020f39..b19750f2a 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - sub_80EDE84(GetCoins()); + reportPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - sub_80EDD78(GetCoins()); + reportNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 0871506cd..7552e755c 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -59,34 +59,34 @@ enum struct SlotMachineEwramStruct { - /*0x00*/ u8 state; - /*0x01*/ u8 unk01; + /*0x00*/ u8 slotActionPtr; + /*0x01*/ u8 machineId; /*0x02*/ u8 pikaPower; - /*0x03*/ u8 unk03; - /*0x04*/ u8 unk04; - /*0x05*/ u8 unk05; - /*0x06*/ u8 unk06; - /*0x07*/ u8 unk07; + /*0x03*/ u8 luckyGame; + /*0x04*/ u8 luckyFlags; + /*0x05*/ u8 reelTimeDraw; + /*0x06*/ u8 isBiasTagMatchPossible; // tentative + /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 unk0A; - /*0x0B*/ u8 unk0B; + /*0x0A*/ u8 fairRollsLeft; + /*0x0B*/ u8 fairRollsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; - /*0x10*/ s16 unk10; + /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) /*0x12*/ s16 bet; - /*0x14*/ s16 unk14; - /*0x16*/ s16 unk16; - /*0x18*/ s16 unk18; - /*0x1A*/ s16 unk1A; - /*0x1C*/ s16 unk1C[3]; - /*0x22*/ u16 unk22[3]; + /*0x14*/ s16 reelTimePixelOffset; + /*0x16*/ s16 reelTimePosition; + /*0x18*/ s16 currReel; + /*0x1A*/ s16 reelIncrement; + /*0x1C*/ s16 reelPixelOffsets[3]; + /*0x22*/ u16 stopReelPixelOffset[3]; /*0x28*/ s16 reelPositions[3]; - /*0x2E*/ s16 unk2E[3]; - /*0x34*/ s16 unk34[3]; + /*0x2E*/ s16 reelExtraTurns[3]; + /*0x34*/ s16 biasTagFinalPositions[3]; /*0x3A*/ u8 reelTasks[3]; - /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 unk3E; - /*0x3F*/ u8 unk3F; + /*0x3D*/ u8 unkTaskPointer3D; + /*0x3E*/ u8 unkTaskPointer; + /*0x3F*/ u8 reelTimeSprite3F; /*0x40*/ u8 unk40; /*0x41*/ u8 unk41; /*0x42*/ u8 unk42; @@ -95,8 +95,8 @@ struct SlotMachineEwramStruct /*0x49*/ u8 unk49[2]; /*0x49*/ u8 unk4B[3]; /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 unk50[2]; - /*0x52*/ u8 unk52[2]; + /*0x50*/ u8 reelTimeSprites1[2]; + /*0x52*/ u8 reelTimeSprites2[2]; /*0x54*/ u8 unk54[4]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; @@ -117,7 +117,7 @@ struct UnkStruct1 /*static */void CB2_SlotMachineSetup(void); /*static */void CB2_SlotMachineLoop(void); -/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); +/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); /*static */void SlotMachineDummyTask(u8 taskId); /*static */void SlotMachineSetup_0_0(void); /*static */void SlotMachineSetup_6_2(void); @@ -133,88 +133,88 @@ struct UnkStruct1 /*static */void SlotMachineSetup_8_0(void); /*static */void SlotMachineSetup_9_0(void); /*static */void SlotMachineSetup_10_0(void); -/*static */void SlotMachineSetup_10_1(void); -/*static */void sub_8101D04(void); +/*static */void SlotMachineSetupGameplayTasks(void); +/*static */void GameplayTasks_Slot(void); /*static */void sub_8104DA4(void); -/*static */void sub_8101D24(u8 taskId); -/*static */bool8 sub_8101D5C(struct Task *task); -/*static */bool8 sub_8101D8C(struct Task *task); -/*static */bool8 sub_8101DB0(struct Task *task); -/*static */bool8 sub_8101DF4(struct Task *task); -/*static */bool8 sub_8101E10(struct Task *task); -/*static */bool8 sub_8101E3C(struct Task *task); -/*static */bool8 sub_8101F44(struct Task *task); -/*static */bool8 sub_8101F60(struct Task *task); -/*static */bool8 sub_8101F88(struct Task *task); -/*static */bool8 sub_8101FA4(struct Task *task); -/*static */bool8 sub_8102008(struct Task *task); -/*static */bool8 sub_8102034(struct Task *task); -/*static */bool8 sub_8102058(struct Task *task); -/*static */bool8 sub_8102090(struct Task *task); -/*static */bool8 sub_81020C8(struct Task *task); -/*static */bool8 sub_81021E0(struct Task *task); -/*static */bool8 sub_81021FC(struct Task *task); -/*static */bool8 sub_8102264(struct Task *task); -/*static */bool8 sub_81022A0(struct Task *task); -/*static */bool8 sub_81022CC(struct Task *task); -/*static */bool8 sub_81022F0(struct Task *task); -/*static */bool8 sub_8102318(struct Task *task); -/*static */bool8 sub_8102344(struct Task *task); -/*static */bool8 sub_810239C(struct Task *task); -/*static */bool8 sub_81023B8(struct Task *task); -/*static */bool8 sub_81023E0_(struct Task *task); -/*static */bool8 sub_81023FC(struct Task *task); -/*static */bool8 sub_8102424(struct Task *task); -/*static */bool8 sub_8102460(struct Task *task); -/*static */void sub_8102484(void); -/*static */void sub_81024F0(void); -/*static */bool8 sub_8102540_(void); -/*static */u8 sub_8102578(void); -/*static */u16 dp15_jump_random_unknown(void); -/*static */u8 sub_81025BC(void); +/*static */void RunSlotActions(u8 taskId); +/*static */bool8 SlotAction_UnfadeScreen(struct Task *task); +/*static */bool8 SlotAction_WaitForUnfade(struct Task *task); +/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task); +/*static */bool8 SlotAction3(struct Task *task); +/*static */bool8 SlotAction4(struct Task *task); +/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); +/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); +/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task); +/*static */bool8 SlotAction_GivingInformation(struct Task *task); +/*static */bool8 SlotAction9(struct Task *task); +/*static */bool8 SlotAction10(struct Task *task); +/*static */bool8 SlotAction11(struct Task *task); +/*static */bool8 SlotAction_AwaitReelStop(struct Task *task); +/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); +/*static */bool8 SlotAction_CheckMatches(struct Task *task); +/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); +/*static */bool8 SlotAction_EndOfRoll(struct Task *task); +/*static */bool8 SlotAction17(struct Task *task); +/*static */bool8 SlotAction18(struct Task *task); +/*static */bool8 SlotAction_Loop(struct Task *task); +/*static */bool8 SlotAction_NoMatches(struct Task *task); +/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); +/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); +/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_EndGame(struct Task *task); +/*static */bool8 SlotAction_FreeDataStructures(struct Task *task); +/*static */void DrawForLuckyFlags(void); +/*static */void AnyLuckyFlagsSet(void); +/*static */bool8 IsLuckyRound(void); +/*static */u8 AttemptsAtLuckiness1(void); +/*static */u16 DrawNewReelIncrement(void); +/*static */u8 AttemptsAtLuckiness2(void); /*static */void CheckMatch(void); /*static */void CheckMatch_CenterRow(void); /*static */void CheckMatch_TopAndBottom(void); /*static */void CheckMatch_Diagonals(void); /*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); -/*static */void sub_8102A24(void); -/*static */void sub_8102A64(u8 taskId); -/*static */bool8 sub_8102A44(void); -/*static */bool8 sub_8102A9C(struct Task *task); -/*static */bool8 sub_8102AD0(struct Task *task); -/*static */bool8 sub_8102B80(struct Task *task); -/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); -/*static */void sub_8102DA8(void); -/*static */void sub_8102DEC(u8 a0); +/*static */void AwardPayout(void); +/*static */void RunAwardPayoutActions(u8 taskId); +/*static */bool8 IsFinalTask_RunAwardPayoutActions(void); +/*static */bool8 AwardPayoutAction1(struct Task *task); +/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); +/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); +/*static */u8 GetNearbyTag(u8 x, s16 y); +/*static */void GameplayTask_StopReel(void); +/*static */void ReelTasks_8102DEC(u8 a0); /*static */void sub_8102E1C(u8 a0); -/*static */bool8 sub_8102E40(u8 a0); -/*static */void sub_8102E68(u8 taskId); -/*static */bool8 sub_8102EA0(struct Task *task); -/*static */bool8 sub_8102EA4(struct Task *task); -/*static */bool8 sub_8102EC0(struct Task *task); -/*static */bool8 sub_8102F4C(struct Task *task); -/*static */bool8 sub_8103008(struct Task *task); -/*static */bool8 sub_810305C(void); -/*static */bool8 sub_8103154(u8 a0, u8 a1); -/*static */bool8 sub_81031B4(u8 a0, u8 a1); -/*static */bool8 sub_81032C0(void); -/*static */bool8 sub_81032E8(void); -/*static */bool8 sub_810333C(void); -/*static */bool8 sub_81033DC(void); -/*static */bool8 sub_810341C(u8 a0); -/*static */bool8 sub_810347C(u8 a0); -/*static */void sub_81034F4(void); -/*static */void sub_8103540(void); -/*static */void sub_8103564(void); -/*static */void j5_08111E84(void); -/*static */void sub_8103668(void); -/*static */void sub_810380C(void); +/*static */bool8 IsReelMoving(u8 a0); +/*static */void RunReelActions(u8 taskId); +/*static */bool8 ReelAction_StayStill(struct Task *task); +/*static */bool8 ReelAction_Spin(struct Task *task); +/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task); +/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task); +/*static */bool8 ReelAction_OscillatingStop(struct Task *task); +/*static */bool8 DecideReelTurns_BiasTag_Reel1(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +/*static */bool8 DecideReelTurns_BiasTag_Reel2(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel3(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +/*static */void DecideReelTurns_NoBiasTag_Reel1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3(void); /*static */void sub_8103830(void); /*static */void sub_8103910(void); /*static */void sub_8103A78(void); /*static */void sub_8103C14(u8 a0); /*static */void sub_8103C48(u8 taskId); -/*static */void sub_8103D50(u8 a0); +/*static */void LoadBetTiles(u8 a0); /*static */void sub_8103C78(struct Task *task, u8 taskId); /*static */void sub_8103CAC(struct Task *task, u8 taskId); /*static */void sub_8103CC8(struct Task *task, u8 taskId); @@ -229,50 +229,50 @@ struct UnkStruct1 /*static */bool8 sub_8103FA0(void); /*static */void sub_8103FE8_(u8 taskId); /*static */void sub_8104048(void); -/*static */void sub_8104064(u8 pikaPower); +/*static */void DisplayPikaPower(u8 pikaPower); /*static */bool8 sub_81040C8(void); /*static */void sub_81040E8(u8 taskId); /*static */void nullsub_68(struct Task *task); /*static */void sub_810411C(struct Task *task); /*static */void sub_8104144(struct Task *task); /*static */void sub_81041AC(struct Task *task); -/*static */void sub_812D394(struct Task *task); +/*static */void ClearTaskDataFields_2orHigher(struct Task *task); /*static */void sub_810423C(u8 pikaPower); -/*static */void sub_810430C(void); -/*static */bool8 sub_810432C(void); -/*static */void sub_810434C(u8 taskId); -/*static */void sub_810437C(struct Task *task); -/*static */void sub_81043EC(struct Task *task); -/*static */void sub_8104468(struct Task *task); -/*static */void sub_8104498(struct Task *task); -/*static */void sub_8104548(struct Task *task); -/*static */void sub_8104598(struct Task *task); -/*static */void sub_81045CC(struct Task *task); -/*static */void sub_810463C(struct Task *task); -/*static */void sub_81046C0(struct Task *task); -/*static */void sub_8104764(struct Task *task); -/*static */void sub_8104794(struct Task *task); -/*static */void sub_81047EC(struct Task *task); -/*static */void sub_8104860(struct Task *task); -/*static */void sub_81048A8(struct Task *task); -/*static */void sub_81048CC(struct Task *task); -/*static */void sub_8104940(struct Task *task); -/*static */void sub_81049C8(struct Task *task); -/*static */void sub_81049F8(struct Task *task); +/*static */void BeginReelTime(void); +/*static */bool8 IsFinalTask_RunReelTimeActions(void); +/*static */void RunReelTimeActions(u8 taskId); +/*static */void ReelTimeAction1(struct Task *task); +/*static */void ReelTimeAction2(struct Task *task); +/*static */void ReelTimeAction3(struct Task *task); +/*static */void ReelTimeAction4(struct Task *task); +/*static */void ReelTimeAction5(struct Task *task); +/*static */void ReelTimeAction6(struct Task *task); +/*static */void ReelTimeAction7(struct Task *task); +/*static */void ReelTimeAction_LandOnOutcome(struct Task *task); +/*static */void ReelTimeAction9(struct Task *task); +/*static */void ReelTimeAction10(struct Task *task); +/*static */void ReelTimeAction11(struct Task *task); +/*static */void ReelTimeAction12(struct Task *task); +/*static */void ReelTimeAction13(struct Task *task); +/*static */void ReelTimeAction14(struct Task *task); +/*static */void ReelTimeAction15(struct Task *task); +/*static */void ReelTimeAction16(struct Task *task); +/*static */void ReelTimeAction17(struct Task *task); +/*static */void ReelTimeAction18(struct Task *task); /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); -/*static */void sub_8104AB8(u8 a0); -/*static */bool8 sub_8104AEC(void); -/*static */void sub_8104B0C(u8 taskId); -/*static */void sub_8104B3C(struct Task *task); -/*static */void sub_8104B60(struct Task *task); -/*static */void sub_8104B80(struct Task *task); -/*static */void sub_8104BC8(struct Task *task); -/*static */void sub_812DD78(struct Task *task); -/*static */void sub_8104BFC(struct Task *task); -/*static */void sub_812DE14(struct Task *task); -/*static */void sub_812DE30(struct Task *task); -/*static */void sub_8104C44(struct Task *task); +/*static */void OpenInfoBox(u8 a0); +/*static */bool8 ClosedInfoBox(void); +/*static */void RunInfoBoxActions(u8 taskId); +/*static */void InfoBox_FadeIn(struct Task *task); +/*static */void InfoBox_WaitForFade(struct Task *task); +/*static */void InfoBox_8104B80(struct Task *task); +/*static */void InfoBox_AwaitPlayerInput(struct Task *task); +/*static */void InfoBox_AddText(struct Task *task); +/*static */void InfoBox_8104BFC(struct Task *task); +/*static */void InfoBox_812DE14(struct Task *task); +/*static */void InfoBox_812DE30(struct Task *task); +/*static */void InfoBox_FreeTask(struct Task *task); /*static */void sub_8104C5C(void); /*static */void sub_8104CAC(u8 arg0); /*static */bool8 sub_8104E18(void); @@ -292,10 +292,10 @@ struct UnkStruct1 /*static */void sub_81054B8(void); /*static */void sub_8105524(void); /*static */void sub_8105554(void); -/*static */void sub_8105578(void); +/*static */void CreateReelTimeSprites1(void); /*static */void sub_8105688(s16 a0); /*static */void sub_81056C0(void); -/*static */void sub_81056F0(void); +/*static */void CreateReelTimeSprite2(void); /*static */void sub_81057E8(s16 a0); /*static */void sub_8105804(void); /*static */void sub_8105854(void); @@ -321,7 +321,7 @@ struct UnkStruct1 // Ewram variables static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; -static EWRAM_DATA u16 *gUnknown_0203AACC = NULL; +static EWRAM_DATA u16 *selectedPikaPowerTile = NULL; static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 gUnknown_083ECD04[][3]; -extern const u8 gUnknown_083ECE3A[]; -extern const u16 gUnknown_083ECE42[]; -extern const u16 gUnknown_083ECE48[]; +extern const u8 sSlotLuckinessTable1[][3]; +extern const u8 LuckyFlagTagOutput[]; +extern const u16 FlagsAttemptAtLuckiness1[]; +extern const u16 FlagsAttemptAtLuckiness2[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -369,10 +369,10 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 gUnknown_083ECE12[]; +extern const u16 ProbabilityTable_SkipToReelTimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; -extern const u16 gUnknown_083ECE1C[][2]; -extern const u16 gUnknown_083ECE30[]; +extern const u16 ReelIncrementTable[][2]; +extern const u16 ReelTimeBonusIncrementTable[]; extern const u16 sSlotMatchFlags[]; extern const u16 sSlotPayouts[]; extern const u8 *const gUnknown_083EDCE4; @@ -381,21 +381,21 @@ extern const u32 sReelTimeGfx[]; extern const struct SpriteSheet sSlotMachineSpriteSheets[]; extern const struct SpritePalette gSlotMachineSpritePalettes[]; extern const u16 *const gUnknown_083EDE20; -extern const s16 gUnknown_083ECCF8[][2]; +extern const s16 sInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 gUnknown_083ECD16[][6]; -extern const u8 gUnknown_083ECD28[][6]; -extern const u8 gUnknown_083ECD46[][17]; -extern const u8 gUnknown_083ECDAC[][17]; +extern const u8 sSlotLuckinessTable2[][6]; +extern const u8 sSlotLuckinessTable3[][6]; +extern const u8 ReelTimeProbabilityTable0[][17]; +extern const u8 ReelTimeProbabilityTable1[][17]; extern const u8 sSym2Match[]; extern const u8 gUnknown_083ECCF1[]; -extern const u8 sReelSymbols[][21]; +extern const u8 sReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; extern const u8 gUnknown_083EDD30[]; -extern const u8 gUnknown_083EDD35[][2]; -extern const u8 gUnknown_083EDD3B[]; +extern const u8 gBettingTilesId[][2]; +extern const u8 gNumberBettingTiles[]; extern const u16 *const gUnknown_083EDDA0[]; extern const u16 *const gUnknown_083EDDAC; extern const u16 sReelTimeWindowTilemap[]; @@ -453,99 +453,101 @@ const struct WindowTemplate gUnknown_085A7444 = 0, 1, 3, 20, 13, 13, 1 }; -const u8 gUnknown_085A744C[] = {3, 1, 2, 0}; - -bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = -{ - sub_8101D5C, - sub_8101D8C, - sub_8101DB0, - sub_8101DF4, - sub_8101E10, - sub_8101E3C, - sub_8101F44, - sub_8101F60, - sub_8101F88, - sub_8101FA4, - sub_8102008, - sub_8102034, - sub_8102058, - sub_8102090, - sub_81020C8, - sub_81021E0, - sub_81021FC, - sub_8102264, - sub_81022A0, - sub_81022CC, - sub_81022F0, - sub_8102318, - sub_8102344, - sub_810239C, - sub_81023B8, - sub_81023E0_, - sub_81023FC, - sub_8102424, - sub_8102460, +const u8 gColors_ReelTimeHelp[] = {3, 1, 2, 0}; + +bool8 (*const SlotActions[])(struct Task *task) = +{ + SlotAction_UnfadeScreen, + SlotAction_WaitForUnfade, + SlotAction_SetSlotMachineVars, + SlotAction3, + SlotAction4, + SlotAction_AwaitPlayerInput, + SlotAction_PrintYouDontHaveThreeCoins, + SlotAction_PlayerAcceptsNotHavingThreeCoins, + SlotAction_GivingInformation, + SlotAction9, + SlotAction10, + SlotAction11, + SlotAction_AwaitReelStop, + SlotAction_WaitForAllReelsToStop, + SlotAction_CheckMatches, + SlotAction_WaitForPayoutToBeAwarded, + SlotAction_EndOfRoll, + SlotAction17, + SlotAction18, + SlotAction_Loop, + SlotAction_NoMatches, + SlotAction_PrintQuitTheGame, + SlotAction_SeeIfPlayerQuits, + SlotAction_Print9999CoinMessage, + SlotAction_Escape9999CoinMessage, + SlotAction_PrintNoMoreCoins, + SlotAction_EscapeNoMoreCoins, + SlotAction_EndGame, + SlotAction_FreeDataStructures, }; -bool8 (*const gUnknown_083ECB20[])(struct Task *task) = +bool8 (*const AwardPayoutActions[])(struct Task *task) = { - sub_8102A9C, - sub_8102AD0, - sub_8102B80 + AwardPayoutAction1, + AwardPayoutAction_GivePayoutToPlayer, + AwardPayoutAction_FreeTask }; -bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = +bool8 (*const ReelActions[])(struct Task *task) = { - sub_8102EA0, - sub_8102EA4, - sub_8102EC0, - sub_8102F4C, - sub_8103008 + ReelAction_StayStill, + ReelAction_Spin, + ReelAction_DecideWhereToStop, + ReelAction_TurnToSelectedTag, + ReelAction_OscillatingStop }; -bool8 (*const gUnknown_083ECB40[])(void) = +// returns True if a match with the biasTag is possible in that reel +// also modifies data in sSlotMachine reel arrays to indicate how to get to the matching state +bool8 (*const DecideReelTurns_BiasTag[])(void) = { - sub_810305C, - sub_81032C0, - sub_81033DC + DecideReelTurns_BiasTag_Reel1, + DecideReelTurns_BiasTag_Reel2, + DecideReelTurns_BiasTag_Reel3 }; -void (*const gUnknown_083ECB4C[])(void) = +void (*const DecideReelTurns_NoBiasTag[])(void) = { - sub_81034F4, - sub_8103540, - sub_810380C + DecideReelTurns_NoBiasTag_Reel1, + DecideReelTurns_NoBiasTag_Reel2, + DecideReelTurns_NoBiasTag_Reel3 }; -const u16 gUnknown_085A74FC[] = {2, 4, 4, 4, 8}; +const u16 ReelStopShocks[] = {2, 4, 4, 4, 8}; -bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = +bool8 (*const DecideReelTurns_BiasTag_Reel1_Bets[])(u8 tag1, u8 tag2) = { - sub_8103154, - sub_81031B4, - sub_81031B4 + DecideReelTurns_BiasTag_Reel1_Bet1, + DecideReelTurns_BiasTag_Reel1_Bet2or3, + DecideReelTurns_BiasTag_Reel1_Bet2or3 }; -bool8 (*const gUnknown_083ECB70[])(void) = +bool8 (*const DecideReelTurns_BiasTag_Reel2_Bets[])(void) = { - sub_81032E8, - sub_81032E8, - sub_810333C + DecideReelTurns_BiasTag_Reel2_Bet1or2, + DecideReelTurns_BiasTag_Reel2_Bet1or2, + DecideReelTurns_BiasTag_Reel2_Bet3 }; -bool8 (*const gUnknown_083ECB7C[])(u8 a0) = +bool8 (*const DecideReelTurns_BiasTag_Reel3_Bets[])(u8 biasTag) = { - sub_810341C, - sub_810341C, - sub_810347C + DecideReelTurns_BiasTag_Reel3_Bet1or2, + DecideReelTurns_BiasTag_Reel3_Bet1or2, + DecideReelTurns_BiasTag_Reel3_Bet3 }; -void (*const gUnknown_083ECB88[])(void) = +void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = { - sub_8103564, - j5_08111E84, - sub_8103668 + DecideReelTurns_NoBiasTag_Reel2_Bet1, + DecideReelTurns_NoBiasTag_Reel2_Bet2, + DecideReelTurns_NoBiasTag_Reel2_Bet3 }; void (*const gUnknown_083ECB94[])(void) = @@ -572,57 +574,57 @@ void (*const gUnknown_083ECBB4[])(struct Task *task) = sub_81041AC }; -const u16 gUnknown_083ECBC4[][2] = +const u16 pikaPowerTileTable[][2] = { - {0x9e, 0x6e}, - {0x9f, 0x6f}, - {0xaf, 0x7f}, + {0x9e, 0x6e}, // {0b10011110, 0b1101110} + {0x9f, 0x6f}, // {0b10011111, 0b1101111} + {0xaf, 0x7f}, // {0b10101111, 0b1111111} }; -void (*const gUnknown_083ECBD0[])(struct Task *task) = -{ - sub_810437C, - sub_81043EC, - sub_8104468, - sub_8104498, - sub_8104548, - sub_8104598, - sub_81045CC, - sub_810463C, - sub_81046C0, - sub_8104764, - sub_8104794, - sub_81047EC, - sub_8104860, - sub_81048A8, - sub_81048CC, - sub_8104940, - sub_81049C8, - sub_8104794, - sub_81049F8 +void (*const ReelTimeActions[])(struct Task *task) = +{ + ReelTimeAction1, + ReelTimeAction2, + ReelTimeAction3, + ReelTimeAction4, + ReelTimeAction5, + ReelTimeAction6, + ReelTimeAction7, // does stuff with reel time data + ReelTimeAction_LandOnOutcome, + ReelTimeAction9, + ReelTimeAction10, + ReelTimeAction11, + ReelTimeAction12, + ReelTimeAction13, + ReelTimeAction14, + ReelTimeAction15, + ReelTimeAction16, + ReelTimeAction17, + ReelTimeAction11, + ReelTimeAction18 }; const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; -void (*const gUnknown_083ECC30[])(struct Task *task) = -{ - sub_8104B3C, - sub_8104B60, - sub_8104B80, - sub_8104B60, - sub_812DD78, - sub_8104B60, - sub_8104BC8, - sub_8104B60, - sub_812DE14, - sub_8104B60, - sub_812DE30, - sub_8104B60, - sub_8104BFC, - sub_8104B60, - sub_8104C44, +void (*const InfoBoxActions[])(struct Task *task) = +{ + InfoBox_FadeIn, + InfoBox_WaitForFade, + InfoBox_8104B80, + InfoBox_WaitForFade, + InfoBox_AddText, + InfoBox_WaitForFade, + InfoBox_AwaitPlayerInput, + InfoBox_WaitForFade, + InfoBox_812DE14, + InfoBox_WaitForFade, + InfoBox_812DE30, + InfoBox_WaitForFade, + InfoBox_8104BFC, + InfoBox_WaitForFade, + InfoBox_FreeTask, }; void (*const gUnknown_083ECC54[])(struct Task *task) = @@ -669,12 +671,12 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; } } -void PlaySlotMachine(u8 arg0, MainCallback cb) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(arg0, cb); + PlaySlotMachine_Internal(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } @@ -733,7 +735,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) break; case 10: SlotMachineSetup_10_0(); - SlotMachineSetup_10_1(); + SlotMachineSetupGameplayTasks(); gMain.state++; break; case 11: @@ -761,17 +763,18 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) +/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) { struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); - task->data[0] = arg0; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + task->data[0] = slotMachineIndex; + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)CB2_ReturnToFieldContinueScriptPlayMapMusic); } + /*static */void sub_81019EC(void) { struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); - sSlotMachine->unk01 = task->data[0]; + sSlotMachine->machineId = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); } @@ -827,37 +830,40 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } +// set up initial state of slot machine /*static */void SlotMachineSetup_0_1(void) { u8 i; - sub_81019EC(); - sSlotMachine->state = 0; + sub_81019EC(); // assigns sSlotMachine->machineId and other stuff + sSlotMachine->slotActionPtr = 0; sSlotMachine->pikaPower = 0; - sSlotMachine->unk03 = Random() & 1; - sSlotMachine->unk04 = 0; + sSlotMachine->luckyGame = Random() & 1; + sSlotMachine->luckyFlags = 0; sSlotMachine->matchedSymbols = 0; - sSlotMachine->unk0A = 0; - sSlotMachine->unk0B = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->fairRollsUsed = 0; sSlotMachine->coins = GetCoins(); sSlotMachine->payout = 0; - sSlotMachine->unk10 = 0; + sSlotMachine->netCoinLoss = 0; sSlotMachine->bet = 0; - sSlotMachine->unk18 = 0; - sSlotMachine->unk1A = 8; + sSlotMachine->currReel = 0; + sSlotMachine->reelIncrement = 8; sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; sSlotMachine->winIn = 0x3f; sSlotMachine->winOut = 0x3f; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); + + // for each reel... for (i = 0; i < 3; i++) { - sSlotMachine->unk22[i] = 0; - sSlotMachine->reelPositions[i] = gUnknown_083ECCF8[i][sSlotMachine->unk03] % 21; - sSlotMachine->unk1C[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; - sSlotMachine->unk1C[i] %= 0x1f8; + sSlotMachine->stopReelPixelOffset[i] = 0; + sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; + sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } - sub_80EDE70(GetCoins()); + reportPlayedSlotMachine(GetCoins()); } /*static */void SlotMachineSetup_3_0(void) @@ -871,10 +877,11 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */void SlotMachineSetup_4_0(void) { - gUnknown_0203AACC = Alloc(8); + selectedPikaPowerTile = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); gUnknown_0203AADC = AllocZeroed(8); + // several of these are 1 bit off from each other gUnknown_0203AAD0[0] = 0x2051; gUnknown_0203AAD0[1] = 0x2851; gUnknown_0203AAD0[2] = 0x2061; @@ -884,6 +891,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) gUnknown_0203AAD0[6] = 0x20BF; } +// machine wheel stuff /*static */void SlotMachineSetup_5_0(void) { sub_8106448(); @@ -902,98 +910,100 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) sub_81050C4(); } -/*static */void SlotMachineSetup_10_1(void) +// create next gameplay task +/*static */void SlotMachineSetupGameplayTasks(void) { sub_8104048(); - sub_8102DA8(); + GameplayTask_StopReel(); sub_8104C5C(); - sub_8101D04(); + GameplayTasks_Slot(); } -/*static */void sub_8101D04(void) +/*static */void GameplayTasks_Slot(void) { - sub_8101D24(CreateTask(sub_8101D24, 0)); + RunSlotActions(CreateTask(RunSlotActions, 0)); } -/*static */void sub_8101D24(u8 taskId) +// task->data[0] is a timer +/*static */void RunSlotActions(u8 taskId) { - while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) + while (SlotActions[sSlotMachine->slotActionPtr](gTasks + taskId)) ; } -/*static */bool8 sub_8101D5C(struct Task *task) +/*static */bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8101D8C(struct Task *task) +/*static */bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8101DB0(struct Task *task) +/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; - sSlotMachine->unk18 = 0; - sSlotMachine->unk04 &= 0xc0; - sSlotMachine->state = 4; + sSlotMachine->currReel = 0; + sSlotMachine->luckyFlags &= 0xc0; // discard all but top 2 flags + sSlotMachine->slotActionPtr = 4; if (sSlotMachine->coins <= 0) { - sSlotMachine->state = 25; + sSlotMachine->slotActionPtr = 25; } - else if (sSlotMachine->unk0A) + else if (sSlotMachine->fairRollsLeft) { - sSlotMachine->state = 3; + sSlotMachine->slotActionPtr = 3; sub_8104CAC(4); } return TRUE; } -/*static */bool8 sub_8101DF4(struct Task *task) +/*static */bool8 SlotAction3(struct Task *task) { if (sub_8104E18()) - sSlotMachine->state = 4; + sSlotMachine->slotActionPtr = 4; return FALSE; } -/*static */bool8 sub_8101E10(struct Task *task) +/*static */bool8 SlotAction4(struct Task *task) { sub_8104CAC(0); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; if (sSlotMachine->coins >= 9999) - sSlotMachine->state = 23; + sSlotMachine->slotActionPtr = 23; return TRUE; } -/*static */bool8 sub_8101E3C(struct Task *task) +/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task) { s16 i; if (gMain.newKeys & SELECT_BUTTON) { - sub_8104AB8(0); - sSlotMachine->state = 8; + OpenInfoBox(0); + sSlotMachine->slotActionPtr = 8; } - else if (gMain.newKeys & R_BUTTON) + else if (gMain.newKeys & R_BUTTON) // bet the max amount { if (sSlotMachine->coins - (3 - sSlotMachine->bet) >= 0) { for (i = sSlotMachine->bet; i < 3; i++) - sub_8103D50(i); + LoadBetTiles(i); sSlotMachine->coins -= (3 - sSlotMachine->bet); sSlotMachine->bet = 3; - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; PlaySE(SE_REGI); } - else + else // you didn't have enough coins to bet the max { - sSlotMachine->state = 6; + sSlotMachine->slotActionPtr = 6; } } else @@ -1001,135 +1011,145 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) if (gMain.newKeys & DPAD_DOWN && sSlotMachine->coins != 0) { PlaySE(SE_REGI); - sub_8103D50(sSlotMachine->bet); + LoadBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; } + // if player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; + // if player wants to quit if (gMain.newKeys & B_BUTTON) - sSlotMachine->state = 21; + sSlotMachine->slotActionPtr = 21; } return FALSE; } -/*static */bool8 sub_8101F44(struct Task *task) +/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 7; + sSlotMachine->slotActionPtr = 7; return FALSE; } -/*static */bool8 sub_8101F60(struct Task *task) +/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_8101F88(struct Task *task) +/*static */bool8 SlotAction_GivingInformation(struct Task *task) { - if (sub_8104AEC()) - sSlotMachine->state = 5; + if (ClosedInfoBox()) + sSlotMachine->slotActionPtr = 5; return FALSE; } -/*static */bool8 sub_8101FA4(struct Task *task) +// probably make all the slots roll +/*static */bool8 SlotAction9(struct Task *task) { - sub_8102484(); + DrawForLuckyFlags(); sub_8104DA4(); - sub_8102DEC(0); - sub_8102DEC(1); - sub_8102DEC(2); - sub_80EEC80(); + // for each reel... + //...do a reel task + ReelTasks_8102DEC(0); + ReelTasks_8102DEC(1); + ReelTasks_8102DEC(2); + sub_80EEC80(); // something with daily slot variable task->data[0] = 0; - if (sSlotMachine->unk04 & 0x20) + if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { - sub_810430C(); - sSlotMachine->state = 10; + // enter into reel time + BeginReelTime(); + sSlotMachine->slotActionPtr = 10; } else { sub_8104CAC(1); - sSlotMachine->state = 11; + sSlotMachine->slotActionPtr = 11; } - sSlotMachine->unk1A = 8; - if (sSlotMachine->unk0A) - sSlotMachine->unk1A = dp15_jump_random_unknown(); + sSlotMachine->reelIncrement = 8; + if (sSlotMachine->fairRollsLeft) + // slow down the reel speed if you're really losing + sSlotMachine->reelIncrement = DrawNewReelIncrement(); return FALSE; } -/*static */bool8 sub_8102008(struct Task *task) +/*static */bool8 SlotAction10(struct Task *task) { - if (sub_810432C()) + if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); - sSlotMachine->unk04 &= 0xDF; - sSlotMachine->state = 11; + // unset enter reel time flag + sSlotMachine->luckyFlags &= 0xDF; + sSlotMachine->slotActionPtr = 11; } return FALSE; } -/*static */bool8 sub_8102034(struct Task *task) +/*static */bool8 SlotAction11(struct Task *task) { if (++task->data[0] >= 30) { - sub_81024F0(); - sSlotMachine->state = 12; + AnyLuckyFlagsSet(); + sSlotMachine->slotActionPtr = 12; } return FALSE; } -/*static */bool8 sub_8102058(struct Task *task) +/*static */bool8 SlotAction_AwaitReelStop(struct Task *task) { if (gMain.newKeys & A_BUTTON) { PlaySE(SE_JYUNI); - sub_8102E1C(sSlotMachine->unk18); - sub_8103C14(sSlotMachine->unk18); - sSlotMachine->state = 13; + sub_8102E1C(sSlotMachine->currReel); + sub_8103C14(sSlotMachine->currReel); + sSlotMachine->slotActionPtr = 13; } return FALSE; } -/*static */bool8 sub_8102090(struct Task *task) +/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { - if (!sub_8102E40(sSlotMachine->unk18)) + if (!IsReelMoving(sSlotMachine->currReel)) { - sSlotMachine->unk18++; - sSlotMachine->state = 12; - if (sSlotMachine->unk18 > 2) + sSlotMachine->currReel++; + sSlotMachine->slotActionPtr = 12; + if (sSlotMachine->currReel > 2) { - sSlotMachine->state = 14; + sSlotMachine->slotActionPtr = 14; } return TRUE; } return FALSE; } -/*static */bool8 sub_81020C8(struct Task *task) +// once all reels have stopped +/*static */bool8 SlotAction_CheckMatches(struct Task *task) { - sSlotMachine->unk04 &= 0xc0; + // keep top 2 bits of luckyFlags + sSlotMachine->luckyFlags &= 0xc0; CheckMatch(); - if (sSlotMachine->unk0A) + if (sSlotMachine->fairRollsLeft) { - sSlotMachine->unk0A--; - sSlotMachine->unk0B++; + sSlotMachine->fairRollsLeft--; + sSlotMachine->fairRollsUsed++; } if (sSlotMachine->matchedSymbols) { - sSlotMachine->state = 15; - sub_8102A24(); + sSlotMachine->slotActionPtr = 15; + AwardPayout(); sub_8103F70(); - if ((sSlotMachine->unk10 -= sSlotMachine->payout) < 0) + if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) { - sSlotMachine->unk10 = 0; + sSlotMachine->netCoinLoss = 0; } if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { @@ -1148,190 +1168,193 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - sSlotMachine->unk04 &= 0x3f; + // clear top bits 6 and 7 + sSlotMachine->luckyFlags &= 0x3f; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - sSlotMachine->unk0A = 0; - sSlotMachine->unk0B = 0; - sSlotMachine->unk03 = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->fairRollsUsed = 0; + sSlotMachine->luckyGame = 0; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) - sSlotMachine->unk03 = 1; + // this may be a bug, but if you get blue 777, the game becomes lucky + sSlotMachine->luckyGame = 1; } } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) { sSlotMachine->pikaPower++; - sub_8104064(sSlotMachine->pikaPower); + DisplayPikaPower(sSlotMachine->pikaPower); } } else { sub_8104CAC(3); - sSlotMachine->state = 20; - if ((sSlotMachine->unk10 += sSlotMachine->bet) > 9999) - sSlotMachine->unk10 = 9999; + sSlotMachine->slotActionPtr = 20; + if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > 9999) + sSlotMachine->netCoinLoss = 9999; } return FALSE; } -/*static */bool8 sub_81021E0(struct Task *task) +/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { - if (sub_8102A44()) - sSlotMachine->state = 16; + if (IsFinalTask_RunAwardPayoutActions()) + sSlotMachine->slotActionPtr = 16; return FALSE; } -/*static */bool8 sub_81021FC(struct Task *task) +/*static */bool8 SlotAction_EndOfRoll(struct Task *task) { if (sub_8103FA0()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->unk18 = 0; - sSlotMachine->state = 9; + sSlotMachine->currReel = 0; + sSlotMachine->slotActionPtr = 9; } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->state = 17; - if (sSlotMachine->unk0A && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + sSlotMachine->slotActionPtr = 17; + if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sub_8104CAC(4); - sSlotMachine->state = 18; + sSlotMachine->slotActionPtr = 18; } } return FALSE; } -/*static */bool8 sub_8102264(struct Task *task) +/*static */bool8 SlotAction17(struct Task *task) { if (!sub_81040C8()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; - if (sSlotMachine->unk0A) + sSlotMachine->slotActionPtr = 9; + if (sSlotMachine->fairRollsLeft) { sub_8104CAC(4); - sSlotMachine->state = 18; + sSlotMachine->slotActionPtr = 18; } } } return FALSE; } -/*static */bool8 sub_81022A0(struct Task *task) +/*static */bool8 SlotAction18(struct Task *task) { if (sub_8104E18()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; } } return FALSE; } -/*static */bool8 sub_81022CC(struct Task *task) +/*static */bool8 SlotAction_Loop(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); - sSlotMachine->state = 2; + sSlotMachine->slotActionPtr = 2; return FALSE; } -/*static */bool8 sub_81022F0(struct Task *task) +/*static */bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; } return FALSE; } -/*static */bool8 sub_8102318(struct Task *task) +/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->state = 22; + sSlotMachine->slotActionPtr = 22; return FALSE; } -/*static */bool8 sub_8102344(struct Task *task) +/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); - if (input == 0) + if (input == 0) // player chooses to quit { sub_8197434(0, TRUE); sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->state = 27; + sSlotMachine->slotActionPtr = 27; } - else if (input == 1 || input == -1) + else if (input == 1 || input == -1) // player chooses not to quit { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_810239C(struct Task *task) +/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 24; + sSlotMachine->slotActionPtr = 24; return FALSE; } -/*static */bool8 sub_81023B8(struct Task *task) +/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_81023E0_(struct Task *task) +/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 26; + sSlotMachine->slotActionPtr = 26; return FALSE; } -/*static */bool8 sub_81023FC(struct Task *task) +/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 27; + sSlotMachine->slotActionPtr = 27; } return FALSE; } -/*static */bool8 sub_8102424(struct Task *task) +// possibly end game +/*static */bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - sub_80EDD78(GetCoins()); + reportNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8102460(struct Task *task) +/*static */bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { @@ -1359,7 +1382,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) if (gUnknown_0203AAF0 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAF0); FREE_AND_SET_NULL(gUnknown_0203AAC8); - FREE_AND_SET_NULL(gUnknown_0203AACC); + FREE_AND_SET_NULL(selectedPikaPowerTile); FREE_AND_SET_NULL(gUnknown_0203AAD0); FREE_AND_SET_NULL(gUnknown_0203AAD4); FREE_AND_SET_NULL(gUnknown_0203AAD8); @@ -1373,157 +1396,161 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return FALSE; } -/*static */void sub_8102484(void) +/*static */void DrawForLuckyFlags(void) { - u8 r3; + u8 luckyAttempts; - if (sSlotMachine->unk0A == 0) + if (sSlotMachine->fairRollsLeft == 0) { - if (!(sSlotMachine->unk04 & 0xc0)) + if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 { - if (sub_8102540_()) + if (IsLuckyRound()) { - r3 = sub_8102578(); - if (r3 != 3) + luckyAttempts = AttemptsAtLuckiness1(); + if (luckyAttempts != 3) // if you found a lucky number { - sSlotMachine->unk04 |= gUnknown_083ECE42[r3]; - if (r3 != 1) + // luckyAttempts == 1: reelTime flag set + sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness1[luckyAttempts]; + if (luckyAttempts != 1) { return; } } } - r3 = sub_81025BC(); - if (r3 != 5) + // if you got it your first try, you get to try again for the lower lucky flags + luckyAttempts = AttemptsAtLuckiness2(); + if (luckyAttempts != 5) // if you found a lucky number { - sSlotMachine->unk04 |= gUnknown_083ECE48[r3]; + sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness2[luckyAttempts]; } } } } -/*static */void sub_81024F0(void) +/*static */void AnyLuckyFlagsSet(void) { - sSlotMachine->unk06 = 0; - if (sSlotMachine->unk04) - sSlotMachine->unk06 = 1; + sSlotMachine->isBiasTagMatchPossible = 0; + if (sSlotMachine->luckyFlags) + sSlotMachine->isBiasTagMatchPossible = 1; } -/*static */u8 sub_810250C(u8 a0) +/*static */u8 GetLuckyFlagTagOutput(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { - if (a0 & 1) - return gUnknown_083ECE3A[i]; - a0 >>= 1; + if (luckyFlags & 1) + return LuckyFlagTagOutput[i]; + luckyFlags >>= 1; } return 0; } -/*static */bool8 sub_8102540_(void) +/*static */bool8 IsLuckyRound(void) { u8 rval = Random(); - if (gUnknown_083ECD04[sSlotMachine->unk01][sSlotMachine->bet - 1] > rval) + if (sSlotLuckinessTable1[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -/*static */u8 sub_8102578(void) +/*static */u8 AttemptsAtLuckiness1(void) { - s16 i; + s16 countAttempts; - for (i = 0; i < 3; i++) + for (countAttempts = 0; countAttempts < 3; countAttempts++) { s16 rval = Random() & 0xff; - s16 value = gUnknown_083ECD16[i][sSlotMachine->unk01]; + s16 value = sSlotLuckinessTable2[countAttempts][sSlotMachine->machineId]; if (value > rval) break; } - return i; + return countAttempts; } -/*static */u8 sub_81025BC(void) +/*static */u8 AttemptsAtLuckiness2(void) { - s16 i; + s16 countAttempts; - for (i = 0; i < 5; i++) + for (countAttempts = 0; countAttempts < 5; countAttempts++) { - s16 rval = Random() & 0xff; - s16 r3 = gUnknown_083ECD28[i][sSlotMachine->unk01]; - if (i == 0 && sSlotMachine->unk03 == 1) + s16 rval = Random() & 0xff; // random byte + s16 value = sSlotLuckinessTable3[countAttempts][sSlotMachine->machineId]; + // make first attempt easier if it's a lucky game + if (countAttempts == 0 && sSlotMachine->luckyGame == 1) { - r3 += 10; - if (r3 > 0x100) - r3 = 0x100; + value += 10; + if (value > 0x100) + value = 0x100; } - else if (i == 4 && sSlotMachine->unk03 == 1) + // make last attempt harder if it's a lucky game + else if (countAttempts == 4 && sSlotMachine->luckyGame == 1) { - r3 -= 10; - if (r3 < 0) - r3 = 0; + value -= 10; + if (value < 0) + value = 0; } - if (r3 > rval) + if (value > rval) break; } - return i; + return countAttempts; } -/*static */u8 sub_810264C(u8 a0) +/*static */u8 GetReelTimeProbability(u8 reelTimeDraw) { - if (sSlotMachine->unk03 == 0) - return gUnknown_083ECD46[a0][sSlotMachine->pikaPower]; + if (sSlotMachine->luckyGame == 0) + return ReelTimeProbabilityTable0[reelTimeDraw][sSlotMachine->pikaPower]; else - return gUnknown_083ECDAC[a0][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable1[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void sub_8102680(void) +/*static */void DrawReelTimeOutcome(void) { u8 rval; - s16 i; + s16 reelTimeDraw; - sSlotMachine->unk05 = 0; + sSlotMachine->reelTimeDraw = 0; rval = Random(); - if (rval < sub_810264C(0)) + if (rval < GetReelTimeProbability(0)) return; - for (i = 5; i > 0; i--) + for (reelTimeDraw = 5; reelTimeDraw > 0; reelTimeDraw--) { rval = Random(); - if (rval < sub_810264C(i)) + if (rval < GetReelTimeProbability(reelTimeDraw)) break; } - sSlotMachine->unk05 = i; + sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 sub_81026DC(u16 a0) +/*static */bool8 SkipToReelTimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < gUnknown_083ECE12[a0]) + if (rval < ProbabilityTable_SkipToReelTimeAction14[i]) return TRUE; else return FALSE; } -/*static */u16 dp15_jump_random_unknown(void) +/*static */u16 DrawNewReelIncrement(void) { - u8 r4 = 0; + u8 i = 0; u8 rval; u8 value; - if (sSlotMachine->unk10 >= 300) - r4 = 4; - else if (sSlotMachine->unk10 >= 250) - r4 = 3; - else if (sSlotMachine->unk10 >= 200) - r4 = 2; - else if (sSlotMachine->unk10 >= 150) - r4 = 1; + if (sSlotMachine->netCoinLoss >= 300) + i = 4; + else if (sSlotMachine->netCoinLoss >= 250) + i = 3; + else if (sSlotMachine->netCoinLoss >= 200) + i = 2; + else if (sSlotMachine->netCoinLoss >= 150) + i = 1; rval = Random() % 100; - value = gUnknown_083ECE1C[r4][0]; + value = ReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[sSlotMachine->unk0B]; + value = ReelIncrementTable[i][1] + ReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; if (rval < value) return 2; return 8; @@ -1543,9 +1570,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 2); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 2); + c1 = GetNearbyTag(0, 2); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1559,9 +1586,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 1); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + c1 = GetNearbyTag(0, 1); + c2 = GetNearbyTag(1, 1); + c3 = GetNearbyTag(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1571,9 +1598,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 3); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + c1 = GetNearbyTag(0, 3); + c2 = GetNearbyTag(1, 3); + c3 = GetNearbyTag(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1589,9 +1616,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + c1 = GetNearbyTag(0, 1); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1602,9 +1629,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } sub_8103E04(3); } - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + c1 = GetNearbyTag(0, 3); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1630,26 +1657,26 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return SLOT_MACHINE_MATCHED_NONE; } -/*static */void sub_8102A24(void) +/*static */void AwardPayout(void) { - sub_8102A64(CreateTask(sub_8102A64, 4)); + RunAwardPayoutActions(CreateTask(RunAwardPayoutActions, 4)); } -/*static */bool8 sub_8102A44(void) +/*static */bool8 IsFinalTask_RunAwardPayoutActions(void) { - if (FindTaskIdByFunc(sub_8102A64) == 0xFF) + if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL) return TRUE; else return FALSE; } -/*static */void sub_8102A64(u8 taskId) +/*static */void RunAwardPayoutActions(u8 taskId) { - while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) + while (AwardPayoutActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } -/*static */bool8 sub_8102A9C(struct Task *task) +/*static */bool8 AwardPayoutAction1(struct Task *task) { if (sub_8103E38()) { @@ -1662,8 +1689,8 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } return FALSE; } - -/*static */bool8 sub_8102AD0(struct Task *task) +// task->data[1]: timer +/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) { if (!task->data[1]--) { @@ -1689,165 +1716,177 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return FALSE; } -/*static */bool8 sub_8102B80(struct Task *task) +/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task) { if (sub_8103E7C()) - DestroyTask(FindTaskIdByFunc(sub_8102A64)); + DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } -/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { - s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; - if (offset < 0) - offset += 21; - return sReelSymbols[x][offset]; + /* + Returns the tag that is posOffset below the tag at the top of reelIndex's tape + */ + s16 tagIndex = (sSlotMachine->reelPositions[reelIndex] + posOffset) % REEL_NUM_TAGS; + if (tagIndex < 0) + tagIndex += REEL_NUM_TAGS; + return sReelSymbols[reelIndex][tagIndex]; } -/*static */u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +// TODO: find out how rounding works +/*static */u8 GetNearbyTag_PixelOffset(u8 reelIndex, s16 posOffset) { - s16 r6 = 0; - s16 result = sSlotMachine->unk1C[x] % 24; + s16 tagOffset = 0; + s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; if (result != 0) - r6 = -1; - return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); + tagOffset = -1; // tag will be posOffset - 1 + return GetNearbyTag(reelIndex, posOffset + tagOffset); } -/*static */u8 sub_8102C48(s16 a0) +// TODO: make sure this is actually what's happening +/*static */u8 GetNthNextReelTimePosition(s16 n) { - s16 r1 = (sSlotMachine->unk16 + a0) % 6; - if (r1 < 0) - r1 += 6; - return gUnknown_083ECCF1[r1]; + s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; + if (newPosition < 0) + newPosition += 6; + return gUnknown_083ECCF1[newPosition]; } -/*static */void sub_8102C84(u8 a0, s16 a1) +/*static */void IncrementReelPixelOffset(u8 reelIndex, s16 value) { - sSlotMachine->unk1C[a0] += a1; - sSlotMachine->unk1C[a0] %= 504; - sSlotMachine->reelPositions[a0] = 21 - sSlotMachine->unk1C[a0] / 24; + sSlotMachine->reelPixelOffsets[reelIndex] += value; + sSlotMachine->reelPixelOffsets[reelIndex] %= 504; + sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; } -s16 sub_8102CCC(u8 a0, s16 a1) +// TODO: make sure that's actually what's happening +s16 AdvanceReelNextTag(u8 reelIndex, s16 reelIncrement) { - s16 r1 = sSlotMachine->unk1C[a0] % 24; - if (r1 != 0) + s16 value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (value != 0) { - if (r1 < a1) - a1 = r1; - sub_8102C84(a0, a1); - r1 = sSlotMachine->unk1C[a0] % 24; + if (value < reelIncrement) + reelIncrement = value; + IncrementReelPixelOffset(reelIndex, reelIncrement); + value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; } - return r1; + return value; } -/*static */void sub_8102D28(s16 a0) +/*static */void IncrementReelTimePixelOffset(s16 value) { - sSlotMachine->unk14 += a0; - sSlotMachine->unk14 %= 120; - sSlotMachine->unk16 = 6 - sSlotMachine->unk14 / 20; + sSlotMachine->reelTimePixelOffset += value; + sSlotMachine->reelTimePixelOffset %= 120; + sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; } -s16 sub_8102D5C(s16 a0) +s16 AdvanceReelTimeNextNumber(s16 reelIncrement) { - s16 r1 = sSlotMachine->unk14 % 20; - if (r1 != 0) + s16 value = sSlotMachine->reelTimePixelOffset % 20; + if (value != 0) { - if (r1 < a0) - a0 = r1; - sub_8102D28(a0); - r1 = sSlotMachine->unk14 % 20; + if (value < reelIncrement) + reelIncrement = value; + IncrementReelTimePixelOffset(reelIncrement); + value = sSlotMachine->reelTimePixelOffset % 20; } - return r1; + return value; } -/*static */void sub_8102DA8(void) +/*static */void GameplayTask_StopReel(void) { u8 i; for (i = 0; i < 3; i++) { - u8 taskId = CreateTask(sub_8102E68, 2); + u8 taskId = CreateTask(RunReelActions, 2); gTasks[taskId].data[15] = i; sSlotMachine->reelTasks[i] = taskId; - sub_8102E68(taskId); + RunReelActions(taskId); } } -/*static */void sub_8102DEC(u8 a0) +/*static */void ReelTasks_8102DEC(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; - gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; } -/*static */void sub_8102E1C(u8 a0) +/*static */void sub_8102E1C(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 sub_8102E40(u8 a0) +/*static */bool8 IsReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->reelTasks[a0]].data[14]; + return gTasks[sSlotMachine->reelTasks[reelIndex]].data[14]; } -/*static */void sub_8102E68(u8 taskId) +/*static */void RunReelActions(u8 taskId) { - while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) + while (ReelActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } -/*static */bool8 sub_8102EA0(struct Task *task) +// task->data[1] reel turns +// task->data[15] reelIndex +/*static */bool8 ReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 sub_8102EA4(struct Task *task) +/*static */bool8 ReelAction_Spin(struct Task *task) { - sub_8102C84(task->data[15], sSlotMachine->unk1A); + IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); return FALSE; } -/*static */bool8 sub_8102EC0(struct Task *task) +/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - sSlotMachine->unk34[task->data[15]] = 0; - sSlotMachine->unk2E[task->data[15]] = 0; - if (sSlotMachine->unk0A == 0 && (sSlotMachine->unk04 == 0 || sSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]())) + // initialize data for that reel --> these will be manipulated if biasTags can be lined up + sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; + sSlotMachine->reelExtraTurns[task->data[15]] = 0; + + if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->isBiasTagMatchPossible == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) { - sSlotMachine->unk06 = 0; - gUnknown_083ECB4C[task->data[15]](); + sSlotMachine->isBiasTagMatchPossible = 0; + DecideReelTurns_NoBiasTag[task->data[15]](); } - task->data[1] = sSlotMachine->unk2E[task->data[15]]; + task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; return TRUE; } -/*static */bool8 sub_8102F4C(struct Task *task) +// go to next tag and then do any additional turns +/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task) { - u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; - s16 r2; + u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; + s16 reelPixelPos; - memcpy(sp, gUnknown_085A74FC, sizeof(gUnknown_085A74FC)); - r2 = sSlotMachine->unk1C[task->data[15]] % 24; - if (r2 != 0) - r2 = sub_8102CCC(task->data[15], sSlotMachine->unk1A); - else if (sSlotMachine->unk2E[task->data[15]]) + memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + if (reelPixelPos != 0) + reelPixelPos = AdvanceReelNextTag(task->data[15], sSlotMachine->reelIncrement); + else if (sSlotMachine->reelExtraTurns[task->data[15]]) { - sSlotMachine->unk2E[task->data[15]]--; - sub_8102C84(task->data[15], sSlotMachine->unk1A); - r2 = sSlotMachine->unk1C[task->data[15]] % 24; + sSlotMachine->reelExtraTurns[task->data[15]]--; + IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; } - if (r2 == 0 && sSlotMachine->unk2E[task->data[15]] == 0) + if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) { task->data[0]++; - task->data[1] = sp[task->data[1]]; + task->data[1] = reelStopShocks[task->data[1]]; task->data[2] = 0; } return FALSE; } -/*static */bool8 sub_8103008(struct Task *task) +// make selected tag oscillate before it becomes still +/*static */bool8 ReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->unk22[task->data[15]] = task->data[1]; + sSlotMachine->stopReelPixelOffset[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) @@ -1856,103 +1895,111 @@ s16 sub_8102D5C(s16 a0) { task->data[0] = 0; task->data[14] = 0; - sSlotMachine->unk22[task->data[15]] = 0; + sSlotMachine->stopReelPixelOffset[task->data[15]] = 0; } return FALSE; } -/*static */bool8 sub_810305C(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 r3 = sub_810250C(sSlotMachine->unk04); - u8 r5 = r3; - if (sSlotMachine->unk04 & 0xc0) + u8 tag2 = GetLuckyFlagTagOutput(sSlotMachine->luckyFlags); + u8 tag1 = tag2; + if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set { - r5 = 0; - r3 = 1; + tag1 = SLOT_MACHINE_TAG_7_RED; + tag2 = SLOT_MACHINE_TAG_7_BLUE; } - return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); + return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +/*static */bool8 IsTag1orTag2AtPosInReel1(s16 pos, u8 tag1, u8 tag2) { - u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); + u8 tag = GetNearbyTag_PixelOffset(0, pos); if (tag == tag1 || tag == tag2) { - sSlotMachine->unk07 = tag; + sSlotMachine->biasTag = tag; return TRUE; } return FALSE; } -/*static */bool8 sub_81030E0(s16 y) +/*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) + if (GetNearbyTag_PixelOffset(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; else return FALSE; } -/*static */bool8 sub_8103134(void) +/*static */bool8 LuckyFlags_BiasCherryOr7s(void) { - if (sSlotMachine->unk04 & 0xc2) + if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set return TRUE; else return FALSE; } -/*static */bool8 sub_8103154(u8 a0, u8 a1) +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) { s16 i; for (i = 0; i < 5; i++) { - if (sub_81030A4(2 - i, a0, a1)) + // if a lucky tag appears in the center row within the next 5 turns + if (IsTag1orTag2AtPosInReel1(2 - i, tag1, tag2)) { - sSlotMachine->unk34[0] = 2; - sSlotMachine->unk2E[0] = i; + sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->reelExtraTurns[0] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_81031B4(u8 tag1, u8 tag2) +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; - bool8 r6 = sub_8103134(); - if (r6 || !sub_81030E0(0)) + bool8 areLuckyBitsSet = LuckyFlags_BiasCherryOr7s(); + // if lucky numbers or no cherries are currently on screen in reel 1... + if (areLuckyBitsSet || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) { - if (sub_81030A4(i, tag1, tag2)) + //...and if a bias tag is currently on the screen + if (IsTag1orTag2AtPosInReel1(i, tag1, tag2)) { - sSlotMachine->unk34[0] = i; - sSlotMachine->unk2E[0] = 0; + sSlotMachine->biasTagFinalPositions[0] = i; + sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } } } for (i = 1; i < 5; i++) { - bool8 r7 = r6; - if (r7 || !sub_81030E0(i)) + bool8 areLuckyBitsSetCopy = areLuckyBitsSet; // redundant + // if lucky numbers or if in the next 4 turns there is a screen with no cherries... + if (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i)) { - if (sub_81030A4(1 - i, tag1, tag2)) + //...and if a bias tag is in top row of that screen + if (IsTag1orTag2AtPosInReel1(1 - i, tag1, tag2)) { - if (i == 1 && (r7 || !sub_81030E0(3))) + //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... + if (i == 1 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->unk34[0] = 3; - sSlotMachine->unk2E[0] = 3; + sSlotMachine->biasTagFinalPositions[0] = 3; // maybe how many paths to check + sSlotMachine->reelExtraTurns[0] = 3; // maybe upper limit of turns to advance return TRUE; } - if (i < 4 && (r7 || !sub_81030E0(i + 1))) + //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... + if (i < 4 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->unk34[0] = 2; - sSlotMachine->unk2E[0] = i + 1; + sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } - sSlotMachine->unk34[0] = 1; - sSlotMachine->unk2E[0] = i; + //...else + sSlotMachine->biasTagFinalPositions[0] = 1; + sSlotMachine->reelExtraTurns[0] = i; return TRUE; } } @@ -1960,55 +2007,61 @@ s16 sub_8102D5C(s16 a0) return FALSE; } -/*static */bool8 sub_81032C0(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2(void) { - return gUnknown_083ECB70[sSlotMachine->bet - 1](); + return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */bool8 sub_81032E8(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 unk34_0 = sSlotMachine->unk34[0]; + s16 reel1BiasTagFinalPos = sSlotMachine->biasTagFinalPositions[0]; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == sSlotMachine->unk07) + // if biasTag appears in the same row within 5 turns + if (GetNearbyTag_PixelOffset(1, reel1BiasTagFinalPos - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = unk34_0; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = reel1BiasTagFinalPos; + sSlotMachine->reelExtraTurns[1] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_810333C(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; - if (sub_81032E8()) + // if biasTag appears in the same row within 5 turns... + if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { - if (sSlotMachine->unk34[0] != 2 && sSlotMachine->unk2E[1] > 1 && sSlotMachine->unk2E[1] != 4) + //...and if the biasTag is not in row 2 of reel 1 and if it requires between either 2 or 3 turns to line up the biasTag in row 2... + if (sSlotMachine->biasTagFinalPositions[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + //...and if the bias tag will appear in the center row within 5 turns + if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; break; } } } return TRUE; } - if (sSlotMachine->unk34[0] != 2) + // else if the biasTag is not in row 2 of reel 1... + if (sSlotMachine->biasTagFinalPositions[0] != 2) { for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + //...and if the biasTag will appear in the center row of reel 2 within 5 turns + if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; return TRUE; } } @@ -2016,102 +2069,117 @@ s16 sub_8102D5C(s16 a0) return FALSE; } -/*static */bool8 sub_81033DC(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel3(void) { - u8 r3 = sSlotMachine->unk07; - if (sSlotMachine->unk04 & 0x40) + u8 biasTag = sSlotMachine->biasTag; + // if bit 6 of luckyFlags is set... + if (sSlotMachine->luckyFlags & 0x40) { - r3 = 0; - if (sSlotMachine->unk07 == 0) + // make biasTag the opposite color of the 7 in sSlotMachine->biasTag + biasTag = 0; + if (sSlotMachine->biasTag == 0) { - r3 = 1; + biasTag = 1; } } - return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); + return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } -/*static */bool8 sub_810341C(u8 a0) +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 unk34_1 = sSlotMachine->unk34[1]; + s16 reel2BiasTagPos = sSlotMachine->biasTagFinalPositions[1]; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0) + // if the biasTag appears in the same row as in reel 2 within 5 turns + if (GetNearbyTag_PixelOffset(2, reel2BiasTagPos - i) == biasTag) { - sSlotMachine->unk34[2] = unk34_1; - sSlotMachine->unk2E[2] = i; + sSlotMachine->biasTagFinalPositions[2] = reel2BiasTagPos; + sSlotMachine->reelExtraTurns[2] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_810347C(u8 a0) +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) { s16 i; - s16 r8; - if (sSlotMachine->unk34[0] == sSlotMachine->unk34[1]) - return sub_810341C(a0); - if (sSlotMachine->unk34[0] == 1) - r8 = 3; + s16 biasTagFinalPos; + // if the final position of the biasTag matches in reel 1 and reel 2... + if (sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1]) + //...then try to line it up in reel 3 + return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); + // else place it in the row opposite reel 1's + if (sSlotMachine->biasTagFinalPositions[0] == 1) + biasTagFinalPos = 3; else - r8 = 1; + biasTagFinalPos = 1; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0) + // if in the biasTag lands in that position within the next 5 turns + if (GetNearbyTag_PixelOffset(2, biasTagFinalPos - i) == biasTag) { - sSlotMachine->unk2E[2] = i; - sSlotMachine->unk34[2] = r8; + sSlotMachine->reelExtraTurns[2] = i; + sSlotMachine->biasTagFinalPositions[2] = biasTagFinalPos; return TRUE; } } return FALSE; } -/*static */void sub_81034F4(void) +/* +Advance until there are no cherries on screen in reel 1 +*/ +/*static */void DecideReelTurns_NoBiasTag_Reel1(void) { s16 i = 0; - while (sub_81030E0(i) != 0) + while (AreCherriesOnScreen_Reel1(i) != 0) i++; - sSlotMachine->unk2E[0] = i; + sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 sub_8103520(u8 *a0) +/*static */bool8 IsBiasTag7AndIfSoChangeColor(u8 *biasTagPtr) { - if (*a0 == 0) + if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { - *a0 = 1; + *biasTagPtr = SLOT_MACHINE_TAG_7_BLUE; return TRUE; } - if (*a0 == 1) + if (*biasTagPtr == SLOT_MACHINE_TAG_7_BLUE) { - *a0 = 0; + *biasTagPtr = SLOT_MACHINE_TAG_7_RED; return TRUE; } return FALSE; } -/*static */void sub_8103540(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2(void) { - gUnknown_083ECB88[sSlotMachine->bet - 1](); + DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */void sub_8103564(void) +// only does stuff if the biasTag is one of the 7's, plus other conditions +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i)) + //...and if the biasTag appears in the next 5 turns + if (biasTag == GetNearbyTag_PixelOffset(1, 2 - i)) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; break; } } @@ -2119,20 +2187,24 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void j5_08111E84(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - i)) + //...and if in the next 5 turns the biasTag appears in reel 2 + if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - i)) { - sSlotMachine->unk34[1] = sSlotMachine->unk34[0]; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = sSlotMachine->biasTagFinalPositions[0]; + sSlotMachine->reelExtraTurns[1] = i; break; } } @@ -2140,61 +2212,65 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8103668(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) { s16 i; s16 j; - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - if (sSlotMachine->unk34[0] == 2) + //...and if biasTag appeared in the center row of reel 1 + if (sSlotMachine->biasTagFinalPositions[0] == 2) { - j5_08111E84(); + DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { j = 2; - if (sSlotMachine->unk34[0] == 3) + if (sSlotMachine->biasTagFinalPositions[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j)) + if (biasTag == GetNearbyTag_PixelOffset(1, j)) { - sSlotMachine->unk34[1] = j; - sSlotMachine->unk2E[1] = 0; + sSlotMachine->biasTagFinalPositions[1] = j; + sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - j)) + if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - j)) { - if (sSlotMachine->unk34[0] == 1) + if (sSlotMachine->biasTagFinalPositions[0] == 1) { if (j < 3) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = j + 1; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->unk34[1] = 1; - sSlotMachine->unk2E[1] = j; + sSlotMachine->biasTagFinalPositions[1] = 1; + sSlotMachine->reelExtraTurns[1] = j; } } else { if (j < 3) { - sSlotMachine->unk34[1] = 3; - sSlotMachine->unk2E[1] = j; + sSlotMachine->biasTagFinalPositions[1] = 3; + sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = j - 1; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = j - 1; } } return; @@ -2234,7 +2310,7 @@ s16 sub_8102D5C(s16 a0) return TRUE; } -/*static */void sub_810380C(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3(void) { gUnknown_083ECB94[sSlotMachine->bet - 1](); } @@ -2242,27 +2318,27 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8103830(void) { s16 i = 0; - u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); - u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + u8 r5 = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 r1 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); if (r5 == r1) { while (1) { u8 r0; - if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + if (!(r5 == (r0 = GetNearbyTag_PixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) break; i++; } } else if (sub_8103764(r5, r1)) { - if (sSlotMachine->unk04 & 0x80) + if (sSlotMachine->luckyFlags & 0x80) { for (i = 0; i < 5; i++) { - if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + if (r5 == GetNearbyTag_PixelOffset(2, 2 - i)) { - sSlotMachine->unk2E[2] = i; + sSlotMachine->reelExtraTurns[2] = i; return; } } @@ -2270,12 +2346,12 @@ s16 sub_8102D5C(s16 a0) i = 0; while (1) { - if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + if (r5 != GetNearbyTag_PixelOffset(2, 2 - i)) break; i++; } } - sSlotMachine->unk2E[2] = i; + sSlotMachine->reelExtraTurns[2] = i; } /*static */void sub_8103910(void) @@ -2286,15 +2362,15 @@ s16 sub_8102D5C(s16 a0) u8 r6; u8 r4; - if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] == sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + r7 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r7, r6)) { for (i = 0; i < 5; i++) { - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, sSlotMachine->unk34[1] - i); + r4 = GetNearbyTag_PixelOffset(2, sSlotMachine->biasTagFinalPositions[1] - i); if (r7 == r4) { sp0 = i; @@ -2308,10 +2384,10 @@ s16 sub_8102D5C(s16 a0) s16 r8; for (i = 1, r8 = 0; i < 4; i++) { - r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - sSlotMachine->unk2E[0]); - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0); - if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->unk04 & 0x80))) + r7 = GetNearbyTag_PixelOffset(0, i - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag_PixelOffset(1, i - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, i - sp0); + if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) { r8++; break; @@ -2321,7 +2397,7 @@ s16 sub_8102D5C(s16 a0) break; sp0++; } - sSlotMachine->unk2E[2] = sp0; + sSlotMachine->reelExtraTurns[2] = sp0; } /*static */void sub_8103A78(void) @@ -2333,21 +2409,21 @@ s16 sub_8102D5C(s16 a0) s16 i; sub_8103910(); - if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] != sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] != sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + r6 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r6, r5)) { r8 = 1; - if (sSlotMachine->unk34[0] == 1) + if (sSlotMachine->biasTagFinalPositions[0] == 1) r8 = 3; for (i = 0; i < 5; i++) { - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (sSlotMachine->unk2E[2] + i)); + r4 = GetNearbyTag_PixelOffset(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); if (r6 == r4) { - sSlotMachine->unk2E[2] += i; + sSlotMachine->reelExtraTurns[2] += i; break; } } @@ -2355,21 +2431,21 @@ s16 sub_8102D5C(s16 a0) } while (1) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - sSlotMachine->unk2E[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + r6 = GetNearbyTag_PixelOffset(0, 1 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, 3 - sSlotMachine->reelExtraTurns[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; - sSlotMachine->unk2E[2]++; + sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - sSlotMachine->unk2E[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + r6 = GetNearbyTag_PixelOffset(0, 3 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, 1 - sSlotMachine->reelExtraTurns[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; - sSlotMachine->unk2E[2]++; + sSlotMachine->reelExtraTurns[2]++; } } @@ -2403,9 +2479,9 @@ s16 sub_8102D5C(s16 a0) DestroyTask(taskId); } -/*static */void sub_8103D00(u8 a0) +/*static */void LoadLightedTile(u8 tileId) { - LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); + LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); } /*static */void sub_8103D28(u8 a0) @@ -2413,18 +2489,19 @@ s16 sub_8102D5C(s16 a0) LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -/*static */void sub_8103D50(u8 a0) +// probably light the bet number +/*static */void LoadBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gUnknown_083EDD3B[a0]; i++) - sub_8103D00(gUnknown_083EDD35[a0][i]); + for (i = 0; i < gNumberBettingTiles[betVal]; i++) + LoadLightedTile(gBettingTilesId[betVal][i]); } /*static */void sub_8103D8C(u8 a0) { u8 i; - for (i = 0; i < gUnknown_083EDD3B[a0]; i++) - sub_8103D28(gUnknown_083EDD35[a0][i]); + for (i = 0; i < gNumberBettingTiles[a0]; i++) + sub_8103D28(gBettingTilesId[a0][i]); } /*static */void sub_8103DC8(void) @@ -2449,6 +2526,7 @@ s16 sub_8102D5C(s16 a0) sprite->data[7] = 0; } +// something with payout digits /*static */bool8 sub_8103E38(void) { u8 i; @@ -2545,32 +2623,33 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104048(void) { - sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); + sSlotMachine->unkTaskPointer = CreateTask(sub_81040E8, 8); } -/*static */void sub_8104064(u8 pikaPower) +// possibly clear pikaPower +/*static */void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unk3E; - sub_812D394(task); + struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; - task->data[15] = 1; + task->data[15] = 1; // points to a reelIndex } /*static */void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unk3E; - sub_812D394(task); + struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + ClearTaskDataFields_2orHigher(task); task->data[0] = 3; - task->data[15] = 1; + task->data[15] = 1; // points to a reelIndex } /*static */bool8 sub_81040C8(void) { - return gTasks[sSlotMachine->unk3E].data[15]; + return gTasks[sSlotMachine->unkTaskPointer].data[15]; } -/*static */void sub_81040E8(u8 taskId) +/*static */void sub_81040E8(u8 taskId) // debug to see if taskId is machineId { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } @@ -2596,11 +2675,11 @@ s16 sub_8102D5C(s16 a0) r3 = 1, r2 = 1; else if (task->data[1] == 16) r3 = 2, r2 = 2; - gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][0]; - LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); sub_8105B88(task->data[2]); task->data[0] = 0; - task->data[15] = 0; + task->data[15] = 0; // points to a reelIndex } } @@ -2615,8 +2694,8 @@ s16 sub_8102D5C(s16 a0) r3 = 2, r2 = 2; if (task->data[2] == 0) { - gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][1]; - LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); task->data[1]--; } if (++task->data[2] >= 20) @@ -2628,7 +2707,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_812D394(struct Task *task) +/*static */void ClearTaskDataFields_2orHigher(struct Task *task) { u8 i; @@ -2636,6 +2715,7 @@ s16 sub_8102D5C(s16 a0) task->data[i] = 0; } +// possibly load tiles for pika power meter /*static */void sub_810423C(u8 pikaPower) { s16 i; @@ -2646,10 +2726,10 @@ s16 sub_8102D5C(s16 a0) r3 = 0, r1 = 0; if (i == 0) r3 = 1, r1 = 1; - else if (i == 15) + else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][0]; - LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) { @@ -2658,35 +2738,39 @@ s16 sub_8102D5C(s16 a0) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][1]; - LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unk3E].data[1] = pikaPower; + gTasks[sSlotMachine->unkTaskPointer].data[1] = pikaPower; } -/*static */void sub_810430C(void) +/*static */void BeginReelTime(void) { - u8 taskId = CreateTask(sub_810434C, 7); - sub_810434C(taskId); + u8 taskId = CreateTask(RunReelTimeActions, 7); + RunReelTimeActions(taskId); } -/*static */bool8 sub_810432C(void) +/*static */bool8 IsFinalTask_RunReelTimeActions(void) { - if (FindTaskIdByFunc(sub_810434C) == 0xFF) + if (FindTaskIdByFunc(RunReelTimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void sub_810434C(u8 taskId) +/*static */void RunReelTimeActions(u8 taskId) { - gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); + // task.data[0] points to which ReelTimeAction to do, and starts at 0 + // task.data[1] has something to do with the threshold + // task.data[4] says how many pixels to advance the reel + // task.data[5] is a timer + ReelTimeActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void sub_810437C(struct Task *task) +/*static */void ReelTimeAction1(struct Task *task) { - sSlotMachine->unk0A = 0; - sSlotMachine->unk14 = 0; - sSlotMachine->unk16 = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->reelTimePixelOffset = 0; + sSlotMachine->reelTimePosition = 0; task->data[0]++; task->data[1] = 0; task->data[2] = 30; @@ -2701,16 +2785,18 @@ s16 sub_8102D5C(s16 a0) sub_81052EC(); sub_81053A0(); sub_810545C(); - sub_8102680(); + DrawReelTimeOutcome(); StopMapMusic(); PlayNewMapMusic(MUS_BD_TIME); } -/*static */void sub_81043EC(struct Task *task) +/*static */void ReelTimeAction2(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; + // boost threshold by 8 task->data[1] += 8; + // only consider lower 8 bits, and then shift them right 3 r3 = ((task->data[1] + 240) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (r3 != task->data[2] && task->data[3] <= 18) @@ -2724,21 +2810,22 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; task->data[3] = 0; } - sub_8102D28(task->data[4] >> 8); + // move ReelTime reel by the value in the upper 8 bits of task->data[4] + IncrementReelTimePixelOffset(task->data[4] >> 8); } -/*static */void sub_8104468(struct Task *task) +/*static */void ReelTimeAction3(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); if (++task->data[5] >= 60) { task->data[0]++; - sub_8105578(); - sub_81056F0(); + CreateReelTimeSprites1(); + CreateReelTimeSprite2(); } } -/*static */void sub_8104498(struct Task *task) +/*static */void ReelTimeAction4(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2749,12 +2836,14 @@ s16 sub_8102D5C(s16 a0) memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); + // gradually slow down the reel task->data[4] -= 4; r5 = 4 - (task->data[4] >> 8); sub_8105688(sp4[r5]); sub_81057E8(spC[r5]); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, sp0[r5]); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, sp0[r5]); + // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { task->data[0]++; @@ -2763,21 +2852,21 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104548(struct Task *task) +/*static */void ReelTimeAction5(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); if (++task->data[5] >= 80) { task->data[0]++; task->data[5] = 0; sub_81057E8(2); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 3); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 3); } } -/*static */void sub_8104598(struct Task *task) +/*static */void ReelTimeAction6(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { @@ -2786,23 +2875,23 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81045CC(struct Task *task) +/*static */void ReelTimeAction7(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; if (++task->data[5] >= 40) { task->data[5] = 0; - if (sSlotMachine->unk05) - { - if (sSlotMachine->unk0A <= task->data[6]) + if (sSlotMachine->reelTimeDraw) + { // TODO: check if fairRollsLeft differs from reelTimeDraw + if (sSlotMachine->fairRollsLeft <= task->data[6]) task->data[0]++; } else if (task->data[6] > 3) { task->data[0]++; } - else if (sub_81026DC(task->data[6])) + else if (SkipToReelTimeAction14(task->data[6])) { task->data[0] = 14; } @@ -2810,28 +2899,28 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_810463C(struct Task *task) +/*static */void ReelTimeAction_LandOnOutcome(struct Task *task) { - s16 r5 = sSlotMachine->unk14 % 20; - if (r5) + s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; + if (reelTimePixelOffset) { - r5 = sub_8102D5C(task->data[4] >> 8); + reelTimePixelOffset = AdvanceReelTimeNextNumber(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } - else if (sub_8102C48(1) != sSlotMachine->unk05) + else if (GetNthNextReelTimePosition(1) != sSlotMachine->reelTimeDraw) { - sub_8102D28(task->data[4] >> 8); - r5 = sSlotMachine->unk14 % 20; + IncrementReelTimePixelOffset(task->data[4] >> 8); + reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (r5 == 0 && sub_8102C48(1) == sSlotMachine->unk05) + if (reelTimePixelOffset == 0 && GetNthNextReelTimePosition(1) == sSlotMachine->reelTimeDraw) { - task->data[4] = 0; + task->data[4] = 0; // stop moving task->data[0]++; } } -/*static */void sub_81046C0(struct Task *task) +/*static */void ReelTimeAction9(struct Task *task) { if (++task->data[4] >= 60) { @@ -2839,17 +2928,17 @@ s16 sub_8102D5C(s16 a0) sub_81056C0(); sub_8105804(); task->data[0]++; - if(sSlotMachine->unk05 == 0) + if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); PlayFanfare(MUS_ME_ZANNEN); } else { task->data[4] = 0xc0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 4); - gSprites[sSlotMachine->unk3F].animCmdIndex = 0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 4); + gSprites[sSlotMachine->reelTimeSprite3F].animCmdIndex = 0; if (sSlotMachine->pikaPower) { sub_8104098(); @@ -2860,13 +2949,13 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104764(struct Task *task) +/*static */void ReelTimeAction10(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void sub_8104794(struct Task *task) +/*static */void ReelTimeAction11(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2880,53 +2969,53 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; } -/*static */void sub_81047EC(struct Task *task) +/*static */void ReelTimeAction12(struct Task *task) { - sSlotMachine->unk0B = 0; - sSlotMachine->unk0A = sSlotMachine->unk05; + sSlotMachine->fairRollsUsed = 0; + sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); - sSlotMachine->unk1A = 8; + sSlotMachine->reelIncrement = 8; sub_810514C(); sub_81054B8(); sub_8105524(); PlayNewMapMusic(sSlotMachine->backupMapMusic); - if (sSlotMachine->unk0A == 0) + if (sSlotMachine->fairRollsLeft == 0) { - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } else { sub_8104CAC(4); - task->data[1] = dp15_jump_random_unknown(); + task->data[1] = DrawNewReelIncrement(); task->data[2] = 0; task->data[3] = 0; task->data[0]++; } } -/*static */void sub_8104860(struct Task *task) +/*static */void ReelTimeAction13(struct Task *task) { - if (sSlotMachine->unk1A == task->data[1]) + if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; - else if (sSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) - sSlotMachine->unk1A >>= 1; + else if (sSlotMachine->reelPixelOffsets[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + sSlotMachine->reelIncrement >>= 1; } -/*static */void sub_81048A8(struct Task *task) +/*static */void ReelTimeAction14(struct Task *task) { if (sub_8104E18()) - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } -/*static */void sub_81048CC(struct Task *task) +/*static */void ReelTimeAction15(struct Task *task) { sub_81054B8(); sub_81056C0(); sub_8105804(); sub_8105854(); gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); task->data[0]++; task->data[4] = 4; task->data[5] = 0; @@ -2935,7 +3024,7 @@ s16 sub_8102D5C(s16 a0) PlaySE(SE_W153); } -/*static */void sub_8104940(struct Task *task) +/*static */void ReelTimeAction16(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -2955,7 +3044,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81049C8(struct Task *task) +/*static */void ReelTimeAction17(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -2966,7 +3055,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81049F8(struct Task *task) +/*static */void ReelTimeAction18(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2975,7 +3064,7 @@ s16 sub_8102D5C(s16 a0) sub_8105554(); sub_8105524(); sub_81059B8(); - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } /*static */void sub_8104A40(s16 a0, s16 a1) @@ -2998,39 +3087,39 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104AB8(u8 a0) +/*static */void OpenInfoBox(u8 seemsUnused) { - u8 taskId = CreateTask(sub_8104B0C, 1); - gTasks[taskId].data[1] = a0; - sub_8104B0C(taskId); + u8 taskId = CreateTask(RunInfoBoxActions, 1); + gTasks[taskId].data[1] = seemsUnused; + RunInfoBoxActions(taskId); } -/*static */bool8 sub_8104AEC(void) +/*static */bool8 ClosedInfoBox(void) { - if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; else return FALSE; } -/*static */void sub_8104B0C(u8 taskId) +/*static */void RunInfoBoxActions(u8 taskId) { - gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); + InfoBoxActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void sub_8104B3C(struct Task *task) +/*static */void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104B60(struct Task *task) +/*static */void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -/*static */void sub_8104B80(struct Task *task) +/*static */void InfoBox_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3040,15 +3129,15 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; } -/*static */void sub_812DD78(struct Task *task) +/*static */void InfoBox_AddText(struct Task *task) { - AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); + AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReelTimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104BC8(struct Task *task) +/*static */void InfoBox_AwaitPlayerInput(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3061,29 +3150,29 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_812DE14(struct Task *task) +/*static */void InfoBox_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -/*static */void sub_812DE30(struct Task *task) +/*static */void InfoBox_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -/*static */void sub_8104BFC(struct Task *task) +/*static */void InfoBox_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104C44(struct Task *task) +/*static */void InfoBox_FreeTask(struct Task *task) { - DestroyTask(FindTaskIdByFunc(sub_8104B0C)); + DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } /*static */void sub_8104C5C(void) @@ -3091,13 +3180,14 @@ s16 sub_8102D5C(s16 a0) u8 i; struct Task *task; i = CreateTask(sub_8104E74_, 3); - sSlotMachine->unk3D = i; + sSlotMachine->unkTaskPointer3D = i; task = gTasks + i; task->data[1] = -1; for (i = 4; i < 16; i++) task->data[i] = MAX_SPRITES; } +// possibly initialize each wheel /*static */void sub_8104CAC(u8 arg0) { u8 i; @@ -3105,7 +3195,7 @@ s16 sub_8102D5C(s16 a0) sub_8104DA4(); - task = gTasks + sSlotMachine->unk3D; + task = gTasks + sSlotMachine->unkTaskPointer3D; task->data[1] = arg0; for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) @@ -3123,7 +3213,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; for (i = 4; i < 16; i++) { if (task->data[i] == MAX_SPRITES) @@ -3137,7 +3227,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104DA4(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; if ((u16)task->data[1] != 0xFFFF) gUnknown_083ED064[task->data[1]](); for (i = 4; i < 16; i++) @@ -3153,7 +3243,7 @@ s16 sub_8102D5C(s16 a0) /*static */bool8 sub_8104E18(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; for (i = 4; i < 16; i++) { if (task->data[i] != MAX_SPRITES) @@ -3192,12 +3282,14 @@ s16 sub_8102D5C(s16 a0) } } +// debug this to find out what sprite->data[0] and sprite->data[2] are holding +// I would guess this updates the sprite location in the reel /*static */void sub_8104F18(struct Sprite *sprite) { - sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; + sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->pos1.y = sSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24)); + sprite->pos1.y = sSlotMachine->stopReelPixelOffset[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3268,12 +3360,12 @@ s16 sub_8102D5C(s16 a0) spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; - sSlotMachine->unk3F = spriteId; + sSlotMachine->reelTimeSprite3F = spriteId; } /*static */void sub_810514C(void) { - DestroySprite(gSprites + sSlotMachine->unk3F); + DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); if (gUnknown_0203AAE4 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAE4); } @@ -3362,10 +3454,10 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_810535C(struct Sprite *sprite) { - s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); + s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; - StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); + StartSpriteAnimIfDifferent(sprite, GetNthNextReelTimePosition(r0 / 20)); } /*static */void sub_81053A0(void) @@ -3427,13 +3519,14 @@ s16 sub_8102D5C(s16 a0) FREE_AND_SET_NULL(gUnknown_0203AAF0); } -/*static */void sub_8105578(void) +// TODO: check if this is true +/*static */void CreateReelTimeSprites1(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->hFlip = TRUE; - sSlotMachine->unk50[0] = spriteId; + sSlotMachine->reelTimeSprites1[0] = spriteId; sprite->data[0] = 8; sprite->data[1] = -1; sprite->data[2] = -1; @@ -3442,7 +3535,7 @@ s16 sub_8102D5C(s16 a0) spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; - sSlotMachine->unk50[1] = spriteId; + sSlotMachine->reelTimeSprites1[1] = spriteId; sprite->data[1] = 1; sprite->data[2] = -1; sprite->data[7] = 0x20; @@ -3472,8 +3565,8 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8105688(s16 a0) { - gSprites[sSlotMachine->unk50[0]].data[7] = a0; - gSprites[sSlotMachine->unk50[1]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; } /*static */void sub_81056C0(void) @@ -3481,10 +3574,10 @@ s16 sub_8102D5C(s16 a0) u8 i; for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk50[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); } -/*static */void sub_81056F0(void) +/*static */void CreateReelTimeSprite2(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3492,12 +3585,12 @@ s16 sub_8102D5C(s16 a0) gSprites[spriteId].data[5] = 0; gSprites[spriteId].data[6] = 16; gSprites[spriteId].data[7] = 8; - sSlotMachine->unk52[0] = spriteId; + sSlotMachine->reelTimeSprites2[0] = spriteId; spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].hFlip = TRUE; - sSlotMachine->unk52[1] = spriteId; + sSlotMachine->reelTimeSprites2[1] = spriteId; } /*static */void sub_8105784(struct Sprite *sprite) @@ -3514,7 +3607,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_81057E8(s16 a0) { - gSprites[sSlotMachine->unk52[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; } /*static */void sub_8105804(void) @@ -3522,7 +3615,7 @@ s16 sub_8102D5C(s16 a0) u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk52[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); } /*static */void sub_8105854(void) @@ -3782,7 +3875,7 @@ s16 sub_8102D5C(s16 a0) switch (sprite->data[0]) { case 0: - StartSpriteAnim(sprite, sSlotMachine->unk0A - 1); + StartSpriteAnim(sprite, sSlotMachine->fairRollsLeft - 1); sprite->data[0]++; // fallthrough case 1: @@ -4271,7 +4364,7 @@ extern const u16 gSlotMachineMenu_Pal[]; gUnknown_0203AB28[1].size = 0x180; } -const u8 sReelSymbols[][21] = +const u8 sReelSymbols[][REEL_NUM_TAGS] = { { SLOT_MACHINE_TAG_7_RED, @@ -4348,13 +4441,13 @@ const u8 gUnknown_083ECCF1[] = { 1, 0, 5, 4, 3, 2 }; -const s16 gUnknown_083ECCF8[][2] = { +const s16 sInitialReelPositions[][2] = { {0, 6}, {0, 10}, {0, 2} }; -const u8 gUnknown_083ECD04[][3] = { +const u8 sSlotLuckinessTable1[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4363,13 +4456,13 @@ const u8 gUnknown_083ECD04[][3] = { {3, 3, 16} }; -const u8 gUnknown_083ECD16[][6] = { +const u8 sSlotLuckinessTable2[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 gUnknown_083ECD28[][6] = { +const u8 sSlotLuckinessTable3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4377,7 +4470,7 @@ const u8 gUnknown_083ECD28[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 gUnknown_083ECD46[][17] = { +const u8 ReelTimeProbabilityTable0[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4386,7 +4479,7 @@ const u8 gUnknown_083ECD46[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 gUnknown_083ECDAC[][17] = { +const u8 ReelTimeProbabilityTable1[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4395,11 +4488,11 @@ const u8 gUnknown_083ECDAC[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 gUnknown_083ECE12[] = { - 0x80, 0xaf, 0xc8, 0xe1, 0x100 +const u16 ProbabilityTable_SkipToReelTimeAction14[] = { + 128, 175, 200, 225, 256 }; -const u16 gUnknown_083ECE1C[][2] = { +const u16 ReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4407,19 +4500,26 @@ const u16 gUnknown_083ECE1C[][2] = { {10, 35} }; -const u16 gUnknown_083ECE30[] = { +const u16 ReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; -const u8 gUnknown_083ECE3A[] = { - 6, 4, 3, 2, 5, 0, 0, 0 +// tentative name +const u8 LuckyFlagTagOutput[] = { + SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -const u16 gUnknown_083ECE42[] = { +/* +sSlotMachine->luckyFlags: 7, 6, 5, 4, 3, 2, 1, 0 +If you got Lucky2 in 1 attempt, flag 7 gets set. +If you got Lucky2 in 2 attempts, flag 5 gets set. +If you got Lucky2 in 3 attempts, flag 6 gets set. +*/ +const u16 FlagsAttemptAtLuckiness1[] = { // order seems buggy 0x80, 0x20, 0x40 }; -const u16 gUnknown_083ECE48[] = { +const u16 FlagsAttemptAtLuckiness2[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; diff --git a/src/task.c b/src/task.c index 14b97a361..a2df66de8 100644 --- a/src/task.c +++ b/src/task.c @@ -1,9 +1,6 @@ #include "global.h" #include "task.h" -#define HEAD_SENTINEL 0xFE -#define TAIL_SENTINEL 0xFF - struct Task gTasks[NUM_TASKS]; static void InsertTask(u8 newTaskId); diff --git a/src/tv.c b/src/tv.c index f282b09f0..cbeb189a8 100644 --- a/src/tv.c +++ b/src/tv.c @@ -62,7 +62,7 @@ IWRAM_DATA s8 sTVShowMixingCurSlot; EWRAM_DATA u16 sPokemonAnglerSpecies = 0; EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; -EWRAM_DATA bool8 sFindThatGamerWhichGame = FALSE; +EWRAM_DATA bool8 sFindThatGamerWhichGame = SLOT_MACHINE; EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void sub_80EDD78(u16 nCoinsPaidOut) +void reportNewCoinTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; @@ -2031,7 +2031,7 @@ void sub_80EDD78(u16 nCoinsPaidOut) flag = FALSE; switch (sFindThatGamerWhichGame) { - case FALSE: + case SLOT_MACHINE: if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 200) { flag = TRUE; @@ -2044,7 +2044,7 @@ void sub_80EDD78(u16 nCoinsPaidOut) break; } return; - case TRUE: + case ROULETTE: if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 50) { flag = TRUE; @@ -2072,15 +2072,15 @@ void sub_80EDD78(u16 nCoinsPaidOut) } } -void sub_80EDE70(u16 nCoinsSpent) +void reportPlayedSlotMachine(u16 nCoinsSpent) { - sFindThatGamerWhichGame = FALSE; + sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void sub_80EDE84(u16 nCoinsSpent) +void reportPlayedRoulette(u16 nCoinsSpent) { - sFindThatGamerWhichGame = TRUE; + sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; } -- cgit v1.2.3 From 67fe781ed2fd5f09fdf47a9c8026177e740f3208 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 13:39:18 -0500 Subject: clean up slot machine until AwardPayout --- src/roulette.c | 2 +- src/slot_machine.c | 214 ++++++++++++++++++++++++++--------------------------- src/tv.c | 4 +- 3 files changed, 110 insertions(+), 110 deletions(-) (limited to 'src') diff --git a/src/roulette.c b/src/roulette.c index b19750f2a..fa2b6c579 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - reportPlayedRoulette(GetCoins()); + AlertTVThatYouPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; diff --git a/src/slot_machine.c b/src/slot_machine.c index 7552e755c..9bb12df81 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -65,7 +65,7 @@ struct SlotMachineEwramStruct /*0x03*/ u8 luckyGame; /*0x04*/ u8 luckyFlags; /*0x05*/ u8 reelTimeDraw; - /*0x06*/ u8 isBiasTagMatchPossible; // tentative + /*0x06*/ u8 luckySpinsLeft; // tentative /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; /*0x0A*/ u8 fairRollsLeft; @@ -77,15 +77,15 @@ struct SlotMachineEwramStruct /*0x14*/ s16 reelTimePixelOffset; /*0x16*/ s16 reelTimePosition; /*0x18*/ s16 currReel; - /*0x1A*/ s16 reelIncrement; + /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; /*0x22*/ u16 stopReelPixelOffset[3]; /*0x28*/ s16 reelPositions[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagFinalPositions[3]; + /*0x34*/ s16 biasTagFinalPositions[3]; /*0x3A*/ u8 reelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; - /*0x3E*/ u8 unkTaskPointer; + /*0x3E*/ u8 unkTaskPointer3E; /*0x3F*/ u8 reelTimeSprite3F; /*0x40*/ u8 unk40; /*0x41*/ u8 unk41; @@ -134,7 +134,7 @@ struct UnkStruct1 /*static */void SlotMachineSetup_9_0(void); /*static */void SlotMachineSetup_10_0(void); /*static */void SlotMachineSetupGameplayTasks(void); -/*static */void GameplayTasks_Slot(void); +/*static */void GameplayTasks_Slots(void); /*static */void sub_8104DA4(void); /*static */void RunSlotActions(u8 taskId); /*static */bool8 SlotAction_UnfadeScreen(struct Task *task); @@ -144,34 +144,34 @@ struct UnkStruct1 /*static */bool8 SlotAction4(struct Task *task); /*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); /*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task); +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task); /*static */bool8 SlotAction_GivingInformation(struct Task *task); /*static */bool8 SlotAction9(struct Task *task); /*static */bool8 SlotAction10(struct Task *task); -/*static */bool8 SlotAction11(struct Task *task); +/*static */bool8 SlotAction_SetLuckySpins(struct Task *task); /*static */bool8 SlotAction_AwaitReelStop(struct Task *task); /*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); /*static */bool8 SlotAction_CheckMatches(struct Task *task); /*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); /*static */bool8 SlotAction_EndOfRoll(struct Task *task); -/*static */bool8 SlotAction17(struct Task *task); +/*static */bool8 SlotAction_MatchedPower(struct Task *task); /*static */bool8 SlotAction18(struct Task *task); /*static */bool8 SlotAction_Loop(struct Task *task); /*static */bool8 SlotAction_NoMatches(struct Task *task); /*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); /*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); /*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task); /*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); -/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task); /*static */bool8 SlotAction_EndGame(struct Task *task); /*static */bool8 SlotAction_FreeDataStructures(struct Task *task); -/*static */void DrawForLuckyFlags(void); -/*static */void AnyLuckyFlagsSet(void); -/*static */bool8 IsLuckyRound(void); -/*static */u8 AttemptsAtLuckiness1(void); +/*static */void DrawLuckyFlags(void); +/*static */void SetLuckySpins(void); +/*static */bool8 IsThisRoundLucky(void); +/*static */u8 AttemptsAtLuckyflags_Top3(void); /*static */u16 DrawNewReelIncrement(void); -/*static */u8 AttemptsAtLuckiness2(void); +/*static */u8 AttemptsAtLuckyflags_NotTop3(void); /*static */void CheckMatch(void); /*static */void CheckMatch_CenterRow(void); /*static */void CheckMatch_TopAndBottom(void); @@ -185,7 +185,7 @@ struct UnkStruct1 /*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); /*static */u8 GetNearbyTag(u8 x, s16 y); /*static */void GameplayTask_StopReel(void); -/*static */void ReelTasks_8102DEC(u8 a0); +/*static */void ReelTasks_SetUnkTaskData(u8 a0); /*static */void sub_8102E1C(u8 a0); /*static */bool8 IsReelMoving(u8 a0); /*static */void RunReelActions(u8 taskId); @@ -228,7 +228,7 @@ struct UnkStruct1 /*static */void sub_8103F70(void); /*static */bool8 sub_8103FA0(void); /*static */void sub_8103FE8_(u8 taskId); -/*static */void sub_8104048(void); +/*static */void GameplayTasks_PikaPower(void); /*static */void DisplayPikaPower(u8 pikaPower); /*static */bool8 sub_81040C8(void); /*static */void sub_81040E8(u8 taskId); @@ -262,7 +262,7 @@ struct UnkStruct1 /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); /*static */void OpenInfoBox(u8 a0); -/*static */bool8 ClosedInfoBox(void); +/*static */bool8 IsInfoBoxClosed(void); /*static */void RunInfoBoxActions(u8 taskId); /*static */void InfoBox_FadeIn(struct Task *task); /*static */void InfoBox_WaitForFade(struct Task *task); @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 sSlotLuckinessTable1[][3]; -extern const u8 LuckyFlagTagOutput[]; -extern const u16 FlagsAttemptAtLuckiness1[]; -extern const u16 FlagsAttemptAtLuckiness2[]; +extern const u8 LuckyRoundTable[][3]; +extern const u8 LuckyTags[]; +extern const u16 LuckyFlagSettings_Top3[]; +extern const u16 LuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -384,10 +384,10 @@ extern const u16 *const gUnknown_083EDE20; extern const s16 sInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 sSlotLuckinessTable2[][6]; -extern const u8 sSlotLuckinessTable3[][6]; -extern const u8 ReelTimeProbabilityTable0[][17]; -extern const u8 ReelTimeProbabilityTable1[][17]; +extern const u8 LuckyFlagsTable_Top3[][6]; +extern const u8 LuckyFlagsTable_NotTop3[][6]; +extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; +extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; extern const u8 sSym2Match[]; extern const u8 gUnknown_083ECCF1[]; extern const u8 sReelSymbols[][REEL_NUM_TAGS]; @@ -464,26 +464,26 @@ bool8 (*const SlotActions[])(struct Task *task) = SlotAction4, SlotAction_AwaitPlayerInput, SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_PlayerAcceptsNotHavingThreeCoins, + SlotAction_ExitYouDontHaveThreeCoinsDialogue, SlotAction_GivingInformation, SlotAction9, SlotAction10, - SlotAction11, + SlotAction_SetLuckySpins, SlotAction_AwaitReelStop, SlotAction_WaitForAllReelsToStop, SlotAction_CheckMatches, SlotAction_WaitForPayoutToBeAwarded, SlotAction_EndOfRoll, - SlotAction17, + SlotAction_MatchedPower, SlotAction18, SlotAction_Loop, SlotAction_NoMatches, SlotAction_PrintQuitTheGame, SlotAction_SeeIfPlayerQuits, SlotAction_Print9999CoinMessage, - SlotAction_Escape9999CoinMessage, + SlotAction_Exit9999CoinMessage, SlotAction_PrintNoMoreCoins, - SlotAction_EscapeNoMoreCoins, + SlotAction_ExitNoMoreCoinsMessage, SlotAction_EndGame, SlotAction_FreeDataStructures, }; @@ -863,7 +863,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } - reportPlayedSlotMachine(GetCoins()); + AlertTVThatYouPlayedSlotMachine(GetCoins()); } /*static */void SlotMachineSetup_3_0(void) @@ -891,7 +891,6 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue gUnknown_0203AAD0[6] = 0x20BF; } -// machine wheel stuff /*static */void SlotMachineSetup_5_0(void) { sub_8106448(); @@ -910,16 +909,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_81050C4(); } -// create next gameplay task +// create gameplay tasks /*static */void SlotMachineSetupGameplayTasks(void) { - sub_8104048(); + GameplayTasks_PikaPower(); GameplayTask_StopReel(); sub_8104C5C(); - GameplayTasks_Slot(); + GameplayTasks_Slots(); } -/*static */void GameplayTasks_Slot(void) +/*static */void GameplayTasks_Slots(void) { RunSlotActions(CreateTask(RunSlotActions, 0)); } @@ -1015,10 +1014,10 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->coins--; sSlotMachine->bet++; } - // if player maxed out or finished betting + // player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) sSlotMachine->slotActionPtr = 9; - // if player wants to quit + // player wants to quit if (gMain.newKeys & B_BUTTON) sSlotMachine->slotActionPtr = 21; } @@ -1034,7 +1033,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task) +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1046,7 +1045,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */bool8 SlotAction_GivingInformation(struct Task *task) { - if (ClosedInfoBox()) + if (IsInfoBoxClosed()) sSlotMachine->slotActionPtr = 5; return FALSE; } @@ -1054,14 +1053,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // probably make all the slots roll /*static */bool8 SlotAction9(struct Task *task) { - DrawForLuckyFlags(); + DrawLuckyFlags(); sub_8104DA4(); + // for each reel... - //...do a reel task - ReelTasks_8102DEC(0); - ReelTasks_8102DEC(1); - ReelTasks_8102DEC(2); + ReelTasks_SetUnkTaskData(0); + ReelTasks_SetUnkTaskData(1); + ReelTasks_SetUnkTaskData(2); + sub_80EEC80(); // something with daily slot variable + task->data[0] = 0; if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { @@ -1093,11 +1094,11 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction11(struct Task *task) +/*static */bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { - AnyLuckyFlagsSet(); + SetLuckySpins(); sSlotMachine->slotActionPtr = 12; } return FALSE; @@ -1166,6 +1167,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue PlayFanfare(MUS_ME_B_SMALL); sub_8104CAC(2); } + // if you matched 777... if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { // clear top bits 6 and 7 @@ -1226,7 +1228,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction17(struct Task *task) +/*static */bool8 SlotAction_MatchedPower(struct Task *task) { if (!sub_81040C8()) { @@ -1315,7 +1317,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task) +/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1334,7 +1336,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task) +/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1344,7 +1346,6 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -// possibly end game /*static */bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); @@ -1396,96 +1397,96 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void DrawForLuckyFlags(void) +/*static */void DrawLuckyFlags(void) { - u8 luckyAttempts; + u8 attempts; if (sSlotMachine->fairRollsLeft == 0) { if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 { - if (IsLuckyRound()) + if (IsThisRoundLucky()) { - luckyAttempts = AttemptsAtLuckiness1(); - if (luckyAttempts != 3) // if you found a lucky number + attempts = AttemptsAtLuckyflags_Top3(); + if (attempts != 3) // if you found a lucky number { - // luckyAttempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness1[luckyAttempts]; - if (luckyAttempts != 1) + // attempts == 1: reelTime flag set + sSlotMachine->luckyFlags |= LuckyFlagSettings_Top3[attempts]; + if (attempts != 1) { return; } } } // if you got it your first try, you get to try again for the lower lucky flags - luckyAttempts = AttemptsAtLuckiness2(); - if (luckyAttempts != 5) // if you found a lucky number + attempts = AttemptsAtLuckyflags_NotTop3(); + if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness2[luckyAttempts]; + sSlotMachine->luckyFlags |= LuckyFlagSettings_NotTop3[attempts]; } } } } -/*static */void AnyLuckyFlagsSet(void) +/*static */void SetLuckySpins(void) { - sSlotMachine->isBiasTagMatchPossible = 0; + sSlotMachine->luckySpinsLeft = 0; if (sSlotMachine->luckyFlags) - sSlotMachine->isBiasTagMatchPossible = 1; + sSlotMachine->luckySpinsLeft = 1; } -/*static */u8 GetLuckyFlagTagOutput(u8 luckyFlags) +/*static */u8 GetLuckyTag(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return LuckyFlagTagOutput[i]; + return LuckyTags[i]; luckyFlags >>= 1; } return 0; } -/*static */bool8 IsLuckyRound(void) +/*static */bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (sSlotLuckinessTable1[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -/*static */u8 AttemptsAtLuckiness1(void) +/*static */u8 AttemptsAtLuckyflags_Top3(void) { - s16 countAttempts; + s16 count; - for (countAttempts = 0; countAttempts < 3; countAttempts++) + for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = sSlotLuckinessTable2[countAttempts][sSlotMachine->machineId]; + s16 value = LuckyFlagsTable_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } - return countAttempts; + return count; } -/*static */u8 AttemptsAtLuckiness2(void) +/*static */u8 AttemptsAtLuckyflags_NotTop3(void) { - s16 countAttempts; + s16 count; - for (countAttempts = 0; countAttempts < 5; countAttempts++) + for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = sSlotLuckinessTable3[countAttempts][sSlotMachine->machineId]; + s16 value = LuckyFlagsTable_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game - if (countAttempts == 0 && sSlotMachine->luckyGame == 1) + if (count == 0 && sSlotMachine->luckyGame == 1) { value += 10; if (value > 0x100) value = 0x100; } // make last attempt harder if it's a lucky game - else if (countAttempts == 4 && sSlotMachine->luckyGame == 1) + else if (count == 4 && sSlotMachine->luckyGame == 1) { value -= 10; if (value < 0) @@ -1494,15 +1495,15 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (value > rval) break; } - return countAttempts; + return count; } /*static */u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == 0) - return ReelTimeProbabilityTable0[reelTimeDraw][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return ReelTimeProbabilityTable1[reelTimeDraw][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } /*static */void DrawReelTimeOutcome(void) @@ -1806,7 +1807,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } } -/*static */void ReelTasks_8102DEC(u8 reelIndex) +/*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) { gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; @@ -1845,13 +1846,13 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - // initialize data for that reel --> these will be manipulated if biasTags can be lined up + // initialize data for that reel --> these will be changed if biasTags can be lined up sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; - if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->isBiasTagMatchPossible == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) { - sSlotMachine->isBiasTagMatchPossible = 0; + sSlotMachine->luckySpinsLeft = 0; DecideReelTurns_NoBiasTag[task->data[15]](); } task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; @@ -1902,7 +1903,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 tag2 = GetLuckyFlagTagOutput(sSlotMachine->luckyFlags); + u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set { @@ -2489,7 +2490,7 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -// probably light the bet number +// light up the value bet by the player /*static */void LoadBetTiles(u8 betVal) { u8 i; @@ -2621,15 +2622,14 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -/*static */void sub_8104048(void) +/*static */void GameplayTasks_PikaPower(void) { - sSlotMachine->unkTaskPointer = CreateTask(sub_81040E8, 8); + sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); } -// possibly clear pikaPower /*static */void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; @@ -2638,7 +2638,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; ClearTaskDataFields_2orHigher(task); task->data[0] = 3; task->data[15] = 1; // points to a reelIndex @@ -2646,10 +2646,10 @@ Advance until there are no cherries on screen in reel 1 /*static */bool8 sub_81040C8(void) { - return gTasks[sSlotMachine->unkTaskPointer].data[15]; + return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; } -/*static */void sub_81040E8(u8 taskId) // debug to see if taskId is machineId +/*static */void sub_81040E8(u8 taskId) { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } @@ -2741,7 +2741,7 @@ Advance until there are no cherries on screen in reel 1 selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unkTaskPointer].data[1] = pikaPower; + gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } /*static */void BeginReelTime(void) @@ -3094,7 +3094,7 @@ Advance until there are no cherries on screen in reel 1 RunInfoBoxActions(taskId); } -/*static */bool8 ClosedInfoBox(void) +/*static */bool8 IsInfoBoxClosed(void) { if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; @@ -4447,7 +4447,7 @@ const s16 sInitialReelPositions[][2] = { {0, 2} }; -const u8 sSlotLuckinessTable1[][3] = { +const u8 LuckyRoundTable[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4456,13 +4456,13 @@ const u8 sSlotLuckinessTable1[][3] = { {3, 3, 16} }; -const u8 sSlotLuckinessTable2[][6] = { +const u8 LuckyFlagsTable_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 sSlotLuckinessTable3[][6] = { +const u8 LuckyFlagsTable_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4470,7 +4470,7 @@ const u8 sSlotLuckinessTable3[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 ReelTimeProbabilityTable0[][17] = { +const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4479,7 +4479,7 @@ const u8 ReelTimeProbabilityTable0[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 ReelTimeProbabilityTable1[][17] = { +const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4505,7 +4505,7 @@ const u16 ReelTimeBonusIncrementTable[] = { }; // tentative name -const u8 LuckyFlagTagOutput[] = { +const u8 LuckyTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; @@ -4515,11 +4515,11 @@ If you got Lucky2 in 1 attempt, flag 7 gets set. If you got Lucky2 in 2 attempts, flag 5 gets set. If you got Lucky2 in 3 attempts, flag 6 gets set. */ -const u16 FlagsAttemptAtLuckiness1[] = { // order seems buggy +const u16 LuckyFlagSettings_Top3[] = { // order seems buggy 0x80, 0x20, 0x40 }; -const u16 FlagsAttemptAtLuckiness2[] = { +const u16 LuckyFlagSettings_NotTop3[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; diff --git a/src/tv.c b/src/tv.c index cbeb189a8..27f779c2d 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2072,13 +2072,13 @@ void reportNewCoinTotal(u16 nCoinsPaidOut) } } -void reportPlayedSlotMachine(u16 nCoinsSpent) +void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent) { sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void reportPlayedRoulette(u16 nCoinsSpent) +void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent) { sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; -- cgit v1.2.3 From f8f046c850697a86dae1d244fc80911497bd2d1c Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 19:13:23 -0500 Subject: clean up slot machine more --- src/slot_machine.c | 423 ++++++++++++++++++++++++++--------------------------- 1 file changed, 210 insertions(+), 213 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 9bb12df81..bb6925bd8 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -79,11 +79,11 @@ struct SlotMachineEwramStruct /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; - /*0x22*/ u16 stopReelPixelOffset[3]; - /*0x28*/ s16 reelPositions[3]; + /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; + /*0x28*/ s16 reelTagOffsets[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagFinalPositions[3]; - /*0x3A*/ u8 reelTasks[3]; + /*0x34*/ s16 biasTagLocation[3]; + /*0x3A*/ u8 slotReelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; /*0x3E*/ u8 unkTaskPointer3E; /*0x3F*/ u8 reelTimeSprite3F; @@ -180,20 +180,20 @@ struct UnkStruct1 /*static */void AwardPayout(void); /*static */void RunAwardPayoutActions(u8 taskId); /*static */bool8 IsFinalTask_RunAwardPayoutActions(void); -/*static */bool8 AwardPayoutAction1(struct Task *task); +/*static */bool8 AwardPayoutAction0(struct Task *task); /*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); /*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); -/*static */u8 GetNearbyTag(u8 x, s16 y); -/*static */void GameplayTask_StopReel(void); +/*static */u8 GetNearbyTag_Quantized(u8 x, s16 y); +/*static */void GameplayTask_StopSlotReel(void); /*static */void ReelTasks_SetUnkTaskData(u8 a0); /*static */void sub_8102E1C(u8 a0); -/*static */bool8 IsReelMoving(u8 a0); -/*static */void RunReelActions(u8 taskId); -/*static */bool8 ReelAction_StayStill(struct Task *task); -/*static */bool8 ReelAction_Spin(struct Task *task); -/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task); -/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task); -/*static */bool8 ReelAction_OscillatingStop(struct Task *task); +/*static */bool8 IsSlotReelMoving(u8 a0); +/*static */void RunSlotReelActions(u8 taskId); +/*static */bool8 SlotReelAction_StayStill(struct Task *task); +/*static */bool8 SlotReelAction_Spin(struct Task *task); +/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task); +/*static */bool8 SlotReelAction_MoveToStop(struct Task *task); +/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task); /*static */bool8 DecideReelTurns_BiasTag_Reel1(void); /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); @@ -389,7 +389,7 @@ extern const u8 LuckyFlagsTable_NotTop3[][6]; extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; extern const u8 sSym2Match[]; -extern const u8 gUnknown_083ECCF1[]; +extern const u8 ReelTimeTags[]; extern const u8 sReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; @@ -490,18 +490,18 @@ bool8 (*const SlotActions[])(struct Task *task) = bool8 (*const AwardPayoutActions[])(struct Task *task) = { - AwardPayoutAction1, + AwardPayoutAction0, AwardPayoutAction_GivePayoutToPlayer, AwardPayoutAction_FreeTask }; -bool8 (*const ReelActions[])(struct Task *task) = +bool8 (*const SlotReelActions[])(struct Task *task) = { - ReelAction_StayStill, - ReelAction_Spin, - ReelAction_DecideWhereToStop, - ReelAction_TurnToSelectedTag, - ReelAction_OscillatingStop + SlotReelAction_StayStill, + SlotReelAction_Spin, + SlotReelAction_DecideWhereToStop, + SlotReelAction_MoveToStop, + SlotReelAction_OscillatingStop }; // returns True if a match with the biasTag is possible in that reel @@ -858,9 +858,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // for each reel... for (i = 0; i < 3; i++) { - sSlotMachine->stopReelPixelOffset[i] = 0; - sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; + sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; + sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelTagOffsets[i] * 24; sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } AlertTVThatYouPlayedSlotMachine(GetCoins()); @@ -913,7 +913,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */void SlotMachineSetupGameplayTasks(void) { GameplayTasks_PikaPower(); - GameplayTask_StopReel(); + GameplayTask_StopSlotReel(); sub_8104C5C(); GameplayTasks_Slots(); } @@ -1118,7 +1118,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { - if (!IsReelMoving(sSlotMachine->currReel)) + if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; sSlotMachine->slotActionPtr = 12; @@ -1571,9 +1571,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 2); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 2); + c1 = GetNearbyTag_Quantized(0, 2); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1587,9 +1587,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 1); - c2 = GetNearbyTag(1, 1); - c3 = GetNearbyTag(2, 1); + c1 = GetNearbyTag_Quantized(0, 1); + c2 = GetNearbyTag_Quantized(1, 1); + c3 = GetNearbyTag_Quantized(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1599,9 +1599,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } - c1 = GetNearbyTag(0, 3); - c2 = GetNearbyTag(1, 3); - c3 = GetNearbyTag(2, 3); + c1 = GetNearbyTag_Quantized(0, 3); + c2 = GetNearbyTag_Quantized(1, 3); + c3 = GetNearbyTag_Quantized(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1617,9 +1617,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 1); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 3); + c1 = GetNearbyTag_Quantized(0, 1); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1630,9 +1630,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } sub_8103E04(3); } - c1 = GetNearbyTag(0, 3); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 1); + c1 = GetNearbyTag_Quantized(0, 3); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1677,7 +1677,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue ; } -/*static */bool8 AwardPayoutAction1(struct Task *task) +/*static */bool8 AwardPayoutAction0(struct Task *task) { if (sub_8103E38()) { @@ -1724,130 +1724,130 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) +/* +Returns the tag that is posOffset below the tag at the top of reelIndex's tape +*/ +/*static */u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) { - /* - Returns the tag that is posOffset below the tag at the top of reelIndex's tape - */ - s16 tagIndex = (sSlotMachine->reelPositions[reelIndex] + posOffset) % REEL_NUM_TAGS; + s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) tagIndex += REEL_NUM_TAGS; return sReelSymbols[reelIndex][tagIndex]; } -// TODO: find out how rounding works -/*static */u8 GetNearbyTag_PixelOffset(u8 reelIndex, s16 posOffset) +/* +Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place +/* +/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { s16 tagOffset = 0; s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; if (result != 0) - tagOffset = -1; // tag will be posOffset - 1 - return GetNearbyTag(reelIndex, posOffset + tagOffset); + tagOffset = -1; + return GetNearbyTag_Quantized(reelIndex, posOffset + tagOffset); } -// TODO: make sure this is actually what's happening -/*static */u8 GetNthNextReelTimePosition(s16 n) +/*static */u8 GetNearbyReelTimeTag(s16 n) { s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return gUnknown_083ECCF1[newPosition]; + return ReelTimeTags[newPosition]; } -/*static */void IncrementReelPixelOffset(u8 reelIndex, s16 value) +/*static */void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; - sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; + sSlotMachine->reelTagOffsets[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; } -// TODO: make sure that's actually what's happening -s16 AdvanceReelNextTag(u8 reelIndex, s16 reelIncrement) +s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) { - s16 value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; - if (value != 0) + s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (offset != 0) { - if (value < reelIncrement) - reelIncrement = value; - IncrementReelPixelOffset(reelIndex, reelIncrement); - value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (offset < value) + value = offset; + AdvanceSlotReel(reelIndex, value); + offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; } - return value; + return offset; } -/*static */void IncrementReelTimePixelOffset(s16 value) +/*static */void AdvanceReeltimeReel(s16 value) { sSlotMachine->reelTimePixelOffset += value; sSlotMachine->reelTimePixelOffset %= 120; sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; } -s16 AdvanceReelTimeNextNumber(s16 reelIncrement) +s16 AdvanceReeltimeReelToNextTag(s16 value) { - s16 value = sSlotMachine->reelTimePixelOffset % 20; - if (value != 0) + s16 offset = sSlotMachine->reelTimePixelOffset % 20; + if (offset != 0) { - if (value < reelIncrement) - reelIncrement = value; - IncrementReelTimePixelOffset(reelIncrement); - value = sSlotMachine->reelTimePixelOffset % 20; + if (offset < value) + value = offset; + AdvanceReeltimeReel(value); + offset = sSlotMachine->reelTimePixelOffset % 20; } - return value; + return offset; } -/*static */void GameplayTask_StopReel(void) +/*static */void GameplayTask_StopSlotReel(void) { u8 i; for (i = 0; i < 3; i++) { - u8 taskId = CreateTask(RunReelActions, 2); + u8 taskId = CreateTask(RunSlotReelActions, 2); gTasks[taskId].data[15] = i; - sSlotMachine->reelTasks[i] = taskId; - RunReelActions(taskId); + sSlotMachine->slotReelTasks[i] = taskId; + RunSlotReelActions(taskId); } } /*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; - gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; } /*static */void sub_8102E1C(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 2; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 IsReelMoving(u8 reelIndex) +/*static */bool8 IsSlotReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->reelTasks[reelIndex]].data[14]; + return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; } -/*static */void RunReelActions(u8 taskId) +/*static */void RunSlotReelActions(u8 taskId) { - while (ReelActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (SlotReelActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } // task->data[1] reel turns // task->data[15] reelIndex -/*static */bool8 ReelAction_StayStill(struct Task *task) +/*static */bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 ReelAction_Spin(struct Task *task) +/*static */bool8 SlotReelAction_Spin(struct Task *task) { - IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); return FALSE; } - -/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) +// As in previous generations, the slot machine often doesn't stop exactly when you press stop +/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up - sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; + sSlotMachine->biasTagLocation[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) @@ -1860,7 +1860,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } // go to next tag and then do any additional turns -/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task) +/*static */bool8 SlotReelAction_MoveToStop(struct Task *task) { u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; s16 reelPixelPos; @@ -1868,11 +1868,11 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; if (reelPixelPos != 0) - reelPixelPos = AdvanceReelNextTag(task->data[15], sSlotMachine->reelIncrement); + reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); else if (sSlotMachine->reelExtraTurns[task->data[15]]) { sSlotMachine->reelExtraTurns[task->data[15]]--; - IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; } if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) @@ -1885,9 +1885,9 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } // make selected tag oscillate before it becomes still -/*static */bool8 ReelAction_OscillatingStop(struct Task *task) +/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->stopReelPixelOffset[task->data[15]] = task->data[1]; + sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) @@ -1896,7 +1896,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) { task->data[0] = 0; task->data[14] = 0; - sSlotMachine->stopReelPixelOffset[task->data[15]] = 0; + sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = 0; } return FALSE; } @@ -1913,9 +1913,9 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 IsTag1orTag2AtPosInReel1(s16 pos, u8 tag1, u8 tag2) +/*static */bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) { - u8 tag = GetNearbyTag_PixelOffset(0, pos); + u8 tag = GetNearbyTag(0, pos); if (tag == tag1 || tag == tag2) { sSlotMachine->biasTag = tag; @@ -1926,13 +1926,13 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetNearbyTag_PixelOffset(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) + if (GetNearbyTag(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; else return FALSE; } -/*static */bool8 LuckyFlags_BiasCherryOr7s(void) +/*static */bool8 IsBiasTowardsCherryOr7s(void) { if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set return TRUE; @@ -1946,10 +1946,10 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) for (i = 0; i < 5; i++) { - // if a lucky tag appears in the center row within the next 5 turns - if (IsTag1orTag2AtPosInReel1(2 - i, tag1, tag2)) + // if a lucky tag appears in the center row within 4 turns + if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->biasTagLocation[0] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -1960,16 +1960,15 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; - bool8 areLuckyBitsSet = LuckyFlags_BiasCherryOr7s(); - // if lucky numbers or no cherries are currently on screen in reel 1... - if (areLuckyBitsSet || !AreCherriesOnScreen_Reel1(0)) + bool8 biased = IsBiasTowardsCherryOr7s(); + if (biased || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) { - //...and if a bias tag is currently on the screen - if (IsTag1orTag2AtPosInReel1(i, tag1, tag2)) + // if a bias tag is currently on the screen + if (AreTagsAtPosition_Reel1(i, tag1, tag2)) { - sSlotMachine->biasTagFinalPositions[0] = i; + sSlotMachine->biasTagLocation[0] = i; sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } @@ -1977,29 +1976,29 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } for (i = 1; i < 5; i++) { - bool8 areLuckyBitsSetCopy = areLuckyBitsSet; // redundant - // if lucky numbers or if in the next 4 turns there is a screen with no cherries... - if (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i)) + bool8 biasedCopy = biased; // redundant + // if biased or if in the next 4 turns there is a screen with no cherries... + if (biasedCopy || !AreCherriesOnScreen_Reel1(i)) { //...and if a bias tag is in top row of that screen - if (IsTag1orTag2AtPosInReel1(1 - i, tag1, tag2)) + if (AreTagsAtPosition_Reel1(1 - i, tag1, tag2)) { //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... - if (i == 1 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(3))) + if (i == 1 && (biasedCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->biasTagFinalPositions[0] = 3; // maybe how many paths to check - sSlotMachine->reelExtraTurns[0] = 3; // maybe upper limit of turns to advance + sSlotMachine->biasTagLocation[0] = 3; + sSlotMachine->reelExtraTurns[0] = 3; return TRUE; } //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... - if (i < 4 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i + 1))) + if (i < 4 && (biasedCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->biasTagLocation[0] = 2; sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } //...else - sSlotMachine->biasTagFinalPositions[0] = 1; + sSlotMachine->biasTagLocation[0] = 1; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2016,14 +2015,14 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 reel1BiasTagFinalPos = sSlotMachine->biasTagFinalPositions[0]; + s16 biasTagLocation_Reel1 = sSlotMachine->biasTagLocation[0]; for (i = 0; i < 5; i++) { - // if biasTag appears in the same row within 5 turns - if (GetNearbyTag_PixelOffset(1, reel1BiasTagFinalPos - i) == sSlotMachine->biasTag) + // if biasTag appears in the same row within 4 turns + if (GetNearbyTag(1, biasTagLocation_Reel1 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = reel1BiasTagFinalPos; + sSlotMachine->biasTagLocation[1] = biasTagLocation_Reel1; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2034,18 +2033,18 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; - // if biasTag appears in the same row within 5 turns... + // if biasTag appears in the same row within 4 turns... if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { - //...and if the biasTag is not in row 2 of reel 1 and if it requires between either 2 or 3 turns to line up the biasTag in row 2... - if (sSlotMachine->biasTagFinalPositions[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) + //...and if the biasTag is not in middle row of reel 1 and if biasTag appears in middle row of reel 2 in 2 or 3 turns... + if (sSlotMachine->biasTagLocation[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { - //...and if the bias tag will appear in the center row within 5 turns - if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) + //...and if the bias tag will appear in the middle row within 4 turns + if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2053,15 +2052,15 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } return TRUE; } - // else if the biasTag is not in row 2 of reel 1... - if (sSlotMachine->biasTagFinalPositions[0] != 2) + // else if the biasTag is not in middle row of reel 1... + if (sSlotMachine->biasTagLocation[0] != 2) { for (i = 0; i < 5; i++) { - //...and if the biasTag will appear in the center row of reel 2 within 5 turns - if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) + //...and if the biasTag will appear in the center row of reel 2 within 4 turns + if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2089,14 +2088,14 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 reel2BiasTagPos = sSlotMachine->biasTagFinalPositions[1]; + s16 biasTagLocation_Reel2 = sSlotMachine->biasTagLocation[1]; for (i = 0; i < 5; i++) { - // if the biasTag appears in the same row as in reel 2 within 5 turns - if (GetNearbyTag_PixelOffset(2, reel2BiasTagPos - i) == biasTag) + // if the biasTag appears in the same row as in reel 2 within 4 turns + if (GetNearbyTag(2, biasTagLocation_Reel2 - i) == biasTag) { - sSlotMachine->biasTagFinalPositions[2] = reel2BiasTagPos; + sSlotMachine->biasTagLocation[2] = biasTagLocation_Reel2; sSlotMachine->reelExtraTurns[2] = i; return TRUE; } @@ -2109,21 +2108,21 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) s16 i; s16 biasTagFinalPos; // if the final position of the biasTag matches in reel 1 and reel 2... - if (sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1]) + if (sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1]) //...then try to line it up in reel 3 return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); // else place it in the row opposite reel 1's - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) biasTagFinalPos = 3; else biasTagFinalPos = 1; for (i = 0; i < 5; i++) { - // if in the biasTag lands in that position within the next 5 turns - if (GetNearbyTag_PixelOffset(2, biasTagFinalPos - i) == biasTag) + // if the biasTag lands in that position within 4 turns + if (GetNearbyTag(2, biasTagFinalPos - i) == biasTag) { sSlotMachine->reelExtraTurns[2] = i; - sSlotMachine->biasTagFinalPositions[2] = biasTagFinalPos; + sSlotMachine->biasTagLocation[2] = biasTagFinalPos; return TRUE; } } @@ -2142,7 +2141,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag7AndIfSoChangeColor(u8 *biasTagPtr) +/*static */bool8 IsBiasTag7AndIfSoSColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2165,21 +2164,21 @@ Advance until there are no cherries on screen in reel 1 // only does stuff if the biasTag is one of the 7's, plus other conditions /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + // if biasTag is in reel 1 and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 biasTag = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) - //...swap the color of the 7... + if (IsBiasTag7AndIfSoSColor(&biasTag)) + //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { - //...and if the biasTag appears in the next 5 turns - if (biasTag == GetNearbyTag_PixelOffset(1, 2 - i)) + //...and if the biasTag appears within 4 turns + if (biasTag == GetNearbyTag(1, 2 - i)) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2191,20 +2190,20 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) - //...swap the color of the 7... + if (IsBiasTag7AndIfSoSColor(&biasTag)) + //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { - //...and if in the next 5 turns the biasTag appears in reel 2 - if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - i)) + //...and if the biasTag appears in same row in reel 2 within 4 turns + if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - i)) { - sSlotMachine->biasTagFinalPositions[1] = sSlotMachine->biasTagFinalPositions[0]; + sSlotMachine->biasTagLocation[1] = sSlotMachine->biasTagLocation[0]; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2218,46 +2217,46 @@ Advance until there are no cherries on screen in reel 1 s16 i; s16 j; // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { //...and if biasTag appeared in the center row of reel 1 - if (sSlotMachine->biasTagFinalPositions[0] == 2) + if (sSlotMachine->biasTagLocation[0] == 2) { DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + if (IsBiasTag7AndIfSoSColor(&biasTag)) //...swap the color of the 7... { j = 2; - if (sSlotMachine->biasTagFinalPositions[0] == 3) + if (sSlotMachine->biasTagLocation[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { - if (biasTag == GetNearbyTag_PixelOffset(1, j)) + if (biasTag == GetNearbyTag(1, j)) { - sSlotMachine->biasTagFinalPositions[1] = j; + sSlotMachine->biasTagLocation[1] = j; sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - j)) + if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - j)) { - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) { if (j < 3) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->biasTagFinalPositions[1] = 1; + sSlotMachine->biasTagLocation[1] = 1; sSlotMachine->reelExtraTurns[1] = j; } } @@ -2265,12 +2264,12 @@ Advance until there are no cherries on screen in reel 1 { if (j < 3) { - sSlotMachine->biasTagFinalPositions[1] = 3; + sSlotMachine->biasTagLocation[1] = 3; sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = j - 1; } } @@ -2319,14 +2318,14 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_8103830(void) { s16 i = 0; - u8 r5 = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); - u8 r1 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + u8 r5 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 r1 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); if (r5 == r1) { while (1) { u8 r0; - if (!(r5 == (r0 = GetNearbyTag_PixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + if (!(r5 == (r0 = GetNearbyTag(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) break; i++; } @@ -2337,7 +2336,7 @@ Advance until there are no cherries on screen in reel 1 { for (i = 0; i < 5; i++) { - if (r5 == GetNearbyTag_PixelOffset(2, 2 - i)) + if (r5 == GetNearbyTag(2, 2 - i)) { sSlotMachine->reelExtraTurns[2] = i; return; @@ -2347,7 +2346,7 @@ Advance until there are no cherries on screen in reel 1 i = 0; while (1) { - if (r5 != GetNearbyTag_PixelOffset(2, 2 - i)) + if (r5 != GetNearbyTag(2, 2 - i)) break; i++; } @@ -2363,15 +2362,15 @@ Advance until there are no cherries on screen in reel 1 u8 r6; u8 r4; - if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); + r7 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r7, r6)) { for (i = 0; i < 5; i++) { - r4 = GetNearbyTag_PixelOffset(2, sSlotMachine->biasTagFinalPositions[1] - i); + r4 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); if (r7 == r4) { sp0 = i; @@ -2385,9 +2384,9 @@ Advance until there are no cherries on screen in reel 1 s16 r8; for (i = 1, r8 = 0; i < 4; i++) { - r7 = GetNearbyTag_PixelOffset(0, i - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag_PixelOffset(1, i - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, i - sp0); + r7 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, i - sp0); if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) { r8++; @@ -2410,18 +2409,18 @@ Advance until there are no cherries on screen in reel 1 s16 i; sub_8103910(); - if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] != sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); + r6 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r6, r5)) { r8 = 1; - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) r8 = 3; for (i = 0; i < 5; i++) { - r4 = GetNearbyTag_PixelOffset(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); + r4 = GetNearbyTag(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); if (r6 == r4) { sSlotMachine->reelExtraTurns[2] += i; @@ -2432,18 +2431,18 @@ Advance until there are no cherries on screen in reel 1 } while (1) { - r6 = GetNearbyTag_PixelOffset(0, 1 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, 3 - sSlotMachine->reelExtraTurns[2]); + r6 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetNearbyTag_PixelOffset(0, 3 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, 1 - sSlotMachine->reelExtraTurns[2]); + r6 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; @@ -2811,12 +2810,12 @@ Advance until there are no cherries on screen in reel 1 task->data[3] = 0; } // move ReelTime reel by the value in the upper 8 bits of task->data[4] - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); } /*static */void ReelTimeAction3(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) { task->data[0]++; @@ -2836,7 +2835,7 @@ Advance until there are no cherries on screen in reel 1 memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); // gradually slow down the reel task->data[4] -= 4; r5 = 4 - (task->data[4] >> 8); @@ -2854,7 +2853,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction5(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) { task->data[0]++; @@ -2866,7 +2865,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction6(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { @@ -2877,7 +2876,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction7(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; if (++task->data[5] >= 40) { @@ -2904,16 +2903,16 @@ Advance until there are no cherries on screen in reel 1 s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; if (reelTimePixelOffset) { - reelTimePixelOffset = AdvanceReelTimeNextNumber(task->data[4] >> 8); + reelTimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } - else if (GetNthNextReelTimePosition(1) != sSlotMachine->reelTimeDraw) + else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (reelTimePixelOffset == 0 && GetNthNextReelTimePosition(1) == sSlotMachine->reelTimeDraw) + if (reelTimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving task->data[0]++; @@ -3282,14 +3281,12 @@ Advance until there are no cherries on screen in reel 1 } } -// debug this to find out what sprite->data[0] and sprite->data[2] are holding -// I would guess this updates the sprite location in the reel /*static */void sub_8104F18(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->pos1.y = sSlotMachine->stopReelPixelOffset[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag(sprite->data[0], sprite->data[2] / 24)); + sprite->pos1.y = sSlotMachine->reelPixelOffsetsWhileStopping[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag_Quantized(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3457,7 +3454,7 @@ Advance until there are no cherries on screen in reel 1 s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; - StartSpriteAnimIfDifferent(sprite, GetNthNextReelTimePosition(r0 / 20)); + StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } /*static */void sub_81053A0(void) @@ -4437,7 +4434,7 @@ const u8 sReelSymbols[][REEL_NUM_TAGS] = }, }; -const u8 gUnknown_083ECCF1[] = { +const u8 ReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -- cgit v1.2.3 From 47a3477ab103e7f25115ead0a8c1ab63578076c1 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 17:46:44 -0500 Subject: finish DecideReelTurns --- src/slot_machine.c | 162 +++++++++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 74 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index bb6925bd8..96c9692b3 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -68,7 +68,7 @@ struct SlotMachineEwramStruct /*0x06*/ u8 luckySpinsLeft; // tentative /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 fairRollsLeft; + /*0x0A*/ u8 fairRollsLeft; // only happens if you win reeltime /*0x0B*/ u8 fairRollsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; @@ -144,7 +144,7 @@ struct UnkStruct1 /*static */bool8 SlotAction4(struct Task *task); /*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); /*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task); +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); /*static */bool8 SlotAction_GivingInformation(struct Task *task); /*static */bool8 SlotAction9(struct Task *task); /*static */bool8 SlotAction10(struct Task *task); @@ -209,9 +209,9 @@ struct UnkStruct1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); /*static */void DecideReelTurns_NoBiasTag_Reel3(void); -/*static */void sub_8103830(void); -/*static */void sub_8103910(void); -/*static */void sub_8103A78(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); /*static */void sub_8103C14(u8 a0); /*static */void sub_8103C48(u8 taskId); /*static */void LoadBetTiles(u8 a0); @@ -464,7 +464,7 @@ bool8 (*const SlotActions[])(struct Task *task) = SlotAction4, SlotAction_AwaitPlayerInput, SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_ExitYouDontHaveThreeCoinsDialogue, + SlotAction_ExitYouDontHaveThreeCoinsMessage, SlotAction_GivingInformation, SlotAction9, SlotAction10, @@ -550,11 +550,11 @@ void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = DecideReelTurns_NoBiasTag_Reel2_Bet3 }; -void (*const gUnknown_083ECB94[])(void) = +void (*const DecideReelTurns_NoBiasTag_Reel3_Bets[])(void) = { - sub_8103830, - sub_8103910, - sub_8103A78 + DecideReelTurns_NoBiasTag_Reel3_Bet1, + DecideReelTurns_NoBiasTag_Reel3_Bet2, + DecideReelTurns_NoBiasTag_Reel3_Bet3 }; void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = @@ -1033,7 +1033,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task) +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1961,6 +1961,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { s16 i; bool8 biased = IsBiasTowardsCherryOr7s(); + // if lucky numbers or no cherries are currently on screen in reel 1... if (biased || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) @@ -2281,29 +2282,30 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 sub_8103764(u8 a0, u8 a1) +/*static */bool8 AreTagsMixed7s_2Tags(u8 tag1, u8 tag2) { - if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; else return FALSE; } -/*static */bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +/*static */bool8 AreTagsMixed7s_3Tags(u8 tag1, u8 tag2, u8 tag3) { - if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) return TRUE; else return FALSE; } -/*static */bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +/*static */bool8 DoTagsNotMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { - if ((a0 == 0 && a1 == 1 && a2 == 0) || - (a0 == 1 && a1 == 0 && a2 == 1) || - (a0 == 0 && a1 == 0 && a2 == 1) || - (a0 == 1 && a1 == 1 && a2 == 0) || - (a0 == a1 && a0 == a2)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || + (tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == tag2 && tag1 == tag3)) { return FALSE; } @@ -2312,41 +2314,46 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel3(void) { - gUnknown_083ECB94[sSlotMachine->bet - 1](); + DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } -/*static */void sub_8103830(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) { s16 i = 0; - u8 r5 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); - u8 r1 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - if (r5 == r1) + u8 tag1 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + // if tags match in first 2 reels... + if (tag1 == tag2) { + //...spin until you get non-matching tag while (1) { - u8 r0; - if (!(r5 == (r0 = GetNearbyTag(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + u8 tag3; + if (!(tag1 == (tag3 = GetNearbyTag(2, 2 - i)) || (tag1 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED))) break; i++; } } - else if (sub_8103764(r5, r1)) + else if (AreTagsMixed7s_2Tags(tag1, tag2)) { + // if bit 7 of luckyFlags is set... if (sSlotMachine->luckyFlags & 0x80) { + //...see if you can match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - if (r5 == GetNearbyTag(2, 2 - i)) + if (tag1 == GetNearbyTag(2, 2 - i)) { sSlotMachine->reelExtraTurns[2] = i; return; } } } + // turn until you aren't matching with reel 1 i = 0; while (1) { - if (r5 != GetNearbyTag(2, 2 - i)) + if (tag1 != GetNearbyTag(2, 2 - i)) break; i++; } @@ -2354,74 +2361,81 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = i; } -/*static */void sub_8103910(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) { - s16 sp0 = 0; + s16 extraTurns = 0; s16 i; - u8 r7; - u8 r6; - u8 r4; - + u8 tag1; + u8 tag2; + u8 tag3; + // if tags match in first 2 reels and bit 7 of luckyFlags is set... if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); - if (sub_8103764(r7, r6)) + tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + //...and if tags are mixed 7s... + if (AreTagsMixed7s_2Tags(tag1, tag2)) { + //...try to match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - r4 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); - if (r7 == r4) + tag3 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); + if (tag1 == tag3) { - sp0 = i; + extraTurns = i; break; } } } } + // GUESS: spin until there's no possible match within 4 turns of you stopping while (1) { - s16 r8; - for (i = 1, r8 = 0; i < 4; i++) + s16 loopExit; + for (i = 1, loopExit = 0; i < 4; i++) { - r7 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, i - sp0); - if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) + tag1 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); // why does this update with i + tag2 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, i - extraTurns); + // if bit 7 of luckyFlags is unset... + //...and if all 3 tags match and they're not mixed 7s + if (!DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed7s_3Tags(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & 0x80))) { - r8++; + loopExit++; break; } } - if (r8 == 0) + if (loopExit == 0) break; - sp0++; + extraTurns++; } - sSlotMachine->reelExtraTurns[2] = sp0; + sSlotMachine->reelExtraTurns[2] = extraTurns; } -/*static */void sub_8103A78(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) { - u8 r6; - u8 r5; - u8 r4; - s16 r8; + u8 tag1; + u8 tag2; + u8 tag3; + s16 j; s16 i; - sub_8103910(); + DecideReelTurns_NoBiasTag_Reel3_Bet2(); + // if tags don't match in first 2 reels and bit 7 of luckyFlags is set... if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); - if (sub_8103764(r6, r5)) + tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + //..and if tags are mixed 7s... + if (AreTagsMixed7s_2Tags(tag1, tag2)) { - r8 = 1; + j = 1; if (sSlotMachine->biasTagLocation[0] == 1) - r8 = 3; + j = 3; for (i = 0; i < 5; i++) { - r4 = GetNearbyTag(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); - if (r6 == r4) + tag3 = GetNearbyTag(2, j - (sSlotMachine->reelExtraTurns[2] + i)); + if (tag1 == tag3) { sSlotMachine->reelExtraTurns[2] += i; break; @@ -2431,19 +2445,19 @@ Advance until there are no cherries on screen in reel 1 } while (1) { - r6 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) + tag1 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); + if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) + tag1 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); + if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } -- cgit v1.2.3 From a6eb879267ebad7510b91749e3bbb8b94cdf24d9 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 18:06:21 -0500 Subject: minor reeltime changes --- src/slot_machine.c | 183 ++++++++++++++++++++++++++--------------------------- 1 file changed, 90 insertions(+), 93 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 96c9692b3..1d86c94c5 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -74,8 +74,8 @@ struct SlotMachineEwramStruct /*0x0E*/ s16 payout; /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) /*0x12*/ s16 bet; - /*0x14*/ s16 reelTimePixelOffset; - /*0x16*/ s16 reelTimePosition; + /*0x14*/ s16 reeltimePixelOffset; + /*0x16*/ s16 reeltimePosition; /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; @@ -238,27 +238,27 @@ struct UnkStruct1 /*static */void sub_81041AC(struct Task *task); /*static */void ClearTaskDataFields_2orHigher(struct Task *task); /*static */void sub_810423C(u8 pikaPower); -/*static */void BeginReelTime(void); +/*static */void BeginReeltime(void); /*static */bool8 IsFinalTask_RunReelTimeActions(void); -/*static */void RunReelTimeActions(u8 taskId); -/*static */void ReelTimeAction1(struct Task *task); -/*static */void ReelTimeAction2(struct Task *task); -/*static */void ReelTimeAction3(struct Task *task); -/*static */void ReelTimeAction4(struct Task *task); -/*static */void ReelTimeAction5(struct Task *task); -/*static */void ReelTimeAction6(struct Task *task); -/*static */void ReelTimeAction7(struct Task *task); +/*static */void RunReeltimeActions(u8 taskId); +/*static */void ReeltimeAction0(struct Task *task); +/*static */void ReeltimeAction1(struct Task *task); +/*static */void ReeltimeAction2(struct Task *task); +/*static */void ReeltimeAction3(struct Task *task); +/*static */void ReeltimeAction4(struct Task *task); +/*static */void ReeltimeAction5(struct Task *task); +/*static */void ReeltimeAction6(struct Task *task); /*static */void ReelTimeAction_LandOnOutcome(struct Task *task); -/*static */void ReelTimeAction9(struct Task *task); -/*static */void ReelTimeAction10(struct Task *task); -/*static */void ReelTimeAction11(struct Task *task); -/*static */void ReelTimeAction12(struct Task *task); -/*static */void ReelTimeAction13(struct Task *task); -/*static */void ReelTimeAction14(struct Task *task); -/*static */void ReelTimeAction15(struct Task *task); -/*static */void ReelTimeAction16(struct Task *task); -/*static */void ReelTimeAction17(struct Task *task); -/*static */void ReelTimeAction18(struct Task *task); +/*static */void ReeltimeAction8(struct Task *task); +/*static */void ReeltimeAction9(struct Task *task); +/*static */void ReeltimeAction10(struct Task *task); +/*static */void ReeltimeAction11(struct Task *task); +/*static */void ReeltimeAction12(struct Task *task); +/*static */void ReeltimeAction13(struct Task *task); +/*static */void ReeltimeAction14(struct Task *task); +/*static */void ReeltimeAction15(struct Task *task); +/*static */void ReeltimeAction16(struct Task *task); +/*static */void ReeltimeAction17(struct Task *task); /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); /*static */void OpenInfoBox(u8 a0); @@ -369,7 +369,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 ProbabilityTable_SkipToReelTimeAction14[]; +extern const u16 ProbabilityTable_SkipToReeltimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; extern const u16 ReelIncrementTable[][2]; extern const u16 ReelTimeBonusIncrementTable[]; @@ -581,27 +581,27 @@ const u16 pikaPowerTileTable[][2] = {0xaf, 0x7f}, // {0b10101111, 0b1111111} }; -void (*const ReelTimeActions[])(struct Task *task) = +void (*const ReeltimeActions[])(struct Task *task) = { - ReelTimeAction1, - ReelTimeAction2, - ReelTimeAction3, - ReelTimeAction4, - ReelTimeAction5, - ReelTimeAction6, - ReelTimeAction7, // does stuff with reel time data + ReeltimeAction0, + ReeltimeAction1, + ReeltimeAction2, + ReeltimeAction3, + ReeltimeAction4, + ReeltimeAction5, + ReeltimeAction6, // does stuff with reel time data ReelTimeAction_LandOnOutcome, - ReelTimeAction9, - ReelTimeAction10, - ReelTimeAction11, - ReelTimeAction12, - ReelTimeAction13, - ReelTimeAction14, - ReelTimeAction15, - ReelTimeAction16, - ReelTimeAction17, - ReelTimeAction11, - ReelTimeAction18 + ReeltimeAction8, + ReeltimeAction9, + ReeltimeAction10, + ReeltimeAction11, + ReeltimeAction12, + ReeltimeAction13, + ReeltimeAction14, + ReeltimeAction15, + ReeltimeAction16, + ReeltimeAction10, + ReeltimeAction17 }; const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; @@ -1067,7 +1067,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { // enter into reel time - BeginReelTime(); + BeginReeltime(); sSlotMachine->slotActionPtr = 10; } else @@ -1506,7 +1506,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void DrawReelTimeOutcome(void) +/*static */void GetReeltimeDraw(void) { u8 rval; s16 reelTimeDraw; @@ -1524,10 +1524,10 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 SkipToReelTimeAction14(u16 i) +/*static */bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < ProbabilityTable_SkipToReelTimeAction14[i]) + if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) return TRUE; else return FALSE; @@ -1749,7 +1749,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac /*static */u8 GetNearbyReelTimeTag(s16 n) { - s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; + s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; return ReelTimeTags[newPosition]; @@ -1777,20 +1777,20 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) /*static */void AdvanceReeltimeReel(s16 value) { - sSlotMachine->reelTimePixelOffset += value; - sSlotMachine->reelTimePixelOffset %= 120; - sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; + sSlotMachine->reeltimePixelOffset += value; + sSlotMachine->reeltimePixelOffset %= 120; + sSlotMachine->reeltimePosition = 6 - sSlotMachine->reeltimePixelOffset / 20; } s16 AdvanceReeltimeReelToNextTag(s16 value) { - s16 offset = sSlotMachine->reelTimePixelOffset % 20; + s16 offset = sSlotMachine->reeltimePixelOffset % 20; if (offset != 0) { if (offset < value) value = offset; AdvanceReeltimeReel(value); - offset = sSlotMachine->reelTimePixelOffset % 20; + offset = sSlotMachine->reeltimePixelOffset % 20; } return offset; } @@ -2757,37 +2757,37 @@ Advance until there are no cherries on screen in reel 1 gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } -/*static */void BeginReelTime(void) +/*static */void BeginReeltime(void) { - u8 taskId = CreateTask(RunReelTimeActions, 7); - RunReelTimeActions(taskId); + u8 taskId = CreateTask(RunReeltimeActions, 7); + RunReeltimeActions(taskId); } /*static */bool8 IsFinalTask_RunReelTimeActions(void) { - if (FindTaskIdByFunc(RunReelTimeActions) == TAIL_SENTINEL) + if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void RunReelTimeActions(u8 taskId) +/*static */void RunReeltimeActions(u8 taskId) { // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReelTimeActions[gTasks[taskId].data[0]](gTasks + taskId); + ReeltimeActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void ReelTimeAction1(struct Task *task) +/*static */void ReeltimeAction0(struct Task *task) { sSlotMachine->fairRollsLeft = 0; - sSlotMachine->reelTimePixelOffset = 0; - sSlotMachine->reelTimePosition = 0; + sSlotMachine->reeltimePixelOffset = 0; + sSlotMachine->reeltimePosition = 0; task->data[0]++; task->data[1] = 0; task->data[2] = 30; - task->data[4] = 1280; + task->data[4] = 1280; // reel speed gSpriteCoordOffsetX = 0; gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2798,18 +2798,16 @@ Advance until there are no cherries on screen in reel 1 sub_81052EC(); sub_81053A0(); sub_810545C(); - DrawReelTimeOutcome(); + GetReeltimeDraw(); StopMapMusic(); PlayNewMapMusic(MUS_BD_TIME); } -/*static */void ReelTimeAction2(struct Task *task) +/*static */void ReeltimeAction1(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; - // boost threshold by 8 task->data[1] += 8; - // only consider lower 8 bits, and then shift them right 3 r3 = ((task->data[1] + 240) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (r3 != task->data[2] && task->data[3] <= 18) @@ -2823,11 +2821,10 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; task->data[3] = 0; } - // move ReelTime reel by the value in the upper 8 bits of task->data[4] AdvanceReeltimeReel(task->data[4] >> 8); } -/*static */void ReelTimeAction3(struct Task *task) +/*static */void ReeltimeAction2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2838,7 +2835,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction4(struct Task *task) +/*static */void ReeltimeAction3(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2865,7 +2862,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction5(struct Task *task) +/*static */void ReeltimeAction4(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2877,7 +2874,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction6(struct Task *task) +/*static */void ReeltimeAction5(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2888,7 +2885,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction7(struct Task *task) +/*static */void ReeltimeAction6(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2896,7 +2893,7 @@ Advance until there are no cherries on screen in reel 1 { task->data[5] = 0; if (sSlotMachine->reelTimeDraw) - { // TODO: check if fairRollsLeft differs from reelTimeDraw + { if (sSlotMachine->fairRollsLeft <= task->data[6]) task->data[0]++; } @@ -2904,7 +2901,7 @@ Advance until there are no cherries on screen in reel 1 { task->data[0]++; } - else if (SkipToReelTimeAction14(task->data[6])) + else if (SkipToReeltimeAction14(task->data[6])) { task->data[0] = 14; } @@ -2914,26 +2911,26 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction_LandOnOutcome(struct Task *task) { - s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; - if (reelTimePixelOffset) + s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; + if (reeltimePixelOffset) { - reelTimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); + reeltimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw) { AdvanceReeltimeReel(task->data[4] >> 8); - reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; + reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (reelTimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) + if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving task->data[0]++; } } -/*static */void ReelTimeAction9(struct Task *task) +/*static */void ReeltimeAction8(struct Task *task) { if (++task->data[4] >= 60) { @@ -2962,13 +2959,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction10(struct Task *task) +/*static */void ReeltimeAction9(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void ReelTimeAction11(struct Task *task) +/*static */void ReeltimeAction10(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2982,7 +2979,7 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void ReelTimeAction12(struct Task *task) +/*static */void ReeltimeAction11(struct Task *task) { sSlotMachine->fairRollsUsed = 0; sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; @@ -2995,7 +2992,7 @@ Advance until there are no cherries on screen in reel 1 PlayNewMapMusic(sSlotMachine->backupMapMusic); if (sSlotMachine->fairRollsLeft == 0) { - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } else { @@ -3007,7 +3004,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction13(struct Task *task) +/*static */void ReeltimeAction12(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; @@ -3015,13 +3012,13 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelIncrement >>= 1; } -/*static */void ReelTimeAction14(struct Task *task) +/*static */void ReeltimeAction13(struct Task *task) { if (sub_8104E18()) - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void ReelTimeAction15(struct Task *task) +/*static */void ReeltimeAction14(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -3037,7 +3034,7 @@ Advance until there are no cherries on screen in reel 1 PlaySE(SE_W153); } -/*static */void ReelTimeAction16(struct Task *task) +/*static */void ReeltimeAction15(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3057,7 +3054,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction17(struct Task *task) +/*static */void ReeltimeAction16(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -3068,7 +3065,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction18(struct Task *task) +/*static */void ReeltimeAction17(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3077,7 +3074,7 @@ Advance until there are no cherries on screen in reel 1 sub_8105554(); sub_8105524(); sub_81059B8(); - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } /*static */void sub_8104A40(s16 a0, s16 a1) @@ -3465,7 +3462,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_810535C(struct Sprite *sprite) { - s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); + s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); @@ -4499,7 +4496,7 @@ const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 ProbabilityTable_SkipToReelTimeAction14[] = { +const u16 ProbabilityTable_SkipToReeltimeAction14[] = { 128, 175, 200, 225, 256 }; -- cgit v1.2.3 From f965f1b13dd30293b99307c869ef5f6f382a374f Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 23:44:18 -0500 Subject: label luckyFlags --- src/slot_machine.c | 160 ++++++++++++++++++++++++----------------------------- 1 file changed, 72 insertions(+), 88 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 1d86c94c5..af162b264 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -82,7 +82,7 @@ struct SlotMachineEwramStruct /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; /*0x28*/ s16 reelTagOffsets[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagLocation[3]; + /*0x34*/ s16 winnerRows[3]; /*0x3A*/ u8 slotReelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; /*0x3E*/ u8 unkTaskPointer3E; @@ -950,7 +950,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; - sSlotMachine->luckyFlags &= 0xc0; // discard all but top 2 flags + sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); sSlotMachine->slotActionPtr = 4; if (sSlotMachine->coins <= 0) { @@ -1064,7 +1064,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_80EEC80(); // something with daily slot variable task->data[0] = 0; - if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set + if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { // enter into reel time BeginReeltime(); @@ -1087,8 +1087,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); - // unset enter reel time flag - sSlotMachine->luckyFlags &= 0xDF; + sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; sSlotMachine->slotActionPtr = 11; } return FALSE; @@ -1134,8 +1133,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // once all reels have stopped /*static */bool8 SlotAction_CheckMatches(struct Task *task) { - // keep top 2 bits of luckyFlags - sSlotMachine->luckyFlags &= 0xc0; + sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); if (sSlotMachine->fairRollsLeft) { @@ -1170,8 +1168,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // if you matched 777... if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - // clear top bits 6 and 7 - sSlotMachine->luckyFlags &= 0x3f; + sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { sSlotMachine->fairRollsLeft = 0; @@ -1403,7 +1400,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->fairRollsLeft == 0) { - if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 + if (!(sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777))) { if (IsThisRoundLucky()) { @@ -1847,7 +1844,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up - sSlotMachine->biasTagLocation[task->data[15]] = 0; + sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) @@ -1905,7 +1902,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; - if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set + if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { tag1 = SLOT_MACHINE_TAG_7_RED; tag2 = SLOT_MACHINE_TAG_7_BLUE; @@ -1934,7 +1931,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 IsBiasTowardsCherryOr7s(void) { - if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set + if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777 | LUCKY_BIAS_CHERRY)) return TRUE; else return FALSE; @@ -1949,7 +1946,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) // if a lucky tag appears in the center row within 4 turns if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->biasTagLocation[0] = 2; + sSlotMachine->winnerRows[0] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -1969,7 +1966,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) // if a bias tag is currently on the screen if (AreTagsAtPosition_Reel1(i, tag1, tag2)) { - sSlotMachine->biasTagLocation[0] = i; + sSlotMachine->winnerRows[0] = i; sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } @@ -1987,19 +1984,19 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... if (i == 1 && (biasedCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->biasTagLocation[0] = 3; + sSlotMachine->winnerRows[0] = 3; sSlotMachine->reelExtraTurns[0] = 3; return TRUE; } //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... if (i < 4 && (biasedCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->biasTagLocation[0] = 2; + sSlotMachine->winnerRows[0] = 2; sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } //...else - sSlotMachine->biasTagLocation[0] = 1; + sSlotMachine->winnerRows[0] = 1; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2016,14 +2013,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 biasTagLocation_Reel1 = sSlotMachine->biasTagLocation[0]; + s16 biasTagLocation_Reel1 = sSlotMachine->winnerRows[0]; for (i = 0; i < 5; i++) { // if biasTag appears in the same row within 4 turns if (GetNearbyTag(1, biasTagLocation_Reel1 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = biasTagLocation_Reel1; + sSlotMachine->winnerRows[1] = biasTagLocation_Reel1; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2038,14 +2035,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { //...and if the biasTag is not in middle row of reel 1 and if biasTag appears in middle row of reel 2 in 2 or 3 turns... - if (sSlotMachine->biasTagLocation[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) + if (sSlotMachine->winnerRows[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { //...and if the bias tag will appear in the middle row within 4 turns if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2054,14 +2051,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return TRUE; } // else if the biasTag is not in middle row of reel 1... - if (sSlotMachine->biasTagLocation[0] != 2) + if (sSlotMachine->winnerRows[0] != 2) { for (i = 0; i < 5; i++) { //...and if the biasTag will appear in the center row of reel 2 within 4 turns if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2073,14 +2070,12 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel3(void) { u8 biasTag = sSlotMachine->biasTag; - // if bit 6 of luckyFlags is set... - if (sSlotMachine->luckyFlags & 0x40) + if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) { - // make biasTag the opposite color of the 7 in sSlotMachine->biasTag - biasTag = 0; - if (sSlotMachine->biasTag == 0) + biasTag = SLOT_MACHINE_TAG_7_RED; + if (sSlotMachine->biasTag == SLOT_MACHINE_TAG_7_RED) { - biasTag = 1; + biasTag = SLOT_MACHINE_TAG_7_BLUE; } } return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); @@ -2089,14 +2084,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 biasTagLocation_Reel2 = sSlotMachine->biasTagLocation[1]; + s16 biasTagLocation_Reel2 = sSlotMachine->winnerRows[1]; for (i = 0; i < 5; i++) { // if the biasTag appears in the same row as in reel 2 within 4 turns if (GetNearbyTag(2, biasTagLocation_Reel2 - i) == biasTag) { - sSlotMachine->biasTagLocation[2] = biasTagLocation_Reel2; + sSlotMachine->winnerRows[2] = biasTagLocation_Reel2; sSlotMachine->reelExtraTurns[2] = i; return TRUE; } @@ -2109,11 +2104,11 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) s16 i; s16 biasTagFinalPos; // if the final position of the biasTag matches in reel 1 and reel 2... - if (sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1]) + if (sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1]) //...then try to line it up in reel 3 return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); // else place it in the row opposite reel 1's - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) biasTagFinalPos = 3; else biasTagFinalPos = 1; @@ -2123,7 +2118,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) if (GetNearbyTag(2, biasTagFinalPos - i) == biasTag) { sSlotMachine->reelExtraTurns[2] = i; - sSlotMachine->biasTagLocation[2] = biasTagFinalPos; + sSlotMachine->winnerRows[2] = biasTagFinalPos; return TRUE; } } @@ -2142,7 +2137,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag7AndIfSoSColor(u8 *biasTagPtr) +/*static */bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2165,12 +2160,11 @@ Advance until there are no cherries on screen in reel 1 // only does stuff if the biasTag is one of the 7's, plus other conditions /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - // if biasTag is in reel 1 and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { u8 biasTag = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap color of biasTag... { s16 i; @@ -2179,7 +2173,7 @@ Advance until there are no cherries on screen in reel 1 //...and if the biasTag appears within 4 turns if (biasTag == GetNearbyTag(1, 2 - i)) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2190,21 +2184,20 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { - // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { //...and if the biasTag appears in same row in reel 2 within 4 turns - if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - i)) + if (biasTag == GetNearbyTag(1, sSlotMachine->winnerRows[0] - i)) { - sSlotMachine->biasTagLocation[1] = sSlotMachine->biasTagLocation[0]; + sSlotMachine->winnerRows[1] = sSlotMachine->winnerRows[0]; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2218,46 +2211,46 @@ Advance until there are no cherries on screen in reel 1 s16 i; s16 j; // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { //...and if biasTag appeared in the center row of reel 1 - if (sSlotMachine->biasTagLocation[0] == 2) + if (sSlotMachine->winnerRows[0] == 2) { DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap the color of the 7... { j = 2; - if (sSlotMachine->biasTagLocation[0] == 3) + if (sSlotMachine->winnerRows[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { if (biasTag == GetNearbyTag(1, j)) { - sSlotMachine->biasTagLocation[1] = j; + sSlotMachine->winnerRows[1] = j; sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - j)) + if (biasTag == GetNearbyTag(1, sSlotMachine->winnerRows[0] - j)) { - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) { if (j < 3) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->biasTagLocation[1] = 1; + sSlotMachine->winnerRows[1] = 1; sSlotMachine->reelExtraTurns[1] = j; } } @@ -2265,12 +2258,12 @@ Advance until there are no cherries on screen in reel 1 { if (j < 3) { - sSlotMachine->biasTagLocation[1] = 3; + sSlotMachine->winnerRows[1] = 3; sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = j - 1; } } @@ -2282,7 +2275,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 AreTagsMixed7s_2Tags(u8 tag1, u8 tag2) +/*static */bool8 AreTagsMixed77(u8 tag1, u8 tag2) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; @@ -2290,7 +2283,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 AreTagsMixed7s_3Tags(u8 tag1, u8 tag2, u8 tag3) +/*static */bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) @@ -2299,7 +2292,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 DoTagsNotMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) +/*static */bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || @@ -2334,10 +2327,9 @@ Advance until there are no cherries on screen in reel 1 i++; } } - else if (AreTagsMixed7s_2Tags(tag1, tag2)) + else if (AreTagsMixed77(tag1, tag2)) { - // if bit 7 of luckyFlags is set... - if (sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->luckyFlags & LUCKY_BIAS_777) { //...see if you can match with reel 1 within 4 turns for (i = 0; i < 5; i++) @@ -2368,18 +2360,17 @@ Advance until there are no cherries on screen in reel 1 u8 tag1; u8 tag2; u8 tag3; - // if tags match in first 2 reels and bit 7 of luckyFlags is set... - if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + tag1 = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); //...and if tags are mixed 7s... - if (AreTagsMixed7s_2Tags(tag1, tag2)) + if (AreTagsMixed77(tag1, tag2)) { //...try to match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - tag3 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); + tag3 = GetNearbyTag(2, sSlotMachine->winnerRows[1] - i); if (tag1 == tag3) { extraTurns = i; @@ -2399,7 +2390,7 @@ Advance until there are no cherries on screen in reel 1 tag3 = GetNearbyTag(2, i - extraTurns); // if bit 7 of luckyFlags is unset... //...and if all 3 tags match and they're not mixed 7s - if (!DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed7s_3Tags(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & 0x80))) + if (!TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed777(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & LUCKY_BIAS_777))) { loopExit++; break; @@ -2421,16 +2412,15 @@ Advance until there are no cherries on screen in reel 1 s16 i; DecideReelTurns_NoBiasTag_Reel3_Bet2(); - // if tags don't match in first 2 reels and bit 7 of luckyFlags is set... - if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] != sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + tag1 = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); //..and if tags are mixed 7s... - if (AreTagsMixed7s_2Tags(tag1, tag2)) + if (AreTagsMixed77(tag1, tag2)) { j = 1; - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) j = 3; for (i = 0; i < 5; i++) { @@ -2448,7 +2438,7 @@ Advance until there are no cherries on screen in reel 1 tag1 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); tag3 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); - if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) + if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) break; sSlotMachine->reelExtraTurns[2]++; } @@ -2457,7 +2447,7 @@ Advance until there are no cherries on screen in reel 1 tag1 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); tag3 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); - if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) + if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) break; sSlotMachine->reelExtraTurns[2]++; } @@ -4517,18 +4507,12 @@ const u8 LuckyTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -/* -sSlotMachine->luckyFlags: 7, 6, 5, 4, 3, 2, 1, 0 -If you got Lucky2 in 1 attempt, flag 7 gets set. -If you got Lucky2 in 2 attempts, flag 5 gets set. -If you got Lucky2 in 3 attempts, flag 6 gets set. -*/ -const u16 LuckyFlagSettings_Top3[] = { // order seems buggy - 0x80, 0x20, 0x40 +const u16 LuckyFlagSettings_Top3[] = { + LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; const u16 LuckyFlagSettings_NotTop3[] = { - 0x10, 0x08, 0x04, 0x02, 0x01 + LUCKY_BIAS_POWER, LUCKY_BIAS_AZURRILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; const u8 sSym2Match[] = { -- cgit v1.2.3 From dd8ecabe26e5e525306047507d33bc1640040871 Mon Sep 17 00:00:00 2001 From: hondew Date: Fri, 22 Feb 2019 16:03:35 -0500 Subject: fix mistakes and bad formatting --- src/roulette.c | 4 +- src/slot_machine.c | 1144 ++++++++++++++++++++++++++-------------------------- src/tv.c | 8 +- 3 files changed, 575 insertions(+), 581 deletions(-) (limited to 'src') diff --git a/src/roulette.c b/src/roulette.c index fa2b6c579..93678fa1c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - AlertTVThatYouPlayedRoulette(GetCoins()); + AlertTVThatPlayerPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - reportNewCoinTotal(GetCoins()); + AlertTVOfNewCointTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index af162b264..9c07a96f2 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -59,7 +59,7 @@ enum struct SlotMachineEwramStruct { - /*0x00*/ u8 slotActionPtr; + /*0x00*/ u8 state; /*0x01*/ u8 machineId; /*0x02*/ u8 pikaPower; /*0x03*/ u8 luckyGame; @@ -115,209 +115,209 @@ struct UnkStruct1 #define SLOTMACHINE_GFX_TILES 233 -/*static */void CB2_SlotMachineSetup(void); -/*static */void CB2_SlotMachineLoop(void); -/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); -/*static */void SlotMachineDummyTask(u8 taskId); -/*static */void SlotMachineSetup_0_0(void); -/*static */void SlotMachineSetup_6_2(void); -/*static */void SlotMachineSetup_1_0(void); -/*static */void SlotMachineSetup_2_0(void); -/*static */void SlotMachineSetup_2_1(void); -/*static */void SlotMachineSetup_0_1(void); -/*static */void SlotMachineSetup_3_0(void); -/*static */void SlotMachineSetup_4_0(void); -/*static */void SlotMachineSetup_5_0(void); -/*static */void SlotMachineSetup_6_0(void); -/*static */void SlotMachineSetup_6_1(void); -/*static */void SlotMachineSetup_8_0(void); -/*static */void SlotMachineSetup_9_0(void); -/*static */void SlotMachineSetup_10_0(void); -/*static */void SlotMachineSetupGameplayTasks(void); -/*static */void GameplayTasks_Slots(void); -/*static */void sub_8104DA4(void); -/*static */void RunSlotActions(u8 taskId); -/*static */bool8 SlotAction_UnfadeScreen(struct Task *task); -/*static */bool8 SlotAction_WaitForUnfade(struct Task *task); -/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task); -/*static */bool8 SlotAction3(struct Task *task); -/*static */bool8 SlotAction4(struct Task *task); -/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); -/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); -/*static */bool8 SlotAction_GivingInformation(struct Task *task); -/*static */bool8 SlotAction9(struct Task *task); -/*static */bool8 SlotAction10(struct Task *task); -/*static */bool8 SlotAction_SetLuckySpins(struct Task *task); -/*static */bool8 SlotAction_AwaitReelStop(struct Task *task); -/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); -/*static */bool8 SlotAction_CheckMatches(struct Task *task); -/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); -/*static */bool8 SlotAction_EndOfRoll(struct Task *task); -/*static */bool8 SlotAction_MatchedPower(struct Task *task); -/*static */bool8 SlotAction18(struct Task *task); -/*static */bool8 SlotAction_Loop(struct Task *task); -/*static */bool8 SlotAction_NoMatches(struct Task *task); -/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); -/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); -/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); -/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task); -/*static */bool8 SlotAction_EndGame(struct Task *task); -/*static */bool8 SlotAction_FreeDataStructures(struct Task *task); -/*static */void DrawLuckyFlags(void); -/*static */void SetLuckySpins(void); -/*static */bool8 IsThisRoundLucky(void); -/*static */u8 AttemptsAtLuckyflags_Top3(void); -/*static */u16 DrawNewReelIncrement(void); -/*static */u8 AttemptsAtLuckyflags_NotTop3(void); -/*static */void CheckMatch(void); -/*static */void CheckMatch_CenterRow(void); -/*static */void CheckMatch_TopAndBottom(void); -/*static */void CheckMatch_Diagonals(void); -/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); -/*static */void AwardPayout(void); -/*static */void RunAwardPayoutActions(u8 taskId); -/*static */bool8 IsFinalTask_RunAwardPayoutActions(void); -/*static */bool8 AwardPayoutAction0(struct Task *task); -/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); -/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); -/*static */u8 GetNearbyTag_Quantized(u8 x, s16 y); -/*static */void GameplayTask_StopSlotReel(void); -/*static */void ReelTasks_SetUnkTaskData(u8 a0); -/*static */void sub_8102E1C(u8 a0); -/*static */bool8 IsSlotReelMoving(u8 a0); -/*static */void RunSlotReelActions(u8 taskId); -/*static */bool8 SlotReelAction_StayStill(struct Task *task); -/*static */bool8 SlotReelAction_Spin(struct Task *task); -/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task); -/*static */bool8 SlotReelAction_MoveToStop(struct Task *task); -/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task); -/*static */bool8 DecideReelTurns_BiasTag_Reel1(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); -/*static */bool8 DecideReelTurns_BiasTag_Reel2(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel3(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); -/*static */void DecideReelTurns_NoBiasTag_Reel1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); -/*static */void sub_8103C14(u8 a0); -/*static */void sub_8103C48(u8 taskId); -/*static */void LoadBetTiles(u8 a0); -/*static */void sub_8103C78(struct Task *task, u8 taskId); -/*static */void sub_8103CAC(struct Task *task, u8 taskId); -/*static */void sub_8103CC8(struct Task *task, u8 taskId); -/*static */void sub_8103D8C(u8 a0); -/*static */void sub_8103DC8(void); -/*static */void sub_8103E04(u8 a0); -/*static */bool8 sub_8103E38(void); -/*static */bool8 sub_8103E7C(void); -/*static */bool8 sub_8103EAC(u8 spriteId); -/*static */void sub_8103EE4(struct Sprite *sprite); -/*static */void sub_8103F70(void); -/*static */bool8 sub_8103FA0(void); -/*static */void sub_8103FE8_(u8 taskId); -/*static */void GameplayTasks_PikaPower(void); -/*static */void DisplayPikaPower(u8 pikaPower); -/*static */bool8 sub_81040C8(void); -/*static */void sub_81040E8(u8 taskId); -/*static */void nullsub_68(struct Task *task); -/*static */void sub_810411C(struct Task *task); -/*static */void sub_8104144(struct Task *task); -/*static */void sub_81041AC(struct Task *task); -/*static */void ClearTaskDataFields_2orHigher(struct Task *task); -/*static */void sub_810423C(u8 pikaPower); -/*static */void BeginReeltime(void); -/*static */bool8 IsFinalTask_RunReelTimeActions(void); -/*static */void RunReeltimeActions(u8 taskId); -/*static */void ReeltimeAction0(struct Task *task); -/*static */void ReeltimeAction1(struct Task *task); -/*static */void ReeltimeAction2(struct Task *task); -/*static */void ReeltimeAction3(struct Task *task); -/*static */void ReeltimeAction4(struct Task *task); -/*static */void ReeltimeAction5(struct Task *task); -/*static */void ReeltimeAction6(struct Task *task); -/*static */void ReelTimeAction_LandOnOutcome(struct Task *task); -/*static */void ReeltimeAction8(struct Task *task); -/*static */void ReeltimeAction9(struct Task *task); -/*static */void ReeltimeAction10(struct Task *task); -/*static */void ReeltimeAction11(struct Task *task); -/*static */void ReeltimeAction12(struct Task *task); -/*static */void ReeltimeAction13(struct Task *task); -/*static */void ReeltimeAction14(struct Task *task); -/*static */void ReeltimeAction15(struct Task *task); -/*static */void ReeltimeAction16(struct Task *task); -/*static */void ReeltimeAction17(struct Task *task); -/*static */void sub_8104A40(s16 a0, s16 a1); -/*static */void sub_8104A88(s16 a0); -/*static */void OpenInfoBox(u8 a0); -/*static */bool8 IsInfoBoxClosed(void); -/*static */void RunInfoBoxActions(u8 taskId); -/*static */void InfoBox_FadeIn(struct Task *task); -/*static */void InfoBox_WaitForFade(struct Task *task); -/*static */void InfoBox_8104B80(struct Task *task); -/*static */void InfoBox_AwaitPlayerInput(struct Task *task); -/*static */void InfoBox_AddText(struct Task *task); -/*static */void InfoBox_8104BFC(struct Task *task); -/*static */void InfoBox_812DE14(struct Task *task); -/*static */void InfoBox_812DE30(struct Task *task); -/*static */void InfoBox_FreeTask(struct Task *task); -/*static */void sub_8104C5C(void); -/*static */void sub_8104CAC(u8 arg0); -/*static */bool8 sub_8104E18(void); -/*static */void nullsub_69(struct Task *task); -/*static */void sub_8104E74_(u8 taskId); -/*static */void sub_8104EA8(void); -/*static */void sub_8104F8C(void); -/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -/*static */void sub_81050C4(void); -/*static */void sub_8105100(void); -/*static */void sub_810514C(void); -/*static */void sub_81051C0(void); -/*static */void sub_8105284_(void); -/*static */void sub_81052EC(void); -/*static */void sub_81053A0(void); -/*static */void sub_810545C(void); -/*static */void sub_81054B8(void); -/*static */void sub_8105524(void); -/*static */void sub_8105554(void); -/*static */void CreateReelTimeSprites1(void); -/*static */void sub_8105688(s16 a0); -/*static */void sub_81056C0(void); -/*static */void CreateReelTimeSprite2(void); -/*static */void sub_81057E8(s16 a0); -/*static */void sub_8105804(void); -/*static */void sub_8105854(void); -/*static */void sub_81058A0(void); -/*static */void sub_81058C4(void); -/*static */void sub_81059B8(void); -/*static */void sub_81059E8(void); -/*static */bool8 sub_8105ACC(void); -/*static */void sub_8105AEC(void); -/*static */u8 sub_8105B1C(s16 x, s16 y); -/*static */void sub_8105B88(u8 spriteId); -/*static */u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); -/*static */void sub_81063C0(void); -/*static */void sub_8106404(void); -/*static */void sub_8106448(void); -/*static */void sub_81064B8(void); -/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -/*static */void sub_81065DC(void); -/*static */void sub_812F958(void); -/*static */void sub_812F968(void); -/*static */void LoadSlotMachineWheelOverlay(void); -/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +static void CB2_SlotMachineSetup(void); +static void CB2_SlotMachineLoop(void); +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); +static void SlotMachineDummyTask(u8 taskId); +static void SlotMachineSetup_0_0(void); +static void SlotMachineSetup_6_2(void); +static void SlotMachineSetup_1_0(void); +static void SlotMachineSetup_2_0(void); +static void SlotMachineSetup_2_1(void); +static void SlotMachineSetup_0_1(void); +static void SlotMachineSetup_3_0(void); +static void SlotMachineSetup_4_0(void); +static void SlotMachineSetup_5_0(void); +static void SlotMachineSetup_6_0(void); +static void SlotMachineSetup_6_1(void); +static void SlotMachineSetup_8_0(void); +static void SlotMachineSetup_9_0(void); +static void SlotMachineSetup_10_0(void); +static void SlotMachineSetupGameplayTasks(void); +static void GameplayTasks_Slots(void); +static void sub_8104DA4(void); +static void RunSlotActions(u8 taskId); +static bool8 SlotAction_UnfadeScreen(struct Task *task); +static bool8 SlotAction_WaitForUnfade(struct Task *task); +static bool8 SlotAction_SetSlotMachineVars(struct Task *task); +static bool8 SlotAction3(struct Task *task); +static bool8 SlotAction4(struct Task *task); +static bool8 SlotAction_AwaitPlayerInput(struct Task *task); +static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); +static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); +static bool8 SlotAction_GivingInformation(struct Task *task); +static bool8 SlotAction9(struct Task *task); +static bool8 SlotAction10(struct Task *task); +static bool8 SlotAction_SetLuckySpins(struct Task *task); +static bool8 SlotAction_AwaitReelStop(struct Task *task); +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); +static bool8 SlotAction_CheckMatches(struct Task *task); +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); +static bool8 SlotAction_EndOfRoll(struct Task *task); +static bool8 SlotAction_MatchedPower(struct Task *task); +static bool8 SlotAction18(struct Task *task); +static bool8 SlotAction_Loop(struct Task *task); +static bool8 SlotAction_NoMatches(struct Task *task); +static bool8 SlotAction_PrintQuitTheGame(struct Task *task); +static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); +static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task); +static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task); +static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task); +static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task); +static bool8 SlotAction_EndGame(struct Task *task); +static bool8 SlotAction_FreeDataStructures(struct Task *task); +static void DrawLuckyFlags(void); +static void SetLuckySpins(void); +static bool8 IsThisRoundLucky(void); +static u8 AttemptsAtLuckyflags_Top3(void); +static u16 SlowReelSpeed(void); +static u8 AttemptsAtLuckyflags_NotTop3(void); +static void CheckMatch(void); +static void CheckMatch_CenterRow(void); +static void CheckMatch_TopAndBottom(void); +static void CheckMatch_Diagonals(void); +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +static void AwardPayout(void); +static void RunAwardPayoutActions(u8 taskId); +static bool8 IsFinalTask_RunAwardPayoutActions(void); +static bool8 AwardPayoutAction0(struct Task *task); +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); +static bool8 AwardPayoutAction_FreeTask(struct Task *task); +static u8 GetNearbyTag_Quantized(u8 x, s16 y); +static void GameplayTask_StopSlotReel(void); +static void ReelTasks_SetUnkTaskData(u8 a0); +static void sub_8102E1C(u8 a0); +static bool8 IsSlotReelMoving(u8 a0); +static void RunSlotReelActions(u8 taskId); +static bool8 SlotReelAction_StayStill(struct Task *task); +static bool8 SlotReelAction_Spin(struct Task *task); +static bool8 SlotReelAction_DecideWhereToStop(struct Task *task); +static bool8 SlotReelAction_MoveToStop(struct Task *task); +static bool8 SlotReelAction_OscillatingStop(struct Task *task); +static bool8 DecideReelTurns_BiasTag_Reel1(void); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel2(void); +static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); +static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); +static bool8 DecideReelTurns_BiasTag_Reel3(void); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +static void DecideReelTurns_NoBiasTag_Reel1(void); +static void DecideReelTurns_NoBiasTag_Reel2(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); +static void DecideReelTurns_NoBiasTag_Reel3(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); +static void sub_8103C14(u8 a0); +static void sub_8103C48(u8 taskId); +static void LoadBetTiles(u8 a0); +static void sub_8103C78(struct Task *task, u8 taskId); +static void sub_8103CAC(struct Task *task, u8 taskId); +static void sub_8103CC8(struct Task *task, u8 taskId); +static void sub_8103D8C(u8 a0); +static void sub_8103DC8(void); +static void sub_8103E04(u8 a0); +static bool8 sub_8103E38(void); +static bool8 sub_8103E7C(void); +static bool8 sub_8103EAC(u8 spriteId); +static void sub_8103EE4(struct Sprite *sprite); +static void sub_8103F70(void); +static bool8 sub_8103FA0(void); +static void sub_8103FE8_(u8 taskId); +static void GameplayTask_PikaPower(void); +static void DisplayPikaPower(u8 pikaPower); +static bool8 sub_81040C8(void); +static void sub_81040E8(u8 taskId); +static void nullsub_68(struct Task *task); +static void sub_810411C(struct Task *task); +static void sub_8104144(struct Task *task); +static void sub_81041AC(struct Task *task); +static void ClearTaskDataFields_2orHigher(struct Task *task); +static void sub_810423C(u8 pikaPower); +static void BeginReeltime(void); +static bool8 IsFinalTask_RunReelTimeActions(void); +static void RunReeltimeActions(u8 taskId); +static void ReeltimeAction0(struct Task *task); +static void ReeltimeAction1(struct Task *task); +static void ReeltimeAction2(struct Task *task); +static void ReeltimeAction3(struct Task *task); +static void ReeltimeAction4(struct Task *task); +static void ReeltimeAction5(struct Task *task); +static void ReeltimeAction6(struct Task *task); +static void ReelTimeAction_LandOnOutcome(struct Task *task); +static void ReeltimeAction8(struct Task *task); +static void ReeltimeAction9(struct Task *task); +static void ReeltimeAction10(struct Task *task); +static void ReeltimeAction11(struct Task *task); +static void ReeltimeAction12(struct Task *task); +static void ReeltimeAction13(struct Task *task); +static void ReeltimeAction14(struct Task *task); +static void ReeltimeAction15(struct Task *task); +static void ReeltimeAction16(struct Task *task); +static void ReeltimeAction17(struct Task *task); +static void sub_8104A40(s16 a0, s16 a1); +static void sub_8104A88(s16 a0); +static void OpenInfoBox(u8 a0); +static bool8 IsInfoBoxClosed(void); +static void RunInfoBoxActions(u8 taskId); +static void InfoBox_FadeIn(struct Task *task); +static void InfoBox_WaitForFade(struct Task *task); +static void InfoBox_8104B80(struct Task *task); +static void InfoBox_AwaitPlayerInput(struct Task *task); +static void InfoBox_AddText(struct Task *task); +static void InfoBox_8104BFC(struct Task *task); +static void InfoBox_812DE14(struct Task *task); +static void InfoBox_812DE30(struct Task *task); +static void InfoBox_FreeTask(struct Task *task); +static void sub_8104C5C(void); +static void sub_8104CAC(u8 arg0); +static bool8 sub_8104E18(void); +static void nullsub_69(struct Task *task); +static void sub_8104E74_(u8 taskId); +static void sub_8104EA8(void); +static void sub_8104F8C(void); +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); +static void sub_81050C4(void); +static void sub_8105100(void); +static void sub_810514C(void); +static void sub_81051C0(void); +static void sub_8105284_(void); +static void sub_81052EC(void); +static void sub_81053A0(void); +static void sub_810545C(void); +static void sub_81054B8(void); +static void sub_8105524(void); +static void sub_8105554(void); +static void CreateReelTimeSprites1(void); +static void sub_8105688(s16 a0); +static void sub_81056C0(void); +static void CreateReelTimeSprite2(void); +static void sub_81057E8(s16 a0); +static void sub_8105804(void); +static void sub_8105854(void); +static void sub_81058A0(void); +static void sub_81058C4(void); +static void sub_81059B8(void); +static void sub_81059E8(void); +static bool8 sub_8105ACC(void); +static void sub_8105AEC(void); +static u8 sub_8105B1C(s16 x, s16 y); +static void sub_8105B88(u8 spriteId); +static u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); +static void sub_81063C0(void); +static void sub_8106404(void); +static void sub_8106448(void); +static void sub_81064B8(void); +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +static void sub_81065DC(void); +static void sub_812F958(void); +static void sub_812F968(void); +static void LoadSlotMachineWheelOverlay(void); +static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); // Ewram variables static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; @@ -356,7 +356,7 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; extern const u8 LuckyRoundTable[][3]; -extern const u8 LuckyTags[]; +extern const u8 BiasTags[]; extern const u16 LuckyFlagSettings_Top3[]; extern const u16 LuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; @@ -453,39 +453,39 @@ const struct WindowTemplate gUnknown_085A7444 = 0, 1, 3, 20, 13, 13, 1 }; -const u8 gColors_ReelTimeHelp[] = {3, 1, 2, 0}; +const u8 gColors_ReeltimeHelp[] = {3, 1, 2, 0}; bool8 (*const SlotActions[])(struct Task *task) = { - SlotAction_UnfadeScreen, - SlotAction_WaitForUnfade, - SlotAction_SetSlotMachineVars, - SlotAction3, - SlotAction4, - SlotAction_AwaitPlayerInput, - SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_ExitYouDontHaveThreeCoinsMessage, - SlotAction_GivingInformation, - SlotAction9, - SlotAction10, - SlotAction_SetLuckySpins, - SlotAction_AwaitReelStop, - SlotAction_WaitForAllReelsToStop, - SlotAction_CheckMatches, - SlotAction_WaitForPayoutToBeAwarded, - SlotAction_EndOfRoll, - SlotAction_MatchedPower, - SlotAction18, - SlotAction_Loop, - SlotAction_NoMatches, - SlotAction_PrintQuitTheGame, - SlotAction_SeeIfPlayerQuits, - SlotAction_Print9999CoinMessage, - SlotAction_Exit9999CoinMessage, - SlotAction_PrintNoMoreCoins, - SlotAction_ExitNoMoreCoinsMessage, - SlotAction_EndGame, - SlotAction_FreeDataStructures, + SlotAction_UnfadeScreen, // 0 + SlotAction_WaitForUnfade, // 1 + SlotAction_SetSlotMachineVars, // 2 + SlotAction3, // 3 + SlotAction4, // 4 + SlotAction_AwaitPlayerInput, // 5 + SlotAction_PrintYouDontHaveThreeCoins, // 6 + SlotAction_ExitYouDontHaveThreeCoinsMessage, // 7 + SlotAction_GivingInformation, // 8 + SlotAction9, // 9 + SlotAction10, // 10 + SlotAction_SetLuckySpins, // 11 + SlotAction_AwaitReelStop, // 12 + SlotAction_WaitForAllReelsToStop, // 13 + SlotAction_CheckMatches, // 14 + SlotAction_WaitForPayoutToBeAwarded, // 15 + SlotAction_EndOfRoll, // 16 + SlotAction_MatchedPower, // 17 + SlotAction18, // 18 + SlotAction_Loop, // 19 + SlotAction_NoMatches, // 20 + SlotAction_PrintQuitTheGame, // 21 + SlotAction_SeeIfPlayerQuits, // 22 + SlotAction_PrintMessage_9999Coins, // 23 + SlotAction_ExitMessage_9999Coins, // 24 + SlotAction_PrintMessage_NoMoreCoins, // 25 + SlotAction_ExitMessage_NoMoreCoins, // 26 + SlotAction_EndGame, // 27 + SlotAction_FreeDataStructures, // 28 }; bool8 (*const AwardPayoutActions[])(struct Task *task) = @@ -576,9 +576,9 @@ void (*const gUnknown_083ECBB4[])(struct Task *task) = const u16 pikaPowerTileTable[][2] = { - {0x9e, 0x6e}, // {0b10011110, 0b1101110} - {0x9f, 0x6f}, // {0b10011111, 0b1101111} - {0xaf, 0x7f}, // {0b10101111, 0b1111111} + {0x9e, 0x6e}, + {0x9f, 0x6f}, + {0xaf, 0x7f}, }; void (*const ReeltimeActions[])(struct Task *task) = @@ -589,7 +589,7 @@ void (*const ReeltimeActions[])(struct Task *task) = ReeltimeAction3, ReeltimeAction4, ReeltimeAction5, - ReeltimeAction6, // does stuff with reel time data + ReeltimeAction6, ReelTimeAction_LandOnOutcome, ReeltimeAction8, ReeltimeAction9, @@ -653,7 +653,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] -/*static */void Task_FadeToSlotMachine(u8 taskId) +static void Task_FadeToSlotMachine(u8 taskId) { switch (gTasks[taskId].tState) { @@ -671,19 +671,19 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; } } -void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback cb) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); + PlaySlotMachine_Internal(slotMachineIndex, cb); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } #undef tState -/*static */void CB2_SlotMachineSetup(void) +static void CB2_SlotMachineSetup(void) { switch (gMain.state) { @@ -744,7 +744,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CB2_SlotMachineLoop(void) +static void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -752,7 +752,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue UpdatePaletteFade(); } -/*static */void SlotMachine_VBlankCallback(void) +static void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -763,26 +763,26 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) { - struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); + struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)CB2_ReturnToFieldContinueScriptPlayMapMusic); + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); } -/*static */void sub_81019EC(void) +static void sub_81019EC(void) { - struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); + struct Task *task = &gTasks[FindTaskIdByFunc(SlotMachineDummyTask)]; sSlotMachine->machineId = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); } -/*static */void SlotMachineDummyTask(u8 taskId) +static void SlotMachineDummyTask(u8 taskId) { } -/*static */void SlotMachineSetup_0_0(void) +static void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -793,24 +793,24 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue DeactivateAllTextPrinters(); } -/*static */void SlotMachineSetup_6_0(void) +static void SlotMachineSetup_6_0(void) { SetVBlankCallback(SlotMachine_VBlankCallback); EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -/*static */void SlotMachineSetup_1_0(void) +static void SlotMachineSetup_1_0(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -/*static */void SlotMachineSetup_2_0(void) +static void SlotMachineSetup_2_0(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -/*static */void SlotMachineSetup_2_1(void) +static void SlotMachineSetup_2_1(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -831,12 +831,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // set up initial state of slot machine -/*static */void SlotMachineSetup_0_1(void) +static void SlotMachineSetup_0_1(void) { u8 i; - sub_81019EC(); // assigns sSlotMachine->machineId and other stuff - sSlotMachine->slotActionPtr = 0; + sub_81019EC(); // assigns sSlotMachine->machineId, etc. + sSlotMachine->state = 0; sSlotMachine->pikaPower = 0; sSlotMachine->luckyGame = Random() & 1; sSlotMachine->luckyFlags = 0; @@ -855,18 +855,17 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->winOut = 0x3f; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); - // for each reel... - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelTagOffsets[i] * 24; - sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 + sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelTagOffsets[i] * REEL_TAG_HEIGHT; + sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; } - AlertTVThatYouPlayedSlotMachine(GetCoins()); + AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } -/*static */void SlotMachineSetup_3_0(void) +static void SlotMachineSetup_3_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -875,7 +874,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue ResetTasks(); } -/*static */void SlotMachineSetup_4_0(void) +static void SlotMachineSetup_4_0(void) { selectedPikaPowerTile = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); @@ -891,7 +890,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue gUnknown_0203AAD0[6] = 0x20BF; } -/*static */void SlotMachineSetup_5_0(void) +static void SlotMachineSetup_5_0(void) { sub_8106448(); sub_81064B8(); @@ -901,7 +900,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue PutWindowTilemap(0); } -/*static */void SlotMachineSetup_10_0(void) +static void SlotMachineSetup_10_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -910,84 +909,84 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // create gameplay tasks -/*static */void SlotMachineSetupGameplayTasks(void) +static void SlotMachineSetupGameplayTasks(void) { - GameplayTasks_PikaPower(); + GameplayTask_PikaPower(); GameplayTask_StopSlotReel(); sub_8104C5C(); GameplayTasks_Slots(); } -/*static */void GameplayTasks_Slots(void) +static void GameplayTasks_Slots(void) { RunSlotActions(CreateTask(RunSlotActions, 0)); } // task->data[0] is a timer -/*static */void RunSlotActions(u8 taskId) +static void RunSlotActions(u8 taskId) { - while (SlotActions[sSlotMachine->slotActionPtr](gTasks + taskId)) + while (SlotActions[sSlotMachine->state](&gTasks[taskId])) ; } -/*static */bool8 SlotAction_UnfadeScreen(struct Task *task) +static bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_WaitForUnfade(struct Task *task) +static bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task) +static bool8 SlotAction_SetSlotMachineVars(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->slotActionPtr = 4; + sSlotMachine->state = 4; if (sSlotMachine->coins <= 0) { - sSlotMachine->slotActionPtr = 25; + sSlotMachine->state = 25; } else if (sSlotMachine->fairRollsLeft) { - sSlotMachine->slotActionPtr = 3; + sSlotMachine->state = 3; sub_8104CAC(4); } return TRUE; } -/*static */bool8 SlotAction3(struct Task *task) +static bool8 SlotAction3(struct Task *task) { if (sub_8104E18()) - sSlotMachine->slotActionPtr = 4; + sSlotMachine->state = 4; return FALSE; } -/*static */bool8 SlotAction4(struct Task *task) +static bool8 SlotAction4(struct Task *task) { sub_8104CAC(0); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; if (sSlotMachine->coins >= 9999) - sSlotMachine->slotActionPtr = 23; + sSlotMachine->state = 23; return TRUE; } -/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task) +static bool8 SlotAction_AwaitPlayerInput(struct Task *task) { s16 i; if (gMain.newKeys & SELECT_BUTTON) { OpenInfoBox(0); - sSlotMachine->slotActionPtr = 8; + sSlotMachine->state = 8; } else if (gMain.newKeys & R_BUTTON) // bet the max amount { @@ -997,12 +996,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue LoadBetTiles(i); sSlotMachine->coins -= (3 - sSlotMachine->bet); sSlotMachine->bet = 3; - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; PlaySE(SE_REGI); } else // you didn't have enough coins to bet the max { - sSlotMachine->slotActionPtr = 6; + sSlotMachine->state = 6; } } else @@ -1016,42 +1015,42 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; // player wants to quit if (gMain.newKeys & B_BUTTON) - sSlotMachine->slotActionPtr = 21; + sSlotMachine->state = 21; } return FALSE; } -/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) +static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 7; + sSlotMachine->state = 7; return FALSE; } -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) +static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_GivingInformation(struct Task *task) +static bool8 SlotAction_GivingInformation(struct Task *task) { if (IsInfoBoxClosed()) - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; return FALSE; } // probably make all the slots roll -/*static */bool8 SlotAction9(struct Task *task) +static bool8 SlotAction9(struct Task *task) { DrawLuckyFlags(); sub_8104DA4(); @@ -1066,64 +1065,62 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue task->data[0] = 0; if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { - // enter into reel time BeginReeltime(); - sSlotMachine->slotActionPtr = 10; + sSlotMachine->state = 10; } else { sub_8104CAC(1); - sSlotMachine->slotActionPtr = 11; + sSlotMachine->state = 11; } sSlotMachine->reelIncrement = 8; if (sSlotMachine->fairRollsLeft) - // slow down the reel speed if you're really losing - sSlotMachine->reelIncrement = DrawNewReelIncrement(); + sSlotMachine->reelIncrement = SlowReelSpeed(); return FALSE; } -/*static */bool8 SlotAction10(struct Task *task) +static bool8 SlotAction10(struct Task *task) { if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->slotActionPtr = 11; + sSlotMachine->state = 11; } return FALSE; } -/*static */bool8 SlotAction_SetLuckySpins(struct Task *task) +static bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { SetLuckySpins(); - sSlotMachine->slotActionPtr = 12; + sSlotMachine->state = 12; } return FALSE; } -/*static */bool8 SlotAction_AwaitReelStop(struct Task *task) +static bool8 SlotAction_AwaitReelStop(struct Task *task) { if (gMain.newKeys & A_BUTTON) { PlaySE(SE_JYUNI); sub_8102E1C(sSlotMachine->currReel); sub_8103C14(sSlotMachine->currReel); - sSlotMachine->slotActionPtr = 13; + sSlotMachine->state = 13; } return FALSE; } -/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; - sSlotMachine->slotActionPtr = 12; + sSlotMachine->state = 12; if (sSlotMachine->currReel > 2) { - sSlotMachine->slotActionPtr = 14; + sSlotMachine->state = 14; } return TRUE; } @@ -1131,7 +1128,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // once all reels have stopped -/*static */bool8 SlotAction_CheckMatches(struct Task *task) +static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); @@ -1143,7 +1140,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->matchedSymbols) { - sSlotMachine->slotActionPtr = 15; + sSlotMachine->state = 15; AwardPayout(); sub_8103F70(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) @@ -1175,7 +1172,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->fairRollsUsed = 0; sSlotMachine->luckyGame = 0; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) - // this may be a bug, but if you get blue 777, the game becomes lucky + // this may be an error, but if you get blue 777, the game becomes lucky sSlotMachine->luckyGame = 1; } } @@ -1188,104 +1185,104 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue else { sub_8104CAC(3); - sSlotMachine->slotActionPtr = 20; + sSlotMachine->state = 20; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > 9999) sSlotMachine->netCoinLoss = 9999; } return FALSE; } -/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->slotActionPtr = 16; + sSlotMachine->state = 16; return FALSE; } -/*static */bool8 SlotAction_EndOfRoll(struct Task *task) +static bool8 SlotAction_EndOfRoll(struct Task *task) { if (sub_8103FA0()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sSlotMachine->currReel = 0; - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->slotActionPtr = 17; + sSlotMachine->state = 17; if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sub_8104CAC(4); - sSlotMachine->slotActionPtr = 18; + sSlotMachine->state = 18; } } return FALSE; } -/*static */bool8 SlotAction_MatchedPower(struct Task *task) +static bool8 SlotAction_MatchedPower(struct Task *task) { if (!sub_81040C8()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; if (sSlotMachine->fairRollsLeft) { sub_8104CAC(4); - sSlotMachine->slotActionPtr = 18; + sSlotMachine->state = 18; } } } return FALSE; } -/*static */bool8 SlotAction18(struct Task *task) +static bool8 SlotAction18(struct Task *task) { if (sub_8104E18()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; } } return FALSE; } -/*static */bool8 SlotAction_Loop(struct Task *task) +static bool8 SlotAction_Loop(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); - sSlotMachine->slotActionPtr = 2; + sSlotMachine->state = 2; return FALSE; } -/*static */bool8 SlotAction_NoMatches(struct Task *task) +static bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; } return FALSE; } -/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task) +static bool8 SlotAction_PrintQuitTheGame(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->slotActionPtr = 22; + sSlotMachine->state = 22; return FALSE; } -/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) +static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) // player chooses to quit @@ -1295,64 +1292,64 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_8103D8C(1); sub_8103D8C(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->slotActionPtr = 27; + sSlotMachine->state = 27; } else if (input == 1 || input == -1) // player chooses not to quit { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task) +static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 24; + sSlotMachine->state = 24; return FALSE; } -/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task) +static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task) +static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 26; + sSlotMachine->state = 26; return FALSE; } -/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task) +static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 27; + sSlotMachine->state = 27; } return FALSE; } -/*static */bool8 SlotAction_EndGame(struct Task *task) +static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - reportNewCoinTotal(GetCoins()); + AlertTVOfNewCointTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_FreeDataStructures(struct Task *task) +static bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { @@ -1394,7 +1391,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void DrawLuckyFlags(void) +static void DrawLuckyFlags(void) { u8 attempts; @@ -1425,27 +1422,27 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void SetLuckySpins(void) +static void SetLuckySpins(void) { sSlotMachine->luckySpinsLeft = 0; if (sSlotMachine->luckyFlags) sSlotMachine->luckySpinsLeft = 1; } -/*static */u8 GetLuckyTag(u8 luckyFlags) +static u8 GetBiasTag(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return LuckyTags[i]; + return BiasTags[i]; luckyFlags >>= 1; } return 0; } -/*static */bool8 IsThisRoundLucky(void) +static bool8 IsThisRoundLucky(void) { u8 rval = Random(); if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) @@ -1453,7 +1450,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u8 AttemptsAtLuckyflags_Top3(void) +static u8 AttemptsAtLuckyflags_Top3(void) { s16 count; @@ -1467,7 +1464,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return count; } -/*static */u8 AttemptsAtLuckyflags_NotTop3(void) +static u8 AttemptsAtLuckyflags_NotTop3(void) { s16 count; @@ -1495,7 +1492,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return count; } -/*static */u8 GetReelTimeProbability(u8 reelTimeDraw) +static u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == 0) return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; @@ -1503,7 +1500,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void GetReeltimeDraw(void) +static void GetReeltimeDraw(void) { u8 rval; s16 reelTimeDraw; @@ -1521,7 +1518,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 SkipToReeltimeAction14(u16 i) +static bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) @@ -1530,7 +1527,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u16 DrawNewReelIncrement(void) +static u16 SlowReelSpeed(void) { u8 i = 0; u8 rval; @@ -1554,7 +1551,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return 8; } -/*static */void CheckMatch(void) +static void CheckMatch(void) { sSlotMachine->matchedSymbols = 0; CheckMatch_CenterRow(); @@ -1564,7 +1561,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue CheckMatch_Diagonals(); } -/*static */void CheckMatch_CenterRow(void) +static void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; @@ -1580,7 +1577,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CheckMatch_TopAndBottom(void) +static void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; @@ -1610,7 +1607,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CheckMatch_Diagonals(void) +static void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; @@ -1642,7 +1639,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return sSym2Match[c1]; @@ -1655,12 +1652,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return SLOT_MACHINE_MATCHED_NONE; } -/*static */void AwardPayout(void) +static void AwardPayout(void) { RunAwardPayoutActions(CreateTask(RunAwardPayoutActions, 4)); } -/*static */bool8 IsFinalTask_RunAwardPayoutActions(void) +static bool8 IsFinalTask_RunAwardPayoutActions(void) { if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL) return TRUE; @@ -1668,13 +1665,13 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void RunAwardPayoutActions(u8 taskId) +static void RunAwardPayoutActions(u8 taskId) { - while (AwardPayoutActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (AwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } -/*static */bool8 AwardPayoutAction0(struct Task *task) +static bool8 AwardPayoutAction0(struct Task *task) { if (sub_8103E38()) { @@ -1688,7 +1685,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } // task->data[1]: timer -/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) { if (!task->data[1]--) { @@ -1714,17 +1711,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task) +static bool8 AwardPayoutAction_FreeTask(struct Task *task) { if (sub_8103E7C()) DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } -/* -Returns the tag that is posOffset below the tag at the top of reelIndex's tape -*/ -/*static */u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) + +// Returns the tag that is posOffset below the tag at the top of reelIndex's tape +static u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) { s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) @@ -1732,10 +1728,9 @@ Returns the tag that is posOffset below the tag at the top of reelIndex's tape return sReelSymbols[reelIndex][tagIndex]; } -/* -Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place -/* -/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) + +// Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place +static u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { s16 tagOffset = 0; s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; @@ -1744,7 +1739,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac return GetNearbyTag_Quantized(reelIndex, posOffset + tagOffset); } -/*static */u8 GetNearbyReelTimeTag(s16 n) +static u8 GetNearbyReelTimeTag(s16 n) { s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) @@ -1752,7 +1747,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac return ReelTimeTags[newPosition]; } -/*static */void AdvanceSlotReel(u8 reelIndex, s16 value) +static void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; @@ -1772,7 +1767,7 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) return offset; } -/*static */void AdvanceReeltimeReel(s16 value) +static void AdvanceReeltimeReel(s16 value) { sSlotMachine->reeltimePixelOffset += value; sSlotMachine->reeltimePixelOffset %= 120; @@ -1792,7 +1787,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return offset; } -/*static */void GameplayTask_StopSlotReel(void) +static void GameplayTask_StopSlotReel(void) { u8 i; for (i = 0; i < 3; i++) @@ -1804,43 +1799,43 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } } -/*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) +static void ReelTasks_SetUnkTaskData(u8 reelIndex) { gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; } -/*static */void sub_8102E1C(u8 reelIndex) +static void sub_8102E1C(u8 reelIndex) { gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 IsSlotReelMoving(u8 reelIndex) +static bool8 IsSlotReelMoving(u8 reelIndex) { return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; } -/*static */void RunSlotReelActions(u8 taskId) +static void RunSlotReelActions(u8 taskId) { - while (SlotReelActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (SlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } // task->data[1] reel turns // task->data[15] reelIndex -/*static */bool8 SlotReelAction_StayStill(struct Task *task) +static bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 SlotReelAction_Spin(struct Task *task) +static bool8 SlotReelAction_Spin(struct Task *task) { AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); return FALSE; } // As in previous generations, the slot machine often doesn't stop exactly when you press stop -/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task) +static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up @@ -1857,7 +1852,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } // go to next tag and then do any additional turns -/*static */bool8 SlotReelAction_MoveToStop(struct Task *task) +static bool8 SlotReelAction_MoveToStop(struct Task *task) { u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; s16 reelPixelPos; @@ -1882,7 +1877,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } // make selected tag oscillate before it becomes still -/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task) +static bool8 SlotReelAction_OscillatingStop(struct Task *task) { sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; @@ -1898,9 +1893,9 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1(void) +static bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); + u8 tag2 = GetBiasTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { @@ -1910,7 +1905,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) +static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) { u8 tag = GetNearbyTag(0, pos); if (tag == tag1 || tag == tag2) @@ -1921,7 +1916,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) +static bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { if (GetNearbyTag(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; @@ -1929,7 +1924,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 IsBiasTowardsCherryOr7s(void) +static bool8 IsBiasTowardsCherryOr7s(void) { if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777 | LUCKY_BIAS_CHERRY)) return TRUE; @@ -1937,7 +1932,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) { s16 i; @@ -1954,7 +1949,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; bool8 biased = IsBiasTowardsCherryOr7s(); @@ -2005,12 +2000,12 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel2(void) +static bool8 DecideReelTurns_BiasTag_Reel2(void) { return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) +static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; s16 biasTagLocation_Reel1 = sSlotMachine->winnerRows[0]; @@ -2028,7 +2023,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) +static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; // if biasTag appears in the same row within 4 turns... @@ -2067,7 +2062,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel3(void) +static bool8 DecideReelTurns_BiasTag_Reel3(void) { u8 biasTag = sSlotMachine->biasTag; if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) @@ -2081,7 +2076,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; s16 biasTagLocation_Reel2 = sSlotMachine->winnerRows[1]; @@ -2099,7 +2094,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) { s16 i; s16 biasTagFinalPos; @@ -2125,10 +2120,9 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/* -Advance until there are no cherries on screen in reel 1 -*/ -/*static */void DecideReelTurns_NoBiasTag_Reel1(void) +// Advance until there are no cherries on screen in reel 1 + +static void DecideReelTurns_NoBiasTag_Reel1(void) { s16 i = 0; @@ -2137,7 +2131,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) +static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2152,13 +2146,13 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void DecideReelTurns_NoBiasTag_Reel2(void) +static void DecideReelTurns_NoBiasTag_Reel2(void) { DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } // only does stuff if the biasTag is one of the 7's, plus other conditions -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { @@ -2182,7 +2176,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { @@ -2206,7 +2200,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) { s16 i; s16 j; @@ -2275,7 +2269,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 AreTagsMixed77(u8 tag1, u8 tag2) +static bool8 AreTagsMixed77(u8 tag1, u8 tag2) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; @@ -2283,7 +2277,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) +static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) @@ -2292,7 +2286,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) +static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || @@ -2305,12 +2299,12 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */void DecideReelTurns_NoBiasTag_Reel3(void) +static void DecideReelTurns_NoBiasTag_Reel3(void) { DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) { s16 i = 0; u8 tag1 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); @@ -2353,7 +2347,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = i; } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) { s16 extraTurns = 0; s16 i; @@ -2403,7 +2397,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = extraTurns; } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) { u8 tag1; u8 tag2; @@ -2453,62 +2447,62 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103C14(u8 a0) +static void sub_8103C14(u8 a0) { u8 taskId = CreateTask(sub_8103C48, 5); gTasks[taskId].data[15] = a0; sub_8103C48(taskId); } -/*static */void sub_8103C48(u8 taskId) +static void sub_8103C48(u8 taskId) { - gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); + gUnknown_083ECBA0[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } -/*static */void sub_8103C78(struct Task *task, u8 taskId) +static void sub_8103C78(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -/*static */void sub_8103CAC(struct Task *task, u8 taskId) +static void sub_8103CAC(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -/*static */void sub_8103CC8(struct Task *task, u8 taskId) +static void sub_8103CC8(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -/*static */void LoadLightedTile(u8 tileId) +static void LoadLitTile(u8 tileId) { LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); } -/*static */void sub_8103D28(u8 a0) +static void sub_8103D28(u8 a0) { LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } // light up the value bet by the player -/*static */void LoadBetTiles(u8 betVal) +static void LoadBetTiles(u8 betVal) { u8 i; for (i = 0; i < gNumberBettingTiles[betVal]; i++) - LoadLightedTile(gBettingTilesId[betVal][i]); + LoadLitTile(gBettingTilesId[betVal][i]); } -/*static */void sub_8103D8C(u8 a0) +static void sub_8103D8C(u8 a0) { u8 i; for (i = 0; i < gNumberBettingTiles[a0]; i++) sub_8103D28(gBettingTilesId[a0][i]); } -/*static */void sub_8103DC8(void) +static void sub_8103DC8(void) { u8 i; for (i = 0; i < 5; i++) @@ -2519,7 +2513,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103E04(u8 a0) +static void sub_8103E04(u8 a0) { struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; sprite->data[1] = 1; @@ -2531,7 +2525,7 @@ Advance until there are no cherries on screen in reel 1 } // something with payout digits -/*static */bool8 sub_8103E38(void) +static bool8 sub_8103E38(void) { u8 i; for (i = 0; i < 5; i++) @@ -2543,7 +2537,7 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */bool8 sub_8103E7C(void) +static bool8 sub_8103E7C(void) { u8 i; for (i = 0; i < 5; i++) @@ -2554,7 +2548,7 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */bool8 sub_8103EAC(u8 spriteId) +static bool8 sub_8103EAC(u8 spriteId) { struct Sprite *sprite = gSprites + spriteId; if (!sprite->data[1]) @@ -2564,7 +2558,7 @@ Advance until there are no cherries on screen in reel 1 return sprite->data[7]; } -/*static */void sub_8103EE4(struct Sprite *sprite) +static void sub_8103EE4(struct Sprite *sprite) { s16 r4; if (sprite->data[1]) @@ -2593,14 +2587,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103F70(void) +static void sub_8103F70(void) { u8 taskId = CreateTask(sub_8103FE8_, 6); gTasks[taskId].data[3] = 1; sub_8103FE8_(taskId); } -/*static */bool8 sub_8103FA0(void) +static bool8 sub_8103FA0(void) { u8 taskId = FindTaskIdByFunc(sub_8103FE8_); if (!gTasks[taskId].data[2]) @@ -2612,9 +2606,9 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void sub_8103FE8_(u8 taskId) +static void sub_8103FE8_(u8 taskId) { - struct Task *task = gTasks + taskId; + struct Task *task = &gTasks[taskId]; if (!task->data[1]--) { task->data[1] = 4; @@ -2625,49 +2619,49 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -/*static */void GameplayTasks_PikaPower(void) +static void GameplayTask_PikaPower(void) { sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); } -/*static */void DisplayPikaPower(u8 pikaPower) +static void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; task->data[15] = 1; // points to a reelIndex } -/*static */void sub_8104098(void) +static void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; ClearTaskDataFields_2orHigher(task); task->data[0] = 3; task->data[15] = 1; // points to a reelIndex } -/*static */bool8 sub_81040C8(void) +static bool8 sub_81040C8(void) { return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; } -/*static */void sub_81040E8(u8 taskId) +static void sub_81040E8(u8 taskId) { - gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); + gUnknown_083ECBB4[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void nullsub_68(struct Task *task) +static void nullsub_68(struct Task *task) { } -/*static */void sub_810411C(struct Task *task) +static void sub_810411C(struct Task *task) { task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); task->data[0]++; } -/*static */void sub_8104144(struct Task *task) +static void sub_8104144(struct Task *task) { if (gSprites[task->data[2]].data[7]) { @@ -2686,7 +2680,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81041AC(struct Task *task) +static void sub_81041AC(struct Task *task) { s16 r5 = task->data[1] + 2; s16 r3 = 0; @@ -2710,7 +2704,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ClearTaskDataFields_2orHigher(struct Task *task) +static void ClearTaskDataFields_2orHigher(struct Task *task) { u8 i; @@ -2719,7 +2713,7 @@ Advance until there are no cherries on screen in reel 1 } // possibly load tiles for pika power meter -/*static */void sub_810423C(u8 pikaPower) +static void sub_810423C(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2747,29 +2741,29 @@ Advance until there are no cherries on screen in reel 1 gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } -/*static */void BeginReeltime(void) +static void BeginReeltime(void) { u8 taskId = CreateTask(RunReeltimeActions, 7); RunReeltimeActions(taskId); } -/*static */bool8 IsFinalTask_RunReelTimeActions(void) +static bool8 IsFinalTask_RunReelTimeActions(void) { if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void RunReeltimeActions(u8 taskId) +static void RunReeltimeActions(u8 taskId) { // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReeltimeActions[gTasks[taskId].data[0]](gTasks + taskId); + ReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void ReeltimeAction0(struct Task *task) +static void ReeltimeAction0(struct Task *task) { sSlotMachine->fairRollsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; @@ -2793,7 +2787,7 @@ Advance until there are no cherries on screen in reel 1 PlayNewMapMusic(MUS_BD_TIME); } -/*static */void ReeltimeAction1(struct Task *task) +static void ReeltimeAction1(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2814,7 +2808,7 @@ Advance until there are no cherries on screen in reel 1 AdvanceReeltimeReel(task->data[4] >> 8); } -/*static */void ReeltimeAction2(struct Task *task) +static void ReeltimeAction2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2825,7 +2819,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction3(struct Task *task) +static void ReeltimeAction3(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2852,7 +2846,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction4(struct Task *task) +static void ReeltimeAction4(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2864,7 +2858,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction5(struct Task *task) +static void ReeltimeAction5(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2875,7 +2869,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction6(struct Task *task) +static void ReeltimeAction6(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2899,7 +2893,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction_LandOnOutcome(struct Task *task) +static void ReelTimeAction_LandOnOutcome(struct Task *task) { s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; if (reeltimePixelOffset) @@ -2920,7 +2914,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction8(struct Task *task) +static void ReeltimeAction8(struct Task *task) { if (++task->data[4] >= 60) { @@ -2949,13 +2943,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction9(struct Task *task) +static void ReeltimeAction9(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void ReeltimeAction10(struct Task *task) +static void ReeltimeAction10(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2969,7 +2963,7 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void ReeltimeAction11(struct Task *task) +static void ReeltimeAction11(struct Task *task) { sSlotMachine->fairRollsUsed = 0; sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; @@ -2987,14 +2981,14 @@ Advance until there are no cherries on screen in reel 1 else { sub_8104CAC(4); - task->data[1] = DrawNewReelIncrement(); + task->data[1] = SlowReelSpeed(); task->data[2] = 0; task->data[3] = 0; task->data[0]++; } } -/*static */void ReeltimeAction12(struct Task *task) +static void ReeltimeAction12(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; @@ -3002,13 +2996,13 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelIncrement >>= 1; } -/*static */void ReeltimeAction13(struct Task *task) +static void ReeltimeAction13(struct Task *task) { if (sub_8104E18()) DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void ReeltimeAction14(struct Task *task) +static void ReeltimeAction14(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -3024,7 +3018,7 @@ Advance until there are no cherries on screen in reel 1 PlaySE(SE_W153); } -/*static */void ReeltimeAction15(struct Task *task) +static void ReeltimeAction15(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3044,7 +3038,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction16(struct Task *task) +static void ReeltimeAction16(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -3055,7 +3049,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction17(struct Task *task) +static void ReeltimeAction17(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3067,7 +3061,7 @@ Advance until there are no cherries on screen in reel 1 DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void sub_8104A40(s16 a0, s16 a1) +static void sub_8104A40(s16 a0, s16 a1) { s16 i; @@ -3077,7 +3071,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104A88(s16 a0) +static void sub_8104A88(s16 a0) { u8 i; @@ -3087,14 +3081,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void OpenInfoBox(u8 seemsUnused) +static void OpenInfoBox(u8 seemsUnused) { u8 taskId = CreateTask(RunInfoBoxActions, 1); gTasks[taskId].data[1] = seemsUnused; RunInfoBoxActions(taskId); } -/*static */bool8 IsInfoBoxClosed(void) +static bool8 IsInfoBoxClosed(void) { if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; @@ -3102,24 +3096,24 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void RunInfoBoxActions(u8 taskId) +static void RunInfoBoxActions(u8 taskId) { - InfoBoxActions[gTasks[taskId].data[0]](gTasks + taskId); + InfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void InfoBox_FadeIn(struct Task *task) +static void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_WaitForFade(struct Task *task) +static void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -/*static */void InfoBox_8104B80(struct Task *task) +static void InfoBox_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3129,15 +3123,15 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void InfoBox_AddText(struct Task *task) +static void InfoBox_AddText(struct Task *task) { - AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReelTimeHelp, 0, gText_ReelTimeHelp); + AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReeltimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_AwaitPlayerInput(struct Task *task) +static void InfoBox_AwaitPlayerInput(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3150,52 +3144,52 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void InfoBox_812DE14(struct Task *task) +static void InfoBox_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -/*static */void InfoBox_812DE30(struct Task *task) +static void InfoBox_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -/*static */void InfoBox_8104BFC(struct Task *task) +static void InfoBox_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_FreeTask(struct Task *task) +static void InfoBox_FreeTask(struct Task *task) { DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } -/*static */void sub_8104C5C(void) +static void sub_8104C5C(void) { u8 i; struct Task *task; i = CreateTask(sub_8104E74_, 3); sSlotMachine->unkTaskPointer3D = i; - task = gTasks + i; + task = &gTasks[i]; task->data[1] = -1; for (i = 4; i < 16; i++) task->data[i] = MAX_SPRITES; } // possibly initialize each wheel -/*static */void sub_8104CAC(u8 arg0) +static void sub_8104CAC(u8 arg0) { u8 i; struct Task *task; sub_8104DA4(); - task = gTasks + sSlotMachine->unkTaskPointer3D; + task = &gTasks[sSlotMachine->unkTaskPointer3D]; task->data[1] = arg0; for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) @@ -3210,10 +3204,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; for (i = 4; i < 16; i++) { if (task->data[i] == MAX_SPRITES) @@ -3224,10 +3218,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104DA4(void) +static void sub_8104DA4(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; if ((u16)task->data[1] != 0xFFFF) gUnknown_083ED064[task->data[1]](); for (i = 4; i < 16; i++) @@ -3240,10 +3234,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 sub_8104E18(void) +static bool8 sub_8104E18(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; for (i = 4; i < 16; i++) { if (task->data[i] != MAX_SPRITES) @@ -3255,16 +3249,16 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */void sub_8104E74_(u8 taskId) +static void sub_8104E74_(u8 taskId) { - gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); + gUnknown_083ECC54[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void nullsub_69(struct Task *task) +static void nullsub_69(struct Task *task) { } -/*static */void sub_8104EA8(void) +static void sub_8104EA8(void) { s16 i; s16 j; @@ -3291,7 +3285,7 @@ Advance until there are no cherries on screen in reel 1 SetSpriteSheetFrameTileNum(sprite); } -/*static */void sub_8104F8C(void) +static void sub_8104F8C(void) { s16 i; s16 x; @@ -3302,7 +3296,7 @@ Advance until there are no cherries on screen in reel 1 sub_8104FF4(x, 23, 1, i); } -/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) { struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); sprite->oam.priority = 2; @@ -3328,14 +3322,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81050C4(void) +static void sub_81050C4(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } -/*static */void sub_8105100(void) +static void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3361,7 +3355,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelTimeSprite3F = spriteId; } -/*static */void sub_810514C(void) +static void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); if (gUnknown_0203AAE4 != NULL) @@ -3379,7 +3373,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81051C0(void) +static void sub_81051C0(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3414,7 +3408,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk49[1] = spriteId; } -/*static */void sub_8105284_(void) +static void sub_8105284_(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3435,7 +3429,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk42 = spriteId; } -/*static */void sub_81052EC(void) +static void sub_81052EC(void) { u8 i; s16 r5; @@ -3458,7 +3452,7 @@ Advance until there are no cherries on screen in reel 1 StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } -/*static */void sub_81053A0(void) +static void sub_81053A0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); struct Sprite *sprite = &gSprites[spriteId]; @@ -3475,7 +3469,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk4E[1] = spriteId; } -/*static */void sub_810545C(void) +static void sub_810545C(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); struct Sprite *sprite = &gSprites[spriteId]; @@ -3485,7 +3479,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk40 = spriteId; } -/*static */void sub_81054B8(void) +static void sub_81054B8(void) { u8 i; @@ -3502,7 +3496,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); } -/*static */void sub_8105524(void) +static void sub_8105524(void) { u8 i; @@ -3510,7 +3504,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); } -/*static */void sub_8105554(void) +static void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); if (gUnknown_0203AAF0 != NULL) @@ -3518,7 +3512,7 @@ Advance until there are no cherries on screen in reel 1 } // TODO: check if this is true -/*static */void CreateReelTimeSprites1(void) +static void CreateReelTimeSprites1(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3561,13 +3555,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105688(s16 a0) +static void sub_8105688(s16 a0) { gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; } -/*static */void sub_81056C0(void) +static void sub_81056C0(void) { u8 i; @@ -3575,7 +3569,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); } -/*static */void CreateReelTimeSprite2(void) +static void CreateReelTimeSprite2(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3603,12 +3597,12 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81057E8(s16 a0) +static void sub_81057E8(s16 a0) { gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; } -/*static */void sub_8105804(void) +static void sub_8105804(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); @@ -3616,7 +3610,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); } -/*static */void sub_8105854(void) +static void sub_8105854(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; @@ -3628,12 +3622,12 @@ Advance until there are no cherries on screen in reel 1 sprite->pos2.y = gSpriteCoordOffsetY; } -/*static */void sub_81058A0(void) +static void sub_81058A0(void) { DestroySprite(&gSprites[sSlotMachine->unk41]); } -/*static */void sub_81058C4(void) +static void sub_81058C4(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; @@ -3666,7 +3660,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81059B8(void) +static void sub_81059B8(void) { u8 i; for (i = 0; i < 4; i++) @@ -3675,7 +3669,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81059E8(void) +static void sub_81059E8(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); struct Sprite *sprite = &gSprites[spriteId]; @@ -3712,19 +3706,19 @@ Advance until there are no cherries on screen in reel 1 sprite->pos2.y -= (sprite->data[1] >> 8); } -/*static */u8 sub_8105ACC(void) +static u8 sub_8105ACC(void) { return gSprites[sSlotMachine->unk43].data[7]; } -/*static */void sub_8105AEC(void) +static void sub_8105AEC(void) { struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -/*static */u8 sub_8105B1C(s16 x, s16 y) +static u8 sub_8105B1C(s16 x, s16 y) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; @@ -3740,19 +3734,19 @@ Advance until there are no cherries on screen in reel 1 sprite->data[7] = 1; } -/*static */void sub_8105B88(u8 spriteId) +static void sub_8105B88(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } -/*static */u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3771,12 +3765,12 @@ Advance until there are no cherries on screen in reel 1 return spriteId; } -/*static */void sub_8105C64(struct Sprite *sprite) +static void sub_8105C64(struct Sprite *sprite) { sprite->data[7] = 0; } -/*static */void sub_8105C6C(struct Sprite *sprite) +static void sub_8105C6C(struct Sprite *sprite) { s16 sp0[] = {4, -4, 4, -4}; s16 sp8[] = {4, 4, -4, -4}; @@ -3795,26 +3789,26 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105CF0(struct Sprite *sprite) +static void sub_8105CF0(struct Sprite *sprite) { sprite->hFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D08(struct Sprite *sprite) +static void sub_8105D08(struct Sprite *sprite) { sprite->vFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D20(struct Sprite *sprite) +static void sub_8105D20(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D3C(struct Sprite *sprite) +static void sub_8105D3C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3841,7 +3835,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105DA4(struct Sprite *sprite) +static void sub_8105DA4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3868,7 +3862,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105E08(struct Sprite *sprite) +static void sub_8105E08(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3906,7 +3900,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105EB4(struct Sprite *sprite) +static void sub_8105EB4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3946,7 +3940,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105F54(struct Sprite *sprite) +static void sub_8105F54(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3966,7 +3960,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105F9C(struct Sprite *sprite) +static void sub_8105F9C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4000,7 +3994,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8106058(struct Sprite *sprite) +static void sub_8106058(struct Sprite *sprite) { if (sprite->data[1] < 3) { @@ -4024,7 +4018,7 @@ Advance until there are no cherries on screen in reel 1 sprite->data[7] = 0; } -/*static */void sub_81060FC(struct Sprite *sprite) +static void sub_81060FC(struct Sprite *sprite) { s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; @@ -4059,7 +4053,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81061C8(struct Sprite *sprite) +static void sub_81061C8(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; @@ -4074,7 +4068,7 @@ Advance until there are no cherries on screen in reel 1 sprite->data[1]--; } -/*static */void sub_8106230(struct Sprite *sprite) +static void sub_8106230(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4128,21 +4122,21 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void nullsub_70(void) +static void nullsub_70(void) { } -/*static */void sub_8106364(void) +static void sub_8106364(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -/*static */void sub_8106370(void) +static void sub_8106370(void) { LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); } -/*static */void sub_810639C(void) +static void sub_810639C(void) { sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; @@ -4150,7 +4144,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->winOut = 0x3f; } -/*static */void sub_81063C0(void) +static void sub_81063C0(void) { u8 i; @@ -4174,7 +4168,7 @@ Advance until there are no cherries on screen in reel 1 LoadSpritePalettes(gSlotMachineSpritePalettes); } -/*static */void sub_8106404(void) +static void sub_8106404(void) { u8 *dest; u8 i, j; @@ -4198,7 +4192,7 @@ extern const u16 gSlotMachineMenu_Tilemap[]; extern const u16 gUnknown_08DCEC70[]; extern const u16 gSlotMachineMenu_Pal[]; -/*static */void sub_8106448(void) +static void sub_8106448(void) { gUnknown_0203AAC8 = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); @@ -4207,18 +4201,18 @@ extern const u16 gSlotMachineMenu_Pal[]; LoadPalette(gPalette_83EDE24, 208, 32); } -/*static */void sub_81064B8(void) +static void sub_81064B8(void) { sub_812F968(); LoadSlotMachineWheelOverlay(); } -/*static */void sub_812F968(void) +static void sub_812F968(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -/*static */void LoadSlotMachineWheelOverlay(void) +static void LoadSlotMachineWheelOverlay(void) { s16 x, y, dx; @@ -4240,7 +4234,7 @@ extern const u16 gSlotMachineMenu_Pal[]; } } -/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { gUnknown_0203AADC[0] = arg1; gUnknown_0203AADC[1] = arg2; @@ -4253,13 +4247,13 @@ extern const u16 gSlotMachineMenu_Pal[]; LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } -/*static */void sub_81065DC(void) +static void sub_81065DC(void) { LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); HideBg(3); } -/*static */void SlotMachineSetup_9_0(void) +static void SlotMachineSetup_9_0(void) { gUnknown_03001188[0] = gUnknown_0203AAF4; gUnknown_03001188[1] = gUnknown_0203AAF8; @@ -4289,7 +4283,7 @@ extern const u16 gSlotMachineMenu_Pal[]; gUnknown_03001188[25] = NULL; } -/*static */void SlotMachineSetup_8_0(void) +static void SlotMachineSetup_8_0(void) { gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; @@ -4503,7 +4497,7 @@ const u16 ReelTimeBonusIncrementTable[] = { }; // tentative name -const u8 LuckyTags[] = { +const u8 BiasTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; @@ -4512,7 +4506,7 @@ const u16 LuckyFlagSettings_Top3[] = { }; const u16 LuckyFlagSettings_NotTop3[] = { - LUCKY_BIAS_POWER, LUCKY_BIAS_AZURRILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY + LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; const u8 sSym2Match[] = { diff --git a/src/tv.c b/src/tv.c index 27f779c2d..4b8ff8664 100644 --- a/src/tv.c +++ b/src/tv.c @@ -62,7 +62,7 @@ IWRAM_DATA s8 sTVShowMixingCurSlot; EWRAM_DATA u16 sPokemonAnglerSpecies = 0; EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; -EWRAM_DATA bool8 sFindThatGamerWhichGame = SLOT_MACHINE; +EWRAM_DATA u8 sFindThatGamerWhichGame = SLOT_MACHINE; EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void reportNewCoinTotal(u16 nCoinsPaidOut) +void AlertTVOfNewCointTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; @@ -2072,13 +2072,13 @@ void reportNewCoinTotal(u16 nCoinsPaidOut) } } -void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent) +void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent) { sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent) +void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent) { sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; -- cgit v1.2.3 From 1dc0d346d949f858e2aae602ebf60eb81bf6b7d7 Mon Sep 17 00:00:00 2001 From: hondew Date: Fri, 22 Feb 2019 16:12:37 -0500 Subject: fix spelling error --- src/roulette.c | 2 +- src/slot_machine.c | 2 +- src/tv.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/roulette.c b/src/roulette.c index 93678fa1c..4c20bd0fe 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - AlertTVOfNewCointTotal(GetCoins()); + AlertTVOfNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 9c07a96f2..9b345af1e 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1343,7 +1343,7 @@ static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - AlertTVOfNewCointTotal(GetCoins()); + AlertTVOfNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); sSlotMachine->state++; return FALSE; diff --git a/src/tv.c b/src/tv.c index 4b8ff8664..ee3614e83 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void AlertTVOfNewCointTotal(u16 nCoinsPaidOut) +void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; -- cgit v1.2.3 From 53d7e21332c24b253eea090cf9ba58968b56af8c Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 28 Feb 2019 18:56:07 -0500 Subject: fix formatting in slot_machine.c --- src/slot_machine.c | 621 +++++++++++++++++++++++++++-------------------------- 1 file changed, 311 insertions(+), 310 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 9b345af1e..fb1c88097 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -117,7 +117,7 @@ struct UnkStruct1 static void CB2_SlotMachineSetup(void); static void CB2_SlotMachineLoop(void); -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb); static void SlotMachineDummyTask(u8 taskId); static void SlotMachineSetup_0_0(void); static void SlotMachineSetup_6_2(void); @@ -169,9 +169,9 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task); static void DrawLuckyFlags(void); static void SetLuckySpins(void); static bool8 IsThisRoundLucky(void); -static u8 AttemptsAtLuckyflags_Top3(void); +static u8 AttemptsAtLuckyFlags_Top3(void); static u16 SlowReelSpeed(void); -static u8 AttemptsAtLuckyflags_NotTop3(void); +static u8 AttemptsAtLuckyFlags_NotTop3(void); static void CheckMatch(void); static void CheckMatch_CenterRow(void); static void CheckMatch_TopAndBottom(void); @@ -320,33 +320,33 @@ static void LoadSlotMachineWheelOverlay(void); static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); // Ewram variables -static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; -static EWRAM_DATA u16 *selectedPikaPowerTile = NULL; -static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; -static EWRAM_DATA u16 *gUnknown_0203AADC = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAE0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAEC = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAFC = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB00 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB04 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB08 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB0C = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB10 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB14 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB18 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB1C = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB20 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB24 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB28 = NULL; -static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB2C = NULL; -static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB30 = NULL; +static EWRAM_DATA u16 *sUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *sSelectedPikaPowerTile = NULL; +static EWRAM_DATA u16 *sUnknown_0203AAD0 = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAD4 = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAD8 = NULL; +static EWRAM_DATA u16 *sUnknown_0203AADC = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAE0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAEC = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAFC = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB00 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB04 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB08 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB0C = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB10 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB14 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB18 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB1C = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB20 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB24 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB28 = NULL; +static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB2C = NULL; +static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; // IWRAM bss @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 LuckyRoundTable[][3]; -extern const u8 BiasTags[]; -extern const u16 LuckyFlagSettings_Top3[]; -extern const u16 LuckyFlagSettings_NotTop3[]; +extern const u8 gLuckyRoundProbabilities[][3]; +extern const u8 gBiasTags[]; +extern const u16 gLuckyFlagSettings_Top3[]; +extern const u16 gLuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -369,28 +369,28 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 ProbabilityTable_SkipToReeltimeAction14[]; +extern const u16 gProbabilityTable_SkipToReeltimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; -extern const u16 ReelIncrementTable[][2]; -extern const u16 ReelTimeBonusIncrementTable[]; -extern const u16 sSlotMatchFlags[]; -extern const u16 sSlotPayouts[]; +extern const u16 gReelIncrementTable[][2]; +extern const u16 gReelTimeBonusIncrementTable[]; +extern const u16 gSlotMatchFlags[]; +extern const u16 gSlotPayouts[]; extern const u8 *const gUnknown_083EDCE4; extern const u8 *const gUnknown_083EDCDC; -extern const u32 sReelTimeGfx[]; -extern const struct SpriteSheet sSlotMachineSpriteSheets[]; +extern const u32 gReelTimeGfx[]; +extern const struct SpriteSheet gSlotMachineSpriteSheets[]; extern const struct SpritePalette gSlotMachineSpritePalettes[]; extern const u16 *const gUnknown_083EDE20; -extern const s16 sInitialReelPositions[][2]; +extern const s16 gInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 LuckyFlagsTable_Top3[][6]; -extern const u8 LuckyFlagsTable_NotTop3[][6]; -extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; -extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; -extern const u8 sSym2Match[]; -extern const u8 ReelTimeTags[]; -extern const u8 sReelSymbols[][REEL_NUM_TAGS]; +extern const u8 gLuckyFlagProbabilities_Top3[][6]; +extern const u8 gLuckyFlagProbabilities_NotTop3[][6]; +extern const u8 gReeltimeProbabilities_UnluckyGame[][17]; +extern const u8 gReelTimeProbabilities_LuckyGame[][17]; +extern const u8 gSym2Match[]; +extern const u8 gReelTimeTags[]; +extern const u8 gReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; extern const u8 gUnknown_083EDD30[]; @@ -398,7 +398,7 @@ extern const u8 gBettingTilesId[][2]; extern const u8 gNumberBettingTiles[]; extern const u16 *const gUnknown_083EDDA0[]; extern const u16 *const gUnknown_083EDDAC; -extern const u16 sReelTimeWindowTilemap[]; +extern const u16 gReelTimeWindowTilemap[]; extern const u16 gUnknown_085A9898[]; extern void (*const gUnknown_083ED064[])(void); @@ -858,7 +858,7 @@ static void SlotMachineSetup_0_1(void) for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; - sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelTagOffsets[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelTagOffsets[i] * REEL_TAG_HEIGHT; sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; } @@ -876,18 +876,18 @@ static void SlotMachineSetup_3_0(void) static void SlotMachineSetup_4_0(void) { - selectedPikaPowerTile = Alloc(8); - gUnknown_0203AAD0 = AllocZeroed(0xE); - gUnknown_0203AADC = AllocZeroed(8); + sSelectedPikaPowerTile = Alloc(8); + sUnknown_0203AAD0 = AllocZeroed(0xE); + sUnknown_0203AADC = AllocZeroed(8); // several of these are 1 bit off from each other - gUnknown_0203AAD0[0] = 0x2051; - gUnknown_0203AAD0[1] = 0x2851; - gUnknown_0203AAD0[2] = 0x2061; - gUnknown_0203AAD0[3] = 0x2861; - gUnknown_0203AAD0[4] = 0x20BE; - gUnknown_0203AAD0[5] = 0x28BE; - gUnknown_0203AAD0[6] = 0x20BF; + sUnknown_0203AAD0[0] = 0x2051; + sUnknown_0203AAD0[1] = 0x2851; + sUnknown_0203AAD0[2] = 0x2061; + sUnknown_0203AAD0[3] = 0x2861; + sUnknown_0203AAD0[4] = 0x20BE; + sUnknown_0203AAD0[5] = 0x28BE; + sUnknown_0203AAD0[6] = 0x20BF; } static void SlotMachineSetup_5_0(void) @@ -1170,10 +1170,10 @@ static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->fairRollsLeft = 0; sSlotMachine->fairRollsUsed = 0; - sSlotMachine->luckyGame = 0; + sSlotMachine->luckyGame = FALSE; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) // this may be an error, but if you get blue 777, the game becomes lucky - sSlotMachine->luckyGame = 1; + sSlotMachine->luckyGame = TRUE; } } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) @@ -1354,37 +1354,37 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) if (!gPaletteFade.active) { SetMainCallback2(sSlotMachine->prevMainCb); - FREE_AND_SET_NULL(gUnknown_0203AAF4); - FREE_AND_SET_NULL(gUnknown_0203AAF8); - FREE_AND_SET_NULL(gUnknown_0203AAFC); - FREE_AND_SET_NULL(gUnknown_0203AB00); - FREE_AND_SET_NULL(gUnknown_0203AB04); - FREE_AND_SET_NULL(gUnknown_0203AB08); - FREE_AND_SET_NULL(gUnknown_0203AB0C); - FREE_AND_SET_NULL(gUnknown_0203AB10); - FREE_AND_SET_NULL(gUnknown_0203AB14); - FREE_AND_SET_NULL(gUnknown_0203AB18); - FREE_AND_SET_NULL(gUnknown_0203AB1C); - FREE_AND_SET_NULL(gUnknown_0203AB20); - FREE_AND_SET_NULL(gUnknown_0203AB24); - FREE_AND_SET_NULL(gUnknown_0203AB28); - if (gUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE4); - if (gUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE8); - if (gUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAEC); - if (gUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAF0); - FREE_AND_SET_NULL(gUnknown_0203AAC8); - FREE_AND_SET_NULL(selectedPikaPowerTile); - FREE_AND_SET_NULL(gUnknown_0203AAD0); - FREE_AND_SET_NULL(gUnknown_0203AAD4); - FREE_AND_SET_NULL(gUnknown_0203AAD8); - FREE_AND_SET_NULL(gUnknown_0203AADC); - FREE_AND_SET_NULL(gUnknown_0203AAE0); - FREE_AND_SET_NULL(gUnknown_0203AB2C); - FREE_AND_SET_NULL(gUnknown_0203AB30); + FREE_AND_SET_NULL(sUnknown_0203AAF4); + FREE_AND_SET_NULL(sUnknown_0203AAF8); + FREE_AND_SET_NULL(sUnknown_0203AAFC); + FREE_AND_SET_NULL(sUnknown_0203AB00); + FREE_AND_SET_NULL(sUnknown_0203AB04); + FREE_AND_SET_NULL(sUnknown_0203AB08); + FREE_AND_SET_NULL(sUnknown_0203AB0C); + FREE_AND_SET_NULL(sUnknown_0203AB10); + FREE_AND_SET_NULL(sUnknown_0203AB14); + FREE_AND_SET_NULL(sUnknown_0203AB18); + FREE_AND_SET_NULL(sUnknown_0203AB1C); + FREE_AND_SET_NULL(sUnknown_0203AB20); + FREE_AND_SET_NULL(sUnknown_0203AB24); + FREE_AND_SET_NULL(sUnknown_0203AB28); + if (sUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE4); + if (sUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE8); + if (sUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAEC); + if (sUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAF0); + FREE_AND_SET_NULL(sUnknown_0203AAC8); + FREE_AND_SET_NULL(sSelectedPikaPowerTile); + FREE_AND_SET_NULL(sUnknown_0203AAD0); + FREE_AND_SET_NULL(sUnknown_0203AAD4); + FREE_AND_SET_NULL(sUnknown_0203AAD8); + FREE_AND_SET_NULL(sUnknown_0203AADC); + FREE_AND_SET_NULL(sUnknown_0203AAE0); + FREE_AND_SET_NULL(sUnknown_0203AB2C); + FREE_AND_SET_NULL(sUnknown_0203AB30); FREE_AND_SET_NULL(sSlotMachine); } @@ -1401,22 +1401,22 @@ static void DrawLuckyFlags(void) { if (IsThisRoundLucky()) { - attempts = AttemptsAtLuckyflags_Top3(); + attempts = AttemptsAtLuckyFlags_Top3(); if (attempts != 3) // if you found a lucky number { // attempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= LuckyFlagSettings_Top3[attempts]; + sSlotMachine->luckyFlags |= gLuckyFlagSettings_Top3[attempts]; if (attempts != 1) { return; } } } - // if you got it your first try, you get to try again for the lower lucky flags - attempts = AttemptsAtLuckyflags_NotTop3(); + // if it's not a lucky round or you got reel time, roll for the lower lucky flags + attempts = AttemptsAtLuckyFlags_NotTop3(); if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= LuckyFlagSettings_NotTop3[attempts]; + sSlotMachine->luckyFlags |= gLuckyFlagSettings_NotTop3[attempts]; } } } @@ -1436,51 +1436,52 @@ static u8 GetBiasTag(u8 luckyFlags) for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return BiasTags[i]; + return gBiasTags[i]; luckyFlags >>= 1; } return 0; } +// you have way more luck betting 3 coins than anything lower static bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (gLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -static u8 AttemptsAtLuckyflags_Top3(void) +static u8 AttemptsAtLuckyFlags_Top3(void) { s16 count; for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = LuckyFlagsTable_Top3[count][sSlotMachine->machineId]; + s16 value = gLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } return count; } -static u8 AttemptsAtLuckyflags_NotTop3(void) +static u8 AttemptsAtLuckyFlags_NotTop3(void) { s16 count; for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = LuckyFlagsTable_NotTop3[count][sSlotMachine->machineId]; + s16 value = gLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game - if (count == 0 && sSlotMachine->luckyGame == 1) + if (count == 0 && sSlotMachine->luckyGame == TRUE) { value += 10; if (value > 0x100) value = 0x100; } // make last attempt harder if it's a lucky game - else if (count == 4 && sSlotMachine->luckyGame == 1) + else if (count == 4 && sSlotMachine->luckyGame == TRUE) { value -= 10; if (value < 0) @@ -1494,10 +1495,10 @@ static u8 AttemptsAtLuckyflags_NotTop3(void) static u8 GetReelTimeProbability(u8 reelTimeDraw) { - if (sSlotMachine->luckyGame == 0) - return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + if (sSlotMachine->luckyGame == FALSE) + return gReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return gReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } static void GetReeltimeDraw(void) @@ -1521,7 +1522,7 @@ static void GetReeltimeDraw(void) static bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) + if (rval < gProbabilityTable_SkipToReeltimeAction14[i]) return TRUE; else return FALSE; @@ -1541,11 +1542,11 @@ static u16 SlowReelSpeed(void) else if (sSlotMachine->netCoinLoss >= 150) i = 1; rval = Random() % 100; - value = ReelIncrementTable[i][0]; + value = gReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = ReelIncrementTable[i][1] + ReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; + value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; if (rval < value) return 2; return 8; @@ -1571,8 +1572,8 @@ static void CheckMatch_CenterRow(void) match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(0); } } @@ -1589,8 +1590,8 @@ static void CheckMatch_TopAndBottom(void) { if (match == SLOT_MACHINE_MATCHED_1CHERRY) match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(1); } c1 = GetNearbyTag_Quantized(0, 3); @@ -1601,8 +1602,8 @@ static void CheckMatch_TopAndBottom(void) { if (match == SLOT_MACHINE_MATCHED_1CHERRY) match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(2); } } @@ -1619,8 +1620,8 @@ static void CheckMatch_Diagonals(void) { if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } sub_8103E04(3); } @@ -1632,8 +1633,8 @@ static void CheckMatch_Diagonals(void) { if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } sub_8103E04(4); } @@ -1642,7 +1643,7 @@ static void CheckMatch_Diagonals(void) static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) - return sSym2Match[c1]; + return gSym2Match[c1]; if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) return SLOT_MACHINE_MATCHED_777_MIXED; if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) @@ -1725,7 +1726,7 @@ static u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) tagIndex += REEL_NUM_TAGS; - return sReelSymbols[reelIndex][tagIndex]; + return gReelSymbols[reelIndex][tagIndex]; } @@ -1744,7 +1745,7 @@ static u8 GetNearbyReelTimeTag(s16 n) s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return ReelTimeTags[newPosition]; + return gReelTimeTags[newPosition]; } static void AdvanceSlotReel(u8 reelIndex, s16 value) @@ -1838,7 +1839,7 @@ static bool8 SlotReelAction_Spin(struct Task *task) static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - // initialize data for that reel --> these will be changed if biasTags can be lined up + // initialize data for that reel --> these will be changed if gBiasTags can be lined up sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; @@ -2672,8 +2673,8 @@ static void sub_8104144(struct Task *task) r3 = 1, r2 = 1; else if (task->data[1] == 16) r3 = 2, r2 = 2; - selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; - LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); + sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); sub_8105B88(task->data[2]); task->data[0] = 0; task->data[15] = 0; // points to a reelIndex @@ -2691,8 +2692,8 @@ static void sub_81041AC(struct Task *task) r3 = 2, r2 = 2; if (task->data[2] == 0) { - selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; - LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); + sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); task->data[1]--; } if (++task->data[2] >= 20) @@ -2725,8 +2726,8 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; - LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); + sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) { @@ -2735,8 +2736,8 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; - LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); + sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } @@ -3067,7 +3068,7 @@ static void sub_8104A40(s16 a0, s16 a1) for (i = 4; i < 15; i++) { - LoadBgTilemap(1, &sReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + LoadBgTilemap(1, &gReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); } } @@ -3228,7 +3229,7 @@ static void sub_8104DA4(void) { if (task->data[i] != MAX_SPRITES) { - DestroySprite(gSprites + task->data[i]); + DestroySprite(&gSprites[task->data[i]]); task->data[i] = MAX_SPRITES; } } @@ -3333,22 +3334,22 @@ static void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; - if (gUnknown_0203AAE4 == NULL) - gUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - - gUnknown_0203AAE4[0].data = gUnknown_0203AAD8 + (0 * 0x800); - gUnknown_0203AAE4[0].size = 0x800; - gUnknown_0203AAE4[1].data = gUnknown_0203AAD8 + (1 * 0x800); - gUnknown_0203AAE4[1].size = 0x800; - gUnknown_0203AAE4[2].data = gUnknown_0203AAD8 + (2 * 0x800); - gUnknown_0203AAE4[2].size = 0x800; - gUnknown_0203AAE4[3].data = gUnknown_0203AAD8 + (3 * 0x800); - gUnknown_0203AAE4[3].size = 0x800; - gUnknown_0203AAE4[4].data = gUnknown_0203AAD8 + (4 * 0x800); - gUnknown_0203AAE4[4].size = 0x800; + if (sUnknown_0203AAE4 == NULL) + sUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + + sUnknown_0203AAE4[0].data = sUnknown_0203AAD8 + (0 * 0x800); + sUnknown_0203AAE4[0].size = 0x800; + sUnknown_0203AAE4[1].data = sUnknown_0203AAD8 + (1 * 0x800); + sUnknown_0203AAE4[1].size = 0x800; + sUnknown_0203AAE4[2].data = sUnknown_0203AAD8 + (2 * 0x800); + sUnknown_0203AAE4[2].size = 0x800; + sUnknown_0203AAE4[3].data = sUnknown_0203AAD8 + (3 * 0x800); + sUnknown_0203AAE4[3].size = 0x800; + sUnknown_0203AAE4[4].data = sUnknown_0203AAD8 + (4 * 0x800); + sUnknown_0203AAE4[4].size = 0x800; spriteTemplate = gSpriteTemplate_83ED45C; - spriteTemplate.images = gUnknown_0203AAE4; + spriteTemplate.images = sUnknown_0203AAE4; spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -3358,8 +3359,8 @@ static void sub_8105100(void) static void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); - if (gUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE4); + if (sUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE4); } /*static */void sub_8105170(struct Sprite *sprite) @@ -3379,13 +3380,13 @@ static void sub_81051C0(void) u8 spriteId; struct Sprite *sprite; - if (gUnknown_0203AAE8 == NULL) - gUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAE8 == NULL) + sUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAE8[0].data = gUnknown_0203AAD8 + 0x2800; - gUnknown_0203AAE8[0].size = 0x300; + sUnknown_0203AAE8[0].data = sUnknown_0203AAD8 + 0x2800; + sUnknown_0203AAE8[0].size = 0x300; spriteTemplate = gSpriteTemplate_83ED474; - spriteTemplate.images = gUnknown_0203AAE8; + spriteTemplate.images = sUnknown_0203AAE8; spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3393,13 +3394,13 @@ static void sub_81051C0(void) SetSubspriteTables(sprite, gSubspriteTables_83ED73C); sSlotMachine->unk49[0] = spriteId; - if (gUnknown_0203AAEC == NULL) - gUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAEC == NULL) + sUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAEC[0].data = gUnknown_0203AAD8 + 0x2800 + 0x300; - gUnknown_0203AAEC[0].size = 0x500; + sUnknown_0203AAEC[0].data = sUnknown_0203AAD8 + 0x2800 + 0x300; + sUnknown_0203AAEC[0].size = 0x500; spriteTemplate = gSpriteTemplate_83ED48C; - spriteTemplate.images = gUnknown_0203AAEC; + spriteTemplate.images = sUnknown_0203AAEC; spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3414,13 +3415,13 @@ static void sub_8105284_(void) u8 spriteId; struct Sprite *sprite; - if (gUnknown_0203AAF0 == NULL) - gUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAF0 == NULL) + sUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF0[0].data = gUnknown_0203AAD8 + 0x3000; - gUnknown_0203AAF0[0].size = 0x600; + sUnknown_0203AAF0[0].data = sUnknown_0203AAD8 + 0x3000; + sUnknown_0203AAF0[0].size = 0x600; spriteTemplate = gSpriteTemplate_83ED4A4; - spriteTemplate.images = gUnknown_0203AAF0; + spriteTemplate.images = sUnknown_0203AAF0; spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3487,10 +3488,10 @@ static void sub_81054B8(void) for (i = 0; i < 2; i++) DestroySprite(&gSprites[sSlotMachine->unk49[i]]); - if (gUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE8); - if (gUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAEC); + if (sUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE8); + if (sUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAEC); for (i = 0; i < 3; i++) DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); @@ -3507,8 +3508,8 @@ static void sub_8105524(void) static void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); - if (gUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAF0); + if (sUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAF0); } // TODO: check if this is true @@ -4149,22 +4150,22 @@ static void sub_81063C0(void) u8 i; sub_8106404(); - gUnknown_0203AAD4 = Alloc(0x3200); - LZDecompressWram(gSlotMachineReelTime_Gfx, gUnknown_0203AAD4); - gUnknown_0203AAD8 = Alloc(0x3600); - LZDecompressWram(sReelTimeGfx, gUnknown_0203AAD8); - gUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); + sUnknown_0203AAD4 = Alloc(0x3200); + LZDecompressWram(gSlotMachineReelTime_Gfx, sUnknown_0203AAD4); + sUnknown_0203AAD8 = Alloc(0x3600); + LZDecompressWram(gReelTimeGfx, sUnknown_0203AAD8); + sUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); for (i = 0; i < 22; i++) { - gUnknown_0203AB30[i].data = sSlotMachineSpriteSheets[i].data; - gUnknown_0203AB30[i].size = sSlotMachineSpriteSheets[i].size; - gUnknown_0203AB30[i].tag = sSlotMachineSpriteSheets[i].tag; + sUnknown_0203AB30[i].data = gSlotMachineSpriteSheets[i].data; + sUnknown_0203AB30[i].size = gSlotMachineSpriteSheets[i].size; + sUnknown_0203AB30[i].tag = gSlotMachineSpriteSheets[i].tag; } - gUnknown_0203AB30[17].data = gUnknown_0203AAD4 + 0xA00; - gUnknown_0203AB30[18].data = gUnknown_0203AAD4 + 0x1400; - gUnknown_0203AB30[19].data = gUnknown_0203AAD4 + 0x1600; - gUnknown_0203AB30[20].data = gUnknown_0203AAD4 + 0x1900; - LoadSpriteSheets(gUnknown_0203AB30); + sUnknown_0203AB30[17].data = sUnknown_0203AAD4 + 0xA00; + sUnknown_0203AB30[18].data = sUnknown_0203AAD4 + 0x1400; + sUnknown_0203AB30[19].data = sUnknown_0203AAD4 + 0x1600; + sUnknown_0203AB30[20].data = sUnknown_0203AAD4 + 0x1900; + LoadSpriteSheets(sUnknown_0203AB30); LoadSpritePalettes(gSlotMachineSpritePalettes); } @@ -4173,18 +4174,18 @@ static void sub_8106404(void) u8 *dest; u8 i, j; - gUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); - gUnknown_0203AAE0 = AllocZeroed(0x2000); - dest = gUnknown_0203AAE0; + sUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); + sUnknown_0203AAE0 = AllocZeroed(0x2000); + dest = sUnknown_0203AAE0; for (i = 0; i < 0x40; i++) { for (j = 0; j < 0x20; j++, dest++) *dest = gUnknown_083EDCDC[j]; } - gUnknown_0203AB2C->data = gUnknown_0203AAE0; - gUnknown_0203AB2C->size = 0x800; - gUnknown_0203AB2C->tag = 0x11; - LoadSpriteSheet(gUnknown_0203AB2C); + sUnknown_0203AB2C->data = sUnknown_0203AAE0; + sUnknown_0203AB2C->size = 0x800; + sUnknown_0203AB2C->tag = 0x11; + LoadSpriteSheet(sUnknown_0203AB2C); } extern const u32 gSlotMachineMenu_Gfx[]; @@ -4194,9 +4195,9 @@ extern const u16 gSlotMachineMenu_Pal[]; static void sub_8106448(void) { - gUnknown_0203AAC8 = Alloc(0x2200); - LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); - LoadBgTiles(2, gUnknown_0203AAC8, 0x2200, 0); + sUnknown_0203AAC8 = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, sUnknown_0203AAC8); + LoadBgTiles(2, sUnknown_0203AAC8, 0x2200, 0); LoadPalette(gSlotMachineMenu_Pal, 0, 160); LoadPalette(gPalette_83EDE24, 208, 32); } @@ -4220,31 +4221,31 @@ static void LoadSlotMachineWheelOverlay(void) { for (dx = 0; dx < 4; dx++) { - LoadBgTilemap(3, gUnknown_0203AAD0, 2, x + dx + 5 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0, 2, x + dx + 5 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); } - LoadBgTilemap(3, gUnknown_0203AAD0 + 4, 2, x + 6 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 5, 2, x + 12 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 4, 2, x + 6 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 5, 2, x + 12 * 32); for (y = 7; y <= 11; y++) - LoadBgTilemap(3, gUnknown_0203AAD0 + 6, 2, x + y * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 6, 2, x + y * 32); } } static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { - gUnknown_0203AADC[0] = arg1; - gUnknown_0203AADC[1] = arg2; - gUnknown_0203AADC[2] = arg3; - gUnknown_0203AADC[3] = arg4; + sUnknown_0203AADC[0] = arg1; + sUnknown_0203AADC[1] = arg2; + sUnknown_0203AADC[2] = arg3; + sUnknown_0203AADC[3] = arg4; - LoadBgTilemap(2, gUnknown_0203AADC, 2, 15 * 32 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 2, 2, 16 * 32 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC, 2, 15 * 32 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 2, 2, 16 * 32 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } static void sub_81065DC(void) @@ -4255,108 +4256,108 @@ static void sub_81065DC(void) static void SlotMachineSetup_9_0(void) { - gUnknown_03001188[0] = gUnknown_0203AAF4; - gUnknown_03001188[1] = gUnknown_0203AAF8; - gUnknown_03001188[2] = gUnknown_0203AAFC; - gUnknown_03001188[3] = gUnknown_0203AB04; - gUnknown_03001188[4] = gUnknown_0203AB08; - gUnknown_03001188[5] = gUnknown_0203AB18; - gUnknown_03001188[6] = gUnknown_0203AB1C; - gUnknown_03001188[7] = gUnknown_0203AB20; - gUnknown_03001188[8] = gUnknown_0203AB24; - gUnknown_03001188[9] = gUnknown_0203AB28; - gUnknown_03001188[10] = gUnknown_0203AB00; - gUnknown_03001188[11] = gUnknown_0203AB00; - gUnknown_03001188[12] = gUnknown_0203AB00; - gUnknown_03001188[13] = gUnknown_0203AB00; - gUnknown_03001188[14] = gUnknown_0203AB0C; - gUnknown_03001188[15] = gUnknown_0203AB0C; - gUnknown_03001188[16] = gUnknown_0203AB0C; - gUnknown_03001188[17] = gUnknown_0203AB0C; - gUnknown_03001188[18] = gUnknown_0203AB0C; - gUnknown_03001188[19] = gUnknown_0203AB10; - gUnknown_03001188[20] = gUnknown_0203AB10; - gUnknown_03001188[21] = gUnknown_0203AB10; - gUnknown_03001188[22] = gUnknown_0203AB14; - gUnknown_03001188[23] = gUnknown_0203AB14; - gUnknown_03001188[24] = gUnknown_0203AB14; + gUnknown_03001188[0] = sUnknown_0203AAF4; + gUnknown_03001188[1] = sUnknown_0203AAF8; + gUnknown_03001188[2] = sUnknown_0203AAFC; + gUnknown_03001188[3] = sUnknown_0203AB04; + gUnknown_03001188[4] = sUnknown_0203AB08; + gUnknown_03001188[5] = sUnknown_0203AB18; + gUnknown_03001188[6] = sUnknown_0203AB1C; + gUnknown_03001188[7] = sUnknown_0203AB20; + gUnknown_03001188[8] = sUnknown_0203AB24; + gUnknown_03001188[9] = sUnknown_0203AB28; + gUnknown_03001188[10] = sUnknown_0203AB00; + gUnknown_03001188[11] = sUnknown_0203AB00; + gUnknown_03001188[12] = sUnknown_0203AB00; + gUnknown_03001188[13] = sUnknown_0203AB00; + gUnknown_03001188[14] = sUnknown_0203AB0C; + gUnknown_03001188[15] = sUnknown_0203AB0C; + gUnknown_03001188[16] = sUnknown_0203AB0C; + gUnknown_03001188[17] = sUnknown_0203AB0C; + gUnknown_03001188[18] = sUnknown_0203AB0C; + gUnknown_03001188[19] = sUnknown_0203AB10; + gUnknown_03001188[20] = sUnknown_0203AB10; + gUnknown_03001188[21] = sUnknown_0203AB10; + gUnknown_03001188[22] = sUnknown_0203AB14; + gUnknown_03001188[23] = sUnknown_0203AB14; + gUnknown_03001188[24] = sUnknown_0203AB14; gUnknown_03001188[25] = NULL; } static void SlotMachineSetup_8_0(void) { - gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; - gUnknown_0203AAF4[0].size = 0x600; + sUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAF4[0].data = sUnknown_0203AAD4; + sUnknown_0203AAF4[0].size = 0x600; - gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; - gUnknown_0203AAF8[0].size = 0x200; + sUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAF8[0].data = sUnknown_0203AAD4 + 0x600; + sUnknown_0203AAF8[0].size = 0x200; - gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; - gUnknown_0203AAFC[0].size = 0x200; + sUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAFC[0].data = sUnknown_0203AAD4 + 0x800; + sUnknown_0203AAFC[0].size = 0x200; - gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; - gUnknown_0203AB00[0].size = 0x200; + sUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB00[0].data = sUnknown_0203AAD4 + 0xA00; + sUnknown_0203AB00[0].size = 0x200; - gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; - gUnknown_0203AB04[0].size = 0x300; + sUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB04[0].data = sUnknown_0203AAD4 + 0xC00; + sUnknown_0203AB04[0].size = 0x300; - gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; - gUnknown_0203AB08[0].size = 0x400; + sUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB08[0].data = sUnknown_0203AAD4 + 0x1000; + sUnknown_0203AB08[0].size = 0x400; - gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; - gUnknown_0203AB0C[0].size = 0x200; + sUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB0C[0].data = sUnknown_0203AAD4 + 0x1400; + sUnknown_0203AB0C[0].size = 0x200; - gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; - gUnknown_0203AB10[0].size = 0x300; + sUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB10[0].data = sUnknown_0203AAD4 + 0x1600; + sUnknown_0203AB10[0].size = 0x300; - gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; - gUnknown_0203AB14[0].size = 0x300; + sUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB14[0].data = sUnknown_0203AAD4 + 0x1900; + sUnknown_0203AB14[0].size = 0x300; - gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; - gUnknown_0203AB18[0].size = 0x200; - gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; - gUnknown_0203AB18[1].size = 0x200; + sUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB18[0].data = sUnknown_0203AAD4 + 0x1C00; + sUnknown_0203AB18[0].size = 0x200; + sUnknown_0203AB18[1].data = sUnknown_0203AAD4 + 0x1E00; + sUnknown_0203AB18[1].size = 0x200; - gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; - gUnknown_0203AB1C[0].size = 640; + sUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB1C[0].data = sUnknown_0203AAD4 + 0x2000; + sUnknown_0203AB1C[0].size = 640; - gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; - gUnknown_0203AB20[0].size = 0x80; - gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; - gUnknown_0203AB20[1].size = 0x80; - gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; - gUnknown_0203AB20[2].size = 0x80; - gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; - gUnknown_0203AB20[3].size = 0x80; - gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; - gUnknown_0203AB20[4].size = 0x80; + sUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + sUnknown_0203AB20[0].data = sUnknown_0203AAD4 + 0x2280; + sUnknown_0203AB20[0].size = 0x80; + sUnknown_0203AB20[1].data = sUnknown_0203AAD4 + 0x2300; + sUnknown_0203AB20[1].size = 0x80; + sUnknown_0203AB20[2].data = sUnknown_0203AAD4 + 0x2380; + sUnknown_0203AB20[2].size = 0x80; + sUnknown_0203AB20[3].data = sUnknown_0203AAD4 + 0x2400; + sUnknown_0203AB20[3].size = 0x80; + sUnknown_0203AB20[4].data = sUnknown_0203AAD4 + 0x2480; + sUnknown_0203AB20[4].size = 0x80; - gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; - gUnknown_0203AB24[0].size = 0x480; - gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; - gUnknown_0203AB24[1].size = 0x480; + sUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB24[0].data = sUnknown_0203AAD4 + 0x2600; + sUnknown_0203AB24[0].size = 0x480; + sUnknown_0203AB24[1].data = sUnknown_0203AAD4 + 10880; + sUnknown_0203AB24[1].size = 0x480; - gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; - gUnknown_0203AB28[0].size = 0x180; - gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; - gUnknown_0203AB28[1].size = 0x180; + sUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB28[0].data = sUnknown_0203AAD4 + 0x2F00; + sUnknown_0203AB28[0].size = 0x180; + sUnknown_0203AB28[1].data = sUnknown_0203AAD4 + 0x3080; + sUnknown_0203AB28[1].size = 0x180; } -const u8 sReelSymbols[][REEL_NUM_TAGS] = +const u8 gReelSymbols[][REEL_NUM_TAGS] = { { SLOT_MACHINE_TAG_7_RED, @@ -4429,17 +4430,17 @@ const u8 sReelSymbols[][REEL_NUM_TAGS] = }, }; -const u8 ReelTimeTags[] = { +const u8 gReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -const s16 sInitialReelPositions[][2] = { +const s16 gInitialReelPositions[][2] = { {0, 6}, {0, 10}, {0, 2} }; -const u8 LuckyRoundTable[][3] = { +const u8 gLuckyRoundProbabilities[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4448,13 +4449,13 @@ const u8 LuckyRoundTable[][3] = { {3, 3, 16} }; -const u8 LuckyFlagsTable_Top3[][6] = { +const u8 gLuckyFlagProbabilities_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 LuckyFlagsTable_NotTop3[][6] = { +const u8 gLuckyFlagProbabilities_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4462,7 +4463,7 @@ const u8 LuckyFlagsTable_NotTop3[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { +const u8 gReeltimeProbabilities_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4471,7 +4472,7 @@ const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { +const u8 gReelTimeProbabilities_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4480,11 +4481,11 @@ const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 ProbabilityTable_SkipToReeltimeAction14[] = { +const u16 gProbabilityTable_SkipToReeltimeAction14[] = { 128, 175, 200, 225, 256 }; -const u16 ReelIncrementTable[][2] = { +const u16 gReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4492,24 +4493,24 @@ const u16 ReelIncrementTable[][2] = { {10, 35} }; -const u16 ReelTimeBonusIncrementTable[] = { +const u16 gReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; // tentative name -const u8 BiasTags[] = { +const u8 gBiasTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -const u16 LuckyFlagSettings_Top3[] = { +const u16 gLuckyFlagSettings_Top3[] = { LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; -const u16 LuckyFlagSettings_NotTop3[] = { +const u16 gLuckyFlagSettings_NotTop3[] = { LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; -const u8 sSym2Match[] = { +const u8 gSym2Match[] = { SLOT_MACHINE_MATCHED_777_RED, SLOT_MACHINE_MATCHED_777_BLUE, SLOT_MACHINE_MATCHED_AZURILL, @@ -4519,7 +4520,7 @@ const u8 sSym2Match[] = { SLOT_MACHINE_MATCHED_REPLAY }; -const u16 sSlotMatchFlags[] = { +const u16 gSlotMatchFlags[] = { 1 << SLOT_MACHINE_MATCHED_1CHERRY, 1 << SLOT_MACHINE_MATCHED_2CHERRY, 1 << SLOT_MACHINE_MATCHED_REPLAY, @@ -4531,7 +4532,7 @@ const u16 sSlotMatchFlags[] = { 1 << SLOT_MACHINE_MATCHED_777_BLUE }; -const u16 sSlotPayouts[] = { +const u16 gSlotPayouts[] = { 2, 4, 0, 6, 12, 3, 90, 300, 300 }; -- cgit v1.2.3 From 189d387f01104a715d788690fbc76d987ea3d6e1 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 03:08:48 -0500 Subject: Add macros for metatile manipulation --- src/battle_pyramid.c | 4 ++-- src/bg.c | 4 ++-- src/decoration.c | 16 ++++++++-------- src/field_effect.c | 2 +- src/field_specials.c | 12 ++++++------ src/fieldmap.c | 37 +++++++++++++++++++------------------ src/fldeff_escalator.c | 14 +++++++------- src/scrcmd.c | 6 +++--- src/secret_base.c | 16 ++++++++-------- src/tv.c | 5 +++-- 10 files changed, 59 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 340c17c59..92ff257b0 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1267,7 +1267,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx { for (x = 0; x < 32; x++) { - if ((map[x] & 0x3FF) == FLOOR_EXIT_METATILE) + if ((map[x] & MAP_METATILE_ID_MASK) == FLOOR_EXIT_METATILE) { x += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; y += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; @@ -1568,7 +1568,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio { for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[x] & 0x3FF) != FLOOR_EXIT_METATILE) + if ((layoutMap[x] & MAP_METATILE_ID_MASK) != FLOOR_EXIT_METATILE) { map[x] = layoutMap[x]; } diff --git a/src/bg.c b/src/bg.c index f73f5998d..571518650 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1056,7 +1056,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); + firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); } } break; @@ -1067,7 +1067,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); + firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); } } break; diff --git a/src/decoration.c b/src/decoration.c index 2ac49b98c..e5f3b6d46 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1158,7 +1158,7 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) u16 i; u16 j; u16 behavior; - u16 flags; + u16 impassableFlag; u16 v0; u16 v1; s16 decLeft; @@ -1173,11 +1173,11 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) { - flags = 0xc00; + impassableFlag = MAP_IMPASSABLE_MASK; } else { - flags = 0x000; + impassableFlag = 0x000; } if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(decLeft, decBottom)) == TRUE) { @@ -1190,11 +1190,11 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) v1 = sub_8127B54(gDecorations[decor].id, i * decWidth + j); if (v1 != 0xFFFF) { - MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1); + MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag | v1); } else { - MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags); + MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag); } } } @@ -1502,7 +1502,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; if (!sub_81284F4(behaviorAt, decoration)) { return FALSE; @@ -1527,7 +1527,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) { return FALSE; @@ -1547,7 +1547,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & MAP_TILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) { return FALSE; diff --git a/src/field_effect.c b/src/field_effect.c index e7c0b39b9..07a7f9caf 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2620,7 +2620,7 @@ static void sub_80B8874(u16 offs) dest = (u16 *)(VRAM + 0x140 + offs); for (i = 0; i < 0x140; i++, dest++) { - *dest = gFieldMoveStreaksTilemap[i] | 0xf000; + *dest = gFieldMoveStreaksTilemap[i] | MAP_TILE_ELEVATION_MASK; } } diff --git a/src/field_specials.c b/src/field_specials.c index 307f81399..c7d1f4367 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -887,8 +887,8 @@ static void PetalburgGymFunc(u8 a0, u16 a1) } for (i = 0; i < nDoors; i++) { - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00); - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | MAP_IMPASSABLE_MASK); } DrawWholeMapView(); } @@ -1100,7 +1100,7 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) tileId = 0x27e; } } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); } void DoPCTurnOffEffect(void) @@ -1141,7 +1141,7 @@ static void PCTurnOffEffect(void) { tileId = 0x259; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); DrawWholeMapView(); } @@ -1892,7 +1892,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | MAP_IMPASSABLE_MASK); } } } @@ -1902,7 +1902,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | MAP_IMPASSABLE_MASK); } } } diff --git a/src/fieldmap.c b/src/fieldmap.c index cf5f0356e..8131fb01b 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -383,15 +383,15 @@ u8 MapGridGetZCoordAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= 0xc00; + block |= MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { return 0; } - return block >> 12; + return block >> MAP_TILE_ELEVATION_SHIFT; } u8 MapGridIsImpassableAt(int x, int y) @@ -411,13 +411,13 @@ u8 MapGridIsImpassableAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= 0xc00; + block |= MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { return 1; } - return (block & 0xc00) >> 10; + return (block & MAP_IMPASSABLE_MASK) >> MAP_IMPASSABLE_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) @@ -439,18 +439,19 @@ u32 MapGridGetMetatileIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = mapLayout->border[i] | 0xc00; + block = mapLayout->border[i] | MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { border = gMapHeader.mapLayout->border; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; block2 = gMapHeader.mapLayout->border[j]; - block2 |= 0xc00; - return block2 & block; + // This OR is completely pointless. + block2 |= MAP_IMPASSABLE_MASK; + return block2 & MAP_METATILE_ID_MASK; } - return block & 0x3ff; + return block & MAP_METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) @@ -464,7 +465,7 @@ u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); - return (GetBehaviorByMetatileId(metatile) & 0xf000) >> 12; + return (GetBehaviorByMetatileId(metatile) & MAP_TILE_ELEVATION_MASK) >> MAP_TILE_ELEVATION_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) @@ -474,7 +475,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) && y >= 0 && y < gBackupMapLayout.height) { i = x + y * gBackupMapLayout.width; - gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & 0xf000) | (metatile & 0xfff); + gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & MAP_TILE_ELEVATION_MASK) | (metatile & ~MAP_TILE_ELEVATION_MASK); } } @@ -654,7 +655,7 @@ int GetMapBorderIdAt(int x, int y) i = gBackupMapLayout.width; i *= y; block = gBackupMapLayout.map[x + i]; - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { goto fail; } @@ -664,8 +665,8 @@ int GetMapBorderIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = 0xc00 | mapLayout->border[j]; - if (block2 == 0x3ff) + block2 = MAP_IMPASSABLE_MASK | mapLayout->border[j]; + if (block2 == MAP_UNDEFINED_METATILE_ID) { goto fail; } @@ -921,7 +922,7 @@ void sub_8088B94(int x, int y, int a2) if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) { if (a2 != 0) - gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= 0xC00; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= MAP_IMPASSABLE_MASK; else gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= 0xF3FF; } @@ -937,7 +938,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & 0x3FF, yMode) == 1) + if (sub_80FADE4(*mapMetatilePtr & MAP_METATILE_ID_MASK, yMode) == 1) return TRUE; return FALSE; } diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 3d00fb162..4a1fb0fd5 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -7,7 +7,7 @@ static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0; -static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) +static void sub_80E12E8(u8 taskId, const s16 *list, u16 isImpassableFlag) { s16 r5 = gTasks[taskId].data[4] - 1; s16 r3 = gTasks[taskId].data[5] - 1; @@ -26,9 +26,9 @@ static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) if (list[r4] == metatileId) { if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[r4 + 1]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[r4 + 1]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[0]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[0]); } } } @@ -44,9 +44,9 @@ static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) if (list[2 - r4] == metatileId) { if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[1 - r4]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[1 - r4]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[2]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[2]); } } } @@ -76,13 +76,13 @@ static void sub_80E1444(u8 taskId) sub_80E12E8(taskId, gUnknown_08589AC0, 0); break; case 2: - sub_80E12E8(taskId, gUnknown_08589AC6, 0xC00); + sub_80E12E8(taskId, gUnknown_08589AC6, MAP_IMPASSABLE_MASK); break; case 3: sub_80E12E8(taskId, gUnknown_08589ACC, 0); break; case 4: - sub_80E12E8(taskId, gUnknown_08589AD2, 0xC00); + sub_80E12E8(taskId, gUnknown_08589AD2, MAP_IMPASSABLE_MASK); break; case 5: sub_80E12E8(taskId, gUnknown_08589AD8, 0); diff --git a/src/scrcmd.c b/src/scrcmd.c index 51d96ff2e..9bafac41a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2028,14 +2028,14 @@ bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); u16 tileId = VarGet(ScriptReadHalfword(ctx)); - u16 v8 = VarGet(ScriptReadHalfword(ctx)); + u16 isImpassable = VarGet(ScriptReadHalfword(ctx)); x += 7; y += 7; - if (!v8) + if (!isImpassable) MapGridSetMetatileIdAt(x, y, tileId); else - MapGridSetMetatileIdAt(x, y, tileId | 0xC00); + MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index adcab9cbc..488f49377 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -259,7 +259,7 @@ void sub_80E8CB0(s16 *xPtr, s16 *yPtr, u16 tile) { for (x = 0; x < mapLayout->width; x ++) { - if ((mapLayout->map[y * mapLayout->width + x] & 0x3ff) == tile) + if ((mapLayout->map[y * mapLayout->width + x] & MAP_METATILE_ID_MASK) == tile) { *xPtr = x; *yPtr = y; @@ -282,7 +282,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile1 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | 0xC00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -291,7 +291,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile2 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | 0xC00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -352,7 +352,7 @@ void sub_80E8EE0(struct MapEvents const *events) { if (gUnknown_0858CFCC[i].tile1 == tile_id) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | 0xc00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); break; } } @@ -434,7 +434,7 @@ void sub_80E9108(void) sub_80E8CB0(&x, &y, 0x220); x += 7; y += 7; - MapGridSetMetatileIdAt(x, y, 0x220 | 0xC00); + MapGridSetMetatileIdAt(x, y, 0x220 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); pal_fill_black(); CreateTask(sub_80E90C8, 0); @@ -492,12 +492,12 @@ void sub_80E9238(u8 flagIn) if (curBaseId != 0) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | 0xc00); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | MAP_IMPASSABLE_MASK); } else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | 0xc00); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | MAP_IMPASSABLE_MASK); } } } @@ -791,7 +791,7 @@ void sub_80E9AD0(void) { if (gUnknown_0858CFCC[j].tile2 == tile) { - MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | 0xc00); + MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | MAP_IMPASSABLE_MASK); break; } } diff --git a/src/tv.c b/src/tv.c index ee3614e83..6ab91ac07 100644 --- a/src/tv.c +++ b/src/tv.c @@ -39,6 +39,7 @@ #include "tv.h" #include "data2.h" #include "constants/layouts.h" +#include "constants/metatile_behaviors.h" // Static type declarations @@ -853,9 +854,9 @@ void SetTVMetatilesOnMap(int width, int height, u16 tileId) { for (x = 0; x < width; x ++) { - if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) // is this tile a TV? + if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) { - MapGridSetMetatileIdAt(x, y, tileId | 0xc00); + MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); } } } -- cgit v1.2.3 From da0687987d8d4f6cb9a331f30553ffb806e74165 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:56:22 -0500 Subject: Pick better names for constants --- src/battle_pyramid.c | 4 ++-- src/bg.c | 4 ++-- src/decoration.c | 8 ++++---- src/field_effect.c | 2 +- src/field_specials.c | 12 ++++++------ src/fieldmap.c | 38 +++++++++++++++++++------------------- src/fldeff_escalator.c | 4 ++-- src/scrcmd.c | 2 +- src/secret_base.c | 16 ++++++++-------- src/tv.c | 2 +- 10 files changed, 46 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 92ff257b0..34da3a25d 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1267,7 +1267,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx { for (x = 0; x < 32; x++) { - if ((map[x] & MAP_METATILE_ID_MASK) == FLOOR_EXIT_METATILE) + if ((map[x] & METATILE_ID_MASK) == FLOOR_EXIT_METATILE) { x += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; y += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; @@ -1568,7 +1568,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio { for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[x] & MAP_METATILE_ID_MASK) != FLOOR_EXIT_METATILE) + if ((layoutMap[x] & METATILE_ID_MASK) != FLOOR_EXIT_METATILE) { map[x] = layoutMap[x]; } diff --git a/src/bg.c b/src/bg.c index 571518650..1826f9a28 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1056,7 +1056,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); + firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); } } break; @@ -1067,7 +1067,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); + firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); } } break; diff --git a/src/decoration.c b/src/decoration.c index e5f3b6d46..83ec4bc34 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1173,7 +1173,7 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) { - impassableFlag = MAP_IMPASSABLE_MASK; + impassableFlag = METATILE_COLLISION_MASK; } else { @@ -1502,7 +1502,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!sub_81284F4(behaviorAt, decoration)) { return FALSE; @@ -1527,7 +1527,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) { return FALSE; @@ -1547,7 +1547,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) { return FALSE; diff --git a/src/field_effect.c b/src/field_effect.c index 07a7f9caf..7f11a8e58 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2620,7 +2620,7 @@ static void sub_80B8874(u16 offs) dest = (u16 *)(VRAM + 0x140 + offs); for (i = 0; i < 0x140; i++, dest++) { - *dest = gFieldMoveStreaksTilemap[i] | MAP_TILE_ELEVATION_MASK; + *dest = gFieldMoveStreaksTilemap[i] | METATILE_ELEVATION_MASK; } } diff --git a/src/field_specials.c b/src/field_specials.c index c7d1f4367..639d86e68 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -887,8 +887,8 @@ static void PetalburgGymFunc(u8 a0, u16 a1) } for (i = 0; i < nDoors; i++) { - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | MAP_IMPASSABLE_MASK); - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | METATILE_COLLISION_MASK); } DrawWholeMapView(); } @@ -1100,7 +1100,7 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) tileId = 0x27e; } } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); } void DoPCTurnOffEffect(void) @@ -1141,7 +1141,7 @@ static void PCTurnOffEffect(void) { tileId = 0x259; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); DrawWholeMapView(); } @@ -1892,7 +1892,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | METATILE_COLLISION_MASK); } } } @@ -1902,7 +1902,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | METATILE_COLLISION_MASK); } } } diff --git a/src/fieldmap.c b/src/fieldmap.c index 8131fb01b..a96b71c0f 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -383,15 +383,15 @@ u8 MapGridGetZCoordAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= MAP_IMPASSABLE_MASK; + block |= METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { return 0; } - return block >> MAP_TILE_ELEVATION_SHIFT; + return block >> METATILE_ELEVATION_SHIFT; } u8 MapGridIsImpassableAt(int x, int y) @@ -411,13 +411,13 @@ u8 MapGridIsImpassableAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= MAP_IMPASSABLE_MASK; + block |= METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { return 1; } - return (block & MAP_IMPASSABLE_MASK) >> MAP_IMPASSABLE_SHIFT; + return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) @@ -439,19 +439,19 @@ u32 MapGridGetMetatileIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = mapLayout->border[i] | MAP_IMPASSABLE_MASK; + block = mapLayout->border[i] | METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { border = gMapHeader.mapLayout->border; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; block2 = gMapHeader.mapLayout->border[j]; // This OR is completely pointless. - block2 |= MAP_IMPASSABLE_MASK; - return block2 & MAP_METATILE_ID_MASK; + block2 |= METATILE_COLLISION_MASK; + return block2 & METATILE_ID_MASK; } - return block & MAP_METATILE_ID_MASK; + return block & METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) @@ -465,7 +465,7 @@ u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); - return (GetBehaviorByMetatileId(metatile) & MAP_TILE_ELEVATION_MASK) >> MAP_TILE_ELEVATION_SHIFT; + return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) @@ -475,7 +475,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) && y >= 0 && y < gBackupMapLayout.height) { i = x + y * gBackupMapLayout.width; - gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & MAP_TILE_ELEVATION_MASK) | (metatile & ~MAP_TILE_ELEVATION_MASK); + gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); } } @@ -655,7 +655,7 @@ int GetMapBorderIdAt(int x, int y) i = gBackupMapLayout.width; i *= y; block = gBackupMapLayout.map[x + i]; - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { goto fail; } @@ -665,8 +665,8 @@ int GetMapBorderIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = MAP_IMPASSABLE_MASK | mapLayout->border[j]; - if (block2 == MAP_UNDEFINED_METATILE_ID) + block2 = METATILE_COLLISION_MASK | mapLayout->border[j]; + if (block2 == METATILE_ID_UNDEFINED) { goto fail; } @@ -922,9 +922,9 @@ void sub_8088B94(int x, int y, int a2) if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) { if (a2 != 0) - gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= MAP_IMPASSABLE_MASK; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK; else - gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= 0xF3FF; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= ~METATILE_COLLISION_MASK; } } @@ -938,7 +938,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & MAP_METATILE_ID_MASK, yMode) == 1) + if (sub_80FADE4(*mapMetatilePtr & METATILE_ID_MASK, yMode) == 1) return TRUE; return FALSE; } diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 4a1fb0fd5..7ab2db4db 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -76,13 +76,13 @@ static void sub_80E1444(u8 taskId) sub_80E12E8(taskId, gUnknown_08589AC0, 0); break; case 2: - sub_80E12E8(taskId, gUnknown_08589AC6, MAP_IMPASSABLE_MASK); + sub_80E12E8(taskId, gUnknown_08589AC6, METATILE_COLLISION_MASK); break; case 3: sub_80E12E8(taskId, gUnknown_08589ACC, 0); break; case 4: - sub_80E12E8(taskId, gUnknown_08589AD2, MAP_IMPASSABLE_MASK); + sub_80E12E8(taskId, gUnknown_08589AD2, METATILE_COLLISION_MASK); break; case 5: sub_80E12E8(taskId, gUnknown_08589AD8, 0); diff --git a/src/scrcmd.c b/src/scrcmd.c index 9bafac41a..b80b2baed 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2035,7 +2035,7 @@ bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) if (!isImpassable) MapGridSetMetatileIdAt(x, y, tileId); else - MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index 488f49377..3e591eba2 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -259,7 +259,7 @@ void sub_80E8CB0(s16 *xPtr, s16 *yPtr, u16 tile) { for (x = 0; x < mapLayout->width; x ++) { - if ((mapLayout->map[y * mapLayout->width + x] & MAP_METATILE_ID_MASK) == tile) + if ((mapLayout->map[y * mapLayout->width + x] & METATILE_ID_MASK) == tile) { *xPtr = x; *yPtr = y; @@ -282,7 +282,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile1 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -291,7 +291,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile2 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -352,7 +352,7 @@ void sub_80E8EE0(struct MapEvents const *events) { if (gUnknown_0858CFCC[i].tile1 == tile_id) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); break; } } @@ -434,7 +434,7 @@ void sub_80E9108(void) sub_80E8CB0(&x, &y, 0x220); x += 7; y += 7; - MapGridSetMetatileIdAt(x, y, 0x220 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); pal_fill_black(); CreateTask(sub_80E90C8, 0); @@ -492,12 +492,12 @@ void sub_80E9238(u8 flagIn) if (curBaseId != 0) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK); } else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK); } } } @@ -791,7 +791,7 @@ void sub_80E9AD0(void) { if (gUnknown_0858CFCC[j].tile2 == tile) { - MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | METATILE_COLLISION_MASK); break; } } diff --git a/src/tv.c b/src/tv.c index 6ab91ac07..cfa49d7df 100644 --- a/src/tv.c +++ b/src/tv.c @@ -856,7 +856,7 @@ void SetTVMetatilesOnMap(int width, int height, u16 tileId) { if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) { - MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); } } } -- cgit v1.2.3 From 459fd93b59795c0c9c888584d38e82577e07c056 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 01:18:58 -0500 Subject: Fix minor errors --- src/cable_club.c | 2 +- src/link.c | 2 +- src/record_mixing.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/cable_club.c b/src/cable_club.c index f504ad8a8..d83508504 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -1028,7 +1028,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - SetgLocalLinkPlayerId(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; diff --git a/src/link.c b/src/link.c index cf06e4958..72ac3e878 100644 --- a/src/link.c +++ b/src/link.c @@ -302,7 +302,7 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void SetgLocalLinkPlayerId(u8 playerId) +void SetLocalLinkPlayerId(u8 playerId) { gLocalLinkPlayer.id = playerId; } diff --git a/src/record_mixing.c b/src/record_mixing.c index e58fdcc4e..aafd7284b 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -324,7 +324,7 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - SetgLocalLinkPlayerId(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); -- cgit v1.2.3 From a7e5852f1d95dd2b438e94fbf31b865196c6e951 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 01:49:11 -0500 Subject: More minor fixes --- src/field_effect.c | 2 +- src/field_specials.c | 56 +++++++++++++++++++++++++++++++++++++++++----------- src/load_save.c | 2 +- src/main.c | 14 ++++++------- src/overworld.c | 16 +++++++-------- src/save.c | 6 +++--- src/secret_base.c | 38 +++++++++++++++++------------------ src/time_events.c | 2 +- src/trainer_hill.c | 10 +++++----- 9 files changed, 90 insertions(+), 56 deletions(-) (limited to 'src') diff --git a/src/field_effect.c b/src/field_effect.c index 74f7801bd..a4614b0a0 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2443,7 +2443,7 @@ static void sub_80B8410(struct Task *task) bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; - if (IsMapTypeOutside(GetCurrentMapType()) == TRUE) + if (IsMapTypeOutdoors(GetCurrentMapType()) == TRUE) { taskId = CreateTask(sub_80B8554, 0xff); } else diff --git a/src/field_specials.c b/src/field_specials.c index e603c3ebf..20125d855 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -370,7 +370,7 @@ bool32 ShouldDoWallyCall(void) case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -451,7 +451,7 @@ bool32 ShouldDoRoxanneCall(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -478,7 +478,7 @@ bool32 ShouldDoRivalRayquazaCall(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -1516,7 +1516,7 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { - if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(20); } @@ -1524,7 +1524,7 @@ void SetRoute119Weather(void) void SetRoute123Weather(void) { - if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(21); } @@ -3428,21 +3428,21 @@ void CreateUnusualWeatherEvent(void) if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE) { - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } else if ((randomValue & 1) == 0) { randomValue = Random(); - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else { randomValue = Random(); - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } } @@ -3450,7 +3450,24 @@ void CreateUnusualWeatherEvent(void) // returns TRUE if the weather is for Kyogre, and FALSE if it's for Groudon. bool32 GetUnusualWeatherMapNameAndType(void) { - static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE129), + MAP_NUM(ROUTE129) + }; u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); @@ -3469,7 +3486,24 @@ bool32 GetUnusualWeatherMapNameAndType(void) bool8 UnusualWeatherHasExpired(void) { // Duplicate array. - static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers_2[] = { + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE129), + MAP_NUM(ROUTE129) + }; u16 steps = VarGet(VAR_UNUSUAL_WEATHER_STEP_COUNTER); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); diff --git a/src/load_save.c b/src/load_save.c index d71e72802..7d307ec1b 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -99,7 +99,7 @@ void MoveSaveBlocks_ResetHeap(void) hblankCB = gMain.hblankCallback; gMain.vblankCallback = NULL; gMain.hblankCallback = NULL; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; saveBlock2Copy = (struct SaveBlock2 *)(gHeap); saveBlock1Copy = (struct SaveBlock1 *)(gHeap + sizeof(struct SaveBlock2)); diff --git a/src/main.c b/src/main.c index 3e282775d..3049f4f90 100644 --- a/src/main.c +++ b/src/main.c @@ -163,7 +163,7 @@ static void UpdateLinkAndCallCallbacks(void) static void InitMainCallbacks(void) { gMain.vblankCounter1 = 0; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); @@ -324,8 +324,8 @@ static void VBlankIntr(void) gMain.vblankCounter1++; - if (gVBlankCounterPointer && *gVBlankCounterPointer < 0xFFFFFFFF) - (*gVBlankCounterPointer)++; + if (gTrainerHillVBlankCounter && *gTrainerHillVBlankCounter < 0xFFFFFFFF) + (*gTrainerHillVBlankCounter)++; if (gMain.vblankCallback) gMain.vblankCallback(); @@ -393,14 +393,14 @@ static void WaitForVBlank(void) ; } -void SetVBlankCounterPointer(u32 *var) +void SetTrainerHillVBlankCounter(u32 *counter) { - gVBlankCounterPointer = var; + gTrainerHillVBlankCounter = counter; } -void ClearVBlankCounterPointer(void) +void ClearTrainerHillVBlankCounter(void) { - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; } void DoSoftReset(void) diff --git a/src/overworld.c b/src/overworld.c index 84eb80a06..837855877 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -678,7 +678,7 @@ void UpdateEscapeWarp(s16 x, s16 y) { u8 currMapType = GetCurrentMapType(); u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); - if (IsMapTypeOutside(currMapType) && IsMapTypeOutside(destMapType) != TRUE) + if (IsMapTypeOutdoors(currMapType) && IsMapTypeOutdoors(destMapType) != TRUE) SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x - 7, y - 6); } @@ -823,8 +823,8 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) static void mli0_load_map(u32 a1) { - bool8 v2; - bool8 indoors; + bool8 isOutdoors; + bool8 isIndoors; LoadCurrentMapData(); if (!(sUnknown_020322D8 & 1)) @@ -837,8 +837,8 @@ static void mli0_load_map(u32 a1) LoadEventObjTemplatesFromHeader(); } - v2 = IsMapTypeOutside(gMapHeader.mapType); - indoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); + isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); + isIndoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); sub_80EB218(); TrySetMapSaveWarpStatus(); @@ -850,7 +850,7 @@ static void mli0_load_map(u32 a1) DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); - if (v2) + if (isOutdoors) FlagClear(FLAG_SYS_USE_FLASH); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); @@ -864,7 +864,7 @@ static void mli0_load_map(u32 a1) else InitMap(); - if (a1 != 1 && indoors) + if (a1 != 1 && isIndoors) { UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); sub_80E9238(1); @@ -1330,7 +1330,7 @@ u8 GetLastUsedWarpMapType(void) return GetMapTypeByWarpData(&gLastUsedWarp); } -bool8 IsMapTypeOutside(u8 mapType) +bool8 IsMapTypeOutdoors(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN diff --git a/src/save.c b/src/save.c index 593ee8f2c..920a5152a 100644 --- a/src/save.c +++ b/src/save.c @@ -659,10 +659,10 @@ static void UpdateSaveAddresses(void) u8 HandleSavingData(u8 saveType) { u8 i; - u32 *backupVar = gVBlankCounterPointer; + u32 *backupVar = gTrainerHillVBlankCounter; u8 *tempAddr; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; UpdateSaveAddresses(); switch (saveType) { @@ -705,7 +705,7 @@ u8 HandleSavingData(u8 saveType) save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; } - gVBlankCounterPointer = backupVar; + gTrainerHillVBlankCounter = backupVar; return 0; } diff --git a/src/secret_base.c b/src/secret_base.c index cf35deb07..af8804ec3 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -60,7 +60,7 @@ struct SecretBaseRecordMixer { // Static RAM declarations EWRAM_DATA u8 sCurSecretBaseId = 0; -EWRAM_DATA bool8 gIsInSecretBase = FALSE; +EWRAM_DATA bool8 gInFriendSecretBase = FALSE; EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; // Static ROM declarations @@ -407,7 +407,7 @@ void sub_80E9068(void) bool8 sub_80E909C(void) { - if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_SECRET_BASE_SHOULD_BE_INIT) == 0) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_INIT_SECRET_BASE) == 0) { return FALSE; } @@ -1186,11 +1186,11 @@ void SecretBasePerStepCallback(u8 taskId) case 0: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - gIsInSecretBase = TRUE; + gInFriendSecretBase = TRUE; } else { - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; } PlayerGetDestCoords(&data[2], &data[3]); data[1] = 1; @@ -1206,35 +1206,35 @@ void SecretBasePerStepCallback(u8 taskId) tileId = MapGridGetMetatileIdAt(x, y); if (tileId == 0x234 || tileId == 0x23C) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); } } else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); } } else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); } } else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); } } else if (behavior == 0xc1 && tileId == 0x23d) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); @@ -1242,7 +1242,7 @@ void SecretBasePerStepCallback(u8 taskId) } else if (behavior == 0x47 && tileId == 0x23e) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); @@ -1250,7 +1250,7 @@ void SecretBasePerStepCallback(u8 taskId) } else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); } @@ -1258,7 +1258,7 @@ void SecretBasePerStepCallback(u8 taskId) else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) { PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { switch ((int)MapGridGetMetatileIdAt(x, y)) { @@ -1275,27 +1275,27 @@ void SecretBasePerStepCallback(u8 taskId) } else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); } ShatterSecretBaseBreakableDoor(x, y); } else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (gIsInSecretBase == TRUE) { + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); } } else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); } } else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); } @@ -1792,15 +1792,15 @@ void sub_80EB1AC(void) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; } void sub_80EB218(void) { - if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gIsInSecretBase == TRUE && !CurrentMapIsSecretBase()) + if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gInFriendSecretBase == TRUE && !CurrentMapIsSecretBase()) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; sub_80EEA70(); VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); diff --git a/src/time_events.c b/src/time_events.c index 9263bffac..bd51f0c2d 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void) 1, // 23 }; - if (IsMapTypeOutside(GetLastUsedWarpMapType())) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType())) { RtcCalcLocalTime(); if (tide[gLocalTime.hours]) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index ee7e2287a..06ca8615f 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -93,7 +93,7 @@ struct TrHillStruct2 // EWRAM static EWRAM_DATA struct TrHillStruct2 *sHillData = NULL; static EWRAM_DATA struct TrHillRoomTrainers *sRoomTrainers = NULL; -EWRAM_DATA u32 *gVBlankCounterPointer = NULL; +EWRAM_DATA u32 *gTrainerHillVBlankCounter = NULL; // This file's functions. static void TrainerHillStartChallenge(void); @@ -372,7 +372,7 @@ void InitTrainerHillBattleStruct(void) } sRoomTrainers->facilityClass[i] = sHillData->tag.floors[sHillData->floorId].trainers[i].facilityClass; } - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); FreeDataStruct(); } @@ -435,7 +435,7 @@ static void TrainerHillStartChallenge(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 0; gSaveBlock1Ptr->trainerHill.field_3D6C = 0; - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; @@ -447,7 +447,7 @@ static void TrainerHillStartChallenge(void) static void sub_81D58D8(void) { - ClearVBlankCounterPointer(); + ClearTrainerHillVBlankCounter(); gSpecialVar_Result = 0; if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) gSpecialVar_Result++; @@ -505,7 +505,7 @@ static void TrainerHillResumeTimer(void) if (gSaveBlock1Ptr->trainerHill.timer >= HILL_MAX_TIME) gSaveBlock1Ptr->trainerHill.timer = HILL_MAX_TIME; else - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); } } -- cgit v1.2.3 From 3ceb1667c9b5e81934c7d608efc08905f21c372e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 22:32:50 -0500 Subject: Reduce externs --- src/battle_anim_effects_2.c | 4 +-- src/battle_anim_effects_3.c | 4 +-- src/battle_controller_link_opponent.c | 5 +-- src/battle_controller_link_partner.c | 4 +-- src/battle_controller_opponent.c | 4 +-- src/battle_controller_player.c | 4 --- src/battle_controller_player_partner.c | 3 -- src/battle_controller_recorded_opponent.c | 3 -- src/battle_controller_recorded_player.c | 2 -- src/battle_controller_safari.c | 2 -- src/battle_controller_wally.c | 2 -- src/battle_main.c | 4 +-- src/battle_records.c | 3 +- src/battle_script_commands.c | 4 +-- src/battle_setup.c | 5 +-- src/berry.c | 6 ++-- src/berry_blender.c | 3 -- src/bike.c | 6 ---- src/contest.c | 2 -- src/contest_link_80F57C4.c | 3 +- src/diploma.c | 3 +- src/electric.c | 4 +-- src/field_control_avatar.c | 3 +- src/field_effect.c | 6 ---- src/field_message_box.c | 4 +-- src/field_screen_effect.c | 13 +++---- src/field_specials.c | 2 +- src/fldeff_cut.c | 1 - src/item_menu.c | 2 +- src/item_use.c | 2 +- src/normal.c | 3 +- src/safari_zone.c | 3 +- src/start_menu.c | 60 +++++++++++++++---------------- 33 files changed, 55 insertions(+), 124 deletions(-) (limited to 'src') diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index ee6676e64..a72b2c8dc 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -15,9 +15,7 @@ #include "util.h" #include "constants/rgb.h" #include "constants/songs.h" - -extern void sub_8108C94(struct Sprite *); -extern void sub_810310C(u8, struct Sprite *); +#include "water.h" void sub_8103448(struct Sprite *); void sub_8103498(struct Sprite *); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 49fb69342..de00892ba 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -23,9 +23,7 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/weather.h" - -extern u8 sub_807521C(s16 x, s16 y, u8 a3); -extern void sub_810E2C8(struct Sprite *); +#include "flying.h" extern const struct SpriteTemplate gUnknown_08593114; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 05da72e16..6c0f81d41 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -26,15 +26,12 @@ #include "constants/battle_anim.h" #include "constants/songs.h" #include "constants/trainers.h" +#include "recorded_battle.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void sub_81851A8(u8 *); -extern u16 sub_8068B48(void); - // this file's functions static void LinkOpponentHandleGetMonData(void); static void LinkOpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 19d39609f..59fc2aae5 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -26,13 +26,11 @@ #include "constants/battle_anim.h" #include "constants/songs.h" #include "constants/trainers.h" +#include "recorded_battle.h" extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void sub_81851A8(u8 *); - // this file's functions static void LinkPartnerHandleGetMonData(void); static void LinkPartnerHandleGetRawMonData(void); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 99bb0c588..9fee8134d 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -32,14 +32,12 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/trainers.h" +#include "trainer_hill.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern u8 GetTrainerHillTrainerFrontSpriteId(u16 trainerId); - // this file's functions static void OpponentHandleGetMonData(void); static void OpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6bcc97c68..42d29dbbd 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -39,10 +39,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void sub_81AABB0(void); -extern void sub_81851A8(u8 *); - // this file's functions static void PlayerHandleGetMonData(void); static void PlayerHandleSetMonData(void); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index a9b0f376b..95a3f698b 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -30,9 +30,6 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_81358F4(void); -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); - // this file's functions static void PlayerPartnerHandleGetMonData(void); static void PlayerPartnerHandleGetRawMonData(void); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 911eb6ce5..c66a1b49c 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -33,9 +33,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern u16 sub_8068B48(void); - // this file's functions static void RecordedOpponentHandleGetMonData(void); static void RecordedOpponentHandleGetRawMonData(void); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index b2dfca6a0..cc40f159a 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -30,8 +30,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); - // this file's functions static void RecordedPlayerHandleGetMonData(void); static void RecordedPlayerHandleGetRawMonData(void); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 54ba04ab4..b0173df68 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -25,8 +25,6 @@ extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_81358F4(void); - // this file's functions static void SafariHandleGetMonData(void); static void SafariHandleGetRawMonData(void); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index d891b96b6..a3dc92757 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -33,8 +33,6 @@ extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); - // this file's functions static void WallyHandleGetMonData(void); static void WallyHandleGetRawMonData(void); diff --git a/src/battle_main.c b/src/battle_main.c index 043e75808..befef364f 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -57,6 +57,7 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/trainers.h" +#include "cable_club.h" extern struct MusicPlayerInfo gMPlayInfo_SE1; extern struct MusicPlayerInfo gMPlayInfo_SE2; @@ -69,9 +70,6 @@ extern const u8 *const gBattlescriptsForRunningByItem[]; extern const u8 *const gBattlescriptsForUsingItem[]; extern const u8 *const gBattlescriptsForSafariActions[]; -// functions -extern void sub_80B3AF8(u8 taskId); // cable club - // this file's functions static void CB2_InitBattleInternal(void); static void CB2_PreInitMultiBattle(void); diff --git a/src/battle_records.c b/src/battle_records.c index f9c40d8de..d905ccaf3 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -21,8 +21,7 @@ #include "alloc.h" #include "gpu_regs.h" #include "constants/game_stat.h" - -extern void PrintOnTrainerHillRecordsWindow(void); // pokenav.s +#include "trainer_hill.h" // this file's functions static void Task_CloseTrainerHillRecordsOnButton(u8 taskId); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a53fa30f2..8a4436a3f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -48,6 +48,7 @@ #include "battle_pyramid.h" #include "field_specials.h" #include "pokemon_summary_screen.h" +#include "pokenav.h" extern struct MusicPlayerInfo gMPlayInfo_BGM; @@ -55,9 +56,6 @@ extern const u8* const gBattleScriptsForMoveEffects[]; // functions extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s -extern void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s -extern void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s -extern u8 sub_813B21C(void); #define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) diff --git a/src/battle_setup.c b/src/battle_setup.c index 7626420e9..3d27b517e 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -44,6 +44,7 @@ #include "mirage_tower.h" #include "constants/map_types.h" #include "constants/battle_frontier.h" +#include "field_screen_effect.h" enum { @@ -62,10 +63,6 @@ struct TrainerBattleParameter u8 ptrType; }; -extern void ClearPoisonStepCounter(void); -extern void sub_808BCF4(void); -extern void sub_80AF6F0(void); - // this file's functions static void DoBattlePikeWildBattle(void); static void DoSafariBattle(void); diff --git a/src/berry.c b/src/berry.c index bd596db7f..cbac06a3d 100644 --- a/src/berry.c +++ b/src/berry.c @@ -11,11 +11,9 @@ #include "text.h" #include "constants/event_object_movement_constants.h" #include "constants/items.h" +#include "event_object_movement.h" + -extern u8 EventObjectGetBerryTreeId(u8 eventObjectId); -extern void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); -extern void CB2_ChooseBerry(void); -extern bool8 IsBerryTreeSparkling(u8, u8, u8); extern const u8 BerryTreeScript[]; diff --git a/src/berry_blender.c b/src/berry_blender.c index 87d24e717..70e50a72e 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -142,9 +142,6 @@ extern const u8 gText_Space[]; extern const u8 gText_BlenderMaxSpeedRecord[]; extern const u8 gText_234Players[]; -extern void sub_81AABF0(void (*callback)(void)); -extern void sub_800B4C0(void); - // this file's functions static void BerryBlender_SetBackgroundsPos(void); static void sub_8080EA4(u8 taskId); diff --git a/src/bike.c b/src/bike.c index 1e91baab0..530742bdf 100644 --- a/src/bike.c +++ b/src/bike.c @@ -14,12 +14,6 @@ extern bool8 gBikeCyclingChallenge; extern u8 gBikeCollisions; -extern u8 sub_808B980(u8 direction); -extern u8 sub_808B9BC(u8 direction); -extern u8 sub_808B9A4(u8 direction); -extern u8 sub_808C1B4(u8 direction); -extern u8 sub_808B9D4(u8 direction); - // this file's functions static void MovePlayerOnMachBike(u8, u16, u16); static u8 GetMachBikeTransition(u8 *); diff --git a/src/contest.c b/src/contest.c index 7be4aa23b..230ccd1b4 100644 --- a/src/contest.c +++ b/src/contest.c @@ -45,8 +45,6 @@ #include "constants/rgb.h" #include "contest_ai.h" -extern void sub_80FC9F8(u8); // contest_link_80FC4F4.c - // This file's functions. static void sub_80D782C(void); static void sub_80D7C7C(u8 taskId); diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index c0a79af81..881d9847e 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -39,6 +39,7 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/vars.h" +#include "contest.h" struct ContestLinkUnk0 { @@ -99,8 +100,6 @@ extern const struct SpriteSheet gUnknown_0858D810[]; extern const struct SpritePalette gUnknown_0858D850; extern const struct SpriteTemplate gSpriteTemplate_858D860; -extern void sub_81D9DE4(u8); - static void sub_80F6A9C(void); static void sub_80F71C8(void); u8 sub_80F7310(u8, u8); diff --git a/src/diploma.c b/src/diploma.c index b3d5a48fa..78d49527f 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -13,8 +13,7 @@ #include "text.h" #include "overworld.h" #include "menu.h" - -extern bool16 sub_80C0944(void); +#include "pokedex.h" extern const u8 gText_DexNational[]; extern const u8 gText_DexHoenn[]; diff --git a/src/electric.c b/src/electric.c index 142a9ca09..6c6c33746 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,9 +4,7 @@ #include "trig.h" #include "constants/songs.h" #include "sound.h" - -extern void sub_810E2C8(struct Sprite *); -extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *); +#include "flying.h" static void sub_810A1A8(struct Sprite *); static void sub_810A1F8(struct Sprite *); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index cffafaf9f..f5961bb48 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -32,8 +32,7 @@ #include "constants/map_types.h" #include "constants/maps.h" #include "constants/songs.h" - -extern bool32 TryStartMatchCall(void); +#include "match_call.h" static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0; static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0; diff --git a/src/field_effect.c b/src/field_effect.c index 7f11a8e58..fcdc483e6 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -240,12 +240,6 @@ static IWRAM_DATA u8 sActiveList[32]; extern u8 *gFieldEffectScriptPointers[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; -extern void sub_81555D8(u8, u8); -extern void pal_fill_for_maplights(void); -extern void sub_80E1558(u8); -extern void sub_80E1570(void); -extern bool8 sub_80E1584(void); -extern void WarpFadeScreen(void); // .rodata const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp"); diff --git a/src/field_message_box.c b/src/field_message_box.c index 299aafaf2..fa1aee566 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -4,9 +4,7 @@ #include "string_util.h" #include "task.h" #include "text.h" - -extern bool32 IsMatchCallTaskActive(void); -extern void StartMatchCallFromScript(u8*); +#include "match_call.h" static EWRAM_DATA u8 sFieldMessageBoxMode = 0; diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index e7476dea3..3e4965667 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -10,7 +10,6 @@ #include "field_screen_effect.h" #include "field_special_scene.h" #include "field_weather.h" -// #include "fldeff_flash.h" #include "gpu_regs.h" #include "link.h" #include "link_rfu.h" @@ -31,15 +30,9 @@ #include "constants/event_object_movement_constants.h" #include "constants/songs.h" #include "constants/rgb.h" +#include "trainer_hill.h" +#include "event_obj_lock.h" -extern bool32 sub_81D6534(void); -extern bool8 walkrun_is_standing_still(void); -extern void ScriptUnfreezeEventObjects(void); -extern void sub_80FB768(void); -extern void sub_808D194(void); -extern void sub_808D1C8(void); -extern bool32 sub_808D1B4(void); -extern bool32 sub_808D1E8(void); extern void sub_80B6B68(void); extern void sub_80B6E4C(u8, u8); extern void sub_80B75D8(u8); @@ -47,6 +40,8 @@ extern void sub_80B7A74(u8); extern void sub_808C0A8(u8); extern u8 GetMapPairFadeToType(u8, u8); extern u8 GetMapPairFadeFromType(u8, u8); +extern bool32 sub_808D1B4(void); +extern bool32 sub_808D1E8(void); extern const u16 gUnknown_82EC7CC[]; diff --git a/src/field_specials.c b/src/field_specials.c index 639d86e68..3994f8c36 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3379,7 +3379,7 @@ u16 get_unknown_box_id(void) return gUnknown_0203AB6F; } -bool32 sub_813B21C(void) +bool8 sub_813B21C(void) { if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE) { diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 348a1f46c..a715608c5 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -20,7 +20,6 @@ #include "constants/field_effects.h" #include "constants/songs.h" -extern void ScriptUnfreezeEventObjects(void); extern bool8 IsMewPlayingHideAndSeek(void); extern struct MapPosition gPlayerFacingPosition; diff --git a/src/item_menu.c b/src/item_menu.c index 43f2afce3..b3d341c2e 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -476,7 +476,7 @@ void CB2_ChooseBerry(void) GoToBagMenu(RETURN_LOCATION_FIELD_2, BERRIES_POCKET, CB2_ReturnToFieldContinueScript); } -void sub_81AABF0(void(*callback)(void)) +void sub_81AABF0(void (*callback)(void)) { GoToBagMenu(RETURN_LOCATION_FIELD_3, BERRIES_POCKET, callback); } diff --git a/src/item_use.c b/src/item_use.c index 97d6292c4..16fb22d94 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -37,10 +37,10 @@ #include "constants/items.h" #include "constants/songs.h" #include "constants/vars.h" +#include "event_obj_lock.h" extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); -extern void ScriptUnfreezeEventObjects(void); extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); extern bool8 IsPlayerFacingSurfableFishableWater(void); diff --git a/src/normal.c b/src/normal.c index 87c8792f1..cbf0caa83 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5,6 +5,7 @@ #include "task.h" #include "trig.h" #include "constants/rgb.h" +#include "flying.h" void AnimConfusionDuck(struct Sprite *); void AnimSimplePaletteBlend(struct Sprite *); @@ -36,8 +37,6 @@ static void sub_81162F8(u8); static void sub_81163D0(struct Sprite *); static void sub_81165E4(struct Sprite *); -extern void sub_810E2C8(struct Sprite *); - const union AnimCmd gUnknown_0859722C[] = { ANIMCMD_FRAME(0, 8), diff --git a/src/safari_zone.c b/src/safari_zone.c index accf94981..703c3d0cd 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -10,6 +10,7 @@ #include "string_util.h" #include "tv.h" #include "constants/game_stat.h" +#include "field_screen_effect.h" struct PokeblockFeeder { @@ -27,8 +28,6 @@ extern const u8 EventScript_2A4B6F[]; extern const u8 EventScript_2A4B4C[]; extern const u8 EventScript_2A4B9B[]; -extern void sub_80AF6F0(void); - EWRAM_DATA u8 gNumSafariBalls = 0; EWRAM_DATA static u16 sSafariZoneStepCounter = 0; EWRAM_DATA static u8 sSafariZoneCaughtMons = 0; diff --git a/src/start_menu.c b/src/start_menu.c index 4b71f6147..79404d0b2 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1,44 +1,45 @@ #include "global.h" -#include "start_menu.h" -#include "menu.h" -#include "safari_zone.h" -#include "event_data.h" -#include "window.h" -#include "string_util.h" -#include "text.h" -#include "strings.h" +#include "battle_pike.h" +#include "battle_pyramid.h" +#include "battle_pyramid_bag.h" #include "bg.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "event_obj_lock.h" +#include "event_scripts.h" #include "field_effect.h" -#include "party_menu.h" -#include "frontier_pass.h" -#include "task.h" -#include "overworld.h" -#include "link.h" -#include "frontier_util.h" +#include "field_player_avatar.h" #include "field_specials.h" -#include "event_object_movement.h" -#include "script.h" -#include "main.h" -#include "sound.h" -#include "pokedex.h" #include "field_weather.h" -#include "palette.h" +#include "frontier_pass.h" +#include "frontier_util.h" +#include "gpu_regs.h" +#include "international_string_util.h" #include "item_menu.h" +#include "link.h" +#include "load_save.h" +#include "main.h" +#include "menu.h" +#include "new_game.h" #include "option_menu.h" -#include "event_scripts.h" +#include "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "pokedex.h" +#include "safari_zone.h" #include "save.h" -#include "gpu_regs.h" #include "scanline_effect.h" +#include "script.h" +#include "sound.h" +#include "start_menu.h" +#include "strings.h" +#include "string_util.h" +#include "task.h" +#include "text.h" #include "text_window.h" -#include "load_save.h" #include "trainer_card.h" -#include "international_string_util.h" +#include "window.h" #include "constants/songs.h" -#include "field_player_avatar.h" -#include "battle_pyramid.h" -#include "battle_pyramid_bag.h" -#include "battle_pike.h" -#include "new_game.h" // Menu actions enum @@ -93,7 +94,6 @@ extern void sub_808B864(void); extern void CB2_Pokedex(void); extern void PlayRainStoppingSoundEffect(void); extern void CB2_PokeNav(void); -extern void ScriptUnfreezeEventObjects(void); extern void save_serialize_map(void); // Menu action callbacks -- cgit v1.2.3 From 0f6cc27e81d4985d61e5caa669027801d520a122 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 00:36:59 -0500 Subject: Fixed decomp issue around LoadPalette In LoadLinkPartnerEventObjectSpritePalette, using paletteNum += 6 causes GCC to "mark" paletteNum's register as a possible overflow, even though it performs the overflow check. Then, when passing args to LoadPalette, GCC fails to recognize that 0x100 + ((any u8) << 4) can never overflow as a u16. It then does an overflow check before calling LoadPalette. Assigning to a temp variable seems to avoid this "marking" behavior. --- src/field_specials.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 3994f8c36..629dd8015 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -55,6 +55,7 @@ #include "constants/vars.h" #include "constants/battle_frontier.h" #include "constants/weather.h" +#include "palette.h" EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; @@ -80,7 +81,6 @@ extern const u16 gEventObjectPalette17[]; extern const u16 gEventObjectPalette33[]; extern const u16 gEventObjectPalette34[]; -extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match extern void BlendPalettes(u32, u8, u16); extern void FieldInitRegionMap(MainCallback callback); @@ -591,7 +591,9 @@ void SpawnLinkPartnerEventObject(void) static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum) { - paletteNum += 6; + u8 adjustedPaletteNum; + // Note: This temp var is necessary; paletteNum += 6 doesn't match. + adjustedPaletteNum = paletteNum + 6; if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN || graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY || graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL || @@ -602,21 +604,21 @@ static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEvent { u8 spriteId = gEventObjects[obj].spriteId; struct Sprite *sprite = &gSprites[spriteId]; - sprite->oam.paletteNum = paletteNum; + sprite->oam.paletteNum = adjustedPaletteNum; switch (graphicsId) { case EVENT_OBJ_GFX_LINK_RS_BRENDAN: - LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20); + LoadPalette(gEventObjectPalette33, 0x100 + (adjustedPaletteNum << 4), 0x20); break; case EVENT_OBJ_GFX_LINK_RS_MAY: - LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20); + LoadPalette(gEventObjectPalette34, 0x100 + (adjustedPaletteNum << 4), 0x20); break; case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL: - LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20); + LoadPalette(gEventObjectPalette8, 0x100 + (adjustedPaletteNum << 4), 0x20); break; case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL: - LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20); + LoadPalette(gEventObjectPalette17, 0x100 + (adjustedPaletteNum << 4), 0x20); break; } } -- cgit v1.2.3 From ee6942683882e2abd4bde79f8355b71abbd21af9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 02:44:02 -0500 Subject: Eliminate more externs --- src/field_player_avatar.c | 4 ++-- src/field_screen_effect.c | 11 +---------- src/field_specials.c | 2 -- src/frontier_util.c | 5 +---- src/hall_of_fame.c | 2 -- src/hof_pc.c | 4 ---- src/ice.c | 47 +++++++++++++++++++++++----------------------- src/item_menu.c | 1 - src/item_use.c | 30 ++++++++--------------------- src/link.c | 2 +- src/link_rfu.c | 2 +- src/load_save.c | 2 +- src/main.c | 5 ----- src/match_call.c | 2 -- src/menu.c | 24 +++++++++++------------ src/menu_helpers.c | 2 -- src/mystery_event_script.c | 2 -- src/option_menu.c | 3 +-- src/poison.c | 2 -- src/pokeblock_feed.c | 2 -- src/pokemon.c | 5 +---- src/pokemon_size_record.c | 4 +--- src/script_menu.c | 2 +- src/water.c | 1 - 24 files changed, 53 insertions(+), 113 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b1291f0ce..66f176d39 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -2125,7 +2125,7 @@ void sub_808D194(void) sub_808D1FC(CreateTask(sub_808D1FC, 0)); } -bool8 sub_808D1B4(void) +bool32 sub_808D1B4(void) { return FuncIsActiveTask(sub_808D1FC); } @@ -2135,7 +2135,7 @@ void sub_808D1C8(void) sub_808D094(CreateTask(sub_808D094, 0)); } -bool8 sub_808D1E8(void) +bool32 sub_808D1E8(void) { return FuncIsActiveTask(sub_808D094); } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 3e4965667..b6dcf212c 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -32,16 +32,7 @@ #include "constants/rgb.h" #include "trainer_hill.h" #include "event_obj_lock.h" - -extern void sub_80B6B68(void); -extern void sub_80B6E4C(u8, u8); -extern void sub_80B75D8(u8); -extern void sub_80B7A74(u8); -extern void sub_808C0A8(u8); -extern u8 GetMapPairFadeToType(u8, u8); -extern u8 GetMapPairFadeFromType(u8, u8); -extern bool32 sub_808D1B4(void); -extern bool32 sub_808D1E8(void); +#include "fldeff.h" extern const u16 gUnknown_82EC7CC[]; diff --git a/src/field_specials.c b/src/field_specials.c index 629dd8015..85bc41723 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -81,8 +81,6 @@ extern const u16 gEventObjectPalette17[]; extern const u16 gEventObjectPalette33[]; extern const u16 gEventObjectPalette34[]; -extern void BlendPalettes(u32, u8, u16); -extern void FieldInitRegionMap(MainCallback callback); void UpdateMovedLilycoveFanClubMembers(void); void sub_813BF60(void); diff --git a/src/frontier_util.c b/src/frontier_util.c index 6fcbd4ffb..8c190f522 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -35,8 +35,7 @@ #include "constants/moves.h" #include "constants/items.h" #include "constants/event_objects.h" - -extern u8 gSelectedOrderFromParty[]; +#include "party_menu.h" struct FrontierBrainMon { @@ -48,8 +47,6 @@ struct FrontierBrainMon u16 moves[4]; }; -extern void sub_81B8558(void); - // This file's functions. static void sub_81A17A0(void); static void sub_81A1830(void); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 3f217b782..48e4f8bec 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -66,8 +66,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; #define HALL_OF_FAME_MAX_TEAMS 50 -extern void ReturnFromHallOfFamePC(void); - // this file's functions static void ClearVramOamPltt_LoadHofPal(void); static void sub_8174F70(void); diff --git a/src/hof_pc.c b/src/hof_pc.c index 2cea5540a..d76f04372 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -7,10 +7,6 @@ #include "script_menu.h" #include "task.h" -extern void Overworld_PlaySpecialMapMusic(void); -extern bool16 ScrSpecial_CreatePCMenu(void); -extern void ScriptMenu_DisplayPCStartupPrompt(void); - static void ReshowPCMenuAfterHallOfFamePC(void); static void Task_WaitForPaletteFade(u8); diff --git a/src/ice.c b/src/ice.c index 34ad572e8..fa1913b96 100644 --- a/src/ice.c +++ b/src/ice.c @@ -21,30 +21,29 @@ struct HailStruct { }; static void sub_810B6C4(struct Sprite *); -extern void sub_810B848(struct Sprite *); -extern void AnimIcePunchSwirlingParticle(struct Sprite *); -extern void AnimIceBeamParticle(struct Sprite *); -extern void AnimIceEffectParticle(struct Sprite *); -extern void AnimFlickerIceEffectParticle(struct Sprite *); -extern void AnimSwirlingSnowball_Step1(struct Sprite *); -extern void AnimSwirlingSnowball_Step2(struct Sprite *); -extern void AnimSwirlingSnowball_Step3(struct Sprite *); -extern void AnimSwirlingSnowball_End(struct Sprite *); -extern void AnimMoveParticleBeyondTarget(struct Sprite *); -extern void AnimWiggleParticleTowardsTarget(struct Sprite *); -extern void AnimWaveFromCenterOfTarget(struct Sprite *); -extern void InitSwirlingFogAnim(struct Sprite *); -extern void AnimSwirlingFogAnim(struct Sprite *); -extern void AnimThrowMistBall(struct Sprite *); -extern void InitPoisonGasCloudAnim(struct Sprite *); -extern void MovePoisonGasCloud(struct Sprite *); -extern void AnimHailBegin(struct Sprite *); -extern void AnimHailContinue(struct Sprite *); -extern void sub_80A8EE4(struct Sprite *); -extern void InitIceBallAnim(struct Sprite *); -extern void AnimThrowIceBall(struct Sprite *); -extern void InitIceBallParticle(struct Sprite *); -extern void AnimIceBallParticle(struct Sprite *); +void sub_810B848(struct Sprite *); +void AnimIcePunchSwirlingParticle(struct Sprite *); +void AnimIceBeamParticle(struct Sprite *); +void AnimIceEffectParticle(struct Sprite *); +void AnimFlickerIceEffectParticle(struct Sprite *); +void AnimSwirlingSnowball_Step1(struct Sprite *); +void AnimSwirlingSnowball_Step2(struct Sprite *); +void AnimSwirlingSnowball_Step3(struct Sprite *); +void AnimSwirlingSnowball_End(struct Sprite *); +void AnimMoveParticleBeyondTarget(struct Sprite *); +void AnimWiggleParticleTowardsTarget(struct Sprite *); +void AnimWaveFromCenterOfTarget(struct Sprite *); +void InitSwirlingFogAnim(struct Sprite *); +void AnimSwirlingFogAnim(struct Sprite *); +void AnimThrowMistBall(struct Sprite *); +void InitPoisonGasCloudAnim(struct Sprite *); +void MovePoisonGasCloud(struct Sprite *); +void AnimHailBegin(struct Sprite *); +void AnimHailContinue(struct Sprite *); +void InitIceBallAnim(struct Sprite *); +void AnimThrowIceBall(struct Sprite *); +void InitIceBallParticle(struct Sprite *); +void AnimIceBallParticle(struct Sprite *); void AnimTask_Haze2(u8); void AnimTask_OverlayFogTiles(u8); void AnimTask_Hail2(u8); diff --git a/src/item_menu.c b/src/item_menu.c index b3d341c2e..877444575 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -140,7 +140,6 @@ void unknown_ItemMenu_Confirm2(u8 taskId); void unknown_item_menu_type(u8 taskId); void item_menu_type_2(u8 taskId); void display_sell_item_ask_str(u8 taskId); -void unknown_ItemMenu_Confirm(u8 taskId); void display_deposit_item_ask_str(u8 taskId); void item_menu_type_b(u8 taskId); void BagMenuActuallyToss(u8 taskId); diff --git a/src/item_use.c b/src/item_use.c index 16fb22d94..f9d81bfc0 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -8,13 +8,15 @@ #include "coins.h" #include "data2.h" #include "event_data.h" -#include "fieldmap.h" #include "event_object_movement.h" +#include "fieldmap.h" +#include "field_effect.h" #include "field_player_avatar.h" #include "field_screen_effect.h" #include "field_weather.h" #include "item.h" #include "item_menu.h" +#include "item_use.h" #include "mail.h" #include "main.h" #include "menu.h" @@ -39,29 +41,13 @@ #include "constants/vars.h" #include "event_obj_lock.h" -extern void unknown_ItemMenu_Confirm(u8 taskId); -extern void sub_81C5B14(u8 taskId); -extern void ItemUseOutOfBattle_TMHM(u8 a); -extern void ItemUseOutOfBattle_EvolutionStone(u8 b); -extern bool8 IsPlayerFacingSurfableFishableWater(void); -extern bool8 sub_81221AC(void); extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; -extern int sub_80247BC(void); -extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); -extern void SetUpItemUseCallback(u8 taskId); -extern void ItemUseCB_Medicine(u8, TaskFunc); -extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); -extern void sub_81C5924(void); -extern void sub_81C59BC(void); -extern void sub_81AB9A8(u8); -extern void StartEscapeRopeFieldEffect(void); -extern u8* sub_806CF78(u16); -extern void sub_81B89F0(void); -extern u8 GetItemEffectType(u16); -extern struct MapConnection *sub_8088A8C(s16, s16); +extern s32 sub_80247BC(void); + +void SetUpItemUseCallback(u8 taskId); void MapPostLoadHook_UseItem(void); void sub_80AF6D4(void); void Task_CallItemUseOnFieldCallback(u8 taskId); @@ -404,12 +390,12 @@ bool8 sub_80FD6D4(const struct MapEvents *events, s16 x, s16 y) bool8 sub_80FD730(struct MapConnection *connection, int x, int y) { - struct MapHeader *mapHeader; + u16 localX, localY; u32 localOffset; s32 localLength; - mapHeader = mapconnection_get_mapheader(connection); + struct MapHeader const *const mapHeader = mapconnection_get_mapheader(connection); switch (connection->direction) { diff --git a/src/link.c b/src/link.c index 72ac3e878..05da4e458 100644 --- a/src/link.c +++ b/src/link.c @@ -1893,7 +1893,7 @@ u32 GetLinkRecvQueueLength(void) return gLink.recvQueue.count; } -bool8 sub_800B504(void) +bool32 sub_800B504(void) { if (GetLinkRecvQueueLength() > 2) { diff --git a/src/link_rfu.c b/src/link_rfu.c index 8da6b166a..d80ff2ae9 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -17,9 +17,9 @@ #include "text.h" #include "constants/species.h" #include "save.h" +#include "rom_8011DC0.h" extern u16 gHeldKeyCodeToSend; -extern void nullsub_89(u8 taskId); struct UnkRfuStruct_1 gUnknown_03004140; struct UnkRfuStruct_2 gUnknown_03005000; diff --git a/src/load_save.c b/src/load_save.c index 0d19c6dae..a0d2568d3 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -11,10 +11,10 @@ #include "trainer_hill.h" #include "gba/flash_internal.h" #include "decoration_inventory.h" +#include "agb_flash.h" static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); -extern bool16 IdentifyFlash(void); extern void ApplyNewEncryptionKeyToBerryPowder(u32 key); #define SAVEBLOCK_MOVE_RANGE 128 diff --git a/src/main.c b/src/main.c index 61c5e3386..aa42c5958 100644 --- a/src/main.c +++ b/src/main.c @@ -24,9 +24,6 @@ #include "main.h" #include "trainer_hill.h" -extern void sub_800B9B8(void); -extern u8 gUnknown_03002748; - static void VBlankIntr(void); static void HBlankIntr(void); static void VCountIntr(void); @@ -313,8 +310,6 @@ void SetSerialCallback(IntrCallback callback) gMain.serialCallback = callback; } -extern void CopyBufferedValuesToGpuRegs(void); - static void VBlankIntr(void) { if (gWirelessCommType != 0) diff --git a/src/match_call.c b/src/match_call.c index e7e91969f..ce1573164 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -111,8 +111,6 @@ static void PopulateSpeciesFromTrainerParty(int, u8 *); static void PopulateBattleFrontierFacilityName(int, u8 *); static void PopulateBattleFrontierStreak(int, u8 *); -extern void sub_81973A4(void); - #define TEXT_ID(topic, id) (((topic) << 8) | ((id) & 0xFF)) static const struct MatchCallTrainerTextInfo sMatchCallTrainers[] = diff --git a/src/menu.c b/src/menu.c index ae589dff4..e82a6355c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -122,20 +122,18 @@ const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] = { 8, 8, 0xAF }, // Unused (Small dark pokeball) }; + // Forward declarations -extern void sub_81973A4(void); -extern void DrawStandardFrame(u8, u8, u8, u8, u8, u8); -extern void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); -extern void sub_81977BC(u8, u8, u8, u8, u8, u8); -extern void sub_8197804(u8, u8, u8, u8, u8, u8); -extern void sub_8197BB4(u8, u8, u8, u8, u8, u8); -extern void sub_8197E30(u8, u8, u8, u8, u8, u8); -extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); -extern void sub_81980A8(u8, u8, u8, u8, u8, u8); -extern u8 Menu_MoveCursor(s8); -extern u8 sub_8199134(s8, s8); -extern void sub_8198C78(void); -extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); +void DrawStandardFrame(u8, u8, u8, u8, u8, u8); +void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); +void sub_81977BC(u8, u8, u8, u8, u8, u8); +void sub_8197804(u8, u8, u8, u8, u8, u8); +void sub_8197BB4(u8, u8, u8, u8, u8, u8); +void sub_8197E30(u8, u8, u8, u8, u8, u8); +void DrawWindowBorder(u8, u8, u8, u8, u8, u8); +void sub_81980A8(u8, u8, u8, u8, u8, u8); +void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); +void sub_8198C78(void); void InitStandardTextBoxWindows(void) { diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 846c23b6b..1f9979eca 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -18,8 +18,6 @@ #include "constants/items.h" #include "constants/maps.h" -extern bool32 sub_800B504(void); - // this file's functions static void Task_ContinueTaskAfterMessagePrints(u8 taskId); static void Task_CallYesOrNoCallback(u8 taskId); diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 4196bb34c..dba914b51 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -17,8 +17,6 @@ #include "mystery_event_msg.h" #include "pokemon_storage_system.h" -extern void sub_811EFC0(u8); - extern ScrCmdFunc gMysteryEventScriptCmdTable[]; extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[]; diff --git a/src/option_menu.c b/src/option_menu.c index 122ba8d8a..caeb3d5da 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -13,8 +13,7 @@ #include "text_window.h" #include "international_string_util.h" #include "strings.h" - -extern void SetPokemonCryStereo(u32 val); +#include "gba/m4a_internal.h" // Task data enum diff --git a/src/poison.c b/src/poison.c index c86ec2cd8..9af981694 100644 --- a/src/poison.c +++ b/src/poison.c @@ -3,8 +3,6 @@ #include "trig.h" #include "constants/rgb.h" -extern void sub_80A77C8(struct Sprite *); - void sub_810DBAC(struct Sprite *); void sub_810DC2C(struct Sprite *); void sub_810DCD0(struct Sprite *); diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index b1f182b66..42a71ad52 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -55,8 +55,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const u16 gUnknown_0860F074[]; -extern bool8 sub_81221EC(void); - // this file's functions static void HandleInitBackgrounds(void); static void HandleInitWindows(void); diff --git a/src/pokemon.c b/src/pokemon.c index a35033d49..a984abbb9 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -10,6 +10,7 @@ #include "battle_tower.h" #include "event_data.h" #include "evolution_scene.h" +#include "field_specials.h" #include "item.h" #include "link.h" #include "main.h" @@ -72,10 +73,6 @@ extern const struct CompressedSpritePalette gMonPaletteTable[]; extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; extern const u8 gTrainerClassNames[][13]; -extern u16 get_unknown_box_id(void); -extern void set_unknown_box_id(u8); -extern bool8 sub_806F104(void); - // this file's functions static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index b0e14d2b1..98d83d8ce 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -1,5 +1,6 @@ #include "global.h" #include "event_data.h" +#include "pokedex.h" #include "pokemon.h" #include "pokemon_size_record.h" #include "string_util.h" @@ -15,9 +16,6 @@ struct UnknownStruct u16 unk4; }; -extern u16 GetPokedexHeightWeight(u16 dexNo, bool8 height); -extern u16 SpeciesToNationalPokedexNum(u16 species); - static const struct UnknownStruct sBigMonSizeTable[] = { { 290, 1, 0 }, diff --git a/src/script_menu.c b/src/script_menu.c index 7180bfc60..d9dbc770c 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1312,7 +1312,7 @@ static void Task_HandleMultichoiceGridInput(u8 taskId) #undef tWindowId -bool8 ScrSpecial_CreatePCMenu(void) +bool16 ScrSpecial_CreatePCMenu(void) { if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE) { diff --git a/src/water.c b/src/water.c index d13b1378e..c856b9aa4 100644 --- a/src/water.c +++ b/src/water.c @@ -41,7 +41,6 @@ extern void sub_8108BE0(struct Sprite *); extern void sub_8108C08(struct Sprite *); extern void sub_8108C54(struct Sprite *); extern void sub_8108CDC(struct Sprite *); -extern void sub_80A8EE4(struct Sprite *); void sub_810756C(u8); void sub_81076F4(u8); void sub_8107B84(u8); -- cgit v1.2.3 From 49bef258567b8ac6ead607de8ce0ac64581cdb55 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 03:18:08 -0500 Subject: Clean up the last extern functions --- src/dewford_trend.c | 4 ++-- src/pokenav.c | 10 ++++----- src/pokenav_match_call.c | 4 +--- src/record_mixing.c | 3 +-- src/reshow_battle_screen.c | 3 +-- src/rock.c | 2 -- src/rom_8011DC0.c | 3 +-- src/save.c | 9 +++----- src/secret_base.c | 2 -- src/start_menu.c | 18 +++++---------- src/text.c | 4 ---- src/trainer_card.c | 4 +--- src/trainer_see.c | 2 -- src/unk_text_util_2.c | 2 +- src/water.c | 55 +++++++++++++++++++++++----------------------- 15 files changed, 48 insertions(+), 77 deletions(-) (limited to 'src') diff --git a/src/dewford_trend.c b/src/dewford_trend.c index cad5ef9c2..ee310af04 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -159,7 +159,7 @@ static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c) } } -void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused) +void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t size, u8 unused) { u16 i, j, r3, players; struct EasyChatPair *buffer1, *buffer2, *src, *dst, *foo_of_buffer2; @@ -176,7 +176,7 @@ void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused) { players = GetLinkPlayerCount(); for (i = 0; i < players; i++) - memcpy(&(buffer1[i * 5]), (u8 *)a + i * b, 40); + memcpy(&(buffer1[i * 5]), (u8 *)a + i * size, 40); src = buffer1; dst = buffer2; r3 = 0; diff --git a/src/pokenav.c b/src/pokenav.c index 41434606c..62ec75842 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -141,7 +141,7 @@ void sub_81C7710(void); static void InitKeys_(void); static void FreeVars(void); static void VblankCb_Pokenav(void); -static void Cb2_Pokenav(void); +static void CB2_Pokenav(void); void sub_81C7C28(void); void sub_81C72BC(void); void sub_81C7B74(void); @@ -485,7 +485,7 @@ void sub_81C71E4(u8 taskId) } } -void CB2_PokeNav(void) +void CB2_InitPokeNav(void) { gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40)); if (gUnknown_0203CF40 == NULL) @@ -498,7 +498,7 @@ void CB2_PokeNav(void) ResetTasks(); SetVBlankCallback(NULL); CreateTask(sub_81C742C, 0); - SetMainCallback2(Cb2_Pokenav); + SetMainCallback2(CB2_Pokenav); SetVBlankCallback(VblankCb_Pokenav); } } @@ -529,7 +529,7 @@ void sub_81C72BC(void) FreeAllSpritePalettes(); SetVBlankCallback(NULL); CreateTask(sub_81C742C, 0); - SetMainCallback2(Cb2_Pokenav); + SetMainCallback2(CB2_Pokenav); SetVBlankCallback(VblankCb_Pokenav); } } @@ -588,7 +588,7 @@ static bool32 AnyMonHasRibbon(void) return FALSE; } -static void Cb2_Pokenav(void) +static void CB2_Pokenav(void) { RunTasks(); AnimateSprites(); diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c index 53f9f0548..b775ed10e 100644 --- a/src/pokenav_match_call.c +++ b/src/pokenav_match_call.c @@ -1,13 +1,11 @@ - -// Includes #include "global.h" #include "battle_setup.h" #include "event_data.h" #include "string_util.h" #include "battle.h" #include "gym_leader_rematch.h" +#include "match_call.h" -extern void sub_8197080(u8 *dest); extern const u8 gTrainerClassNames[][13]; // Static type declarations diff --git a/src/record_mixing.c b/src/record_mixing.c index aafd7284b..ce9bacf4c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -34,9 +34,8 @@ #include "daycare.h" #include "international_string_util.h" #include "constants/battle_frontier.h" +#include "dewford_trend.h" -extern void ReceiveSecretBasesData(struct SecretBaseRecord *, size_t, u8); -extern void ReceiveEasyChatPairsData(struct EasyChatPair *, size_t, u8); // Static type declarations diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 0926d4569..dd177f884 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -2,6 +2,7 @@ #include "reshow_battle_screen.h" #include "battle.h" #include "palette.h" +#include "pokemon.h" #include "main.h" #include "scanline_effect.h" #include "text.h" @@ -18,8 +19,6 @@ extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; -extern void SetMultiuseSpriteTemplateToTrainerBack(u16 backPicId, u8 battlerPosition); - // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); static bool8 LoadBattlerSpriteGfx(u8 battlerId); diff --git a/src/rock.c b/src/rock.c index 14ffc63e0..814b1d88b 100644 --- a/src/rock.c +++ b/src/rock.c @@ -12,8 +12,6 @@ extern const union AnimCmd *const gUnknown_085950E0[]; extern const union AnimCmd *const gUnknown_085954D0[]; -extern void AnimMoveTwisterParticle(struct Sprite *); - void sub_81109F0(struct Sprite *); void sub_8110AB4(struct Sprite *); void AnimDirtParticleAcrossScreen(struct Sprite *); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 27472b6e3..b0e861fac 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -33,8 +33,7 @@ #include "start_menu.h" #include "data2.h" #include "field_screen_effect.h" - -extern void HealPlayerParty(void); +#include "script_pokemon_util_80F87D8.h" struct UnkStruct_Shared { diff --git a/src/save.c b/src/save.c index d07e59766..ff26ce460 100644 --- a/src/save.c +++ b/src/save.c @@ -1,5 +1,7 @@ #include "global.h" +#include "agb_flash.h" #include "gba/flash_internal.h" +#include "fieldmap.h" #include "save.h" #include "task.h" #include "decompress.h" @@ -8,6 +10,7 @@ #include "pokemon_storage_system.h" #include "main.h" #include "trainer_hill.h" +#include "link.h" #include "constants/game_stat.h" static u16 CalculateChecksum(void *data, u16 size); @@ -70,12 +73,6 @@ const struct SaveSectionOffsets gSaveSectionOffsets[] = SAVEBLOCK_CHUNK(gPokemonStorage, 8), }; -extern void DoSaveFailedScreen(u8); // save_failed_screen -extern bool32 ProgramFlashSectorAndVerify(u8 sector, u8 *data); -extern void save_serialize_map(void); -extern void sub_800ADF8(void); -extern bool8 IsLinkTaskFinished(void); - // iwram common u16 gLastWrittenSector; u32 gLastSaveCounter; diff --git a/src/secret_base.c b/src/secret_base.c index 3e591eba2..8bb216452 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -43,8 +43,6 @@ #include "constants/species.h" #include "constants/trainers.h" -extern void mapldr_default(void); - // Static type declarations struct SecretBaseListMenuBuffer { diff --git a/src/start_menu.c b/src/start_menu.c index 79404d0b2..1052b640c 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -7,10 +7,12 @@ #include "event_object_movement.h" #include "event_obj_lock.h" #include "event_scripts.h" +#include "fieldmap.h" #include "field_effect.h" #include "field_player_avatar.h" #include "field_specials.h" #include "field_weather.h" +#include "field_screen_effect.h" #include "frontier_pass.h" #include "frontier_util.h" #include "gpu_regs.h" @@ -26,6 +28,7 @@ #include "palette.h" #include "party_menu.h" #include "pokedex.h" +#include "pokenav.h" #include "safari_zone.h" #include "save.h" #include "scanline_effect.h" @@ -40,6 +43,7 @@ #include "trainer_card.h" #include "window.h" #include "constants/songs.h" +#include "rom_8011DC0.h" // Menu actions enum @@ -84,18 +88,6 @@ EWRAM_DATA static u8 sSaveDialogTimer = 0; EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; -// Extern variables. -extern u8 gLocalLinkPlayerId; - -// Extern functions in not decompiled files. -extern void sub_80AF688(void); -extern void var_800D_set_xB(void); -extern void sub_808B864(void); -extern void CB2_Pokedex(void); -extern void PlayRainStoppingSoundEffect(void); -extern void CB2_PokeNav(void); -extern void save_serialize_map(void); - // Menu action callbacks static bool8 StartMenuPokedexCallback(void); static bool8 StartMenuPokemonCallback(void); @@ -656,7 +648,7 @@ static bool8 StartMenuPokeNavCallback(void) PlayRainStoppingSoundEffect(); RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); - SetMainCallback2(CB2_PokeNav); // Display PokeNav + SetMainCallback2(CB2_InitPokeNav); // Display PokeNav return TRUE; } diff --git a/src/text.c b/src/text.c index a439d3ced..bdc0f14f7 100644 --- a/src/text.c +++ b/src/text.c @@ -12,10 +12,6 @@ #include "menu.h" #include "dynamic_placeholder_text_util.h" -extern u8 GetKeypadIconWidth(u8 keypadIconId); -extern u16 Font6Func(struct TextPrinter *textPrinter); -extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); - EWRAM_DATA struct TextPrinter gTempTextPrinter = {0}; EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0}; diff --git a/src/trainer_card.c b/src/trainer_card.c index 4fb30f616..41bf71cd3 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -21,6 +21,7 @@ #include "gpu_regs.h" #include "international_string_util.h" #include "pokedex.h" +#include "pokemon_icon.h" #include "graphics.h" #include "pokemon_icon.h" #include "trainer_pokemon_sprites.h" @@ -89,9 +90,6 @@ struct TrainerCardData u8 language; }; -//external functions -extern u8 sub_80D30A0(u16); - // EWRAM EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0}; EWRAM_DATA static struct TrainerCardData *sData = NULL; diff --git a/src/trainer_see.c b/src/trainer_see.c index bc5d9cbc3..16ea88a45 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -17,8 +17,6 @@ #include "constants/event_object_movement_constants.h" #include "constants/field_effects.h" -extern void sub_809BE48(u16 npcId); - // this file's functions static u8 CheckTrainer(u8 eventObjectId); static u8 GetTrainerApproachDistance(struct EventObject *trainerObj); diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index bbc256915..530bd4085 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -214,7 +214,7 @@ static void DecompressGlyphFont6(u16 glyph) gUnknown_03002F90.unk81 = 0x10; } -u8 GetGlyphWidthFont6(void) +u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese) { return 0x10; } diff --git a/src/water.c b/src/water.c index c856b9aa4..20bf2542d 100644 --- a/src/water.c +++ b/src/water.c @@ -13,34 +13,33 @@ #include "constants/battle.h" #include "constants/rgb.h" -extern void sub_810721C(struct Sprite *); -extern void sub_8107228(struct Sprite *); -extern void sub_8107260(struct Sprite *); -extern void sub_8107380(struct Sprite *); -extern void sub_8107408(struct Sprite *); -extern void sub_8107430(struct Sprite *); -extern void sub_810744C(struct Sprite *); -extern void sub_81074E4(struct Sprite *); -extern void sub_81075EC(struct Sprite *); -extern void sub_8107674(struct Sprite *); -extern void sub_8107730(struct Sprite *); -extern void sub_81077A4(struct Sprite *); -extern void sub_81077C0(struct Sprite *); -extern void sub_80A78AC(struct Sprite *); -extern void sub_8107894(struct Sprite *); -extern void sub_81078D0(struct Sprite *); -extern void sub_810790C(struct Sprite *); -extern void sub_8108034(struct Sprite *); -extern void sub_8108098(struct Sprite *); -extern void sub_810851C(struct Sprite *); -extern void sub_81087C0(struct Sprite *); -extern void sub_810886C(struct Sprite *); -extern void sub_8108B2C(struct Sprite *); -extern void sub_8108B94(struct Sprite *); -extern void sub_8108BE0(struct Sprite *); -extern void sub_8108C08(struct Sprite *); -extern void sub_8108C54(struct Sprite *); -extern void sub_8108CDC(struct Sprite *); +void sub_810721C(struct Sprite *); +void sub_8107228(struct Sprite *); +void sub_8107260(struct Sprite *); +void sub_8107380(struct Sprite *); +void sub_8107408(struct Sprite *); +void sub_8107430(struct Sprite *); +void sub_810744C(struct Sprite *); +void sub_81074E4(struct Sprite *); +void sub_81075EC(struct Sprite *); +void sub_8107674(struct Sprite *); +void sub_8107730(struct Sprite *); +void sub_81077A4(struct Sprite *); +void sub_81077C0(struct Sprite *); +void sub_8107894(struct Sprite *); +void sub_81078D0(struct Sprite *); +void sub_810790C(struct Sprite *); +void sub_8108034(struct Sprite *); +void sub_8108098(struct Sprite *); +void sub_810851C(struct Sprite *); +void sub_81087C0(struct Sprite *); +void sub_810886C(struct Sprite *); +void sub_8108B2C(struct Sprite *); +void sub_8108B94(struct Sprite *); +void sub_8108BE0(struct Sprite *); +void sub_8108C08(struct Sprite *); +void sub_8108C54(struct Sprite *); +void sub_8108CDC(struct Sprite *); void sub_810756C(u8); void sub_81076F4(u8); void sub_8107B84(u8); -- cgit v1.2.3 From 25050b99444538535a67ba51b7aaf3d0bf90c50e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 04:13:27 -0500 Subject: Fix tabs, do suggested rename --- src/overworld.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/overworld.c b/src/overworld.c index 837855877..731449608 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -838,7 +838,7 @@ static void mli0_load_map(u32 a1) } isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); - isIndoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); + isIndoors = IsMapTypeIndoors(gMapHeader.mapType); sub_80EB218(); TrySetMapSaveWarpStatus(); @@ -1199,7 +1199,7 @@ void Overworld_ChangeMusicTo(u16 newMusic) u8 GetMapMusicFadeoutSpeed(void) { const struct MapHeader *mapHeader = GetDestinationWarpMapHeader(); - if (Overworld_MapTypeIsIndoors(mapHeader->mapType) == TRUE) + if (IsMapTypeIndoors(mapHeader->mapType) == TRUE) return 2; else return 4; @@ -1353,7 +1353,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType) return FALSE; } -bool8 Overworld_MapTypeIsIndoors(u8 mapType) +bool8 IsMapTypeIndoors(u8 mapType) { if (mapType == MAP_TYPE_INDOOR || mapType == MAP_TYPE_SECRET_BASE) -- cgit v1.2.3 From 043071ae12aa6854119a44304a5facbd58fa3624 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Mar 2019 13:34:08 +0100 Subject: Don't extern gMoveNames --- src/item_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/item_menu.c b/src/item_menu.c index 43f2afce3..7b48a2d5d 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -8,6 +8,7 @@ #include "bg.h" #include "constants/items.h" #include "constants/songs.h" +#include "data2.h" #include "decompress.h" #include "event_data.h" #include "event_object_movement.h" @@ -446,7 +447,6 @@ EWRAM_DATA u16 gSpecialVar_ItemId = 0; static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; extern u8 *const gPocketNamesStringsTable[]; -extern const u8 gMoveNames[][0xD]; extern u8* gReturnToXStringsTable[]; extern const u8 EventScript_2736B3[]; extern const u16 gUnknown_0860F074[]; -- cgit v1.2.3 From 80a4ee11457e82092f52a3aef5362f8b59b68633 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 17:23:10 -0500 Subject: Remove water.h and flying.h --- src/battle_anim_effects_2.c | 1 - src/battle_anim_effects_3.c | 1 - src/electric.c | 1 - src/normal.c | 1 - 4 files changed, 4 deletions(-) (limited to 'src') diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index a72b2c8dc..80b3258b4 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -15,7 +15,6 @@ #include "util.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "water.h" void sub_8103448(struct Sprite *); void sub_8103498(struct Sprite *); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index de00892ba..efa2620fd 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -23,7 +23,6 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/weather.h" -#include "flying.h" extern const struct SpriteTemplate gUnknown_08593114; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; diff --git a/src/electric.c b/src/electric.c index 6c6c33746..5e7729842 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,7 +4,6 @@ #include "trig.h" #include "constants/songs.h" #include "sound.h" -#include "flying.h" static void sub_810A1A8(struct Sprite *); static void sub_810A1F8(struct Sprite *); diff --git a/src/normal.c b/src/normal.c index cbf0caa83..2b592e199 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5,7 +5,6 @@ #include "task.h" #include "trig.h" #include "constants/rgb.h" -#include "flying.h" void AnimConfusionDuck(struct Sprite *); void AnimSimplePaletteBlend(struct Sprite *); -- cgit v1.2.3 From 3716da5430a976d05afecdf82f43f14fc2584949 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 17:25:39 -0500 Subject: Rename macro with correct name for pixel values --- src/battle_dome.c | 2 +- src/battle_factory_screen.c | 48 +++++++++++----------- src/battle_interface.c | 2 +- src/battle_message.c | 94 ++++++++++++++++++++++---------------------- src/battle_pyramid_bag.c | 20 +++++----- src/battle_records.c | 4 +- src/berry_blender.c | 6 +-- src/berry_fix_program.c | 8 ++-- src/berry_tag_screen.c | 14 +++---- src/clear_save_data_screen.c | 4 +- src/coins.c | 2 +- src/contest.c | 14 +++---- src/contest_link_80F57C4.c | 2 +- src/contest_painting.c | 2 +- src/credits.c | 2 +- src/decoration.c | 6 +-- src/diploma.c | 2 +- src/easy_chat.c | 16 ++++---- src/egg_hatch.c | 4 +- src/field_player_avatar.c | 6 +-- src/field_region_map.c | 4 +- src/field_specials.c | 8 ++-- src/frontier_pass.c | 8 ++-- src/frontier_util.c | 20 +++++----- src/hall_of_fame.c | 8 ++-- src/item_menu.c | 30 +++++++------- src/learn_move.c | 6 +-- src/link.c | 8 ++-- src/list_menu.c | 16 ++++---- src/mail.c | 4 +- src/main_menu.c | 36 ++++++++--------- src/match_call.c | 6 +-- src/menu.c | 32 +++++++-------- src/money.c | 2 +- src/mystery_event_menu.c | 4 +- src/naming_screen.c | 14 +++---- src/option_menu.c | 4 +- src/party_menu.c | 6 +-- src/player_pc.c | 6 +-- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 2 +- src/pokedex.c | 14 +++---- src/pokemon_storage_system.c | 32 +++++++-------- src/pokemon_summary_screen.c | 28 ++++++------- src/pokenav.c | 4 +- src/region_map.c | 6 +-- src/rom_8011DC0.c | 8 ++-- src/save_failed_screen.c | 16 ++++---- src/scrcmd.c | 2 +- src/script_menu.c | 12 +++--- src/shop.c | 4 +- src/slot_machine.c | 4 +- src/start_menu.c | 2 +- src/starter_choose.c | 6 +-- src/text.c | 8 ++-- src/trade.c | 18 ++++----- src/trainer_card.c | 10 ++--- src/trainer_hill.c | 2 +- src/unk_text_util_2.c | 8 ++-- 59 files changed, 335 insertions(+), 335 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 9ef66aac4..f86faeffb 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -3794,7 +3794,7 @@ static void sub_8190CD4(u8 taskId) for (i = windowId; i < windowId + 9; i++) { CopyWindowToVram(i, 2); - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } gTasks[taskId].data[0] = 3; break; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index d4abe3c96..5cbe97702 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1786,14 +1786,14 @@ static void sub_819B958(u8 windowId) { gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } static void Select_PrintRentalPkmnString(void) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -1804,7 +1804,7 @@ static void Select_PrintMonSpecies(void) u8 x; u8 monId = sFactorySelectScreen->cursorPos; - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); @@ -1816,7 +1816,7 @@ static void Select_PrintSelectMonString(void) { const u8 *str = NULL; - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; else if (sFactorySelectScreen->selectingMonsState == 2) @@ -1832,7 +1832,7 @@ static void Select_PrintSelectMonString(void) static void Select_PrintCantSelectSameMon(void) { - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -1842,7 +1842,7 @@ static void Select_PrintMenuOptions(void) u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; PutWindowTilemap(3); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(3, PIXEL_FILL(0)); AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary); if (selectedId != 0) AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect); @@ -1856,7 +1856,7 @@ static void Select_PrintMenuOptions(void) static void Select_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(4, PIXEL_FILL(0)); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2); CopyWindowToVram(4, 3); @@ -1924,7 +1924,7 @@ static void Select_PrintMonCategory(void) if (monId < SELECTABLE_MONS_COUNT) { PutWindowTilemap(5); - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); @@ -2873,7 +2873,7 @@ static void sub_819D588(u8 taskId) case 3: if (!gPaletteFade.active) { - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); CopyWindowToVram(5, 2); if (sFactorySwapScreen->inEnemyScreen == TRUE) { @@ -3002,7 +3002,7 @@ static void sub_819D770(u8 taskId) gTasks[taskId].data[0]++; break; case 6: - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; break; @@ -3546,7 +3546,7 @@ static void sub_819EA64(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } @@ -3554,14 +3554,14 @@ static void sub_819EA64(u8 windowId) static void sub_819EAC0(void) { PutWindowTilemap(1); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); CopyWindowToVram(1, 2); } static void sub_819EADC(void) { PutWindowTilemap(7); - FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(7, PIXEL_FILL(0)); CopyWindowToVram(7, 2); } @@ -3569,13 +3569,13 @@ static void sub_819EAF8(void) { sub_819EAC0(); PutWindowTilemap(5); - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); CopyWindowToVram(5, 2); } static void Swap_PrintPkmnSwap(void) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -3585,7 +3585,7 @@ static void Swap_PrintMonSpecies(void) u16 species; u8 x; - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(1, 2); @@ -3606,7 +3606,7 @@ static void Swap_PrintMonSpecies(void) static void Swap_PrintOnInfoWindow(const u8 *str) { - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -3614,7 +3614,7 @@ static void Swap_PrintOnInfoWindow(const u8 *str) static void Swap_PrintMenuOptions(void) { PutWindowTilemap(3); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(3, PIXEL_FILL(0)); AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2); AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap); AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose); @@ -3624,7 +3624,7 @@ static void Swap_PrintMenuOptions(void) static void Swap_PrintYesNoOptions(void) { PutWindowTilemap(4); - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(4, PIXEL_FILL(0)); AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3); AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3); CopyWindowToVram(4, 3); @@ -3638,7 +3638,7 @@ static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) static void Swap_PrintActionStrings(void) { - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3652,7 +3652,7 @@ static void Swap_PrintActionStrings(void) static void Swap_PrintActionStrings2(void) { - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(3, PIXEL_FILL(0)); switch (sFactorySwapScreen->inEnemyScreen) { case TRUE: @@ -3693,7 +3693,7 @@ static void Swap_PrintMonSpecies2(void) LoadPalette(pal, 0xF0, 0xA); PutWindowTilemap(7); - FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(7, PIXEL_FILL(0)); if (sFactorySwapScreen->cursorPos > 2) { CopyWindowToVram(7, 3); @@ -3745,7 +3745,7 @@ static void Swap_PrintMonCategory(void) u8 x; u8 monId = sFactorySwapScreen->cursorPos; - FillWindowPixelBuffer(8, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(8, PIXEL_FILL(0)); if (monId > 2) { CopyWindowToVram(8, 2); @@ -3940,7 +3940,7 @@ static void Task_SwapCantHaveSameMons(u8 taskId) case 2: if (sFactorySwapScreen->unk30 != TRUE) { - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5, PIXEL_FILL(0)); CopyWindowToVram(5, 2); gTasks[taskId].data[0]++; } diff --git a/src/battle_interface.c b/src/battle_interface.c index a86f0ea84..f2916012e 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2579,7 +2579,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, struct WindowTemplate winTemplate = sHealthboxWindowTemplate; winId = AddWindow(&winTemplate); - FillWindowPixelBuffer(winId, PALETTE_NUM_TO_FILL_VALUE(bgColor)); + FillWindowPixelBuffer(winId, PIXEL_FILL(bgColor)); color[0] = bgColor; color[1] = 1; diff --git a/src/battle_message.c b/src/battle_message.c index b203f0b3e..6762cd416 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1357,7 +1357,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = { // The corresponding WindowTemplate is gStandardBattleWindowTemplates[] within src/battle_bg.c { // 0 Standard battle message - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), + .fillValue = PIXEL_FILL(0xF), .fontId = 1, .x = 0, .y = 1, @@ -1369,7 +1369,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 1 "What will (pokemon) do?" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), + .fillValue = PIXEL_FILL(0xF), .fontId = 1, .x = 1, .y = 1, @@ -1381,7 +1381,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 2 "Fight/Pokemon/Bag/Run" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1393,7 +1393,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 3 Top left move - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1405,7 +1405,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 4 Top right move - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1417,7 +1417,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 5 Bottom left move - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1429,7 +1429,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 6 Bottom right move - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1441,7 +1441,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 7 "PP" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1453,7 +1453,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 11, }, { // 8 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1465,7 +1465,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 9 PP remaining - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 2, .y = 1, @@ -1477,7 +1477,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 11, }, { // 10 "type" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1489,7 +1489,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 11 "switch which?" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1501,7 +1501,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 12 "gText_BattleYesNoChoice" - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1513,7 +1513,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 13 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1525,7 +1525,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 14 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), + .fillValue = PIXEL_FILL(0), .fontId = 1, .x = 32, .y = 1, @@ -1537,7 +1537,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 2, }, { // 15 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1549,7 +1549,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 16 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1561,7 +1561,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 17 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1573,7 +1573,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 18 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1585,7 +1585,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 19 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1597,7 +1597,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 20 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1609,7 +1609,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 15, }, { // 21 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), + .fillValue = PIXEL_FILL(0), .fontId = 1, .x = -1, .y = 1, @@ -1621,7 +1621,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 22 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), + .fillValue = PIXEL_FILL(0), .fontId = 1, .x = -1, .y = 1, @@ -1633,7 +1633,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .shadowColor = 6, }, { // 23 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0x0), + .fillValue = PIXEL_FILL(0x0), .fontId = 1, .x = -1, .y = 1, @@ -1649,7 +1649,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = { { // 0 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), + .fillValue = PIXEL_FILL(0xF), .fontId = 1, .x = 0, .y = 1, @@ -1661,7 +1661,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 6, }, { // 1 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xF), + .fillValue = PIXEL_FILL(0xF), .fontId = 1, .x = 1, .y = 1, @@ -1673,7 +1673,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 6, }, { // 2 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1685,7 +1685,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 3 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1697,7 +1697,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 4 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1709,7 +1709,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 5 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1721,7 +1721,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 6 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1733,7 +1733,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 7 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1745,7 +1745,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 11, }, { // 8 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1757,7 +1757,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 9 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 2, .y = 1, @@ -1769,7 +1769,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 11, }, { // 10 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1781,7 +1781,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 11 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 7, .x = 0, .y = 1, @@ -1793,7 +1793,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 12 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1805,7 +1805,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 13 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = 0, .y = 1, @@ -1817,7 +1817,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 14 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0), + .fillValue = PIXEL_FILL(0), .fontId = 1, .x = 32, .y = 1, @@ -1829,7 +1829,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 2, }, { // 15 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1841,7 +1841,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 16 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1853,7 +1853,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 17 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1865,7 +1865,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 18 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1877,7 +1877,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 19 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1889,7 +1889,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 20 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1901,7 +1901,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 21 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0xE), + .fillValue = PIXEL_FILL(0xE), .fontId = 1, .x = -1, .y = 1, @@ -1913,7 +1913,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .shadowColor = 15, }, { // 22 - .fillValue = PALETTE_NUM_TO_FILL_VALUE(0x1), + .fillValue = PIXEL_FILL(0x1), .fontId = 1, .x = 0, .y = 1, diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index dec8d4bca..2e13ea08b 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -651,7 +651,7 @@ static void PrintItemDescription(s32 listMenuId) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); desc = gStringVar4; } - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, desc, 3, 0, 0, 1, 0, 0); } @@ -804,7 +804,7 @@ static void sub_81C5A98(u8 listMenuTaskId, u8 arg1) static void sub_81C5AB8(u8 y, u8 arg1) { if (arg1 == 0xFF) - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(0, PIXEL_FILL(0), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1); } @@ -911,7 +911,7 @@ static void sub_81C5D20(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); if (gPyramidBagResources->menuActionsCount == 1) sub_81C5EAC(sub_81C6D24(0)); @@ -1048,7 +1048,7 @@ static void BagAction_UseOnField(u8 taskId) else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) { sub_81C61A8(); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); schedule_bg_copy_tilemap_to_vram(0); ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); } @@ -1086,7 +1086,7 @@ static void BagAction_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6404(); gTasks[taskId].func = sub_81C64B4; @@ -1100,7 +1100,7 @@ static void sub_81C6350(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C6DAC(taskId, &sYesNoTossFuncions); } @@ -1168,7 +1168,7 @@ static void TossItem(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); gTasks[taskId].func = sub_81C65CC; } @@ -1265,7 +1265,7 @@ static void Task_BeginItemSwap(u8 taskId) ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); CopyItemName(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][data[1]], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); PrintOnWindow_Font1(1, gStringVar4, 3, 0, 0, 1, 0, 0); sub_81C5A98(data[0], 1); sub_81C704C(data[1]); @@ -1395,7 +1395,7 @@ static void sub_81C6BD8(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(0); PutWindowTilemap(1); @@ -1456,7 +1456,7 @@ static void sub_81C6DAC(u8 taskId, const struct YesNoFuncTable *yesNoTable) void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId)) { - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); DisplayMessageAndContinueTask(taskId, 2, 0xA, 0xD, 1, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } diff --git a/src/battle_records.c b/src/battle_records.c index 03d2088b4..6997e40dd 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -321,7 +321,7 @@ void ShowLinkBattleRecords(void) gRecordsWindowId = AddWindow(&sLinkBattleRecordsWindow); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -383,7 +383,7 @@ static void Task_ExitTrainerHillRecords(u8 taskId) static void RemoveTrainerHillRecordsWindow(u8 windowId) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); ClearWindowTilemap(windowId); CopyWindowToVram(windowId, 2); RemoveWindow(windowId); diff --git a/src/berry_blender.c b/src/berry_blender.c index 35749db54..0241fa26d 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -945,7 +945,7 @@ static void InitBerryBlenderWindows(void) DeactivateAllTextPrinters(); for (i = 0; i < 5; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); sub_81978B0(0xE0); @@ -3538,7 +3538,7 @@ void ShowBerryBlenderRecordWindow(void) winTemplate = sBlenderRecordWindowTemplate; gRecordsWindowId = AddWindow(&winTemplate); DrawStdWindowFrame(gRecordsWindowId, 0); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); @@ -3647,7 +3647,7 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 if (caseId != 3) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(txtColor[0])); + FillWindowPixelBuffer(windowId, PIXEL_FILL(txtColor[0])); } AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 24198fc87..37be569f8 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -226,9 +226,9 @@ static void berry_fix_gpu_set(void) DmaCopy32(3, sUnknown_08618138, BG_PLTT + 0x1E0, 0x20); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(3, PIXEL_FILL(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0xA)); width = GetStringWidth(0, sUnknown_08617E9B, 0); left = (0x78 - width) / 2; @@ -273,7 +273,7 @@ static int berry_fix_text_update(int checkval) static void berry_fix_text_print(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(1, PIXEL_FILL(0xA)); AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); PutWindowTilemap(1); CopyWindowToVram(1, 2); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 7b6935778..a7cf4daf2 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -381,7 +381,7 @@ static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s static void AddBerryTagTextToBg0(void) { memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); - FillWindowPixelBuffer(WIN_BERRY_TAG, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(WIN_BERRY_TAG, PIXEL_FILL(15)); PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); PutWindowTilemap(WIN_BERRY_TAG); schedule_bg_copy_tilemap_to_vram(0); @@ -598,7 +598,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); break; case 0x40: PrintBerryNumberAndName(); @@ -608,7 +608,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0x60: - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); break; case 0x70: PrintBerrySize(); @@ -620,7 +620,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0xA0: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); break; case 0xB0: PrintBerryDescription1(); @@ -635,7 +635,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); break; case 0x40: PrintBerryDescription2(); @@ -647,7 +647,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0x70: - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); break; case 0x80: PrintBerryFirmness(); @@ -660,7 +660,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0xB0: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); break; case 0xC0: PrintBerryNumberAndName(); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 619b39410..c1d6930c7 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0); gTasks[taskId].func = Task_ClearSaveData; break; @@ -203,7 +203,7 @@ static void InitClearSaveDataScreenWindows(void) { InitWindows(sClearSaveTextWindow); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); LoadWindowGfx(0, 0, 2, 224); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); } diff --git a/src/coins.c b/src/coins.c index a8d8eae06..b838c303e 100644 --- a/src/coins.c +++ b/src/coins.c @@ -27,7 +27,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) struct WindowTemplate template; SetWindowTemplateFields(&template, 0, x, y, 8, 2, 0xF, 0x141); sCoinsWindowId = AddWindow(&template); - FillWindowPixelBuffer(sCoinsWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sCoinsWindowId, PIXEL_FILL(0)); PutWindowTilemap(sCoinsWindowId); DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x214, 0xE); PrintCoinsString(coinAmount); diff --git a/src/contest.c b/src/contest.c index f668baf92..e9353596b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -819,7 +819,7 @@ static void sub_80D8490(u8 taskId) } r5 = StringCopy(r5, gMoveNames[move]); - FillWindowPixelBuffer(i + 5, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i + 5, PIXEL_FILL(0)); Contest_PrintTextToBg0WindowAt(i + 5, sp8, 5, 1, 7); } @@ -941,7 +941,7 @@ static void sub_80D895C(u8 taskId) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(5 + i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(5 + i, PIXEL_FILL(0)); PutWindowTilemap(5 + i); CopyWindowToVram(5 + i, 2); } @@ -2258,7 +2258,7 @@ static void sub_80DAEA4(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(gUnknown_02039F26[i], PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(gUnknown_02039F26[i], PIXEL_FILL(0)); sub_80DAF04(i); sub_80DAF88(i); } @@ -2478,7 +2478,7 @@ static void prints_contest_move_description(u16 a) ContestBG_FillBoxWithTile(0, 0x5036, 0x15, 0x20, 0x08, 0x01, 0x11); ContestBG_FillBoxWithTile(0, 0x5014, 0x15, 0x20, numHearts, 0x01, 0x11); - FillWindowPixelBuffer(10, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(10, PIXEL_FILL(0)); Contest_PrintTextToBg0WindowStd(10, gContestEffectDescriptionPointers[gContestMoves[a].effect]); Contest_PrintTextToBg0WindowStd(9, gText_Slash); } @@ -2621,7 +2621,7 @@ static void sub_80DB884(void) static void sub_80DB89C(void) { - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(4, PIXEL_FILL(0)); CopyWindowToVram(4, 2); Contest_SetBgCopyFlags(0); } @@ -3456,7 +3456,7 @@ static void sub_80DCD48(void) break; default: for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); for (i = 0; i < 4; i++) { value = sContestantStatus[i].unk4; @@ -5038,7 +5038,7 @@ static void sub_80DF750(void) return; for (i = 0; i < 4; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); if (gHeap[0x1A000] == 2) { diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index f2b708db4..b2ce52757 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -935,7 +935,7 @@ static void sub_80F6AE8(void) // windowTemplate.width = 30; // windowTemplate.height = 2; // windowId = AddWindow(&windowTemplate); -// FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); +// FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); // origWidth = GetStringWidth(1, text, 0) + 9; // strWidth = origWidth; // if (strWidth < 0) diff --git a/src/contest_painting.c b/src/contest_painting.c index b961c7a65..931deb01b 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -279,7 +279,7 @@ static void InitContestPaintingWindow(void) SetBgTilemapBuffer(1, AllocZeroed(BG_SCREEN_SIZE)); gContestPaintingWindowId = AddWindow(&gUnknown_085B07EC); DeactivateAllTextPrinters(); - FillWindowPixelBuffer(gContestPaintingWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(gContestPaintingWindowId, PIXEL_FILL(0)); PutWindowTilemap(gContestPaintingWindowId); CopyWindowToVram(gContestPaintingWindowId, 3); ShowBg(1); diff --git a/src/credits.c b/src/credits.c index 66f9f7ea8..4483e3160 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1592,7 +1592,7 @@ static void sub_8175DA0(u8 taskIdB) case 5: if (!gPaletteFade.active) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); CopyWindowToVram(0, 2); gTasks[taskIdB].data[TDB_0] = 2; } diff --git a/src/decoration.c b/src/decoration.c index 207cb1bf0..8f6c9c449 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -543,7 +543,7 @@ void sub_8126B80(u8 taskId) void sub_8126C08(void) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); } @@ -634,7 +634,7 @@ void sub_8126DFC(u8 taskId) void sub_8126E44(u8 taskId) { - FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(sDecorMenuWindowIndices[1], PIXEL_FILL(1)); sub_8126E8C(taskId); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory); gTasks[taskId].func = sub_8127088; @@ -968,7 +968,7 @@ void sub_8127744(u32 a0) const u8 *txt; winidx = sDecorMenuWindowIndices[3]; - FillWindowPixelBuffer(winidx, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(winidx, PIXEL_FILL(1)); if (a0 >= sCurDecorCatCount) { txt = gText_GoBackPrevMenu; diff --git a/src/diploma.c b/src/diploma.c index f2c2a965c..716495034 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -197,7 +197,7 @@ static void InitDiplomaWindow(void) InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); } diff --git a/src/easy_chat.c b/src/easy_chat.c index 5a3ebf69c..b602077ad 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -3689,7 +3689,7 @@ static void sub_811CFCC(void) return; xOffset = GetStringCenterAlignXOffset(1, titleText, 144); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); sub_811D058(0, 1, titleText, xOffset, 1, 0xFF, 0, 2, 3); PutWindowTilemap(0); CopyWindowToVram(0, 3); @@ -3759,7 +3759,7 @@ static void sub_811D104(u8 arg0) break; } - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); if (text1) sub_811D028(1, 1, text1, 0, 1, 0xFF, 0); @@ -3809,7 +3809,7 @@ static void sub_811D2C8(void) if (var0 == 7) var1 = 1; - FillWindowPixelBuffer(gUnknown_0203A11C->windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gUnknown_0203A11C->windowId, PIXEL_FILL(1)); for (i = 0; i < numRows; i++) { memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); @@ -3949,7 +3949,7 @@ static void sub_811D684(void) static void sub_811D698(u32 arg0) { sub_811DD84(); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); switch (arg0) { case 0: @@ -4106,14 +4106,14 @@ static void sub_811D950(u8 arg0, u8 arg1) var1 = 0; } - FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, 224, var2); + FillWindowPixelRect(2, PIXEL_FILL(1), 0, y, 224, var2); if (var1) - FillWindowPixelRect(2, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 224, var1); + FillWindowPixelRect(2, PIXEL_FILL(1), 0, 0, 224, var1); } static void sub_811D9B4(void) { - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); CopyWindowToVram(2, 2); } @@ -4783,7 +4783,7 @@ static void sub_811E948(void) template.paletteNum = 11; template.baseBlock = 0x34; windowId = AddWindow(&template); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); for (i = 0; i < 4; i++) { const u8 *str = sFooterTextOptions[var0][i]; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 66114f19f..a9b6001ec 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -606,7 +606,7 @@ static void CB2_EggHatch_1(void) case 1: if (!gPaletteFade.active) { - FillWindowPixelBuffer(sEggHatchData->windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sEggHatchData->windowId, PIXEL_FILL(0)); sEggHatchData->CB2_PalCounter = 0; sEggHatchData->CB2_state++; } @@ -857,7 +857,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(15)); sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[1] = 5; sEggHatchData->textColor[2] = 6; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 4ab3cb21e..96e679dd7 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1918,7 +1918,7 @@ static bool8 Fishing9(struct Task *task) static bool8 Fishing10(struct Task *task) { AlignFishingAnimationFrames(); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_PokemonOnHook, 1, 0, 2, 1, 3); task->tStep++; task->tFrameCounter = 0; @@ -1966,7 +1966,7 @@ static bool8 Fishing12(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_NotEvenANibble, 1, 0, 2, 1, 3); task->tStep = FISHING_SHOW_RESULT; return TRUE; @@ -1977,7 +1977,7 @@ static bool8 Fishing13(struct Task *task) { AlignFishingAnimationFrames(); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection())); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_ItGotAway, 1, 0, 2, 1, 3); task->tStep++; return TRUE; diff --git a/src/field_region_map.c b/src/field_region_map.c index 850e84554..1d54333fb 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -196,13 +196,13 @@ static void PrintRegionMapSecName(void) { if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } else { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, 3); } } diff --git a/src/field_specials.c b/src/field_specials.c index b4017f0ef..2e0b03290 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2646,7 +2646,7 @@ static void sub_813A570(u8 taskId) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); ClearStdWindowAndFrameToTransparent(task->data[13], 1); - FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0)); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); DestroyTask(taskId); @@ -3001,7 +3001,7 @@ static void sub_813AA60(u16 a0, u16 a1) if (a0 > 2 && a0 < 7) { - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 216, 32); + FillWindowPixelRect(0, PIXEL_FILL(1), 0, 0, 216, 32); switch (a0) { case 3: @@ -3140,7 +3140,7 @@ static void sub_813AD34(u8 a0, u16 a1) if (a0 == 9 || a0 == 10) { - FillWindowPixelRect(gUnknown_0203AB5E, PALETTE_NUM_TO_FILL_VALUE(1), 0, 0, 96, 48); + FillWindowPixelRect(gUnknown_0203AB5E, PIXEL_FILL(1), 0, 0, 96, 48); if (a0 == 10) { AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); @@ -3227,7 +3227,7 @@ void sub_813AF48(void) DestroyListMenuTask(task->data[14], NULL, NULL); Free(gUnknown_0203AB64); ClearStdWindowAndFrameToTransparent(task->data[13], TRUE); - FillWindowPixelBuffer(task->data[13], PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(task->data[13], PIXEL_FILL(0)); ClearWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 2); RemoveWindow(task->data[13]); diff --git a/src/frontier_pass.c b/src/frontier_pass.c index c449a50f0..fff93c3c7 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1090,7 +1090,7 @@ static void ShowAndPrintWindows(void) for (i = 0; i < WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } x = GetStringCenterAlignXOffset(1, gText_SymbolsEarned, 96); @@ -1116,7 +1116,7 @@ static void ShowAndPrintWindows(void) static void PrintAreaDescription(u8 cursorArea) { - FillWindowPixelBuffer(WINDOW_DESCRIPTION, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(WINDOW_DESCRIPTION, PIXEL_FILL(0)); if (cursorArea == CURSOR_AREA_RECORD && !sPassData->hasBattleRecord) AddTextPrinterParameterized3(WINDOW_DESCRIPTION, 1, 2, 0, sTextColors[1], 0, sPassAreaDescriptions[0]); else if (cursorArea != CURSOR_AREA_NOTHING) @@ -1656,7 +1656,7 @@ static void PrintOnFrontierMap(void) for (i = 0; i < MAP_WINDOW_COUNT; i++) { PutWindowTilemap(i); - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } for (i = 0; i < NUM_FRONTIER_FACILITIES; i++) @@ -1698,7 +1698,7 @@ static void HandleFrontierMapCursorMove(u8 direction) StartSpriteAnim(sMapData->mapIndicatorSprite, sMapLandmarks[sMapData->cursorPos].animNum); sMapData->mapIndicatorSprite->pos1.x = sMapLandmarks[sMapData->cursorPos].x; sMapData->mapIndicatorSprite->pos1.y = sMapLandmarks[sMapData->cursorPos].y; - FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(MAP_WINDOW_DESCRIPTION, PIXEL_FILL(0)); AddTextPrinterParameterized3(MAP_WINDOW_DESCRIPTION, 1, 4, 0, sTextColors[0], 0, sMapLandmarks[sMapData->cursorPos].description); for (i = 0; i < 3; i++) diff --git a/src/frontier_util.c b/src/frontier_util.c index ec7327ca3..0c68bf119 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1045,7 +1045,7 @@ static void ShowTowerResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleRoomResults); else if (battleMode == FRONTIER_MODE_DOUBLES) @@ -1116,7 +1116,7 @@ static void ShowDomeResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleTourneyResults); else @@ -1192,7 +1192,7 @@ static void ShowPalaceResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_SingleBattleHallResults); else @@ -1248,7 +1248,7 @@ static void ShowPikeResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleChoiceResults); PrintAligned(gStringVar4, 0); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 33, TEXT_SPEED_FF, NULL); @@ -1310,7 +1310,7 @@ static void ShowArenaResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHyphens(10); StringExpandPlaceholders(gStringVar4, gText_SetKOTourneyResults); PrintAligned(gStringVar4, 2); @@ -1396,7 +1396,7 @@ static void ShowFactoryResultsWindow(u8 battleMode) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); if (battleMode == FRONTIER_MODE_SINGLES) StringExpandPlaceholders(gStringVar4, gText_BattleSwapSingleResults); else @@ -1461,7 +1461,7 @@ static void ShowPyramidResultsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C74); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_BattleQuestResults); PrintAligned(gStringVar4, 2); AddTextPrinterParameterized(gRecordsWindowId, 1, gText_Lv502, 8, 49, TEXT_SPEED_FF, NULL); @@ -1484,7 +1484,7 @@ static void ShowLinkContestResultsWindow(void) gRecordsWindowId = AddWindow(&gUnknown_08611C7C); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, gText_LinkContestResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); @@ -2354,7 +2354,7 @@ void ShowRankingHallRecordsWindow(void) { gRecordsWindowId = AddWindow(&gUnknown_08611C84); DrawStdWindowFrame(gRecordsWindowId, FALSE); - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_50); PutWindowTilemap(gRecordsWindowId); CopyWindowToVram(gRecordsWindowId, 3); @@ -2362,7 +2362,7 @@ void ShowRankingHallRecordsWindow(void) void ScrollRankingHallRecordsWindow(void) { - FillWindowPixelBuffer(gRecordsWindowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1)); PrintHallRecords(gSpecialVar_0x8005, FRONTIER_LVL_OPEN); CopyWindowToVram(gRecordsWindowId, 2); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index d3b94cff6..53577e166 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -649,7 +649,7 @@ static void sub_8173DC0(u8 taskId) gSprites[gTasks[taskId].tMonSpriteId(i)].oam.priority = 1; } BeginNormalPaletteFade(sUnknown_0203BCD4, 0, 12, 12, RGB(16, 29, 24)); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); CopyWindowToVram(0, 3); gTasks[taskId].tFrameCount = 7; gTasks[taskId].func = sub_8173EA4; @@ -1086,7 +1086,7 @@ static void Task_HofPC_ExitOnButtonPress(u8 taskId) static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); CopyWindowToVram(0, 3); @@ -1099,7 +1099,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u s32 dexNumber; s32 width; - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); // dex number @@ -1180,7 +1180,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) u32 width; u16 trainerId; - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); PutWindowTilemap(1); DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 0xD); AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); diff --git a/src/item_menu.c b/src/item_menu.c index 8ade67614..ae2b7d47b 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -884,7 +884,7 @@ void bag_menu_print_description_box_text(int a) StringExpandPlaceholders(gStringVar4, gText_ReturnToVar1); str = gStringVar4; } - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, str, 3, 1, 0, 0, 0, 0); } @@ -896,7 +896,7 @@ void bag_menu_print_cursor_(u8 a, u8 b) void bag_menu_print_cursor(u8 a, u8 b) { if (b == 0xFF) - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), 0, a, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(0, PIXEL_FILL(0), 0, a, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else bag_menu_print(0, 1, gText_SelectorArrow2, 0, a, 0, 0, 0, b); @@ -1028,7 +1028,7 @@ void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u s16* data = gTasks[taskId].data; data[10] = AddItemMessageWindow(4); - FillWindowPixelBuffer(data[10], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(data[10], PIXEL_FILL(1)); DisplayMessageAndContinueTask(taskId, data[10], 10, 13, fontId, GetPlayerTextSpeedDelay(), str, callback); schedule_bg_copy_tilemap_to_vram(1); } @@ -1293,7 +1293,7 @@ void bag_menu_swap_items(u8 taskId) gUnknown_0203CE54->unk81A = data[1]; CopyItemName(BagGetItemIdByPocketPosition(gUnknown_0203CE58.pocket + 1, data[1]), gStringVar1); StringExpandPlaceholders(gStringVar4, gText_MoveVar1Where); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_80D4FEC(data[1]); sub_81AB89C(); @@ -1505,7 +1505,7 @@ void sub_81AC644(u8 unused) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_Var1IsSelected); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); } if (gUnknown_0203CE54->unk828 == 1) @@ -1646,7 +1646,7 @@ void ItemMenu_UseOutOfBattle(u8 taskId) bag_menu_print_there_is_no_pokemon(taskId); else { - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); schedule_bg_copy_tilemap_to_vram(0); if (gUnknown_0203CE58.pocket != BERRIES_POCKET) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); @@ -1670,7 +1670,7 @@ void ItemMenu_Toss(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_TossHowManyVar1s); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = Task_ChooseHowManyToToss; @@ -1684,7 +1684,7 @@ void BagMenuConfirmToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); bag_menu_yes_no(taskId, 5, &gUnknown_08614084); } @@ -1727,7 +1727,7 @@ void BagMenuActuallyToss(u8 taskId) CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, data[8], 0, 3); StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); gTasks[taskId].func = Task_ActuallyToss; } @@ -2043,7 +2043,7 @@ void display_deposit_item_ask_str(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_DepositHowManyVar1); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); bag_menu_print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0); sub_81ABC3C(7); gTasks[taskId].func = sub_81ADA7C; @@ -2078,7 +2078,7 @@ void sub_81ADB14(u8 taskId) { s16* data = gTasks[taskId].data; - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); if (ItemId_GetImportance(gSpecialVar_ItemId)) { bag_menu_print(1, 1, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, 0); @@ -2244,7 +2244,7 @@ void bag_menu_print_pocket_names(const u8 *pocketName1, const u8 *pocketName2) window.width = 16; window.height = 2; windowId = AddWindow(&window); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); offset = GetStringCenterAlignXOffset(1, pocketName1, 0x40); bag_menu_print(windowId, 1, pocketName1, offset, 1, 0, 0, -1, 1); if (pocketName2) @@ -2283,7 +2283,7 @@ void setup_bag_menu_textboxes(void) LoadPalette(&gUnknown_0860F074, 0xF0, 0x20); for (i = 0; i < 3; i++) { - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); } schedule_bg_copy_tilemap_to_vram(0); @@ -2367,7 +2367,7 @@ void bag_menu_remove_money_window(void) void bag_menu_prepare_tmhm_move_window(void) { - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(3, PIXEL_FILL(0)); blit_move_info_icon(3, 19, 0, 0); blit_move_info_icon(3, 20, 0, 12); blit_move_info_icon(3, 21, 0, 24); @@ -2381,7 +2381,7 @@ void PrintTMHMMoveData(u16 itemId) u16 moveId; const u8* text; - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(4, PIXEL_FILL(0)); if (itemId == ITEM_NONE) { for (i = 0; i < 4; i++) diff --git a/src/learn_move.c b/src/learn_move.c index 517352555..879acff6d 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -498,7 +498,7 @@ static void LearnMoveMain(void) case 27: if (!sub_81D2C3C()) { - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(3, PIXEL_FILL(1)); if (sLearnMoveStruct2.showContestInfo == FALSE) { sLearnMoveStruct->state = 3; @@ -631,7 +631,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) if (!a) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(3, PIXEL_FILL(1)); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } @@ -695,7 +695,7 @@ static void ShowTeachMoveText(bool8 showContest) if (showContest == FALSE) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(3, PIXEL_FILL(1)); AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } diff --git a/src/link.c b/src/link.c index 5c7614c1b..9aedbc961 100644 --- a/src/link.c +++ b/src/link.c @@ -1683,8 +1683,8 @@ static void sub_800B080(void) CopyToBgTilemapBuffer(1, gWirelessLinkDisplayTilemap, 0, 0); CopyBgTilemapBufferToVram(1); LoadPalette(gWirelessLinkDisplayPal, 0, 0x20); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); PutWindowTilemap(0); @@ -1696,8 +1696,8 @@ static void sub_800B080(void) static void sub_800B138(void) { LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); PutWindowTilemap(1); PutWindowTilemap(2); diff --git a/src/list_menu.c b/src/list_menu.c index b8e186348..51d7dcb15 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -486,7 +486,7 @@ void RedrawListMenu(u8 listTaskId) { struct ListMenu *list = (void*) gTasks[listTaskId].data; - FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); ListMenuDrawCursor(list); CopyWindowToVram(list->template.windowId, 2); @@ -584,7 +584,7 @@ static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 sc if (list->template.totalItems < list->template.maxShowed) list->template.maxShowed = list->template.totalItems; - FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); ListMenuDrawCursor(list); ListMenuCallSelectionChangedCallback(list, TRUE); @@ -698,7 +698,7 @@ static void ListMenuErasePrintedCursor(struct ListMenu *list, u16 selectedRow) u8 width = GetMenuCursorDimensionByFont(list->template.fontId, 0); u8 height = GetMenuCursorDimensionByFont(list->template.fontId, 1); FillWindowPixelRect(list->template.windowId, - PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), + PIXEL_FILL(list->template.fillValue), list->template.cursor_X, selectedRow * yMultiplier + list->template.upText_Y, width, @@ -795,7 +795,7 @@ static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown) { if (count >= list->template.maxShowed) { - FillWindowPixelBuffer(list->template.windowId, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); + FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed); } else @@ -806,26 +806,26 @@ static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown) { u16 y, width, height; - ScrollWindow(list->template.windowId, 1, count * yMultiplier, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); + ScrollWindow(list->template.windowId, 1, count * yMultiplier, PIXEL_FILL(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset, 0, count); y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y; width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; height = (GetWindowAttribute(list->template.windowId, WINDOW_HEIGHT) * 8) - y; FillWindowPixelRect(list->template.windowId, - PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), + PIXEL_FILL(list->template.fillValue), 0, y, width, height); } else { u16 width; - ScrollWindow(list->template.windowId, 0, count * yMultiplier, PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue)); + ScrollWindow(list->template.windowId, 0, count * yMultiplier, PIXEL_FILL(list->template.fillValue)); ListMenuPrintEntries(list, list->scrollOffset + (list->template.maxShowed - count), list->template.maxShowed - count, count); width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8; FillWindowPixelRect(list->template.windowId, - PALETTE_NUM_TO_FILL_VALUE(list->template.fillValue), + PIXEL_FILL(list->template.fillValue), 0, 0, width, list->template.upText_Y); } } diff --git a/src/mail.c b/src/mail.c index 27716a3f8..9cca4492e 100644 --- a/src/mail.c +++ b/src/mail.c @@ -477,8 +477,8 @@ static void sub_8121B1C(void) y = 0; PutWindowTilemap(0); PutWindowTilemap(1); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); for (i = 0; i < sMailRead->layout->numSubStructs; i ++) { if (sMailRead->strbuf[i][0] == EOS || sMailRead->strbuf[i][0] == CHAR_SPACE) diff --git a/src/main_menu.c b/src/main_menu.c index 6ad1776f8..e6e29d942 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -783,8 +783,8 @@ static void Task_DisplayMainMenu(u8 taskId) { case HAS_NO_SAVED_GAME: default: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(0, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(1, PIXEL_FILL(0xA)); AddTextPrinterParameterized3(0, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(1, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); @@ -795,9 +795,9 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[1], MAIN_MENU_BORDER_TILE); break; case HAS_SAVED_GAME: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(2, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(3, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(4, PIXEL_FILL(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); @@ -813,10 +813,10 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_GIFT: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(2, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(3, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(4, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(5, PIXEL_FILL(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift); @@ -836,11 +836,11 @@ static void Task_DisplayMainMenu(u8 taskId) DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[5], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_EVENTS: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(3, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(5, PALETTE_NUM_TO_FILL_VALUE(0xA)); - FillWindowPixelBuffer(6, PALETTE_NUM_TO_FILL_VALUE(0xA)); + FillWindowPixelBuffer(2, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(3, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(4, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(5, PIXEL_FILL(0xA)); + FillWindowPixelBuffer(6, PIXEL_FILL(0xA)); AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift2); @@ -2098,7 +2098,7 @@ static void NewGameBirchSpeech_StartFadePlatformOut(u8 taskId, u8 delay) static void NewGameBirchSpeech_ShowGenderMenu(void) { DrawMainMenuWindowBorder(&gNewGameBirchSpeechTextWindows[1], 0xF3); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, 2, sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -2126,7 +2126,7 @@ static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) static void CreateMainMenuErrorWindow(const u8* str) { - FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(7, PIXEL_FILL(1)); AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); @@ -2239,7 +2239,7 @@ static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 a, u8 b, u8 c, u8 d, static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_ClearGenderWindowTilemap); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -2277,7 +2277,7 @@ void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) { CallWindowFunction(windowId, NewGameBirchSpeech_CreateDialogueWindowBorder); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); diff --git a/src/match_call.c b/src/match_call.c index 76012e076..d4da8d791 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1191,7 +1191,7 @@ static bool32 LoadMatchCallWindowGfx(u8 taskId) return FALSE; } - FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); + FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20); LoadPalette(sPokeNavIconPalette, 0xF0, 0x20); ChangeBgY(0, -0x2000, 0); @@ -1241,7 +1241,7 @@ static bool32 sub_81962D8(u8 taskId) s16 *taskData = gTasks[taskId].data; if (!ExecuteMatchCallTextPrinter(taskData[2])) { - FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); + FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); if (!gMatchCallState.triggeredFromScript) SelectMatchCallMessage(gMatchCallState.trainerId, gStringVar4); @@ -1257,7 +1257,7 @@ static bool32 sub_8196330(u8 taskId) s16 *taskData = gTasks[taskId].data; if (!ExecuteMatchCallTextPrinter(taskData[2]) && !IsSEPlaying() && gMain.newKeys & (A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(taskData[2], PALETTE_NUM_TO_FILL_VALUE(8)); + FillWindowPixelBuffer(taskData[2], PIXEL_FILL(8)); CopyWindowToVram(taskData[2], 2); PlaySE(SE_TOREOFF); return TRUE; diff --git a/src/menu.c b/src/menu.c index 6a181532e..8cb7ac0b2 100644 --- a/src/menu.c +++ b/src/menu.c @@ -213,7 +213,7 @@ void sub_81973A4(void) void DrawDialogueFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, WindowFunc_DrawDialogueFrame); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -222,7 +222,7 @@ void DrawDialogueFrame(u8 windowId, bool8 copyToVram) void DrawStdWindowFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, WindowFunc_DrawStandardFrame); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -231,7 +231,7 @@ void DrawStdWindowFrame(u8 windowId, bool8 copyToVram) void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrame); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -240,7 +240,7 @@ void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrame); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -554,7 +554,7 @@ void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 sTileNum = tileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -566,7 +566,7 @@ void DrawDialogFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 tileNum) sTileNum = tileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, WindowFunc_DrawDialogFrameWithCustomTileAndPalette); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -671,7 +671,7 @@ void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) { // The palette slot doesn't matter, since the tiles are transparent. CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrameNullPalette); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -687,7 +687,7 @@ void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 bas sTileNum = baseTileNum; sPaletteNum = paletteNum; CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -699,7 +699,7 @@ void DrawStdFrameWithCustomTile(u8 windowId, bool8 copyToVram, u16 baseTileNum) sTileNum = baseTileNum; sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM); CallWindowFunction(windowId, WindowFunc_DrawStdFrameWithCustomTileAndPalette); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); PutWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -768,7 +768,7 @@ void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8 bg, u8 tilemapLeft, u8 t void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram) { CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrameToTransparent); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); ClearWindowTilemap(windowId); if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); @@ -814,7 +814,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) if (sWindowId != 0xFF) { PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); width = GetStringWidth(0, string, 0); AddTextPrinterParameterized3(sWindowId, 0, @@ -848,7 +848,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo color[2] = 2; } PutWindowTilemap(sWindowId); - FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); if (string2 != NULL) { width = GetStringWidth(0, string2, 0); @@ -876,7 +876,7 @@ void sub_81982F0(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(sWindowId, PIXEL_FILL(15)); CopyWindowToVram(sWindowId, 3); } } @@ -885,7 +885,7 @@ void sub_8198314(void) { if (sWindowId != 0xFF) { - FillWindowPixelBuffer(sWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sWindowId); CopyWindowToVram(sWindowId, 3); RemoveWindow(sWindowId); @@ -934,7 +934,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos) width = GetMenuCursorDimensionByFont(sMenu.fontId, 0); height = GetMenuCursorDimensionByFont(sMenu.fontId, 1); - FillWindowPixelRect(sMenu.windowId, PALETTE_NUM_TO_FILL_VALUE(1), sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height); + FillWindowPixelRect(sMenu.windowId, PIXEL_FILL(1), sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height); AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0); } @@ -1313,7 +1313,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left; u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top; FillWindowPixelRect(sMenu.windowId, - PALETTE_NUM_TO_FILL_VALUE(1), + PIXEL_FILL(1), xPos, yPos, cursorWidth, diff --git a/src/money.c b/src/money.c index e7ae6080c..4ff8086ea 100644 --- a/src/money.c +++ b/src/money.c @@ -169,7 +169,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) SetWindowTemplateFields(&template, 0, x + 1, y + 1, 10, 2, 15, 8); sMoneyBoxWindowId = AddWindow(&template); - FillWindowPixelBuffer(sMoneyBoxWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sMoneyBoxWindowId, PIXEL_FILL(0)); PutWindowTilemap(sMoneyBoxWindowId); CopyWindowToVram(sMoneyBoxWindowId, 1); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x214, 14, amount); diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 2a1617592..1c886565a 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -90,7 +90,7 @@ void CB2_InitMysteryEventMenu(void) DeactivateAllTextPrinters(); for (i = 0; i < 2; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); LoadUserWindowBorderGfx(0, 1u, 0xD0u); @@ -313,6 +313,6 @@ static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 sp textColor[1] = 2; textColor[2] = 3; - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(textColor[0])); + FillWindowPixelBuffer(windowId, PIXEL_FILL(textColor[0])); AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); } diff --git a/src/naming_screen.c b/src/naming_screen.c index e4159e3be..22bbb84d7 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1474,7 +1474,7 @@ static void HandleDpadMovement(struct Task *task) static void sub_80E4894(void) { - FillWindowPixelBuffer(gNamingScreenData->windows[3], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1485,7 +1485,7 @@ static void sub_80E48E8(void) StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); StringAppendN(buffer, gNamingScreenData->template->title, 15); - FillWindowPixelBuffer(gNamingScreenData->windows[3], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gNamingScreenData->windows[3], PIXEL_FILL(1)); AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1672,7 +1672,7 @@ static void sub_80E4D10(void) u8 maxChars = gNamingScreenData->template->maxChars; u16 unk = gNamingScreenData->inputCharBaseXPos - 0x40; - FillWindowPixelBuffer(gNamingScreenData->windows[2], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gNamingScreenData->windows[2], PIXEL_FILL(1)); for (i = 0; i < maxChars; i++) { @@ -1704,9 +1704,9 @@ static const struct TextColorThing sUnkColorStruct = static const u8 sFillValues[3] = { - PALETTE_NUM_TO_FILL_VALUE(0xE), - PALETTE_NUM_TO_FILL_VALUE(0xD), - PALETTE_NUM_TO_FILL_VALUE(0xF) + PIXEL_FILL(0xE), + PIXEL_FILL(0xD), + PIXEL_FILL(0xF) }; static const u8 *const sUnkColors[3] = @@ -1768,7 +1768,7 @@ static void sub_80E4EF0(void) { const u8 color[3] = { 15, 1, 2 }; - FillWindowPixelBuffer(gNamingScreenData->windows[4], PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(gNamingScreenData->windows[4], PIXEL_FILL(15)); AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); PutWindowTilemap(gNamingScreenData->windows[4]); CopyWindowToVram(gNamingScreenData->windows[4], 3); diff --git a/src/option_menu.c b/src/option_menu.c index 94bbef306..1766f0bdb 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -620,7 +620,7 @@ static void ButtonMode_DrawChoices(u8 selection) static void DrawTextOption(void) { - FillWindowPixelBuffer(WIN_TEXT_OPTION, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(WIN_TEXT_OPTION, PIXEL_FILL(1)); AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(WIN_TEXT_OPTION, 3); } @@ -629,7 +629,7 @@ static void DrawOptionMenuTexts(void) { u8 i; - FillWindowPixelBuffer(WIN_OPTIONS, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(WIN_OPTIONS, PIXEL_FILL(1)); for (i = 0; i < MENUITEM_COUNT; i++) { AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); diff --git a/src/party_menu.c b/src/party_menu.c index 03e267e74..23e4361bc 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3108,7 +3108,7 @@ static void sub_81B239C(u8 a) } DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); LoadUserWindowBorderGfx(0, 0x4F, 0xD0); LoadPalette(GetOverworldTextboxPalettePtr(), 0xE0, 0x20); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); @@ -3126,7 +3126,7 @@ static void sub_81B2428(bool8 a) if (a == TRUE) { firstWindowId = AddWindow(&gUnknown_08615918); - FillWindowPixelBuffer(firstWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(firstWindowId, PIXEL_FILL(0)); mainOffset = GetStringCenterAlignXOffset(0, gMenuText_Confirm, 48); AddTextPrinterParameterized4(firstWindowId, 0, mainOffset, 1, 0, 0, gUnknown_086157FC[0], -1, gMenuText_Confirm); PutWindowTilemap(firstWindowId); @@ -3139,7 +3139,7 @@ static void sub_81B2428(bool8 a) windowId = AddWindow(&gUnknown_08615908); offset = 3; } - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); if (gUnknown_0203CEC8.unk8_0 != 10) { mainOffset = GetStringCenterAlignXOffset(0, gText_Cancel, 48); diff --git a/src/player_pc.c b/src/player_pc.c index c088a6ce7..6e78533e7 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -977,7 +977,7 @@ static void sub_816BEF0(s32 id) description = (u8 *)ItemId_GetDescription(gSaveBlock1Ptr->pcItems[id].itemId); else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } @@ -1005,7 +1005,7 @@ static void sub_816BFE0(u8 y, u8 b, u8 speed) { u8 windowId = gUnknown_0203BCC4->windowIds[0]; if (b == 0xFF) - FillWindowPixelRect(windowId, PALETTE_NUM_TO_FILL_VALUE(1), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); + FillWindowPixelRect(windowId, PIXEL_FILL(1), 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); } @@ -1123,7 +1123,7 @@ static const u8* ItemStorage_GetItemPcResponse(u16 itemId) static void ItemStorage_PrintItemPcResponse(const u8 *string) { u8 windowId = gUnknown_0203BCC4->windowIds[1]; - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); StringExpandPlaceholders(gStringVar4, string); AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } diff --git a/src/pokeblock.c b/src/pokeblock.c index 4bd4a8ccb..2682754aa 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -665,7 +665,7 @@ static void HandleInitWindows(void) for (i = 0; i < ARRAY_COUNT(sWindowTemplatesForPokeblockMenu) - 1; i++) { - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } schedule_bg_copy_tilemap_to_vram(0); @@ -749,7 +749,7 @@ static void sub_8135FCC(s32 pkblId) struct Pokeblock *pokeblock; u16 rectTilemapSrc[2]; - FillWindowPixelBuffer(7, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(7, PIXEL_FILL(0)); if (pkblId != LIST_B_PRESSED) { diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 908aec1c0..d72a9ffbe 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -704,7 +704,7 @@ static void HandleInitWindows(void) DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); } diff --git a/src/pokedex.c b/src/pokedex.c index f54fdbd29..4bf8dff6d 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2152,7 +2152,7 @@ static void CreateCaughtBall(u16 a, u8 x, u8 y, u16 unused) if (a) BlitBitmapToWindow(0, gUnknown_0855D2BE, x * 8, y * 8, 8, 16); else - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x * 8, y * 8, 8, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 8, 16); } static u8 CreateMonName(u16 num, u8 left, u8 top) @@ -2170,7 +2170,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) void sub_80BD28C(u8 x, u8 y, u16 unused) { - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x * 8, y * 8, 0x60, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 0x60, 16); } static void CreateInitialPokemonSprites(u16 selectedMon, u16 b) @@ -2927,7 +2927,7 @@ void sub_80BEA24(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, sPokedexListItem->dexNum); @@ -3222,7 +3222,7 @@ void sub_80BF250(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, &gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, &gPokedexTilemap_CryScreen, 0, 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); PutWindowTilemap(3); PutWindowTilemap(2); @@ -3416,7 +3416,7 @@ void sub_80BF82C(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_SizeScreen, 0, 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); gMain.state++; break; @@ -3766,7 +3766,7 @@ void sub_80BFE38(u8 taskId) case 1: DecompressAndLoadBgGfxUsingHeap(3, gPokedexMenu_Gfx, 0x2000, 0, 0); CopyToBgTilemapBuffer(3, gPokedexTilemap_DescriptionScreen, 0, 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); PutWindowTilemap(0); PutWindowTilemap(1); sub_80C0D30(1, gTasks[taskId].data[1]); @@ -4784,7 +4784,7 @@ void sub_80C1270(const u8 *str, u32 left, u32 top) void sub_80C12B0(u32 x, u32 y, u32 width, u32 height) { - FillWindowPixelRect(0, PALETTE_NUM_TO_FILL_VALUE(0), x, y, width, height); + FillWindowPixelRect(0, PIXEL_FILL(0), x, y, width, height); } void sub_80C12E0(u8 taskId) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index d18077f21..9681b72f4 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1552,7 +1552,7 @@ void sub_80C6D80(const u8 *string, void *dst, u8 arg2, u8 arg3, s32 arg4) winTemplate.width = 24; winTemplate.height = 2; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(arg3)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(arg3)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; @@ -1599,7 +1599,7 @@ void sub_80C6EAC(const u8 *string, void *dst, u16 arg2, u8 arg3, u8 clr2, u8 clr winTemplate.height = 2; var = winTemplate.width * 32; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(arg3)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(arg3)); tileData1 = (u8*) GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; txtColor[0] = arg3; @@ -1737,7 +1737,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) CreatePCMenu(task->data[1], &task->data[15]); sub_81973A4(); DrawDialogueFrame(0, 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3); CopyWindowToVram(0, 3); CopyWindowToVram(task->data[15], 3); @@ -1763,7 +1763,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) if (task->data[1] != task->data[3]) { task->data[1] = task->data[3]; - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; @@ -1778,13 +1778,13 @@ static void Task_PokemonStorageSystemPC(u8 taskId) default: if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); task->data[0] = 3; } else if (task->data[2] == 1 && CountPartyMons() == 1) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); task->data[0] = 3; } @@ -1799,7 +1799,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) case 3: if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1809,7 +1809,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 4; Menu_MoveCursor(-1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -1819,7 +1819,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId) task->data[1] = 0; Menu_MoveCursor(1); task->data[1] = Menu_GetCursorPos(); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } @@ -2103,7 +2103,7 @@ static void sub_80C7BE4(void) winTemplate.height = 4; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(4)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(4)); center = GetStringCenterAlignXOffset(1, boxName, 64); AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); @@ -4107,7 +4107,7 @@ static void LoadCursorMonGfx(u16 species, u32 pid) static void PrintCursorMonInfo(void) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS) { AddTextPrinterParameterized(0, 1, sPSSData->cursorMonNickText, 6, 0, TEXT_SPEED_FF, NULL); @@ -4416,7 +4416,7 @@ static void PrintStorageActionText(u8 id) } DynamicPlaceholderTextUtil_ExpandPlaceholders(sPSSData->field_2190, gPCStorageActionTexts[id].text); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); AddTextPrinterParameterized(1, 1, sPSSData->field_2190, 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(1, 2, 14); PutWindowTilemap(1); @@ -8835,7 +8835,7 @@ static bool8 sub_80D0164(void) sPSSData->field_2200 = AddWindow8Bit(&gUnknown_0857BB1C); if (sPSSData->field_2200 != 0xFF) { - FillWindowPixelBuffer(sPSSData->field_2200, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sPSSData->field_2200, PIXEL_FILL(0)); return TRUE; } } @@ -8892,7 +8892,7 @@ static bool8 sub_80D024C(void) ChangeBgX(0, -1024, 0); ChangeBgY(0, -1024, 0); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - FillWindowPixelBuffer8Bit(sPSSData->field_2200, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer8Bit(sPSSData->field_2200, PIXEL_FILL(0)); sub_80D07B0(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn); SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); PutWindowTilemap(sPSSData->field_2200); @@ -9194,7 +9194,7 @@ static void sub_80D0834(u8 arg0, u8 arg1) if (species != SPECIES_NONE) { FillWindowPixelRect8Bit(sPSSData->field_2200, - PALETTE_NUM_TO_FILL_VALUE(0), + PIXEL_FILL(0), 24 * arg0, 24 * arg1, 32, @@ -9911,7 +9911,7 @@ static void PrintItemDescription(void) else description = ItemId_GetDescription(sPSSData->cursorMonItem); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(2, PIXEL_FILL(1)); AddTextPrinterParameterized5(2, 1, description, 4, 0, 0, NULL, 0, 1); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index f0c68e7d0..91e344123 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2629,7 +2629,7 @@ static void ResetWindows(void) for (i = 0; i < 20; i++) { - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { @@ -2644,9 +2644,9 @@ static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, static void sub_81C25E8(void) { - FillWindowPixelBuffer(17, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(18, PALETTE_NUM_TO_FILL_VALUE(0)); - FillWindowPixelBuffer(19, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(17, PIXEL_FILL(0)); + FillWindowPixelBuffer(18, PIXEL_FILL(0)); + FillWindowPixelBuffer(19, PIXEL_FILL(0)); if (!pssData->summary.isEgg) sub_81C2628(); else @@ -2898,7 +2898,7 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); - FillWindowPixelBuffer(*windowIdPtr, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(*windowIdPtr, PIXEL_FILL(0)); } return *windowIdPtr; } @@ -2920,7 +2920,7 @@ static void PrintPageSpecificText(u8 pageIndex) for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) { if (pssData->windowIds[i] != 0xFF) - FillWindowPixelBuffer(pssData->windowIds[i], PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(pssData->windowIds[i], PIXEL_FILL(0)); } sTextPrinterFunctions[pageIndex](); } @@ -3469,7 +3469,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) const u8 *text; if (moveIndex != 0) { - FillWindowPixelRect(14, PALETTE_NUM_TO_FILL_VALUE(0), 53, 0, 19, 32); + FillWindowPixelRect(14, PIXEL_FILL(0), 53, 0, 19, 32); if (gBattleMoves[moveIndex].power < 2) { @@ -3567,7 +3567,7 @@ static void PrintContestMoveDescription(u8 moveSlot) static void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); if (move != MOVE_NONE) { if (pssData->currPageIndex == 2) @@ -3619,7 +3619,7 @@ static void PrintNewMoveDetailsOrCancelText(void) static void sub_81C4064(void) { u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); - FillWindowPixelRect(windowId, PALETTE_NUM_TO_FILL_VALUE(0), 0, 66, 72, 16); + FillWindowPixelRect(windowId, PIXEL_FILL(0), 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } @@ -3628,11 +3628,11 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); - FillWindowPixelRect(windowId1, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex1 * 16, 0x48, 0x10); - FillWindowPixelRect(windowId1, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex2 * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, PIXEL_FILL(0), 0, moveIndex1 * 16, 0x48, 0x10); + FillWindowPixelRect(windowId1, PIXEL_FILL(0), 0, moveIndex2 * 16, 0x48, 0x10); - FillWindowPixelRect(windowId2, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex1 * 16, 0x30, 0x10); - FillWindowPixelRect(windowId2, PALETTE_NUM_TO_FILL_VALUE(0), 0, moveIndex2 * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, PIXEL_FILL(0), 0, moveIndex1 * 16, 0x30, 0x10); + FillWindowPixelRect(windowId2, PIXEL_FILL(0), 0, moveIndex2 * 16, 0x30, 0x10); PrintMoveNameAndPP(moveIndex1); PrintMoveNameAndPP(moveIndex2); @@ -3641,7 +3641,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } diff --git a/src/pokenav.c b/src/pokenav.c index 05aa559ec..217d98132 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -1138,8 +1138,8 @@ bool32 IsDma3ManagerBusyWithBgCopy_(void) void sub_81C7BF8(u32 windowId) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(4)); - FillWindowPixelRect(windowId, PALETTE_NUM_TO_FILL_VALUE(5), 0, 0, 0x80, 1); + FillWindowPixelBuffer(windowId, PIXEL_FILL(4)); + FillWindowPixelRect(windowId, PIXEL_FILL(5), 0, 0, 0x80, 1); } void sub_81C7C28(void) diff --git a/src/region_map.c b/src/region_map.c index 6d5224821..67cf9cc0f 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1622,7 +1622,7 @@ void MCB2_FlyMap(void) case 7: LoadPalette(sRegionMapFramePal, 0x10, 0x20); PutWindowTilemap(2); - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gMain.state++; @@ -1707,7 +1707,7 @@ static void sub_8124904(void) } else { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); } AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); @@ -1721,7 +1721,7 @@ static void sub_8124904(void) ClearStdWindowAndFrameToTransparent(1, FALSE); DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x65, 0x0d); } - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); CopyWindowToVram(0, 2); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 7e9e81e96..b06e5cd61 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -387,7 +387,7 @@ void nullsub_89(void) void sub_80124EC(u8 windowId, u8 arg1, u8 stringId) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); switch (arg1 << 8) { case 0x200: @@ -506,7 +506,7 @@ void sub_8012780(u8 taskId) } data->field_11 = AddWindow(&gUnknown_082F012C); - FillWindowPixelBuffer(data->field_10, PALETTE_NUM_TO_FILL_VALUE(2)); + FillWindowPixelBuffer(data->field_10, PIXEL_FILL(2)); sub_80173E0(data->field_10, 0, gUnknown_082EDBC4, 8, 1, 4); PutWindowTilemap(data->field_10); CopyWindowToVram(data->field_10, 2); @@ -1075,7 +1075,7 @@ void sub_80134E8(u8 taskId) data->listWindowId = AddWindow(&gUnknown_082F0174); data->field_D = AddWindow(&gUnknown_082F017C); - FillWindowPixelBuffer(data->field_C, PALETTE_NUM_TO_FILL_VALUE(2)); + FillWindowPixelBuffer(data->field_C, PIXEL_FILL(2)); sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); PutWindowTilemap(data->field_C); CopyWindowToVram(data->field_C, 2); @@ -2155,7 +2155,7 @@ void sub_8014F48(u8 taskId) data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); sub_8018784(data->field_D); - FillWindowPixelBuffer(data->field_D, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1)); PutWindowTilemap(data->field_D); sub_80125BC(data->field_D); CopyWindowToVram(data->field_D, 2); diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 1f0fe69c9..08f193890 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -231,8 +231,8 @@ static void CB2_SaveFailedScreen(void) LoadPalette(gUnknown_0860F074, 0xF0, 0x20); DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[TEXT_WIN_ID], FALSE, 0x214, 0xE); DrawStdFrameWithCustomTileAndPalette(gSaveFailedWindowIds[CLOCK_WIN_ID], FALSE, 0x214, 0xE); - FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); // backwards? - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[CLOCK_WIN_ID], PIXEL_FILL(1)); // backwards? + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); CopyWindowToVram(gSaveFailedWindowIds[CLOCK_WIN_ID], 2); // again? CopyWindowToVram(gSaveFailedWindowIds[TEXT_WIN_ID], 1); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); @@ -265,19 +265,19 @@ static void CB2_WipeSave(void) { if (WipeSectors(gDamagedSaveSectors) != FALSE) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); SetMainCallback2(CB2_GameplayCannotBeContinued); return; } - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_CheckCompleted, 1, 0); HandleSavingData(gSaveFailedType); if (gDamagedSaveSectors != 0) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_SaveFailedCheckingBackup, 1, 0); } @@ -286,12 +286,12 @@ static void CB2_WipeSave(void) if (wipeTries == 3) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_BackupMemoryDamaged, 1, 0); } else { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); if (gGameContinueCallback == NULL) SaveFailedScreenTextPrint(gText_SaveCompleteGameCannotContinue, 1, 0); @@ -308,7 +308,7 @@ static void CB2_GameplayCannotBeContinued(void) if (gMain.newKeys & A_BUTTON) { - FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gSaveFailedWindowIds[TEXT_WIN_ID], PIXEL_FILL(1)); SaveFailedScreenTextPrint(gText_GamePlayCannotBeContinued, 1, 0); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_FadeAndReturnToTitleScreen); diff --git a/src/scrcmd.c b/src/scrcmd.c index b42b3e5f7..d60fb071c 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1519,7 +1519,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); - FillWindowPixelBuffer(gUnknown_03000F30, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(gUnknown_03000F30, PIXEL_FILL(1)); AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; diff --git a/src/script_menu.c b/src/script_menu.c index 409191803..afb1ef312 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -1639,27 +1639,27 @@ static void sub_80E2A94(u8 multichoiceId) switch (multichoiceId) { case 77: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 76: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 78: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 79: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 75: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; case 74: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[Menu_GetCursorPos()], 0, NULL, 2, 1, 3); break; } diff --git a/src/shop.c b/src/shop.c index 55a7a20f7..e03e2ab0c 100755 --- a/src/shop.c +++ b/src/shop.c @@ -545,7 +545,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(int item, bool8 onInit, s description = gText_QuitShopping; } - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); BuyMenuPrint(2, description, 3, 1, 0, 0); } @@ -1144,7 +1144,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) { s16 *data = gTasks[taskId].data; - FillWindowPixelBuffer(4, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(4, PIXEL_FILL(1)); PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF); ConvertIntToDecimalStringN(gStringVar1, tItemCount, 2, 2); StringExpandPlaceholders(gStringVar4, gText_xVar1); diff --git a/src/slot_machine.c b/src/slot_machine.c index 189bca80f..759704f2b 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -3036,7 +3036,7 @@ s16 sub_8102D5C(s16 a0) sub_81065DC(); AddWindow(&gUnknown_085A7444); PutWindowTilemap(1); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); task->data[0]++; } @@ -3052,7 +3052,7 @@ s16 sub_8102D5C(s16 a0) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); ClearWindowTilemap(1); CopyWindowToVram(1, 1); RemoveWindow(1); diff --git a/src/start_menu.c b/src/start_menu.c index 94b1c79fc..1be530d3c 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1232,7 +1232,7 @@ static void sub_80A0550(u8 taskId) switch (*step) { case 0: - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, diff --git a/src/starter_choose.c b/src/starter_choose.c index 3ffc8e286..4ed53539f 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -523,7 +523,7 @@ static void Task_StarterChoose3(u8 taskId) static void Task_StarterChoose4(u8 taskId) { PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0); @@ -579,7 +579,7 @@ static void CreateStarterPokemonLabel(u8 selection) winTemplate.tilemapTop = gStarterChoose_LabelCoords[selection][1]; sStarterChooseWindowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(sStarterChooseWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_FILL(0)); width = GetStringCenterAlignXOffset(7, text, 0x68); AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); @@ -600,7 +600,7 @@ static void CreateStarterPokemonLabel(u8 selection) static void sub_8134604(void) { - FillWindowPixelBuffer(sStarterChooseWindowId, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(sStarterChooseWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sStarterChooseWindowId); RemoveWindow(sStarterChooseWindowId); sStarterChooseWindowId = 0xFF; diff --git a/src/text.c b/src/text.c index dc28d71c8..2d286992d 100644 --- a/src/text.c +++ b/src/text.c @@ -1581,7 +1581,7 @@ u16 RenderText(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentChar++; return 2; case 15: - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; return 2; @@ -1702,7 +1702,7 @@ u16 RenderText(struct TextPrinter *textPrinter) case 2: if (TextPrinterWaitWithDownArrow(textPrinter)) { - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; textPrinter->state = 0; @@ -1724,12 +1724,12 @@ u16 RenderText(struct TextPrinter *textPrinter) int speed = gWindowVerticalScrollSpeeds[scrollSpeed]; if (textPrinter->scrollDistance < speed) { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, speed, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, speed, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance -= speed; } CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); diff --git a/src/trade.c b/src/trade.c index 5595cee94..d74b7dfc3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1418,7 +1418,7 @@ static void sub_80772A4(void) for (i = 0; i < 18; i++) { ClearWindowTilemap(i); - FillWindowPixelBuffer(i, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i, PIXEL_FILL(0)); } FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 15); @@ -2461,7 +2461,7 @@ static void sub_8078DBC(void) if (gUnknown_0203229C->tradeMenuCursorPosition < 6) { sub_8098858(1, 1, 14); - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, 2, gUnknown_0832DEAC); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); @@ -2724,7 +2724,7 @@ static void sub_8079408(void) for (i = 0; i < 4; i++) { - FillWindowPixelBuffer(i + 14, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(i + 14, PIXEL_FILL(0)); rbox_fill_rectangle(i + 14); } @@ -3256,7 +3256,7 @@ static void sub_807A0C4(void) static void sub_807A19C(u8 a0) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(1)); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized(0, 1, gUnknown_0832DEBC[a0], 0, 1, TEXT_SPEED_FF, NULL); sub_8098858(0, 20, 12); PutWindowTilemap(0); @@ -4185,7 +4185,7 @@ void sub_807B140(void) void sub_807B154(void) { - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(0, PIXEL_FILL(15)); PutWindowTilemap(0); CopyWindowToVram(0, 3); } @@ -4263,7 +4263,7 @@ static void sub_807B270(void) break; case 8: sub_807ACFC(1, 1); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(0, PIXEL_FILL(15)); PutWindowTilemap(0); CopyWindowToVram(0, 3); gMain.state++; @@ -4654,7 +4654,7 @@ static bool8 sub_807BBEC(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(0, PIXEL_FILL(15)); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -5146,7 +5146,7 @@ static bool8 sub_807CFC8(void) if (!gPaletteFade.active) { sub_807B62C(4); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(0, PIXEL_FILL(15)); CopyWindowToVram(0, 3); gUnknown_020322A0->state++; } @@ -6085,7 +6085,7 @@ void sub_807F19C(void) void sub_807F1A8(u8 windowId, const u8 *str, u8 speed) { - FillWindowPixelBuffer(windowId, PALETTE_NUM_TO_FILL_VALUE(15)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(15)); gUnknown_020322A0->unk_F6[0] = 15; gUnknown_020322A0->unk_F6[1] = 1; gUnknown_020322A0->unk_F6[2] = 6; diff --git a/src/trainer_card.c b/src/trainer_card.c index 8d244d656..4a3385559 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -350,7 +350,7 @@ static void sub_80C2760(u8 taskId) case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); sData->var_0++; } break; @@ -363,7 +363,7 @@ static void sub_80C2760(u8 taskId) sData->var_0++; break; case 3: - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); sub_80C4FF0(); sub_80C438C(2); sData->var_0++; @@ -1103,7 +1103,7 @@ static void PrintTimeOnCard(void) r10 = width + 30; r7 -= r10; - FillWindowPixelRect(1, PALETTE_NUM_TO_FILL_VALUE(0), r7, r4, r10, 15); + FillWindowPixelRect(1, PIXEL_FILL(0), r7, r4, r10, 15); ConvertIntToDecimalStringN(gStringVar4, hours, 1, 3); AddTextPrinterParameterized3(1, 1, r7, r4, gUnknown_0856FB0C, TEXT_SPEED_FF, gStringVar4); r7 += 18; @@ -1634,7 +1634,7 @@ static bool8 sub_80C4B08(struct Task* task) switch (sData->var_4) { case 0: - FillWindowPixelBuffer(1, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); break; case 1: @@ -1659,7 +1659,7 @@ static bool8 sub_80C4B08(struct Task* task) if (!sData->var_8) sub_80C474C(); else - FillWindowPixelBuffer(2, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(2, PIXEL_FILL(0)); break; case 4: if (sData->var_8) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 2873fdf8f..bf8482d69 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -609,7 +609,7 @@ void PrintOnTrainerHillRecordsWindow(void) u32 total, minutes, secondsWhole, secondsFraction; SetUpDataStruct(); - FillWindowPixelBuffer(0, PALETTE_NUM_TO_FILL_VALUE(0)); + FillWindowPixelBuffer(0, PIXEL_FILL(0)); x = GetStringCenterAlignXOffset(1, gText_TimeBoard, 0xD0); AddTextPrinterParameterized3(0, 1, x, 2, sRecordWinColors, TEXT_SPEED_FF, gText_TimeBoard); diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c index 6fbe6d04f..03e049d72 100644 --- a/src/unk_text_util_2.c +++ b/src/unk_text_util_2.c @@ -114,7 +114,7 @@ u16 Font6Func(struct TextPrinter *textPrinter) textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar++; return 2; case 15: - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); return 2; } break; @@ -146,7 +146,7 @@ u16 Font6Func(struct TextPrinter *textPrinter) case 2: if (TextPrinterWaitWithDownArrow(textPrinter)) { - FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x; textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y; textPrinter->state = 0; @@ -166,12 +166,12 @@ u16 Font6Func(struct TextPrinter *textPrinter) { if (textPrinter->scrollDistance < sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]) { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], PALETTE_NUM_TO_FILL_VALUE(textPrinter->printerTemplate.bgColor)); + ScrollWindow(textPrinter->printerTemplate.windowId, 0, sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance -= sUnknown_08616124[gSaveBlock2Ptr->optionsTextSpeed]; } CopyWindowToVram(textPrinter->printerTemplate.windowId, 2); -- cgit v1.2.3 From 4907ce6f7f5e8d73c32f6d8746ba64465502df03 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 02:50:40 -0500 Subject: Fully document move_tutor (formerly learn_move) --- src/battle_pyramid_bag.c | 12 +- src/decoration.c | 2 +- src/egg_hatch.c | 2 +- src/field_screen_effect.c | 26 +- src/field_specials.c | 6 +- src/item_menu.c | 4 +- src/learn_move.c | 833 --------------------------------------- src/list_menu.c | 4 +- src/move_tutor.c | 976 ++++++++++++++++++++++++++++++++++++++++++++++ src/overworld.c | 2 +- src/party_menu.c | 2 +- src/player_pc.c | 6 +- src/pokeblock.c | 10 +- src/roulette.c | 2 +- src/secret_base.c | 4 +- src/shop.c | 2 +- src/strings.c | 16 +- src/trade.c | 2 +- src/walda_phrase.c | 2 +- 19 files changed, 1028 insertions(+), 885 deletions(-) delete mode 100644 src/learn_move.c create mode 100644 src/move_tutor.c (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 1f0672dcb..ed25c4a56 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -576,7 +576,7 @@ static void SetBagItemsListTemplate(void) } StringCopy(gPyramidBagResources->itemStrings[i], gText_CloseBag); gPyramidBagResources->bagListItems[i].name = gPyramidBagResources->itemStrings[i]; - gPyramidBagResources->bagListItems[i].id = LIST_B_PRESSED; + gPyramidBagResources->bagListItems[i].id = LIST_CANCEL; gMultiuseListMenuTemplate = gUnknown_0861F2C0; gMultiuseListMenuTemplate.totalItems = gPyramidBagResources->listMenuCount; gMultiuseListMenuTemplate.items = gPyramidBagResources->bagListItems; @@ -607,7 +607,7 @@ static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen if (gPyramidBagResources->unk814 == 0xFF) { sub_81C6FF8(gPyramidBagResources->unk815 ^ 1); - if (itemIndex != LIST_B_PRESSED) + if (itemIndex != LIST_CANCEL) ShowItemImage(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagResources->unk815); else ShowItemImage(0xFFFF, gPyramidBagResources->unk815); @@ -619,7 +619,7 @@ static void PyramidBagMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) { s32 xAlign; - if (itemIndex == LIST_B_PRESSED) + if (itemIndex == LIST_CANCEL) return; if (gPyramidBagResources->unk814 != 0xFF) @@ -641,7 +641,7 @@ static void PrintItemQuantity(u8 windowId, s32 itemIndex, u8 y) static void PrintItemDescription(s32 listMenuId) { const u8 *desc; - if (listMenuId != LIST_B_PRESSED) + if (listMenuId != LIST_CANCEL) { desc = ItemId_GetDescription(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][listMenuId]); } @@ -859,7 +859,7 @@ static void Task_HandlePyramidBagInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_ItemId = 0; sub_81C5B14(taskId); @@ -1293,7 +1293,7 @@ static void Task_ItemSwapHandleInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) PerformItemSwap(taskId); diff --git a/src/decoration.c b/src/decoration.c index fb6cbb10a..3c9333625 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -939,7 +939,7 @@ void sub_812764C(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); SecretBasePC_SelectedDecorActions[data[11]][1](taskId); break; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index ba1020669..e5280a136 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -469,7 +469,7 @@ static void Task_EggHatch(u8 taskID) { CleanupOverworldWindowsAndTilemaps(); SetMainCallback2(CB2_EggHatch_0); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyTask(taskID); } } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index e7476dea3..4027fdffc 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -58,7 +58,7 @@ static void task0A_fade_n_map_maybe(u8); static void sub_808115C(u8); static void palette_bg_faded_fill_white(void); static void sub_80AF438(u8); -static bool32 sub_80AF71C(void); +static bool32 WaitForWeatherFadeIn(void); static void task0A_mpl_807E31C(u8 taskId); static void sub_80AFA0C(u8 taskId); static void sub_80AFA88(u8 taskId); @@ -133,7 +133,7 @@ static void sub_80AF0F4(u8 arg) static void task0A_nop_for_a_while(u8 taskId) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) DestroyTask(taskId); } @@ -147,14 +147,14 @@ void sub_80AF128(void) static void task0A_asap_script_env_2_enable_and_set_ctx_running(u8 taskID) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { DestroyTask(taskID); EnableBothScriptContexts(); } } -void sub_80AF168(void) +void FieldCallback_ReturnToEventScript2(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); @@ -187,7 +187,7 @@ static void task_mpl_807DD60(u8 taskId) } break; case 2: - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { ScriptContext2_Disable(); DestroyTask(taskId); @@ -227,7 +227,7 @@ static void sub_80AF234(u8 taskId) } break; case 2: - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { sub_8009F18(); ScriptContext2_Disable(); @@ -347,7 +347,7 @@ static void sub_80AF438(u8 taskId) task->data[0] = 1; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { u8 eventObjId; sub_80AF0F4(1); @@ -395,7 +395,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId) task->data[0] = 1; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { u8 eventObjId; sub_80AF0F4(1); @@ -428,7 +428,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId) gTasks[taskId].data[0]++; break; case 1: - if (sub_80AF71C()) + if (WaitForWeatherFadeIn()) { UnfreezeEventObjects(); ScriptContext2_Disable(); @@ -440,7 +440,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId) static void sub_80AF660(u8 taskId) { - if (sub_80AF71C() == TRUE) + if (WaitForWeatherFadeIn() == TRUE) { DestroyTask(taskId); CreateTask(sub_809FA34, 80); @@ -462,7 +462,7 @@ bool8 sub_80AF6A4(void) static void task_mpl_807E3C8(u8 taskId) { - if (sub_80AF71C() == 1) + if (WaitForWeatherFadeIn() == 1) { ScriptContext2_Disable(); DestroyTask(taskId); @@ -490,7 +490,7 @@ static bool32 PaletteFadeActive(void) return gPaletteFade.active; } -static bool32 sub_80AF71C(void) +static bool32 WaitForWeatherFadeIn(void) { if (IsWeatherNotFadingIn() == TRUE) return TRUE; @@ -1021,7 +1021,7 @@ static void task0A_mpl_807E31C(u8 taskId) gTasks[taskId].data[0]++; break; case 1: - if (sub_80AF71C() && sub_808D1B4() != TRUE) + if (WaitForWeatherFadeIn() && sub_808D1B4() != TRUE) { UnfreezeEventObjects(); ScriptContext2_Disable(); diff --git a/src/field_specials.c b/src/field_specials.c index 391985582..0122dc32c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -2610,7 +2610,7 @@ static void sub_813A4EC(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: gSpecialVar_Result = 0x7F; PlaySE(SE_SELECT); sub_813A570(taskId); @@ -2690,10 +2690,10 @@ static void sub_813A664(u8 taskId) static void sub_813A694(u8 taskId) { static const struct ScrollArrowsTemplate gUnknown_085B3030 = { - .firstArrowType = 2, + .firstArrowType = SCROLL_ARROW_UP, .firstX = 0, .firstY = 0, - .secondArrowType = 3, + .secondArrowType = SCROLL_ARROW_DOWN, .secondX = 0, .secondY = 0, .fullyUpThreshold = 0, diff --git a/src/item_menu.c b/src/item_menu.c index 7b48a2d5d..a3a0d8080 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1108,7 +1108,7 @@ void Task_BagMenu(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: if (gUnknown_0203CE58.location == 5) { PlaySE(SE_HAZURE); @@ -1324,7 +1324,7 @@ void sub_81AC3C0(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) sub_81AC498(taskId); diff --git a/src/learn_move.c b/src/learn_move.c deleted file mode 100644 index 7a6916013..000000000 --- a/src/learn_move.c +++ /dev/null @@ -1,833 +0,0 @@ -#include "global.h" -#include "main.h" -#include "battle.h" -#include "bg.h" -#include "contest_effect.h" -#include "data2.h" -#include "event_data.h" -#include "field_screen_effect.h" -#include "gpu_regs.h" -#include "learn_move.h" -#include "list_menu.h" -#include "alloc.h" -#include "menu.h" -#include "menu_helpers.h" -#include "overworld.h" -#include "palette.h" -#include "pokemon_summary_screen.h" -#include "pokenav.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "constants/rgb.h" -#include "constants/songs.h" - -static EWRAM_DATA struct -{ - u8 state; - u8 spriteIds[16]; /*0x001*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[20]; /*0x048*/ - u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 listMenuTask; /*0x112*/ - u8 scrollArrowTaskId1; /*0x113*/ - u8 scrollArrowTaskId2; /*0x114*/ - u16 scrollOffset; /*0x116*/ -} *sLearnMoveStruct = {0}; - -static EWRAM_DATA struct { - u16 listOffset; - u16 listRow; - u8 showContestInfo; -} sLearnMoveStruct2 = {0}; - -const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); -const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); - -const struct OamData gUnknown_085CEB98 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA0 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct OamData gUnknown_085CEBA8 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct SpriteSheet gUnknown_085CEBB0 = -{ - .data = gUnknown_085CEA18, - .size = 0x180, - .tag = 5525 -}; - -const struct SpritePalette gUnknown_085CEBB8 = -{ - .data = gUnknown_085CE9F8, - .tag = 5526 -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBC0 = -{ - .firstArrowType = 0, - .firstX = 27, - .firstY = 16, - .secondArrowType = 1, - .secondX = 117, - .secondY = 16, - .fullyUpThreshold = -1, - .fullyDownThreshold = -1, - .tileTag = 5325, - .palTag = 5325, - .palNum = 0, -}; - -const struct ScrollArrowsTemplate gUnknown_085CEBD0 = -{ - .firstArrowType = 2, - .firstX = 192, - .firstY = 8, - .secondArrowType = 3, - .secondX = 192, - .secondY = 104, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 5425, - .palTag = 5425, - .palNum = 0, -}; - -const union AnimCmd gUnknown_085CEBE0[] = -{ - ANIMCMD_FRAME(8, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBE8[] = -{ - ANIMCMD_FRAME(9, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF0[] = -{ - ANIMCMD_FRAME(10, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd gUnknown_085CEBF8[] = -{ - ANIMCMD_FRAME(11, 5, FALSE, FALSE), - ANIMCMD_END -}; - -const union AnimCmd *const gUnknown_085CEC00[] = -{ - gUnknown_085CEBE0, - gUnknown_085CEBE8, - gUnknown_085CEBF0, - gUnknown_085CEBF8, -}; - -const struct SpriteTemplate gUnknown_085CEC10 = -{ - .tileTag = 5525, - .paletteTag = 5526, - .oam = &gUnknown_085CEB98, - .anims = gUnknown_085CEC00, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -const struct BgTemplate gUnknown_085CEC28[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - { - .bg = 1, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0, - }, -}; - -static void LearnMoveMain(void); -static void CreateMenuItemsList(void); -static void CreateHearts(void); -static void CB2_Main(void); -static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); -static void CB2_InitLearnMoveReturnFromSelectMove(void); -static void InitBGs(void); -static void AddScrollArrows(void); -static void HandleInput(u8); -static void ShowTeachMoveText(u8); -static s32 GetCurrentItemId(void); -static void FreeListMenuResources(void); -static void RemoveScrollArrows(void); -static void HideSpritesAndPrintTeachText(bool8); - -static void VBlankCB_LearnMove(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -void TeachMoveTutorMove(void) -{ - ScriptContext2_Enable(); - CreateTask(Task_WaitForFadeOut, 0xA); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); -} - -static void Task_WaitForFadeOut(u8 taskId) -{ - if (!gPaletteFade.active) - { - SetMainCallback2(CB2_InitLearnMove); - gFieldCallback = sub_80AF168; - DestroyTask(taskId); - } -} - -static void CB2_InitLearnMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(0); - - sLearnMoveStruct2.listOffset = 0; - sLearnMoveStruct2.listRow = 0; - sLearnMoveStruct2.showContestInfo = FALSE; - - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void CB2_InitLearnMoveReturnFromSelectMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sLearnMoveStruct = AllocZeroed(sizeof(*sLearnMoveStruct)); - sLearnMoveStruct->state = 28; - sLearnMoveStruct->partyMon = gSpecialVar_0x8004; - sLearnMoveStruct->moveSlot = gSpecialVar_0x8005; - SetVBlankCallback(VBlankCB_LearnMove); - - InitBGs(); - sub_81D2824(sLearnMoveStruct2.showContestInfo); - CreateMenuItemsList(); - - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); - CreateHearts(); - - sLearnMoveStruct->listMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sLearnMoveStruct2.listOffset, sLearnMoveStruct2.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_Main); -} - -static void InitBGs(void) -{ - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085CEC28, 2); - ResetAllBgsCoordinates(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | - DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, 0); -} - -static void CB2_Main(void) -{ - LearnMoveMain(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); -} - -static void sub_816084C(const u8 *src) -{ - StringExpandPlaceholders(gStringVar4, src); - sub_81D2BF4(gStringVar4); -} - -static void LearnMoveMain(void) -{ - switch (sLearnMoveStruct->state) - { - case 0: - sLearnMoveStruct->state++; - HideSpritesAndPrintTeachText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 1: - if (!gPaletteFade.active) - { - sLearnMoveStruct->state = 4; - } - break; - case 2: - sLearnMoveStruct->state++; - break; - case 3: - HideSpritesAndPrintTeachText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 4: - HandleInput(FALSE); - return; - case 5: - ShowTeachMoveText(FALSE); - sLearnMoveStruct->state++; - AddScrollArrows(); - break; - case 6: - HandleInput(TRUE); - break; - case 8: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 9: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - if (GiveMoveToMon(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId()) != 0xFFFF) - { - sub_816084C(gText_PkmnLearnedMove4); - gSpecialVar_0x8004 = 1; - sLearnMoveStruct->state = 31; - } - else - { - sLearnMoveStruct->state = 16; - } - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 12: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 13: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - gSpecialVar_0x8004 = selection; - sLearnMoveStruct->state = 14; - } - else if (selection == -1 || selection == 1) - { - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - } - break; - case 16: - sub_816084C(gText_PkmnTryingToLearnMove); - sLearnMoveStruct->state++; - break; - case 17: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state = 18; - } - break; - case 18: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sub_816084C(gText_WhichMoveToForget2); - sLearnMoveStruct->state = 19; - } - else if (var == -1 || var == 1) - { - sLearnMoveStruct->state = 24; - } - } - break; - case 24: - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_StopTryingToTeachMove); - sLearnMoveStruct->state++; - break; - case 25: - if (!sub_81D2C3C()) - { - sub_81D2C50(); - sLearnMoveStruct->state++; - } - break; - case 26: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sLearnMoveStruct->state = 27; - } - else if (var == -1 || var == 1) - { - // What's the point? It gets set to 16, anyway. - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - sLearnMoveStruct->state = 16; - } - } - break; - case 27: - if (!sub_81D2C3C()) - { - FillWindowPixelBuffer(3, 0x11); - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - sLearnMoveStruct->state = 3; - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - sLearnMoveStruct->state = 5; - } - } - break; - case 19: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 20; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - } - break; - case 20: - if (!gPaletteFade.active) - { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sLearnMoveStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentItemId()); - FreeListMenuResources(); - } - break; - case 21: - if (!sub_81D2C3C()) - { - sLearnMoveStruct->state = 14; - } - break; - case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case 14: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sLearnMoveStruct->state++; - break; - case 15: - if (!gPaletteFade.active) - { - FreeListMenuResources(); - SetMainCallback2(CB2_ReturnToField); - } - break; - case 28: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sLearnMoveStruct->state++; - if (sLearnMoveStruct2.showContestInfo == FALSE) - { - HideSpritesAndPrintTeachText(TRUE); - } - else if (sLearnMoveStruct2.showContestInfo == TRUE) - { - ShowTeachMoveText(TRUE); - } - RemoveScrollArrows(); - CopyWindowToVram(3, 2); - break; - case 29: - if (!gPaletteFade.active) - { - if (sLearnMoveStruct->moveSlot == MAX_MON_MOVES) - { - sLearnMoveStruct->state = 24; - } - else - { - u16 moveId = GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_MOVE1 + sLearnMoveStruct->moveSlot); - - StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->moveSlot); - SetMonMoveSlot(&gPlayerParty[sLearnMoveStruct->partyMon], GetCurrentItemId(), sLearnMoveStruct->moveSlot); - StringCopy(gStringVar2, gMoveNames[GetCurrentItemId()]); - sub_816084C(gText_12AndPoof); - sLearnMoveStruct->state = 30; - gSpecialVar_0x8004 = 1; - } - } - break; - case 30: - if (!sub_81D2C3C()) - { - sub_816084C(gText_PkmnForgotMoveAndLearnedNew); - sLearnMoveStruct->state = 31; - PlayFanfare(MUS_FANFA1); - } - break; - case 31: - if (!sub_81D2C3C()) - { - PlayFanfare(MUS_FANFA1); - sLearnMoveStruct->state = 32; - } - break; - case 32: - if (IsFanfareTaskInactive()) - { - sLearnMoveStruct->state = 33; - } - break; - case 33: - if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - sLearnMoveStruct->state = 14; - } - break; - } -} - -static void FreeListMenuResources(void) -{ - RemoveScrollArrows(); - DestroyListMenuTask(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - FreeAllWindowBuffers(); - FREE_AND_SET_NULL(sLearnMoveStruct); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -static void HideSpritesAndPrintTeachText(bool8 a) -{ - s32 i; - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - - if (!a) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void HandleInput(bool8 showContest) -{ - s32 itemId = ListMenu_ProcessInput(sLearnMoveStruct->listMenuTask); - ListMenuGetScrollAndRow(sLearnMoveStruct->listMenuTask, &sLearnMoveStruct2.listOffset, &sLearnMoveStruct2.listRow); - - switch (itemId) - { - case LIST_NOTHING_CHOSEN: - if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) - { - break; - } - - PlaySE(SE_SELECT); - - if (showContest == FALSE) - { - PutWindowTilemap(1); - sLearnMoveStruct->state = 5; - sLearnMoveStruct2.showContestInfo = TRUE; - } - else - { - PutWindowTilemap(0); - sLearnMoveStruct->state = 3; - sLearnMoveStruct2.showContestInfo = FALSE; - } - - schedule_bg_copy_tilemap_to_vram(1); - ShowHideHearts(GetCurrentItemId()); - break; - case LIST_B_PRESSED: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 12; - StringExpandPlaceholders(gStringVar4, gText_GiveUpTeachingNewMove); - sub_81D2BF4(gStringVar4); - break; - default: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sLearnMoveStruct->state = 8; - StringCopy(gStringVar2, gMoveNames[itemId]); - StringExpandPlaceholders(gStringVar4, gText_TeachX); - sub_81D2BF4(gStringVar4); - break; - } -} - -static s32 GetCurrentItemId(void) -{ - return sLearnMoveStruct->menuItems[sLearnMoveStruct2.listRow + sLearnMoveStruct2.listOffset].id; -} - -static void ShowTeachMoveText(bool8 showContest) -{ - if (showContest == FALSE) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void CreateHearts(void) -{ - int i; - - sLearnMoveStruct->scrollArrowTaskId2 = -1; - sLearnMoveStruct->scrollArrowTaskId1 = -1; - AddScrollArrows(); - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } - - for (i = 0; i < 8; i++) - { - sLearnMoveStruct->spriteIds[i + 8] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } -} - -static void AddScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 == 0xFF) - { - sLearnMoveStruct->scrollArrowTaskId2 = AddScrollIndicatorArrowPair(&gUnknown_085CEBC0, &sLearnMoveStruct->scrollOffset); - } - - if (sLearnMoveStruct->scrollArrowTaskId1 == 0xFF) - { - gTempScrollArrowTemplate = gUnknown_085CEBD0; - gTempScrollArrowTemplate.fullyDownThreshold = sLearnMoveStruct->numMenuChoices - sLearnMoveStruct->numToShowAtOnce; - sLearnMoveStruct->scrollArrowTaskId1 = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sLearnMoveStruct2.listOffset); - } -} - -static void RemoveScrollArrows(void) -{ - if (sLearnMoveStruct->scrollArrowTaskId2 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId2); - sLearnMoveStruct->scrollArrowTaskId2 = 0xFF; - } - - if (sLearnMoveStruct->scrollArrowTaskId1 != 0xFF) - { - RemoveScrollIndicatorArrowPair(sLearnMoveStruct->scrollArrowTaskId1); - sLearnMoveStruct->scrollArrowTaskId1 = 0xFF; - } -} - -static void CreateMenuItemsList(void) -{ - s32 i; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - - sLearnMoveStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sLearnMoveStruct->partyMon], sLearnMoveStruct->movesToLearn); - - for (i = 0; i < sLearnMoveStruct->numMenuChoices; i++) - { - sLearnMoveStruct->menuItems[i].name = gMoveNames[sLearnMoveStruct->movesToLearn[i]]; - sLearnMoveStruct->menuItems[i].id = sLearnMoveStruct->movesToLearn[i]; - } - - GetMonData(&gPlayerParty[sLearnMoveStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].name = gText_Cancel; - sLearnMoveStruct->menuItems[sLearnMoveStruct->numMenuChoices].id = LIST_B_PRESSED; - sLearnMoveStruct->numMenuChoices++; - sLearnMoveStruct->numToShowAtOnce = sub_81D28C8(sLearnMoveStruct->menuItems, sLearnMoveStruct->numMenuChoices); -} - -void ShowHideHearts(s32 item) -{ - u16 numHearts; - u16 i; - - if (!sLearnMoveStruct2.showContestInfo || item == LIST_B_PRESSED) - { - for (i = 0; i < 16; i++) - { - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = TRUE; - } - } - else - { - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 1); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i]], 0); - } - gSprites[sLearnMoveStruct->spriteIds[i]].invisible = FALSE; - } - - numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 3); - } - else - { - StartSpriteAnim(&gSprites[sLearnMoveStruct->spriteIds[i + 8]], 2); - } - gSprites[sLearnMoveStruct->spriteIds[i + 8]].invisible = FALSE; - } - } -} diff --git a/src/list_menu.c b/src/list_menu.c index 7a9547661..930e87816 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -341,7 +341,7 @@ s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenu } if (gMain.newKeys & B_BUTTON) { - sMysteryGiftLinkMenu.currItemId = LIST_B_PRESSED; + sMysteryGiftLinkMenu.currItemId = LIST_CANCEL; sMysteryGiftLinkMenu.state = 2; } if (sMysteryGiftLinkMenu.state == 2) @@ -416,7 +416,7 @@ s32 ListMenu_ProcessInput(u8 listTaskId) } else if (gMain.newKeys & B_BUTTON) { - return LIST_B_PRESSED; + return LIST_CANCEL; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { diff --git a/src/move_tutor.c b/src/move_tutor.c new file mode 100644 index 000000000..89291a008 --- /dev/null +++ b/src/move_tutor.c @@ -0,0 +1,976 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "bg.h" +#include "contest_effect.h" +#include "data2.h" +#include "event_data.h" +#include "field_screen_effect.h" +#include "gpu_regs.h" +#include "move_tutor.h" +#include "list_menu.h" +#include "alloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_summary_screen.h" +#include "pokenav.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +/* + * Move tutor state machine + * ------------------------ + * + * Entry point: TeachMoveTutorMove + * + * TeachMoveTutorMove + * Task_WaitForFadeOut + * CB2_InitLearnMove + * - Creates moveDisplayArrowTask to listen to right/left buttons. + * - Creates moveListScrollArrowTask to listen to up/down buttons. + * - Whenever the selected move changes (and once on init), the MoveTutorCursorCallback + * is called (see gMoveTutorMovesListTemplate). That callback will reload the contest + * display and battle display windows for the new move. Both are always loaded in + * memory, but only the currently active one is copied to VRAM. The exception to this + * is the appeal and jam hearts, which are sprites. MoveTutorShowHideHearts is called + * while reloading the contest display to control them. + * DoMoveTutorMain: MENU_STATE_FADE_TO_BLACK + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FADE + * - Go to MENU_STATE_IDLE_BATTLE_MODE + * + * DoMoveTutorMain: MENU_STATE_SETUP_BATTLE_MODE + * DoMoveTutorMain: MENU_STATE_IDLE_BATTLE_MODE + * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. + * - If the player pressed left or right, swap the move display window to contest mode, + * and go to MENU_STATE_SETUP_CONTEST_MODE. + * + * DoMoveTutorMain: MENU_STATE_SETUP_CONTEST_MODE + * DoMoveTutorMain: MENU_STATE_IDLE_CONTEST_MODE + * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT + * - If the player pressed left or right, swap the move display window to battle mode, + * and go to MENU_STATE_SETUP_BATTLE_MODE. + * + * DoMoveTutorMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT + * DoMoveTutorMain: MENU_STATE_TEACH_MOVE_CONFIRM + * - Wait for the player to confirm. + * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. + * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to + * MENU_STATE_PRINT_TEXT_THEN_FANFARE. + * - If confirmed and the pokemon doesn't have an empty move slot, go to + * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveTutorMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN + * DoMoveTutorMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE + * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. + * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING + * + * DoMoveTutorMain: MENU_STATE_PRINT_STOP_TEACHING + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_STOP_TEACHING + * DoMoveTutorMain: MENU_STATE_CONFIRM_STOP_TEACHING + * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. + * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveTutorMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT + * DoMoveTutorMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN + * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to + * CB2_InitLearnMoveReturnFromSelectMove. + * + * DoMoveTutorMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE + * DoMoveTutorMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FANFARE + * DoMoveTutorMain: MENU_STATE_WAIT_FOR_A_BUTTON + * DoMoveTutorMain: MENU_STATE_FADE_AND_RETURN + * DoMoveTutorMain: MENU_STATE_RETURN_TO_FIELD + * - Clean up and go to CB2_ReturnToField. + * + * DoMoveTutorMain: MENU_STATE_PRINT_GIVE_UP_PROMPT + * DoMoveTutorMain: MENU_STATE_GIVE_UP_CONFIRM + * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. + * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or + * MENU_STATE_SETUP_CONTEST_MODE. + * + * CB2_InitLearnMoveReturnFromSelectMove: + * - Do most of the same stuff as CB2_InitLearnMove. + * DoMoveTutorMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN + * DoMoveTutorMain: MENU_STATE_TRY_OVERWRITE_MOVE + * - If any of the pokemon's existing moves were chosen, overwrite the move and + * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. + * - If the chosen move is the one the player selected before the summary screen, + * go to MENU_STATE_PRINT_STOP_TEACHING. + * + */ + +#define MENU_STATE_FADE_TO_BLACK 0 +#define MENU_STATE_WAIT_FOR_FADE 1 +#define MENU_STATE_UNREACHABLE 2 +#define MENU_STATE_SETUP_BATTLE_MODE 3 +#define MENU_STATE_IDLE_BATTLE_MODE 4 +#define MENU_STATE_SETUP_CONTEST_MODE 5 +#define MENU_STATE_IDLE_CONTEST_MODE 6 +// State 7 is skipped. +#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 +#define MENU_STATE_TEACH_MOVE_CONFIRM 9 +// States 10 and 11 are skipped. +#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 +#define MENU_STATE_GIVE_UP_CONFIRM 13 +#define MENU_STATE_FADE_AND_RETURN 14 +#define MENU_STATE_RETURN_TO_FIELD 15 +#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 +#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 +#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 +#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 +#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 +// States 21, 22, and 23 are skipped. +#define MENU_STATE_PRINT_STOP_TEACHING 24 +#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 +#define MENU_STATE_CONFIRM_STOP_TEACHING 26 +#define MENU_STATE_CHOOSE_SETUP_STATE 27 +#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 +#define MENU_STATE_TRY_OVERWRITE_MOVE 29 +#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 +#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 +#define MENU_STATE_WAIT_FOR_FANFARE 32 +#define MENU_STATE_WAIT_FOR_A_BUTTON 33 + +// The different versions of hearts are selected using animation +// commands. +#define APPEAL_HEART_EMPTY 0 +#define APPEAL_HEART_FULL 1 +#define JAM_HEART_EMPTY 2 +#define JAM_HEART_FULL 3 + +static EWRAM_DATA struct +{ + u8 state; + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[20]; /*0x048*/ + u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ +} *sMoveTutorStruct = {0}; + +static EWRAM_DATA struct { + u16 listOffset; + u16 listRow; + bool8 showContestInfo; +} sMoveTutorMenuSate = {0}; + +static const u16 sMoveTutorPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); + +// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own +// arrow sprites. +static const u8 sMoveTutorSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); + +static const struct OamData sHeartSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam1 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam2 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteSheet sMoveTutorSpriteSheet = +{ + .data = sMoveTutorSpriteSheetData, + .size = 0x180, + .tag = 5525 +}; + +static const struct SpritePalette sMoveTutorPalette = +{ + .data = sMoveTutorPaletteData, + .tag = 5526 +}; + +static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_LEFT, + .firstX = 27, + .firstY = 16, + .secondArrowType = SCROLL_ARROW_RIGHT, + .secondX = 117, + .secondY = 16, + .fullyUpThreshold = -1, + .fullyDownThreshold = -1, + .tileTag = 5325, + .palTag = 5325, + .palNum = 0, +}; + +static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 192, + .firstY = 8, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 192, + .secondY = 104, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 5425, + .palTag = 5425, + .palNum = 0, +}; + +static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = +{ + ANIMCMD_FRAME(8, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_AppealFullFrame[] = +{ + ANIMCMD_FRAME(9, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamEmptyFrame[] = +{ + ANIMCMD_FRAME(10, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamFullFrame[] = +{ + ANIMCMD_FRAME(11, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd *const sHeartSpriteAnimationCommands[] = +{ + [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, + [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, + [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, + [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, +}; + +static const struct SpriteTemplate sConstestMoveHeartSprite = +{ + .tileTag = 5525, + .paletteTag = 5526, + .oam = &sHeartSpriteOamData, + .anims = sHeartSpriteAnimationCommands, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct BgTemplate sMoveTutorMenuBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +static void DoMoveTutorMain(void); +static void CreateLearnableMovesList(void); +static void CreateUISprites(void); +static void CB2_MoveTutorMain(void); +static void Task_WaitForFadeOut(u8 taskId); +static void CB2_InitLearnMove(void); +static void CB2_InitLearnMoveReturnFromSelectMove(void); +static void InitMoveTutorBackgroundLayers(void); +static void AddScrollArrows(void); +static void HandleInput(u8); +static void ShowTeachMoveText(u8); +static s32 GetCurrentSelectedMove(void); +static void FreeMoveTutorResources(void); +static void RemoveScrollArrows(void); +static void HideHeartSpritesAndShowTeachMoveText(bool8); + +static void VBlankCB_MoveTutor(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +// Script arguments: The pokemon to teach is in VAR_0x8004 +void TeachMoveTutorMove(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_WaitForFadeOut, 10); + // Fade to black + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); +} + +static void Task_WaitForFadeOut(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitLearnMove); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskId); + } +} + +static void CB2_InitLearnMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); + sMoveTutorStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_MoveTutor); + + InitMoveTutorBackgroundLayers(); + InitMoveTutorWindows(FALSE); + + sMoveTutorMenuSate.listOffset = 0; + sMoveTutorMenuSate.listRow = 0; + sMoveTutorMenuSate.showContestInfo = FALSE; + + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveTutorSpriteSheet); + LoadSpritePalette(&sMoveTutorPalette); + CreateUISprites(); + + sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveTutorMain); +} + +static void CB2_InitLearnMoveReturnFromSelectMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); + sMoveTutorStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; + sMoveTutorStruct->partyMon = gSpecialVar_0x8004; + sMoveTutorStruct->moveSlot = gSpecialVar_0x8005; + SetVBlankCallback(VBlankCB_MoveTutor); + + InitMoveTutorBackgroundLayers(); + InitMoveTutorWindows(sMoveTutorMenuSate.showContestInfo); + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveTutorSpriteSheet); + LoadSpritePalette(&sMoveTutorPalette); + CreateUISprites(); + + sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveTutorMain); +} + +static void InitMoveTutorBackgroundLayers(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sMoveTutorMenuBackgroundTemplates, ARRAY_COUNT(sMoveTutorMenuBackgroundTemplates)); + ResetAllBgsCoordinates(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void CB2_MoveTutorMain(void) +{ + DoMoveTutorMain(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void FormatAndPrintText(const u8 *src) +{ + StringExpandPlaceholders(gStringVar4, src); + MoveTutorPrintText(gStringVar4); +} + +// See the state machine doc at the top of the file. +static void DoMoveTutorMain(void) +{ + switch (sMoveTutorStruct->state) + { + case MENU_STATE_FADE_TO_BLACK: + sMoveTutorStruct->state++; + HideHeartSpritesAndShowTeachMoveText(FALSE); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_WAIT_FOR_FADE: + if (!gPaletteFade.active) + { + sMoveTutorStruct->state = MENU_STATE_IDLE_BATTLE_MODE; + } + break; + case MENU_STATE_UNREACHABLE: + sMoveTutorStruct->state++; + break; + case MENU_STATE_SETUP_BATTLE_MODE: + + HideHeartSpritesAndShowTeachMoveText(FALSE); + sMoveTutorStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_BATTLE_MODE: + HandleInput(FALSE); + break; + case MENU_STATE_SETUP_CONTEST_MODE: + ShowTeachMoveText(FALSE); + sMoveTutorStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_CONTEST_MODE: + HandleInput(TRUE); + break; + case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_TEACH_MOVE_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + if (GiveMoveToMon(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) + { + FormatAndPrintText(gText_MoveTutorPkmnLearnedMove); + gSpecialVar_0x8004 = TRUE; + sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + } + else + { + sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + else if (selection == MENU_B_PRESSED || selection == 1) + { + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_GIVE_UP_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_GIVE_UP_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + gSpecialVar_0x8004 = FALSE; + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + else if (selection == -1 || selection == 1) + { + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: + FormatAndPrintText(gText_MoveTutorPkmnTryingToLearnMove); + sMoveTutorStruct->state++; + break; + case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; + } + break; + case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + FormatAndPrintText(gText_MoveTutorWhichMoveToForget); + sMoveTutorStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; + } + else if (var == -1 || var == 1) + { + sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + } + break; + case MENU_STATE_PRINT_STOP_TEACHING: + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveTutorStopTryingToTeachMove); + sMoveTutorStruct->state++; + break; + case MENU_STATE_WAIT_FOR_STOP_TEACHING: + if (!MoveTutorRunTextPrinters()) + { + MoveTutorCreateYesNoMenu(); + sMoveTutorStruct->state++; + } + break; + case MENU_STATE_CONFIRM_STOP_TEACHING: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + sMoveTutorStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; + } + else if (var == MENU_B_PRESSED || var == 1) + { + // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + break; + case MENU_STATE_CHOOSE_SETUP_STATE: + if (!MoveTutorRunTextPrinters()) + { + FillWindowPixelBuffer(3, 0x11); + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + break; + case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: + if (!MoveTutorRunTextPrinters()) + { + sMoveTutorStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + break; + case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: + if (!gPaletteFade.active) + { + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveTutorStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); + FreeMoveTutorResources(); + } + break; + case 21: + if (!MoveTutorRunTextPrinters()) + { + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + case 22: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_FADE_AND_RETURN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sMoveTutorStruct->state++; + break; + case MENU_STATE_RETURN_TO_FIELD: + if (!gPaletteFade.active) + { + FreeMoveTutorResources(); + SetMainCallback2(CB2_ReturnToField); + } + break; + case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sMoveTutorStruct->state++; + if (sMoveTutorMenuSate.showContestInfo == FALSE) + { + HideHeartSpritesAndShowTeachMoveText(TRUE); + } + else if (sMoveTutorMenuSate.showContestInfo == TRUE) + { + ShowTeachMoveText(TRUE); + } + RemoveScrollArrows(); + CopyWindowToVram(3, 2); + break; + case MENU_STATE_TRY_OVERWRITE_MOVE: + if (!gPaletteFade.active) + { + if (sMoveTutorStruct->moveSlot == MAX_MON_MOVES) + { + sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_MOVE1 + sMoveTutorStruct->moveSlot); + + StringCopy(gStringVar3, gMoveNames[moveId]); + RemoveMonPPBonus(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->moveSlot); + SetMonMoveSlot(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove(), sMoveTutorStruct->moveSlot); + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveTutorAndPoof); + sMoveTutorStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; + gSpecialVar_0x8004 = TRUE; + } + } + break; + case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: + if (!MoveTutorRunTextPrinters()) + { + FormatAndPrintText(gText_MoveTutorPkmnForgotMoveAndLearnedNew); + sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + PlayFanfare(MUS_FANFA1); + } + break; + case MENU_STATE_PRINT_TEXT_THEN_FANFARE: + if (!MoveTutorRunTextPrinters()) + { + PlayFanfare(MUS_FANFA1); + sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_FANFARE; + } + break; + case MENU_STATE_WAIT_FOR_FANFARE: + if (IsFanfareTaskInactive()) + { + sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; + } + break; + case MENU_STATE_WAIT_FOR_A_BUTTON: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + } +} + +static void FreeMoveTutorResources(void) +{ + RemoveScrollArrows(); + DestroyListMenuTask(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sMoveTutorStruct); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +// Note: The hearts are already made invisible by MoveTutorShowHideHearts, +// which is called whenever the cursor in either list changes. +static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) +{ + s32 i; + + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } + + if (!onlyHideSprites) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void HandleInput(bool8 showContest) +{ + s32 itemId = ListMenu_ProcessInput(sMoveTutorStruct->moveListMenuTask); + ListMenuGetScrollAndRow(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) + { + break; + } + + PlaySE(SE_SELECT); + + if (showContest == FALSE) + { + PutWindowTilemap(1); + sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + sMoveTutorMenuSate.showContestInfo = TRUE; + } + else + { + PutWindowTilemap(0); + sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + sMoveTutorMenuSate.showContestInfo = FALSE; + } + + schedule_bg_copy_tilemap_to_vram(1); + MoveTutorShowHideHearts(GetCurrentSelectedMove()); + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveTutorStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; + StringExpandPlaceholders(gStringVar4, gText_MoveTutorGiveUp); + MoveTutorPrintText(gStringVar4); + break; + default: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveTutorStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; + StringCopy(gStringVar2, gMoveNames[itemId]); + StringExpandPlaceholders(gStringVar4, gText_MoveTutorTeachMoveConfirm); + MoveTutorPrintText(gStringVar4); + break; + } +} + +static s32 GetCurrentSelectedMove(void) +{ + return sMoveTutorStruct->menuItems[sMoveTutorMenuSate.listRow + sMoveTutorMenuSate.listOffset].id; +} + +// Theory: This used to make the heart sprites visible again (i.e. +// this was the inverse of HideHeartsAndShowTeachMoveText), but the +// code was commented out. The bool argument would have been named +// "justShowHearts." The code for showing/hiding the heards was moved +// to MoveTutorShowHideHearts, which is called whenever a new move is +// selected and whenever the display mode changes. +static void ShowTeachMoveText(bool8 shouldDoNothingInstead) +{ + if (shouldDoNothingInstead == FALSE) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void CreateUISprites(void) +{ + int i; + + sMoveTutorStruct->moveDisplayArrowTask = 0xFF; + sMoveTutorStruct->moveListScrollArrowTask = 0xFF; + AddScrollArrows(); + + // These are the appeal hearts. + for (i = 0; i < 8; i++) + { + sMoveTutorStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); + } + + // These are the jam harts. + // The animation is used to toggle between full/empty heart sprites. + for (i = 0; i < 8; i++) + { + sMoveTutorStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); + } + + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } +} + +static void AddScrollArrows(void) +{ + if (sMoveTutorStruct->moveDisplayArrowTask == 0xFF) + { + sMoveTutorStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveTutorStruct->scrollOffset); + } + + if (sMoveTutorStruct->moveListScrollArrowTask == 0xFF) + { + gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; + gTempScrollArrowTemplate.fullyDownThreshold = sMoveTutorStruct->numMenuChoices - sMoveTutorStruct->numToShowAtOnce; + sMoveTutorStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveTutorMenuSate.listOffset); + } +} + +static void RemoveScrollArrows(void) +{ + if (sMoveTutorStruct->moveDisplayArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveDisplayArrowTask); + sMoveTutorStruct->moveDisplayArrowTask = 0xFF; + } + + if (sMoveTutorStruct->moveListScrollArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveListScrollArrowTask); + sMoveTutorStruct->moveListScrollArrowTask = 0xFF; + } +} + +static void CreateLearnableMovesList(void) +{ + s32 i; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + + sMoveTutorStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->movesToLearn); + + for (i = 0; i < sMoveTutorStruct->numMenuChoices; i++) + { + sMoveTutorStruct->menuItems[i].name = gMoveNames[sMoveTutorStruct->movesToLearn[i]]; + sMoveTutorStruct->menuItems[i].id = sMoveTutorStruct->movesToLearn[i]; + } + + GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_NICKNAME, nickname); + StringCopy10(gStringVar1, nickname); + sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].name = gText_Cancel; + sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].id = LIST_CANCEL; + sMoveTutorStruct->numMenuChoices++; + sMoveTutorStruct->numToShowAtOnce = LoadMoveTutorMovesList(sMoveTutorStruct->menuItems, sMoveTutorStruct->numMenuChoices); +} + +void MoveTutorShowHideHearts(s32 moveId) +{ + u16 numHearts; + u16 i; + + if (!sMoveTutorMenuSate.showContestInfo || moveId == LIST_CANCEL) + { + for (i = 0; i < 16; i++) + { + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; + } + } + else + { + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 1); + } + else + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 0); + } + gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = FALSE; + } + + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 3); + } + else + { + StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); + } + gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]].invisible = FALSE; + } + } +} diff --git a/src/overworld.c b/src/overworld.c index 0ff8d5b7f..ce1e21ab1 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1688,7 +1688,7 @@ void CB2_ReturnToFieldContinueScript(void) void CB2_ReturnToFieldContinueScriptPlayMapMusic(void) { FieldClearVBlankHBlankCallbacks(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; CB2_ReturnToField(); } diff --git a/src/party_menu.c b/src/party_menu.c index 10665ad9e..dad778b49 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -7287,7 +7287,7 @@ static void sub_81B9640(u8 taskId) void sub_81B968C(void) { ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; } void sub_81B96D0(void) diff --git a/src/player_pc.c b/src/player_pc.c index 0d08a5e7b..bec763b41 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -645,7 +645,7 @@ static void Mailbox_ProcessInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); RemoveScrollIndicatorArrowPair(playerPCItemPageInfo.scrollIndicatorId); Mailbox_ReturnToPlayerPC(taskId); @@ -1151,7 +1151,7 @@ static void ItemStorage_ProcessInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); ItemStorage_GoBackToPlayerPCMenu(taskId); break; @@ -1226,7 +1226,7 @@ static void sub_816C4FC(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: if (gMain.newKeys & A_BUTTON) { ItemStorage_DoItemSwap(taskId, FALSE); diff --git a/src/pokeblock.c b/src/pokeblock.c index 3fd4f34df..10149c1e7 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -709,7 +709,7 @@ static void HandlePokeblockListMenuItems(void) StringCopy(sPokeblockMenu->menuItemsStrings[i], gText_StowCase); sPokeblockMenu->items[i].name = sPokeblockMenu->menuItemsStrings[i]; - sPokeblockMenu->items[i].id = LIST_B_PRESSED; + sPokeblockMenu->items[i].id = LIST_CANCEL; gMultiuseListMenuTemplate = sPokeblockListMenuTemplate; gMultiuseListMenuTemplate.fontId = 7; @@ -751,7 +751,7 @@ static void sub_8135FCC(s32 pkblId) FillWindowPixelBuffer(7, 0); - if (pkblId != LIST_B_PRESSED) + if (pkblId != LIST_CANCEL) { pokeblock = &gSaveBlock1Ptr->pokeblocks[pkblId]; rectTilemapSrc[0] = 0x17; @@ -959,7 +959,7 @@ static void Task_FreeDataAndExitPokeblockCase(u8 taskId) if (!gPaletteFade.active) { if (sPokeblockMenu->caseId == PBLOCK_CASE_FEEDER || sPokeblockMenu->caseId == PBLOCK_CASE_GIVE) - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyListMenuTask(data[0], &sSavedPokeblockData.lastItemPage, &sSavedPokeblockData.lastItemPos); sub_8136418(); @@ -1011,7 +1011,7 @@ static void Task_HandlePokeblockMenuInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); gSpecialVar_Result = 0xFFFF; gSpecialVar_ItemId = 0; @@ -1066,7 +1066,7 @@ static void Task_HandlePokeblocksSwapInput(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: // same id as STOW CASE field + case LIST_CANCEL: // same id as STOW CASE field PlaySE(SE_SELECT); if (gMain.newKeys & A_BUTTON) HandlePokeblocksSwap(taskId, FALSE); diff --git a/src/roulette.c b/src/roulette.c index 4c20bd0fe..4663602fa 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1984,7 +1984,7 @@ static void sub_8141E7C(u8 taskId) // end roulette ? ResetPaletteFade(); ResetSpriteData(); sub_8140418(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_ReturnToField); DestroyTask(taskId); } diff --git a/src/secret_base.c b/src/secret_base.c index 33fa0c05e..b2d697142 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -391,7 +391,7 @@ void sub_80E8FD0(u8 taskId) } sub_80E8F9C(); WarpIntoMap(); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); break; @@ -959,7 +959,7 @@ void sub_80E9E90(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); DestroyListMenuTask(data[5], NULL, NULL); RemoveScrollIndicatorArrowPair(data[8]); diff --git a/src/shop.c b/src/shop.c index 8eefd5e97..2c2a28eea 100755 --- a/src/shop.c +++ b/src/shop.c @@ -918,7 +918,7 @@ static void Task_BuyMenu(u8 taskId) { case LIST_NOTHING_CHOSEN: break; - case LIST_B_PRESSED: + case LIST_CANCEL: PlaySE(SE_SELECT); ExitBuyMenu(taskId); break; diff --git a/src/strings.c b/src/strings.c index f81a19083..c2f476b58 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1742,15 +1742,15 @@ const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); -const u8 gText_TeachX[] = _("Teach {STR_VAR_2}?"); -const u8 gText_PkmnLearnedMove4[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); -const u8 gText_PkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); -const u8 gText_StopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_12AndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); -const u8 gText_PkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); +const u8 gText_MoveTutorTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); +const u8 gText_MoveTutorPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); +const u8 gText_MoveTutorPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); +const u8 gText_MoveTutorStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); +const u8 gText_MoveTutorAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_MoveTutorPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); -const u8 gText_GiveUpTeachingNewMove[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); -const u8 gText_WhichMoveToForget2[] = _("Which move should be\nforgotten?\p"); +const u8 gText_MoveTutorGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); +const u8 gText_MoveTutorWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); diff --git a/src/trade.c b/src/trade.c index 849442ae0..25705b7bb 100644 --- a/src/trade.c +++ b/src/trade.c @@ -6061,7 +6061,7 @@ static void sub_807F110(u8 taskId) if (!gPaletteFade.active) { SetMainCallback2(sub_807B270); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; DestroyTask(taskId); } } diff --git a/src/walda_phrase.c b/src/walda_phrase.c index 83004777f..e8c1e4aed 100644 --- a/src/walda_phrase.c +++ b/src/walda_phrase.c @@ -70,7 +70,7 @@ static void CB2_HandleGivenWaldaPhrase(void) } StringCopy(gStringVar1, GetWaldaPhrasePtr()); - gFieldCallback = sub_80AF168; + gFieldCallback = FieldCallback_ReturnToEventScript2; SetMainCallback2(CB2_ReturnToField); } -- cgit v1.2.3 From e03595a10d05e6c860fe051976dd19096ba7e18b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 03:14:08 -0500 Subject: Bugfixes from #591 --- src/battle_factory_screen.c | 2 +- src/pokemon_storage_system.c | 8 ++++---- src/pokemon_summary_screen.c | 2 +- src/siirtc.c | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 5cbe97702..85c0b2808 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -1741,7 +1741,7 @@ static void Select_CopyMonsToPlayerParty(void) { gPlayerParty[i] = sFactorySelectScreen->mons[j].monData; gSaveBlock2Ptr->frontier.rentalMons[i].monId = sFactorySelectScreen->mons[j].monSetId; - gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.rentalMons[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY, NULL); gSaveBlock2Ptr->frontier.rentalMons[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); gSaveBlock2Ptr->frontier.rentalMons[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); break; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 9681b72f4..c5d40877b 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -6501,7 +6501,7 @@ static void InitCanRelaseMonVars(void) } sub_80CE350(sPSSData->field_2176); - sPSSData->field_2174 = GetMonData(&sPSSData->field_2108, MON_DATA_KNOWN_MOVES, sPSSData->field_2176); + sPSSData->field_2174 = GetMonData(&sPSSData->field_2108, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); if (sPSSData->field_2174 != 0) { sPSSData->field_216D = 0; @@ -6559,7 +6559,7 @@ static s8 RunCanReleaseMon(void) { if (sPSSData->field_2170 != TOTAL_BOXES_COUNT || sPSSData->field_2171 != i) { - knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, sPSSData->field_2176); + knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); sPSSData->field_2174 &= ~(knownMoves); } } @@ -6578,7 +6578,7 @@ static s8 RunCanReleaseMon(void) case 1: for (i = 0; i < IN_BOX_COUNT; i++) { - knownMoves = GetAndCopyBoxMonDataAt(sPSSData->field_216E, sPSSData->field_216F, MON_DATA_KNOWN_MOVES, sPSSData->field_2176); + knownMoves = GetAndCopyBoxMonDataAt(sPSSData->field_216E, sPSSData->field_216F, MON_DATA_KNOWN_MOVES, (u8*)sPSSData->field_2176); if (knownMoves != 0 && !(sPSSData->field_2170 == sPSSData->field_216E && sPSSData->field_2171 == sPSSData->field_216F)) { @@ -10357,7 +10357,7 @@ bool32 AnyStorageMonWithMove(u16 moveId) { if (GetBoxMonData(&gPokemonStoragePtr->boxes[i][j], MON_DATA_SANITY_HAS_SPECIES) && !GetBoxMonData(&gPokemonStoragePtr->boxes[i][j], MON_DATA_SANITY_IS_EGG) - && GetBoxMonData(&gPokemonStoragePtr->boxes[i][j], MON_DATA_KNOWN_MOVES, moves)) + && GetBoxMonData(&gPokemonStoragePtr->boxes[i][j], MON_DATA_KNOWN_MOVES, (u8*)moves)) return TRUE; } } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 91e344123..0133e40f1 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1349,7 +1349,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) } break; case 3: - GetMonData(a, MON_DATA_OT_NAME, &sum->OTName); + GetMonData(a, MON_DATA_OT_NAME, sum->OTName); ConvertInternationalString((u8*)&sum->OTName, GetMonData(a, MON_DATA_LANGUAGE)); sum->unk7 = sub_81B205C(a); sum->OTGender = GetMonData(a, MON_DATA_OT_GENDER); diff --git a/src/siirtc.c b/src/siirtc.c index f7e85ef4f..5c153a841 100644 --- a/src/siirtc.c +++ b/src/siirtc.c @@ -76,19 +76,19 @@ static void DisableGpioPortRead(); static const char AgbLibRtcVersion[] = "SIIRTC_V001"; -void SiiRtcUnprotect() +void SiiRtcUnprotect(void) { EnableGpioPortRead(); sLocked = FALSE; } -void SiiRtcProtect() +void SiiRtcProtect(void) { DisableGpioPortRead(); sLocked = TRUE; } -u8 SiiRtcProbe() +u8 SiiRtcProbe(void) { u8 errorCode; struct SiiRtcInfo rtc; @@ -129,7 +129,7 @@ u8 SiiRtcProbe() return (errorCode << 4) | 1; } -bool8 SiiRtcReset() +bool8 SiiRtcReset(void) { u8 result; struct SiiRtcInfo rtc; -- cgit v1.2.3 From 4ea5e85bed767a8cffea1fdcfac8669dff06c632 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 17:40:38 -0500 Subject: Fix typos This is an updated version of #554, since it hasn't been updated in two weeks. --- src/battle_main.c | 2 +- src/battle_script_commands.c | 8 ++++---- src/battle_util.c | 28 ++++++++++++++-------------- 3 files changed, 19 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/battle_main.c b/src/battle_main.c index 043e75808..853dafe01 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3279,7 +3279,7 @@ void FaintClearSetData(void) gProtectStructs[gActiveBattler].targetNotAffected = 0; gProtectStructs[gActiveBattler].chargingTurn = 0; gProtectStructs[gActiveBattler].fleeFlag = 0; - gProtectStructs[gActiveBattler].usedImprisionedMove = 0; + gProtectStructs[gActiveBattler].usedImprisonedMove = 0; gProtectStructs[gActiveBattler].loveImmobility = 0; gProtectStructs[gActiveBattler].usedDisabledMove = 0; gProtectStructs[gActiveBattler].usedTauntedMove = 0; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a53fa30f2..620366b52 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -297,7 +297,7 @@ static void atkD7_setyawn(void); static void atkD8_setdamagetohealthdifference(void); static void atkD9_scaledamagebyhealthratio(void); static void atkDA_tryswapabilities(void); -static void atkDB_tryimprision(void); +static void atkDB_tryimprison(void); static void atkDC_trysetgrudge(void); static void atkDD_weightdamagecalculation(void); static void atkDE_asistattackselect(void); @@ -549,7 +549,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkD8_setdamagetohealthdifference, atkD9_scaledamagebyhealthratio, atkDA_tryswapabilities, - atkDB_tryimprision, + atkDB_tryimprison, atkDC_trysetgrudge, atkDD_weightdamagecalculation, atkDE_asistattackselect, @@ -9611,7 +9611,7 @@ static void atkDA_tryswapabilities(void) // skill swap } } -static void atkDB_tryimprision(void) +static void atkDB_tryimprison(void) { if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS)) { @@ -9622,7 +9622,7 @@ static void atkDB_tryimprision(void) u8 battlerId, sideAttacker; sideAttacker = GetBattlerSide(gBattlerAttacker); - PressurePPLoseOnUsingImprision(gBattlerAttacker); + PressurePPLoseOnUsingImprison(gBattlerAttacker); for (battlerId = 0; battlerId < gBattlersCount; battlerId++) { if (sideAttacker != GetBattlerSide(battlerId)) diff --git a/src/battle_util.c b/src/battle_util.c index 2f583a9c7..fc6042b65 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -106,10 +106,10 @@ void PressurePPLose(u8 target, u8 attacker, u16 move) } } -void PressurePPLoseOnUsingImprision(u8 attacker) +void PressurePPLoseOnUsingImprison(u8 attacker) { int i, j; - int imprisionPos = 4; + int imprisonPos = 4; u8 atkSide = GetBattlerSide(attacker); for (i = 0; i < gBattlersCount; i++) @@ -123,19 +123,19 @@ void PressurePPLoseOnUsingImprision(u8 attacker) } if (j != MAX_MON_MOVES) { - imprisionPos = j; + imprisonPos = j; if (gBattleMons[attacker].pp[j] != 0) gBattleMons[attacker].pp[j]--; } } } - if (imprisionPos != 4 + if (imprisonPos != 4 && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].mimickedMoves & gBitTable[imprisionPos])) + && !(gDisableStructs[attacker].mimickedMoves & gBitTable[imprisonPos])) { gActiveBattler = attacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisonPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisonPos]); MarkBattlerForControllerExec(gActiveBattler); } } @@ -224,7 +224,7 @@ bool8 WasUnableToUseMove(u8 battler) { if (gProtectStructs[battler].prlzImmobility || gProtectStructs[battler].targetNotAffected - || gProtectStructs[battler].usedImprisionedMove + || gProtectStructs[battler].usedImprisonedMove || gProtectStructs[battler].loveImmobility || gProtectStructs[battler].usedDisabledMove || gProtectStructs[battler].usedTauntedMove @@ -365,12 +365,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMoveInPalace; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisonedMoveInPalace; gProtectStructs[gActiveBattler].palaceUnableToUseMove = 1; } else { - gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMove; + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisonedMove; limitations++; } } @@ -438,7 +438,7 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check) unusableMoves |= gBitTable[i]; if (gDisableStructs[battlerId].tauntTimer && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0) unusableMoves |= gBitTable[i]; - if (GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISION) + if (GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISON) unusableMoves |= gBitTable[i]; if (gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; @@ -469,7 +469,7 @@ bool8 AreAllMovesUnusable(void) u8 GetImprisonedMovesCount(u8 battlerId, u16 move) { s32 i; - u8 imprisionedMoves = 0; + u8 imprisonedMoves = 0; u8 battlerSide = GetBattlerSide(battlerId); for (i = 0; i < gBattlersCount; i++) @@ -483,11 +483,11 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move) break; } if (j < MAX_MON_MOVES) - imprisionedMoves++; + imprisonedMoves++; } } - return imprisionedMoves; + return imprisonedMoves; } enum @@ -1466,7 +1466,7 @@ u8 AtkCanceller_UnableToUseMove(void) case CANCELLER_IMPRISONED: // imprisoned if (GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove)) { - gProtectStructs[gBattlerAttacker].usedImprisionedMove = 1; + gProtectStructs[gBattlerAttacker].usedImprisonedMove = 1; CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; -- cgit v1.2.3 From 1e7f4a80c77832d952688206bd7c98e11dba25ba Mon Sep 17 00:00:00 2001 From: shinny456 Date: Sun, 3 Mar 2019 03:54:44 -0500 Subject: port the rest of flying (leave 2 nonmatchings to egg) --- src/flying.c | 1209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1199 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/flying.c b/src/flying.c index 48df12a06..7f48e57cb 100644 --- a/src/flying.c +++ b/src/flying.c @@ -4,6 +4,9 @@ #include "trig.h" #include "constants/battle_anim.h" #include "constants/rgb.h" +#include "random.h" + +extern const struct SpriteTemplate gUnknown_085973E8; void sub_810DE70(struct Sprite *); void sub_810DFA8(struct Sprite *); @@ -11,22 +14,29 @@ void sub_810E044(struct Sprite *); void sub_810E13C(struct Sprite *); void sub_810E1C8(struct Sprite *); void sub_810E314(struct Sprite *); -extern void sub_810EA4C(struct Sprite *); -extern void sub_810EAA0(struct Sprite *); -extern void sub_810EC34(struct Sprite *); -extern void sub_810EC94(struct Sprite *); -extern void sub_810ED28(struct Sprite *); -extern void sub_810EE14(struct Sprite *); -extern void sub_810EEF8(struct Sprite *); -extern void sub_810F004(struct Sprite *); -extern void sub_810F084(struct Sprite *); +void sub_810E520(struct Sprite *); +void sub_810EB40(struct Sprite *); +void sub_810EA4C(struct Sprite *); +void sub_810EAA0(struct Sprite *); +void sub_810EC34(struct Sprite *); +void sub_810EC94(struct Sprite *); +void sub_810ED28(struct Sprite *); +void sub_810ED70(struct Sprite *); +void sub_810EDD0(struct Sprite *); +void sub_810EE14(struct Sprite *); +void sub_810EEF8(struct Sprite *); +void sub_810EFA8(struct Sprite *); +void sub_810F004(struct Sprite *); +void sub_810F018(struct Sprite *); +void sub_810F084(struct Sprite *); +void sub_810F140(struct Sprite *); static void sub_810DE98(struct Sprite *); static void sub_810DF18(u8); static void sub_810E028(struct Sprite *); static void sub_810E184(struct Sprite *); static void sub_810E24C(struct Sprite *); -void sub_810E520(struct Sprite *); + const struct SpriteTemplate gUnknown_08596270 = { @@ -626,3 +636,1182 @@ void sub_810E314(struct Sprite *sprite) sprite->callback = sub_810E520; } + +NAKED +void sub_810E520(struct Sprite *sprite) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + adds r5, r0, 0\n\ + movs r6, 0\n\ + adds r4, r5, 0\n\ + adds r4, 0x2E\n\ + ldrb r2, [r4]\n\ + movs r7, 0x1\n\ + movs r0, 0x1\n\ + mov r9, r0\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0810E55A\n\ + ldrb r0, [r4, 0x1]\n\ + adds r1, r0, 0\n\ + adds r1, 0xFF\n\ + strb r1, [r4, 0x1]\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _0810E54E\n\ + b _0810EA36\n\ +_0810E54E:\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + ands r0, r2\n\ + strb r0, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810EA36\n\ +_0810E55A:\n\ + ldrh r0, [r4, 0x2]\n\ + lsrs r1, r0, 6\n\ + mov r12, r0\n\ + cmp r1, 0x1\n\ + bne _0810E566\n\ + b _0810E68A\n\ +_0810E566:\n\ + cmp r1, 0x1\n\ + bgt _0810E570\n\ + cmp r1, 0\n\ + beq _0810E57E\n\ + b _0810E97C\n\ +_0810E570:\n\ + cmp r1, 0x2\n\ + bne _0810E576\n\ + b _0810E77E\n\ +_0810E576:\n\ + cmp r1, 0x3\n\ + bne _0810E57C\n\ + b _0810E872\n\ +_0810E57C:\n\ + b _0810E97C\n\ +_0810E57E:\n\ + lsls r1, r2, 24\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x1\n\ + bne _0810E592\n\ + movs r0, 0x8\n\ + orrs r0, r2\n\ + orrs r0, r7\n\ + strb r0, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810E680\n\ +_0810E592:\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x3\n\ + bne _0810E5B4\n\ + lsls r0, r2, 30\n\ + lsrs r0, 31\n\ + movs r1, 0x1\n\ + eors r0, r1\n\ + ands r0, r7\n\ + lsls r0, 1\n\ + movs r1, 0x3\n\ + negs r1, r1\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + orrs r1, r7\n\ + strb r1, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810E680\n\ +_0810E5B4:\n\ + movs r0, 0x8\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0810E680\n\ + adds r3, r5, 0\n\ + adds r3, 0x3F\n\ + ldrb r2, [r3]\n\ + lsls r1, r2, 31\n\ + lsrs r1, 31\n\ + movs r6, 0x1\n\ + eors r1, r6\n\ + ands r1, r7\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + mov r8, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r3]\n\ + lsls r0, 31\n\ + lsrs r0, 31\n\ + adds r1, r5, 0\n\ + adds r1, 0x2A\n\ + strb r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + movs r1, 0x11\n\ + negs r1, r1\n\ + ands r0, r1\n\ + strb r0, [r3]\n\ + ldrb r1, [r4]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0810E672\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0810E642\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E628\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + subs r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E660\n\ +_0810E628:\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + adds r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E660\n\ +_0810E642:\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E656\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + subs r0, 0xC\n\ + b _0810E65E\n\ +_0810E656:\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + adds r0, 0xC\n\ +_0810E65E:\n\ + strb r0, [r1]\n\ +_0810E660:\n\ + ldrb r2, [r4, 0xE]\n\ + lsls r0, r2, 31\n\ + lsrs r0, 31\n\ + eors r0, r6\n\ + ands r0, r7\n\ + mov r1, r8\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + strb r1, [r4, 0xE]\n\ +_0810E672:\n\ + ldrb r1, [r4]\n\ + movs r0, 0x9\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r4]\n\ + ldrh r1, [r4, 0x2]\n\ + mov r12, r1\n\ +_0810E680:\n\ + ldrb r1, [r4]\n\ + movs r0, 0xF\n\ + ands r0, r1\n\ + strb r0, [r4]\n\ + b _0810E97C\n\ +_0810E68A:\n\ + lsls r1, r2, 24\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0\n\ + bne _0810E698\n\ + movs r0, 0x8\n\ + orrs r0, r2\n\ + b _0810E6A0\n\ +_0810E698:\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x2\n\ + bne _0810E6A8\n\ + adds r0, r2, 0\n\ +_0810E6A0:\n\ + orrs r0, r7\n\ + strb r0, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810E774\n\ +_0810E6A8:\n\ + movs r0, 0x8\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0810E774\n\ + adds r3, r5, 0\n\ + adds r3, 0x3F\n\ + ldrb r2, [r3]\n\ + lsls r1, r2, 31\n\ + lsrs r1, 31\n\ + movs r6, 0x1\n\ + eors r1, r6\n\ + ands r1, r7\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + mov r8, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r3]\n\ + lsls r0, 31\n\ + lsrs r0, 31\n\ + adds r1, r5, 0\n\ + adds r1, 0x2A\n\ + strb r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + movs r1, 0x11\n\ + negs r1, r1\n\ + ands r0, r1\n\ + strb r0, [r3]\n\ + ldrb r1, [r4]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0810E766\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0810E736\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E71C\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + subs r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E754\n\ +_0810E71C:\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + adds r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E754\n\ +_0810E736:\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E74A\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + subs r0, 0xC\n\ + b _0810E752\n\ +_0810E74A:\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + adds r0, 0xC\n\ +_0810E752:\n\ + strb r0, [r1]\n\ +_0810E754:\n\ + ldrb r2, [r4, 0xE]\n\ + lsls r0, r2, 31\n\ + lsrs r0, 31\n\ + eors r0, r6\n\ + ands r0, r7\n\ + mov r1, r8\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + strb r1, [r4, 0xE]\n\ +_0810E766:\n\ + ldrb r1, [r4]\n\ + movs r0, 0x9\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r4]\n\ + ldrh r1, [r4, 0x2]\n\ + mov r12, r1\n\ +_0810E774:\n\ + ldrb r0, [r4]\n\ + movs r1, 0xF\n\ + ands r1, r0\n\ + movs r0, 0x10\n\ + b _0810E978\n\ +_0810E77E:\n\ + lsls r1, r2, 24\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x3\n\ + bne _0810E78C\n\ + movs r0, 0x8\n\ + orrs r0, r2\n\ + b _0810E794\n\ +_0810E78C:\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x1\n\ + bne _0810E79C\n\ + adds r0, r2, 0\n\ +_0810E794:\n\ + orrs r0, r7\n\ + strb r0, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810E868\n\ +_0810E79C:\n\ + movs r0, 0x8\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0810E868\n\ + adds r3, r5, 0\n\ + adds r3, 0x3F\n\ + ldrb r2, [r3]\n\ + lsls r1, r2, 31\n\ + lsrs r1, 31\n\ + movs r6, 0x1\n\ + eors r1, r6\n\ + ands r1, r7\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + mov r8, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r3]\n\ + lsls r0, 31\n\ + lsrs r0, 31\n\ + adds r1, r5, 0\n\ + adds r1, 0x2A\n\ + strb r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + movs r1, 0x11\n\ + negs r1, r1\n\ + ands r0, r1\n\ + strb r0, [r3]\n\ + ldrb r1, [r4]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0810E85A\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0810E82A\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E810\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + subs r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E848\n\ +_0810E810:\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + adds r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E848\n\ +_0810E82A:\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E83E\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + subs r0, 0xC\n\ + b _0810E846\n\ +_0810E83E:\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + adds r0, 0xC\n\ +_0810E846:\n\ + strb r0, [r1]\n\ +_0810E848:\n\ + ldrb r2, [r4, 0xE]\n\ + lsls r0, r2, 31\n\ + lsrs r0, 31\n\ + eors r0, r6\n\ + ands r0, r7\n\ + mov r1, r8\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + strb r1, [r4, 0xE]\n\ +_0810E85A:\n\ + ldrb r1, [r4]\n\ + movs r0, 0x9\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r4]\n\ + ldrh r1, [r4, 0x2]\n\ + mov r12, r1\n\ +_0810E868:\n\ + ldrb r0, [r4]\n\ + movs r1, 0xF\n\ + ands r1, r0\n\ + movs r0, 0x20\n\ + b _0810E978\n\ +_0810E872:\n\ + lsls r1, r2, 24\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0x2\n\ + bne _0810E882\n\ + movs r0, 0x8\n\ + orrs r0, r2\n\ + strb r0, [r4]\n\ + b _0810E970\n\ +_0810E882:\n\ + lsrs r0, r1, 28\n\ + cmp r0, 0\n\ + bne _0810E8A4\n\ + lsls r0, r2, 30\n\ + lsrs r0, 31\n\ + movs r1, 0x1\n\ + eors r0, r1\n\ + ands r0, r7\n\ + lsls r0, 1\n\ + movs r1, 0x3\n\ + negs r1, r1\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + orrs r1, r7\n\ + strb r1, [r4]\n\ + strb r6, [r4, 0x1]\n\ + b _0810E970\n\ +_0810E8A4:\n\ + movs r0, 0x8\n\ + ands r0, r2\n\ + cmp r0, 0\n\ + beq _0810E970\n\ + adds r3, r5, 0\n\ + adds r3, 0x3F\n\ + ldrb r2, [r3]\n\ + lsls r1, r2, 31\n\ + lsrs r1, 31\n\ + movs r6, 0x1\n\ + eors r1, r6\n\ + ands r1, r7\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + mov r8, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r3]\n\ + lsls r0, 31\n\ + lsrs r0, 31\n\ + adds r1, r5, 0\n\ + adds r1, 0x2A\n\ + strb r0, [r1]\n\ + ldrb r0, [r3]\n\ + movs r1, 0x4\n\ + orrs r0, r1\n\ + movs r1, 0x11\n\ + negs r1, r1\n\ + ands r0, r1\n\ + strb r0, [r3]\n\ + ldrb r1, [r4]\n\ + movs r0, 0x4\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0810E962\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0810E932\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E918\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + subs r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E950\n\ +_0810E918:\n\ + ldrb r2, [r5, 0x5]\n\ + lsls r1, r2, 28\n\ + lsrs r1, 30\n\ + adds r1, 0x1\n\ + movs r0, 0x3\n\ + ands r1, r0\n\ + lsls r1, 2\n\ + movs r0, 0xD\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r5, 0x5]\n\ + b _0810E950\n\ +_0810E932:\n\ + ldrb r1, [r4, 0xE]\n\ + mov r0, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0810E946\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + subs r0, 0xC\n\ + b _0810E94E\n\ +_0810E946:\n\ + adds r1, r5, 0\n\ + adds r1, 0x43\n\ + ldrb r0, [r1]\n\ + adds r0, 0xC\n\ +_0810E94E:\n\ + strb r0, [r1]\n\ +_0810E950:\n\ + ldrb r2, [r4, 0xE]\n\ + lsls r0, r2, 31\n\ + lsrs r0, 31\n\ + eors r0, r6\n\ + ands r0, r7\n\ + mov r1, r8\n\ + ands r1, r2\n\ + orrs r1, r0\n\ + strb r1, [r4, 0xE]\n\ +_0810E962:\n\ + ldrb r1, [r4]\n\ + movs r0, 0x9\n\ + negs r0, r0\n\ + ands r0, r1\n\ + strb r0, [r4]\n\ + ldrh r1, [r4, 0x2]\n\ + mov r12, r1\n\ +_0810E970:\n\ + ldrb r0, [r4]\n\ + movs r1, 0xF\n\ + ands r1, r0\n\ + movs r0, 0x30\n\ +_0810E978:\n\ + orrs r1, r0\n\ + strb r1, [r4]\n\ +_0810E97C:\n\ + ldrb r1, [r4]\n\ + lsls r1, 30\n\ + lsrs r1, 31\n\ + adds r0, r4, 0\n\ + adds r0, 0xC\n\ + adds r0, r1\n\ + ldrb r1, [r0]\n\ + ldr r3, =gSineTable\n\ + mov r2, r12\n\ + lsls r0, r2, 1\n\ + adds r0, r3\n\ + movs r2, 0\n\ + ldrsh r0, [r0, r2]\n\ + muls r0, r1\n\ + asrs r0, 8\n\ + strh r0, [r5, 0x24]\n\ + ldrb r2, [r5, 0x3]\n\ + lsls r2, 26\n\ + lsrs r2, 27\n\ + movs r1, 0x24\n\ + ldrsh r0, [r5, r1]\n\ + negs r0, r0\n\ + asrs r0, 1\n\ + ldrb r1, [r4, 0xA]\n\ + adds r0, r1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, r0, 1\n\ + adds r1, r3\n\ + ldrh r6, [r1]\n\ + ldr r1, =gOamMatrices\n\ + lsls r2, 3\n\ + adds r2, r1\n\ + adds r0, 0x40\n\ + lsls r0, 1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + strh r0, [r2, 0x6]\n\ + strh r0, [r2]\n\ + strh r6, [r2, 0x2]\n\ + lsls r0, r6, 16\n\ + asrs r0, 16\n\ + negs r0, r0\n\ + strh r0, [r2, 0x4]\n\ + ldrh r0, [r4, 0x6]\n\ + ldrh r2, [r4, 0x8]\n\ + adds r0, r2\n\ + strh r0, [r4, 0x8]\n\ + lsls r0, 16\n\ + lsrs r0, 24\n\ + strh r0, [r5, 0x22]\n\ + movs r1, 0x4\n\ + ldrsh r0, [r4, r1]\n\ + movs r1, 0x80\n\ + lsls r1, 8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _0810EA0C\n\ + ldrh r0, [r4, 0x4]\n\ + subs r1, 0x1\n\ + ands r1, r0\n\ + ldrh r0, [r4, 0x2]\n\ + subs r0, r1\n\ + movs r1, 0xFF\n\ + ands r0, r1\n\ + strh r0, [r4, 0x2]\n\ + b _0810EA1C\n\ + .pool\n\ +_0810EA0C:\n\ + ldrh r0, [r4, 0x4]\n\ + ldr r1, =0x00007fff\n\ + ands r1, r0\n\ + ldrh r2, [r4, 0x2]\n\ + adds r1, r2\n\ + movs r0, 0xFF\n\ + ands r1, r0\n\ + strh r1, [r4, 0x2]\n\ +_0810EA1C:\n\ + movs r0, 0x22\n\ + ldrsh r1, [r5, r0]\n\ + movs r2, 0x26\n\ + ldrsh r0, [r5, r2]\n\ + adds r1, r0\n\ + ldrh r0, [r4, 0xE]\n\ + lsrs r0, 1\n\ + cmp r1, r0\n\ + blt _0810EA36\n\ + movs r0, 0\n\ + strh r0, [r5, 0x2E]\n\ + ldr r0, =sub_810E2C8\n\ + str r0, [r5, 0x1C]\n\ +_0810EA36:\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + "); +} + +void sub_810EA4C(struct Sprite *sprite) +{ + sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->callback = TranslateAnimSpriteToTargetMonLocation; +} + +void sub_810EAA0(struct Sprite * sprite) +{ + u16 arg; + u8 mult; + + if (!gBattleAnimArgs[2]) + InitSpritePosToAnimAttacker(sprite, 0); + else + InitSpritePosToAnimTarget(sprite, FALSE); + + if ((!gBattleAnimArgs[2] && !GetBattlerSide(gBattleAnimAttacker)) + || (gBattleAnimArgs[2] == 1 && !GetBattlerSide(gBattleAnimTarget))) + { + sprite->pos1.x += 8; + } + + SeekSpriteAnim(sprite, gBattleAnimArgs[4]); + sprite->pos1.x -= 32; + sprite->data[1] = 0x0ccc; + + arg = gBattleAnimArgs[4]; + mult = 12; + sprite->pos2.x += mult * arg; + sprite->data[0] = arg; + sprite->data[7] = gBattleAnimArgs[3]; + sprite->callback = sub_810EB40; +} + +void sub_810EB40(struct Sprite *sprite) +{ + sprite->pos2.x += sprite->data[1] >> 8; + + if (++sprite->data[0] == 6) + { + sprite->data[0] = 0; + sprite->pos2.x = 0; + StartSpriteAnim(sprite, 0); + } + + if (--sprite->data[7] == -1) + DestroyAnimSprite(sprite); +} + +void sub_810EB88(u8 task) +{ + if (!(gTasks[task].data[0] % 32)) + { + gAnimVisualTaskCount++; + + gBattleAnimArgs[0] = Sin(gTasks[task].data[0], -13); + gBattleAnimArgs[1] = Cos(gTasks[task].data[0], -13); + gBattleAnimArgs[2] = 1; + gBattleAnimArgs[3] = 3; + + CreateSpriteAndAnimate(&gUnknown_085973E8, + GetBattlerSpriteCoord(gBattleAnimTarget, 2), + GetBattlerSpriteCoord(gBattleAnimTarget, 3), + 3); + } + + gTasks[task].data[0] += 8; + + if (gTasks[task].data[0] > 255) + DestroyAnimVisualTask(task); +} + +void sub_810EC34(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + InitSpritePosToAnimAttacker(sprite, 1); + gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; + ++sprite->data[0]; + break; + case 1: + if (sprite->affineAnimEnded) + DestroyAnimSprite(sprite); + } +} + +void sub_810EC94(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->pos2.y = -sprite->pos1.y - 32; + sprite->data[0]++; + break; + case 1: + sprite->pos2.y += 10; + if (sprite->pos2.y >= 0) + ++sprite->data[0]; + break; + case 2: + sprite->pos2.y -= 10; + if (sprite->pos1.y + sprite->pos2.y < -32) + { + gSprites[GetAnimBattlerSpriteId(0)].invisible = 0; + DestroyAnimSprite(sprite); + } + } +} + +void sub_810ED28(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, 1); + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->callback = sub_810ED70; + gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; +} + +void sub_810ED70(struct Sprite *sprite) +{ + if (sprite->data[0] > 0) + sprite->data[0]--; + else if (sprite->pos1.y + sprite->pos2.y > -32) + { + sprite->data[2] += sprite->data[1]; + sprite->pos2.y -= (sprite->data[2] >> 8); + } + else + { + sprite->invisible = 1; + if (sprite->data[3]++ > 20) + sprite->callback = sub_810EDD0; + } +} + +void sub_810EDD0(struct Sprite *sprite) +{ + sprite->pos2.y += sprite->data[2] >> 8; + + if (sprite->pos1.y + sprite->pos2.y > -32) + sprite->invisible = 0; + + if (sprite->pos2.y > 0) + DestroyAnimSprite(sprite); +} + +#ifdef NONMATCHING +void sub_810EE14(struct Sprite *sprite) +{ + // NONMATCHING - Functionally equivalent - slight register swap at end + + u32 matrixNum; + int t1, t2; + + switch (sprite->data[0]) + { + case 0: + if (!gBattleAnimArgs[0]) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + } + + sprite->data[1] = 512; + + TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); + sprite->data[0]++; + break; + case 1: + if (sprite->data[2] <= 11) + sprite->data[1] -= 40; + else + sprite->data[1] += 40; + + sprite->data[2]++; + + TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); + + matrixNum = sprite->oam.matrixNum; + + t1 = 15616; + t2 = t1 / gOamMatrices[matrixNum].d + 1; + + if (t2 > 128) + t2 = 128; + + + /* NONMATCHING + * compiles to: + * asr r0, r0, #0x1 + strh r0, [r5, #0x26] + * needed: + * asrs r1, r0, 1 + * strh r1, [r5, 0x26] */ + sprite->pos2.y = (64 - t2) / 2; + + if (sprite->data[2] == 24) + { + sub_80A749C(sprite); + DestroyAnimSprite(sprite); + } + } +} + +#else +NAKED +void sub_810EE14(struct Sprite *sprite) +{ + asm_unified("push {r4,r5,lr}\n\ + sub sp, 0x4\n\ + adds r5, r0, 0\n\ + movs r1, 0x2E\n\ + ldrsh r0, [r5, r1]\n\ + cmp r0, 0\n\ + beq _0810EE28\n\ + cmp r0, 0x1\n\ + beq _0810EE80\n\ + b _0810EEEC\n\ +_0810EE28:\n\ + ldr r0, =gBattleAnimArgs\n\ + movs r2, 0\n\ + ldrsh r0, [r0, r2]\n\ + cmp r0, 0\n\ + bne _0810EE40\n\ + ldr r4, =gBattleAnimAttacker\n\ + b _0810EE42\n\ + .pool\n\ +_0810EE40:\n\ + ldr r4, =gBattleAnimTarget\n\ +_0810EE42:\n\ + ldrb r0, [r4]\n\ + movs r1, 0\n\ + bl GetBattlerSpriteCoord\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + strh r0, [r5, 0x20]\n\ + ldrb r0, [r4]\n\ + movs r1, 0x1\n\ + bl GetBattlerSpriteCoord\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + strh r0, [r5, 0x22]\n\ + movs r0, 0\n\ + movs r3, 0x80\n\ + lsls r3, 2\n\ + strh r3, [r5, 0x30]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + str r0, [sp]\n\ + adds r0, r5, 0\n\ + movs r1, 0\n\ + bl TrySetSpriteRotScale\n\ + ldrh r0, [r5, 0x2E]\n\ + adds r0, 0x1\n\ + strh r0, [r5, 0x2E]\n\ + b _0810EEEC\n\ + .pool\n\ +_0810EE80:\n\ + movs r1, 0x32\n\ + ldrsh r0, [r5, r1]\n\ + cmp r0, 0xB\n\ + bgt _0810EE8E\n\ + ldrh r0, [r5, 0x30]\n\ + subs r0, 0x28\n\ + b _0810EE92\n\ +_0810EE8E:\n\ + ldrh r0, [r5, 0x30]\n\ + adds r0, 0x28\n\ +_0810EE92:\n\ + strh r0, [r5, 0x30]\n\ + ldrh r0, [r5, 0x32]\n\ + adds r0, 0x1\n\ + movs r1, 0\n\ + strh r0, [r5, 0x32]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + movs r0, 0x30\n\ + ldrsh r3, [r5, r0]\n\ + str r1, [sp]\n\ + adds r0, r5, 0\n\ + bl TrySetSpriteRotScale\n\ + ldrb r1, [r5, 0x3]\n\ + lsls r1, 26\n\ + lsrs r1, 27\n\ + movs r0, 0xF4\n\ + lsls r0, 6\n\ + ldr r2, =gOamMatrices\n\ + lsls r1, 3\n\ + adds r1, r2\n\ + movs r2, 0x6\n\ + ldrsh r1, [r1, r2]\n\ + bl __divsi3\n\ + adds r1, r0, 0x1\n\ + cmp r1, 0x80\n\ + ble _0810EECC\n\ + movs r1, 0x80\n\ +_0810EECC:\n\ + movs r0, 0x40\n\ + subs r0, r1\n\ + lsrs r1, r0, 31\n\ + adds r0, r1\n\ + asrs r1, r0, 1\n\ + strh r1, [r5, 0x26]\n\ + movs r1, 0x32\n\ + ldrsh r0, [r5, r1]\n\ + cmp r0, 0x18\n\ + bne _0810EEEC\n\ + adds r0, r5, 0\n\ + bl sub_80A749C\n\ + adds r0, r5, 0\n\ + bl DestroyAnimSprite\n\ +_0810EEEC:\n\ + add sp, 0x4\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +void sub_810EEF8(struct Sprite *sprite) +{ + int v1, v2; + + v1 = 0x1ff & Random2(); + v2 = 0x7f & Random2(); + + if (v1 % 2) + sprite->data[0] = 736 + v1; + + else + sprite->data[0] = 736 - v1; + + + if (v2 % 2) + sprite->data[1] = 896 + v2; + + else + sprite->data[1] = 896 - v2; + + sprite->data[2] = gBattleAnimArgs[0]; + + if (sprite->data[2]) + sprite->oam.matrixNum = 8; + + + if (gBattleAnimArgs[1] == 0) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; + } + + sprite->callback = sub_810EFA8; +} + +void sub_810EFA8(struct Sprite *sprite) +{ + if (sprite->data[2] == 0) + { + sprite->pos2.x += sprite->data[0] >> 8; + sprite->pos2.y -= sprite->data[1] >> 8; + } + else + { + sprite->pos2.x -= sprite->data[0] >> 8; + sprite->pos2.y -= sprite->data[1] >> 8; + } + + sprite->data[0] = sprite->data[0]; + sprite->data[1] -= 32; + + if (sprite->data[0] < 0) + sprite->data[0] = 0; + + + if (++sprite->data[3] == 31) + DestroyAnimSprite(sprite); +} + +void sub_810F004(struct Sprite *sprite) +{ + sprite->data[6] = 0; + sprite->data[7] = 64; + sprite->callback = sub_810F018; +} + +void sub_810F018(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (++sprite->data[1] > 8) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] > 5 && sprite->invisible) + sprite->data[0]++; + } + break; + case 1: + DestroyAnimSprite(sprite); + } +} + +void sub_810F084(struct Sprite *sprite) +{ + s16 posx, posy; + u16 rotation; + + posx = sprite->pos1.x; + posy = sprite->pos1.y; + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + + sprite->data[4] = sprite->pos1.x << 4; + sprite->data[5] = sprite->pos1.y << 4; + + sprite->data[6] = ((posx - sprite->pos1.x) << 4) / 12; + sprite->data[7] = ((posy - sprite->pos1.y) << 4) / 12; + + rotation = ArcTan2Neg(posx - sprite->pos1.x, posy - sprite->pos1.y); + rotation += 49152; + + TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); + + sprite->callback = sub_810F140; +} + +void sub_810F140(struct Sprite *sprite) +{ + sprite->data[4] += sprite->data[6]; + sprite->data[5] += sprite->data[7]; + + sprite->pos1.x = sprite->data[4] >> 4; + sprite->pos1.y = sprite->data[5] >> 4; + + if ((u16) (sprite->pos1.x + 0x2d) > 0x14a || sprite->pos1.y > 0x9d || sprite->pos1.y < -0x2d) + DestroySpriteAndMatrix(sprite); +} + +void unref_sub_810F184(u8 taskId) +{ + if (gBattleAnimArgs[0] == 0) + { + u8 spriteId = GetAnimBattlerSpriteId(0); + gSprites[spriteId].invisible = 1; + } + else + { + u8 spriteId = GetAnimBattlerSpriteId(0); + gSprites[spriteId].invisible = 0; + } + DestroyAnimVisualTask(taskId); +} -- cgit v1.2.3 From 63e700af6c735dc40f8ddb2b46cad9c0c43ad6b3 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 16:50:51 -0500 Subject: Use macros for summary windows Other minor changes and fixes are included --- src/battle_tent.c | 2 +- src/party_menu.c | 6 +- src/pokemon_summary_screen.c | 1184 ++++++++++++++++++++++-------------------- 3 files changed, 625 insertions(+), 567 deletions(-) (limited to 'src') diff --git a/src/battle_tent.c b/src/battle_tent.c index b07020822..85194417f 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -269,7 +269,7 @@ static void sub_81B9E88(void) DoBattleFactorySwapScreen(); } -bool8 sub_81B9E94(void) +bool8 InSlateportBattleTent(void) { return gMapHeader.regionMapSectionId == MAPSEC_SLATEPORT_CITY && (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM); diff --git a/src/party_menu.c b/src/party_menu.c index 10665ad9e..71f4cb639 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2936,7 +2936,7 @@ u8 pokemon_ailments_get_primary(u32 status) return AILMENT_NONE; } -u8 sub_81B205C(struct Pokemon *mon) +u8 GetMonAilment(struct Pokemon *mon) { u8 ailment; @@ -3355,7 +3355,7 @@ static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct Struct203C { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - u8 ailment = sub_81B205C(mon); + u8 ailment = GetMonAilment(mon); if (ailment == AILMENT_NONE || ailment == AILMENT_PKRS) { if (c != 0) @@ -5183,7 +5183,7 @@ static void party_menu_link_mon_status_condition_object(u16 species, u8 status, static void party_menu_get_status_condition_and_update_object(struct Pokemon *mon, struct Struct203CEDC *ptr) { - party_menu_update_status_condition_object(sub_81B205C(mon), ptr); + party_menu_update_status_condition_object(GetMonAilment(mon), ptr); } static void party_menu_update_status_condition_object(u8 status, struct Struct203CEDC *ptr) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index bd1ae7802..1d35689d0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -47,7 +47,62 @@ #include "constants/songs.h" #include "constants/species.h" -static EWRAM_DATA struct PssData +// Screen titles (upper left) +#define PSS_LABEL_WINDOW_POKEMON_INFO_TITLE 0 +#define PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE 1 +#define PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE 2 +#define PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE 3 + +// Button control text (upper right) +#define PSS_LABEL_WINDOW_PROMPT_CANCEL 4 +#define PSS_LABEL_WINDOW_PROMPT_INFO 5 +#define PSS_LABEL_WINDOW_PROMPT_SWITCH 6 +#define PSS_LABEL_WINDOW_UNUSED1 7 + +// Info screen +#define PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL 8 +#define PSS_LABEL_WINDOW_POKEMON_INFO_TYPE 9 + +// Skills screen +#define PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT 10 // HP, Attack, Defense +#define PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT 11 // Sp. Attack, Sp. Defense, Speed +#define PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP 12 // EXP, Next Level +#define PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS 13 + +// Moves screen +#define PSS_LABEL_WINDOW_MOVES_POWER_ACC 14 // Also contains the power and accuracy values +#define PSS_LABEL_WINDOW_MOVES_APPEAL_JAM 15 +#define PSS_LABEL_WINDOW_UNUSED2 16 + +// Above/below the pokemon's portrait (left) +#define PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER 17 +#define PSS_LABEL_WINDOW_PORTRAIT_NICKNAME 18 // The upper name +#define PSS_LABEL_WINDOW_PORTRAIT_SPECIES 19 // The lower name +#define PSS_LABEL_WINDOW_END 20 + +// Dynamic fields for the Pokemon Info page +#define PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER 0 +#define PSS_DATA_WINDOW_INFO_ID 1 +#define PSS_DATA_WINDOW_INFO_ABILITY 2 +#define PSS_DATA_WINDOW_INFO_MEMO 3 + +// Dynamic fields for the Pokemon Skills page +#define PSS_DATA_WINDOW_SKILLS_HELD_ITEM 0 +#define PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT 1 +#define PSS_DATA_WINDOW_SKILLS_STATS_LEFT 2 // HP, Attack, Defense +#define PSS_DATA_WINDOW_SKILLS_STATS_RIGHT 3 // Sp. Attack, Sp. Defense, Speed +#define PSS_DATA_WINDOW_EXP 4 // Exp, next level + +// Dynamic fields for the Battle Moves and Contest Moves pages. +#define PSS_DATA_WINDOW_MOVE_NAMES 0 +#define PSS_DATA_WINDOW_MOVE_PP 1 +#define PSS_DATA_WINDOW_MOVE_DESCRIPTION 2 + +// Used for switching between pages, pokemon, and moves. +#define PSS_CHANGE_NEXT 1 +#define PSS_CHANGE_PREV -1 + +static EWRAM_DATA struct PokemonSummaryScreenData { /*0x00*/ union { struct Pokemon *mons; @@ -63,7 +118,7 @@ static EWRAM_DATA struct PssData u8 isEgg; // 0x4 u8 level; // 0x5 u8 ribbonCount; // 0x6 - u8 unk7; // 0x7 + u8 ailment; // 0x7 u8 altAbility; // 0x8 u8 metLocation; // 0x9 u8 metLevel; // 0xA @@ -109,7 +164,7 @@ static EWRAM_DATA struct PssData bool8 unk40EF; s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data u8 unk_filler4[6]; -} *pssData = NULL; +} *sMonSummaryScreenData = NULL; EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sUnknown_0203CF21 = 0; ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; @@ -135,7 +190,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon* a); static void sub_81C0348(void); static void CloseSummaryScreen(u8 taskId); static void HandleInput(u8 taskId); -static void ChangePokemon(u8 taskId, s8 a); +static void ChangeSummaryPokemon(u8 taskId, s8 a); static void sub_81C0704(u8 taskId); static s8 sub_81C08F8(s8 a); static s8 sub_81C09B4(s8 a); @@ -309,7 +364,7 @@ static const struct UnkStruct_61CC04 sUnknown_0861CC10 = static const s8 gUnknown_0861CC1C[] = {0, 2, 3, 1, 4, 5}; static const struct WindowTemplate sSummaryTemplate[] = { - {//Text for Pokemon Info + [PSS_LABEL_WINDOW_POKEMON_INFO_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -318,7 +373,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 1, }, - {//Text for Pokemon Skills + [PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -327,7 +382,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 23, }, - {//Text for Battle Moves + [PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -336,7 +391,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 45, }, - {//Text for Contest Moves + [PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -345,7 +400,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 67, }, - { //Text on Pokemon Info: Button prompt: Cancel + [PSS_LABEL_WINDOW_PROMPT_CANCEL] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 0, @@ -354,7 +409,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 7, .baseBlock = 89, }, - {//Info button found under moves + [PSS_LABEL_WINDOW_PROMPT_INFO] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 0, @@ -363,7 +418,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 7, .baseBlock = 105, }, - {//Switch button under moves when viewing moves + [PSS_LABEL_WINDOW_PROMPT_SWITCH] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 0, @@ -372,7 +427,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 7, .baseBlock = 121, }, - {//Unknown + [PSS_LABEL_WINDOW_UNUSED1] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 4, @@ -381,7 +436,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 137, }, - {//Unknown + [PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 4, @@ -390,7 +445,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 137, }, - {//Type on pokemon info page + [PSS_LABEL_WINDOW_POKEMON_INFO_TYPE] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 6, @@ -399,7 +454,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 173, }, - {//HP, Attack and Defense text + [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT] = { .bg = 0, .tilemapLeft = 10, .tilemapTop = 7, @@ -408,7 +463,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 209, }, - {//Sp. atk, Sp. Def and Speed texxt + [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 7, @@ -417,7 +472,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 245, }, - {//EXP and next lvl. + [PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP] = { .bg = 0, .tilemapLeft = 10, .tilemapTop = 14, @@ -426,7 +481,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 275, }, - {//Unknown + [PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 18, @@ -435,7 +490,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 319, }, - {//move text: Power, Accuracy and their numeric values. + [PSS_LABEL_WINDOW_MOVES_POWER_ACC] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 15, @@ -444,7 +499,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 331, }, - {//contest text: appeal and jam + [PSS_LABEL_WINDOW_MOVES_APPEAL_JAM] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 15, @@ -453,7 +508,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 367, }, - {//Unknown + [PSS_LABEL_WINDOW_UNUSED2] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 4, @@ -462,7 +517,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 387, }, - {//No. + [PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 2, @@ -471,7 +526,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 7, .baseBlock = 387, }, - {//Upper name + [PSS_LABEL_WINDOW_PORTRAIT_NICKNAME] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 12, @@ -480,7 +535,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 395, }, - {//Lower name + [PSS_LABEL_WINDOW_PORTRAIT_SPECIES] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 14, @@ -489,11 +544,11 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 413, }, - DUMMY_WIN_TEMPLATE + [PSS_LABEL_WINDOW_END] = DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sPageInfoTemplate[] = { - {//Original Trainer + [PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 4, @@ -502,7 +557,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .paletteNum = 6, .baseBlock = 449, }, - {//ID numbers + [PSS_DATA_WINDOW_INFO_ID] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 4, @@ -511,7 +566,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .paletteNum = 6, .baseBlock = 471, }, - {//Ability + [PSS_DATA_WINDOW_INFO_ABILITY] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 9, @@ -520,7 +575,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .paletteNum = 6, .baseBlock = 485, }, - {//Trainer Memo + [PSS_DATA_WINDOW_INFO_MEMO] = { .bg = 0, .tilemapLeft = 11, .tilemapTop = 14, @@ -532,7 +587,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = }; static const struct WindowTemplate sPageSkillsTemplate[] = { - {//Held Item string + [PSS_DATA_WINDOW_SKILLS_HELD_ITEM] = { .bg = 0, .tilemapLeft = 10, .tilemapTop = 4, @@ -541,7 +596,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .paletteNum = 6, .baseBlock = 449, }, - {//Ribbon string + [PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT] = { .bg = 0, .tilemapLeft = 20, .tilemapTop = 4, @@ -550,7 +605,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .paletteNum = 6, .baseBlock = 469, }, - {//Stat numbers left (HP, ATK & DEF) + [PSS_DATA_WINDOW_SKILLS_STATS_LEFT] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 7, @@ -559,7 +614,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .paletteNum = 6, .baseBlock = 489, }, - {//Stat numbers right (SP.ATK, SP.DEF & SPEED) + [PSS_DATA_WINDOW_SKILLS_STATS_RIGHT] = { .bg = 0, .tilemapLeft = 27, .tilemapTop = 7, @@ -568,7 +623,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .paletteNum = 6, .baseBlock = 525, }, - {//Exp numbers + [PSS_DATA_WINDOW_EXP] = { .bg = 0, .tilemapLeft = 24, .tilemapTop = 14, @@ -580,7 +635,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = }; static const struct WindowTemplate sPageMovesTemplate[] = // This is used for both battle and contest moves { - {//Move names? + [PSS_DATA_WINDOW_MOVE_NAMES] = { .bg = 0, .tilemapLeft = 15, .tilemapTop = 4, @@ -589,7 +644,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .paletteNum = 6, .baseBlock = 449, }, - {//PP Numbers + [PSS_DATA_WINDOW_MOVE_PP] = { .bg = 0, .tilemapLeft = 24, .tilemapTop = 4, @@ -598,7 +653,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .paletteNum = 8, .baseBlock = 539, }, - {//Move description text + [PSS_DATA_WINDOW_MOVE_DESCRIPTION] = { .bg = 0, .tilemapLeft = 10, .tilemapTop = 15, @@ -996,38 +1051,38 @@ static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summ // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - pssData = AllocZeroed(sizeof(*pssData)); - pssData->mode = mode; - pssData->monList.mons = mons; - pssData->curMonIndex = monIndex; - pssData->maxMonIndex = maxMonIndex; - pssData->callback = callback; + sMonSummaryScreenData = AllocZeroed(sizeof(*sMonSummaryScreenData)); + sMonSummaryScreenData->mode = mode; + sMonSummaryScreenData->monList.mons = mons; + sMonSummaryScreenData->curMonIndex = monIndex; + sMonSummaryScreenData->maxMonIndex = maxMonIndex; + sMonSummaryScreenData->callback = callback; if (mode == PSS_MODE_BOX) - pssData->isBoxMon = TRUE; + sMonSummaryScreenData->isBoxMon = TRUE; else - pssData->isBoxMon = FALSE; + sMonSummaryScreenData->isBoxMon = FALSE; switch (mode) { case PSS_MODE_NORMAL: case PSS_MODE_BOX: - pssData->minPageIndex = 0; - pssData->maxPageIndex = 3; + sMonSummaryScreenData->minPageIndex = 0; + sMonSummaryScreenData->maxPageIndex = 3; break; case PSS_MODE_UNK1: - pssData->minPageIndex = 0; - pssData->maxPageIndex = 3; - pssData->unk40C8 = TRUE; + sMonSummaryScreenData->minPageIndex = 0; + sMonSummaryScreenData->maxPageIndex = 3; + sMonSummaryScreenData->unk40C8 = TRUE; break; case PSS_MODE_SELECT_MOVE: - pssData->minPageIndex = 2; - pssData->maxPageIndex = 3; - pssData->lockMonFlag = TRUE; + sMonSummaryScreenData->minPageIndex = 2; + sMonSummaryScreenData->maxPageIndex = 3; + sMonSummaryScreenData->lockMonFlag = TRUE; break; } - pssData->currPageIndex = pssData->minPageIndex; + sMonSummaryScreenData->currPageIndex = sMonSummaryScreenData->minPageIndex; SummaryScreen_SetUnknownTaskId(-1); if (gMonSpritesGfxPtr == 0) @@ -1039,13 +1094,13 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); - pssData->newMove = newMove; + sMonSummaryScreenData->newMove = newMove; } void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { ShowPokemonSummaryScreen(mode, mons, monIndex, maxMonIndex, callback); - pssData->unk40EF = TRUE; + sMonSummaryScreenData->unk40EF = TRUE; } static void SummaryScreen_MainCB2(void) @@ -1098,7 +1153,7 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 5: InitBGs(); - pssData->switchCounter = 0; + sMonSummaryScreenData->switchCounter = 0; gMain.state++; break; case 6: @@ -1114,12 +1169,12 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 9: - CopyMonToSummaryStruct(&pssData->currentMon); - pssData->switchCounter = 0; + CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); + sMonSummaryScreenData->switchCounter = 0; gMain.state++; break; case 10: - if (ExtractMonDataToSummaryStruct(&pssData->currentMon) != 0) + if (ExtractMonDataToSummaryStruct(&sMonSummaryScreenData->currentMon) != 0) gMain.state++; break; case 11: @@ -1131,7 +1186,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 13: - PrintPageSpecificText(pssData->currPageIndex); + PrintPageSpecificText(sMonSummaryScreenData->currPageIndex); gMain.state++; break; case 14: @@ -1139,29 +1194,29 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 15: - CreatePageWindowTilemaps(pssData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); gMain.state++; break; case 16: ResetSpriteIds(); CreateMoveTypeIcons(); - pssData->switchCounter = 0; + sMonSummaryScreenData->switchCounter = 0; gMain.state++; break; case 17: - pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &pssData->switchCounter); - if (pssData->spriteIds[0] != 0xFF) + sMonSummaryScreenData->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreenData->currentMon, &sMonSummaryScreenData->switchCounter); + if (sMonSummaryScreenData->spriteIds[0] != 0xFF) { - pssData->switchCounter = 0; + sMonSummaryScreenData->switchCounter = 0; gMain.state++; } break; case 18: - CreateMonMarkingsSprite(&pssData->currentMon); + CreateMonMarkingsSprite(&sMonSummaryScreenData->currentMon); gMain.state++; break; case 19: - CreateCaughtBallSprite(&pssData->currentMon); + CreateCaughtBallSprite(&sMonSummaryScreenData->currentMon); gMain.state++; break; case 20: @@ -1173,7 +1228,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 22: - if (pssData->mode != PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode != PSS_MODE_SELECT_MOVE) CreateTask(HandleInput, 0); else CreateTask(sub_81C171C, 0); @@ -1200,9 +1255,9 @@ static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sUnknown_0861CBB4, ARRAY_COUNT(sUnknown_0861CBB4)); - SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); - SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); - SetBgTilemapBuffer(3, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + SetBgTilemapBuffer(1, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgTilemapBuffer(2, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); + SetBgTilemapBuffer(3, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0]); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -1217,64 +1272,64 @@ static void InitBGs(void) static bool8 SummaryScreen_DecompressGraphics(void) { - switch (pssData->switchCounter) + switch (sMonSummaryScreenData->switchCounter) { case 0: reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(1, &gStatusScreenBitmap, 0, 0, 0); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(gPageInfoTilemap, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0]); - pssData->switchCounter++; + LZDecompressWram(gPageInfoTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + sMonSummaryScreenData->switchCounter++; } break; case 2: - LZDecompressWram(gUnknown_08D98CC8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][1]); - pssData->switchCounter++; + LZDecompressWram(gUnknown_08D98CC8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1]); + sMonSummaryScreenData->switchCounter++; break; case 3: - LZDecompressWram(gPageSkillsTilemap, pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); - pssData->switchCounter++; + LZDecompressWram(gPageSkillsTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); + sMonSummaryScreenData->switchCounter++; break; case 4: - LZDecompressWram(gPageBattleMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); - pssData->switchCounter++; + LZDecompressWram(gPageBattleMovesTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); + sMonSummaryScreenData->switchCounter++; break; case 5: - LZDecompressWram(gPageContestMovesTilemap, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); - pssData->switchCounter++; + LZDecompressWram(gPageContestMovesTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); + sMonSummaryScreenData->switchCounter++; break; case 6: LoadCompressedPalette(gStatusScreenPalette, 0, 0x100); LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 7: LoadCompressedSpriteSheet(&sSpriteSheet_MoveTypes); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 8: LoadCompressedSpriteSheet(&sMoveSelectorSpriteSheet); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 9: LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 10: LoadCompressedSpritePalette(&sStatusIconsSpritePalette); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 11: LoadCompressedSpritePalette(&gUnknown_0861D07C); - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; break; case 12: LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); - pssData->switchCounter = 0; + sMonSummaryScreenData->switchCounter = 0; return TRUE; } return FALSE; @@ -1282,126 +1337,127 @@ static bool8 SummaryScreen_DecompressGraphics(void) static void CopyMonToSummaryStruct(struct Pokemon *mon) { - if (!pssData->isBoxMon) + if (!sMonSummaryScreenData->isBoxMon) { - struct Pokemon *partyMon = pssData->monList.mons; - *mon = partyMon[pssData->curMonIndex]; + struct Pokemon *partyMon = sMonSummaryScreenData->monList.mons; + *mon = partyMon[sMonSummaryScreenData->curMonIndex]; } else { - struct BoxPokemon *boxMon = pssData->monList.boxMons; - BoxMonToMon(&boxMon[pssData->curMonIndex], mon); + struct BoxPokemon *boxMon = sMonSummaryScreenData->monList.boxMons; + BoxMonToMon(&boxMon[sMonSummaryScreenData->curMonIndex], mon); } } -static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *a) +static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) { u32 i; - struct PokeSummary *sum = &pssData->summary; - switch (pssData->switchCounter) + struct PokeSummary *sum = &sMonSummaryScreenData->summary; + // Spread the data extraction over multiple frames. + switch (sMonSummaryScreenData->switchCounter) { case 0: - sum->species = GetMonData(a, MON_DATA_SPECIES); - sum->species2 = GetMonData(a, MON_DATA_SPECIES2); - sum->exp = GetMonData(a, MON_DATA_EXP); - sum->level = GetMonData(a, MON_DATA_LEVEL); - sum->altAbility = GetMonData(a, MON_DATA_ALT_ABILITY); - sum->item = GetMonData(a, MON_DATA_HELD_ITEM); - sum->pid = GetMonData(a, MON_DATA_PERSONALITY); - sum->sanity = GetMonData(a, MON_DATA_SANITY_IS_BAD_EGG); + sum->species = GetMonData(mon, MON_DATA_SPECIES); + sum->species2 = GetMonData(mon, MON_DATA_SPECIES2); + sum->exp = GetMonData(mon, MON_DATA_EXP); + sum->level = GetMonData(mon, MON_DATA_LEVEL); + sum->altAbility = GetMonData(mon, MON_DATA_ALT_ABILITY); + sum->item = GetMonData(mon, MON_DATA_HELD_ITEM); + sum->pid = GetMonData(mon, MON_DATA_PERSONALITY); + sum->sanity = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG); if (sum->sanity) sum->isEgg = TRUE; else - sum->isEgg = GetMonData(a, MON_DATA_IS_EGG); + sum->isEgg = GetMonData(mon, MON_DATA_IS_EGG); break; case 1: for (i = 0; i < MAX_MON_MOVES; i++) { - sum->moves[i] = GetMonData(a, MON_DATA_MOVE1+i); - sum->pp[i] = GetMonData(a, MON_DATA_PP1+i); + sum->moves[i] = GetMonData(mon, MON_DATA_MOVE1+i); + sum->pp[i] = GetMonData(mon, MON_DATA_PP1+i); } - sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES); + sum->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); break; case 2: - if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_BOX || pssData->unk40EF == TRUE) + if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) { - sum->nature = GetNature(a); - sum->currentHP = GetMonData(a, MON_DATA_HP); - sum->maxHP = GetMonData(a, MON_DATA_MAX_HP); - sum->atk = GetMonData(a, MON_DATA_ATK); - sum->def = GetMonData(a, MON_DATA_DEF); - sum->spatk = GetMonData(a, MON_DATA_SPATK); - sum->spdef = GetMonData(a, MON_DATA_SPDEF); - sum->speed = GetMonData(a, MON_DATA_SPEED); + sum->nature = GetNature(mon); + sum->currentHP = GetMonData(mon, MON_DATA_HP); + sum->maxHP = GetMonData(mon, MON_DATA_MAX_HP); + sum->atk = GetMonData(mon, MON_DATA_ATK); + sum->def = GetMonData(mon, MON_DATA_DEF); + sum->spatk = GetMonData(mon, MON_DATA_SPATK); + sum->spdef = GetMonData(mon, MON_DATA_SPDEF); + sum->speed = GetMonData(mon, MON_DATA_SPEED); } else { - sum->nature = GetNature(a); - sum->currentHP = GetMonData(a, MON_DATA_HP); - sum->maxHP = GetMonData(a, MON_DATA_MAX_HP); - sum->atk = GetMonData(a, MON_DATA_ATK2); - sum->def = GetMonData(a, MON_DATA_DEF2); - sum->spatk = GetMonData(a, MON_DATA_SPATK2); - sum->spdef = GetMonData(a, MON_DATA_SPDEF2); - sum->speed = GetMonData(a, MON_DATA_SPEED2); + sum->nature = GetNature(mon); + sum->currentHP = GetMonData(mon, MON_DATA_HP); + sum->maxHP = GetMonData(mon, MON_DATA_MAX_HP); + sum->atk = GetMonData(mon, MON_DATA_ATK2); + sum->def = GetMonData(mon, MON_DATA_DEF2); + sum->spatk = GetMonData(mon, MON_DATA_SPATK2); + sum->spdef = GetMonData(mon, MON_DATA_SPDEF2); + sum->speed = GetMonData(mon, MON_DATA_SPEED2); } break; case 3: - GetMonData(a, MON_DATA_OT_NAME, &sum->OTName); - ConvertInternationalString((u8*)&sum->OTName, GetMonData(a, MON_DATA_LANGUAGE)); - sum->unk7 = sub_81B205C(a); - sum->OTGender = GetMonData(a, MON_DATA_OT_GENDER); - sum->OTID = GetMonData(a, MON_DATA_OT_ID); - sum->metLocation = GetMonData(a, MON_DATA_MET_LOCATION); - sum->metLevel = GetMonData(a, MON_DATA_MET_LEVEL); - sum->metGame = GetMonData(a, MON_DATA_MET_GAME); - sum->friendship = GetMonData(a, MON_DATA_FRIENDSHIP); + GetMonData(mon, MON_DATA_OT_NAME, &sum->OTName); + ConvertInternationalString((u8*)&sum->OTName, GetMonData(mon, MON_DATA_LANGUAGE)); + sum->ailment = GetMonAilment(mon); + sum->OTGender = GetMonData(mon, MON_DATA_OT_GENDER); + sum->OTID = GetMonData(mon, MON_DATA_OT_ID); + sum->metLocation = GetMonData(mon, MON_DATA_MET_LOCATION); + sum->metLevel = GetMonData(mon, MON_DATA_MET_LEVEL); + sum->metGame = GetMonData(mon, MON_DATA_MET_GAME); + sum->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); break; default: - sum->ribbonCount = GetMonData(a, MON_DATA_RIBBON_COUNT); + sum->ribbonCount = GetMonData(mon, MON_DATA_RIBBON_COUNT); return TRUE; } - pssData->switchCounter++; + sMonSummaryScreenData->switchCounter++; return FALSE; } static void sub_81C0348(void) { - if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreenData->currPageIndex != PSS_PAGE_CONTEST_MOVES) { sub_81C1DA4(0, 255); sub_81C1EFC(0, 255, 0); } else { - DrawContestMoveHearts(pssData->summary.moves[pssData->firstMoveIndex]); - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); - SetBgTilemapBuffer(1, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); - SetBgTilemapBuffer(2, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + DrawContestMoveHearts(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + SetBgTilemapBuffer(1, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); + SetBgTilemapBuffer(2, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); ChangeBgX(2, 0x10000, 1); - ClearWindowTilemap(19); - ClearWindowTilemap(13); + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } - if (pssData->summary.unk7 == 0) + if (sMonSummaryScreenData->summary.ailment == AILMENT_NONE) { sub_81C2074(0, 0xFF); } else { - if (pssData->currPageIndex != PSS_PAGE_BATTLE_MOVES && pssData->currPageIndex != PSS_PAGE_CONTEST_MOVES) - PutWindowTilemap(13); + if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreenData->currPageIndex != PSS_PAGE_CONTEST_MOVES) + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } LimitEggSummaryPageDisplay(); - DrawPokerusCuredSymbol(&pssData->currentMon); + DrawPokerusCuredSymbol(&sMonSummaryScreenData->currentMon); } static void sub_81C0434(void) { FreeAllWindowBuffers(); - Free(pssData); + Free(sMonSummaryScreenData); } static void BeginCloseSummaryScreen(u8 taskId) @@ -1414,8 +1470,8 @@ static void CloseSummaryScreen(u8 taskId) { if (sub_81221EC() != TRUE && !gPaletteFade.active) { - SetMainCallback2(pssData->callback); - gLastViewedMonIndex = pssData->curMonIndex; + SetMainCallback2(sMonSummaryScreenData->callback); + gLastViewedMonIndex = sMonSummaryScreenData->curMonIndex; SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1434,25 +1490,25 @@ static void HandleInput(u8 taskId) { if (gMain.newKeys & DPAD_UP) { - ChangePokemon(taskId, -1); + ChangeSummaryPokemon(taskId, PSS_CHANGE_PREV); } else if (gMain.newKeys & DPAD_DOWN) { - ChangePokemon(taskId, 1); + ChangeSummaryPokemon(taskId, PSS_CHANGE_NEXT); } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1) { - ChangePage(taskId, -1); + ChangePage(taskId, PSS_CHANGE_PREV); } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2) { - ChangePage(taskId, 1); + ChangePage(taskId, PSS_CHANGE_NEXT); } else if (gMain.newKeys & A_BUTTON) { - if (pssData->currPageIndex != PSS_PAGE_SKILLS) + if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_SKILLS) { - if (pssData->currPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreenData->currPageIndex == PSS_PAGE_INFO) { StopPokemonAnimations(); PlaySE(SE_SELECT); @@ -1474,50 +1530,52 @@ static void HandleInput(u8 taskId) } } -static void ChangePokemon(u8 taskId, s8 a) +static void ChangeSummaryPokemon(u8 taskId, s8 delta) { - s8 r4_2; + s8 v1; + s8 v2; - if (!pssData->lockMonFlag) + if (!sMonSummaryScreenData->lockMonFlag) { - if (pssData->isBoxMon == TRUE) + if (sMonSummaryScreenData->isBoxMon == TRUE) { - if (pssData->currPageIndex != PSS_PAGE_INFO) + + if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_INFO) { - if (a == 1) - a = 0; + if (delta == PSS_CHANGE_NEXT) + delta = 0; else - a = 2; + delta = 2; } else { - if (a == 1) - a = 1; + if (delta == PSS_CHANGE_NEXT) + delta = 1; else - a = 3; + delta = 3; } - r4_2 = sub_80D214C(pssData->monList.boxMons, pssData->curMonIndex, pssData->maxMonIndex, a); + v1 = sub_80D214C(sMonSummaryScreenData->monList.boxMons, sMonSummaryScreenData->curMonIndex, sMonSummaryScreenData->maxMonIndex, delta); } else if (IsMultiBattle() == TRUE) { - r4_2 = sub_81C09B4(a); + v1 = sub_81C09B4(delta); } else { - r4_2 = sub_81C08F8(a); + v1 = sub_81C08F8(delta); } - if (r4_2 != -1) + if (v1 != -1) { PlaySE(SE_SELECT); - if (pssData->summary.unk7 != 0) + if (sMonSummaryScreenData->summary.ailment != AILMENT_NONE) { SetSpriteInvisibility(2, 1); - ClearWindowTilemap(13); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); } - pssData->curMonIndex = r4_2; + sMonSummaryScreenData->curMonIndex = v1; gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_81C0704; } @@ -1535,36 +1593,36 @@ static void sub_81C0704(u8 taskId) break; case 1: SummaryScreen_DestroyUnknownTask(); - DestroySpriteAndFreeResources(&gSprites[pssData->spriteIds[0]]); + DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreenData->spriteIds[0]]); break; case 2: - DestroySpriteAndFreeResources(&gSprites[pssData->spriteIds[1]]); + DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreenData->spriteIds[1]]); break; case 3: - CopyMonToSummaryStruct(&pssData->currentMon); - pssData->switchCounter = 0; + CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); + sMonSummaryScreenData->switchCounter = 0; break; case 4: - if (ExtractMonDataToSummaryStruct(&pssData->currentMon) == FALSE) + if (ExtractMonDataToSummaryStruct(&sMonSummaryScreenData->currentMon) == FALSE) return; break; case 5: - RemoveAndCreateMonMarkingsSprite(&pssData->currentMon); + RemoveAndCreateMonMarkingsSprite(&sMonSummaryScreenData->currentMon); break; case 6: - CreateCaughtBallSprite(&pssData->currentMon); + CreateCaughtBallSprite(&sMonSummaryScreenData->currentMon); break; case 7: - if (pssData->summary.unk7) + if (sMonSummaryScreenData->summary.ailment != AILMENT_NONE) sub_81C2074(10, -2); - DrawPokerusCuredSymbol(&pssData->currentMon); + DrawPokerusCuredSymbol(&sMonSummaryScreenData->currentMon); data[1] = 0; break; case 8: - pssData->spriteIds[0] = CreatePokemonSprite(&pssData->currentMon, &data[1]); - if (pssData->spriteIds[0] == 0xFF) + sMonSummaryScreenData->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreenData->currentMon, &data[1]); + if (sMonSummaryScreenData->spriteIds[0] == 0xFF) return; - gSprites[pssData->spriteIds[0]].data[2] = 1; + gSprites[sMonSummaryScreenData->spriteIds[0]].data[2] = 1; CheckExperienceProgressBar(); data[1] = 0; break; @@ -1575,11 +1633,11 @@ static void sub_81C0704(u8 taskId) sub_81C25E8(); break; case 11: - PrintPageSpecificText(pssData->currPageIndex); + PrintPageSpecificText(sMonSummaryScreenData->currPageIndex); LimitEggSummaryPageDisplay(); break; case 12: - gSprites[pssData->spriteIds[0]].data[2] = 0; + gSprites[sMonSummaryScreenData->spriteIds[0]].data[2] = 0; break; default: if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) @@ -1594,25 +1652,25 @@ static void sub_81C0704(u8 taskId) static s8 sub_81C08F8(s8 a) { - struct Pokemon *mon = pssData->monList.mons; + struct Pokemon *mon = sMonSummaryScreenData->monList.mons; - if (pssData->currPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreenData->currPageIndex == PSS_PAGE_INFO) { - if (a == -1 && pssData->curMonIndex == 0) + if (a == -1 && sMonSummaryScreenData->curMonIndex == 0) return -1; - else if (a == 1 && pssData->curMonIndex >= pssData->maxMonIndex) + else if (a == 1 && sMonSummaryScreenData->curMonIndex >= sMonSummaryScreenData->maxMonIndex) return -1; else - return pssData->curMonIndex + a; + return sMonSummaryScreenData->curMonIndex + a; } else { - s8 index = pssData->curMonIndex; + s8 index = sMonSummaryScreenData->curMonIndex; do { index += a; - if (index < 0 || index > pssData->maxMonIndex) + if (index < 0 || index > sMonSummaryScreenData->maxMonIndex) return -1; } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0); return index; @@ -1621,13 +1679,13 @@ static s8 sub_81C08F8(s8 a) static s8 sub_81C09B4(s8 a) { - struct Pokemon *mon = pssData->monList.mons; + struct Pokemon *mon = sMonSummaryScreenData->monList.mons; s8 r5 = 0; u8 i; for (i = 0; i < 6; i++) { - if (gUnknown_0861CC1C[i] == pssData->curMonIndex) + if (gUnknown_0861CC1C[i] == sMonSummaryScreenData->curMonIndex) { r5 = i; break; @@ -1652,33 +1710,33 @@ static bool8 sub_81C0A50(struct Pokemon* mon) { if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_NONE) return FALSE; - else if (pssData->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) + else if (sMonSummaryScreenData->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) return TRUE; else return FALSE; } -static void ChangePage(u8 taskId, s8 b) +static void ChangePage(u8 taskId, s8 delta) { - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; s16 *data = gTasks[taskId].data; if (summary->isEgg) return; - else if (b == -1 && pssData->currPageIndex == pssData->minPageIndex) + else if (delta == PSS_CHANGE_PREV && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->minPageIndex) return; - else if (b == 1 && pssData->currPageIndex == pssData->maxPageIndex) + else if (delta == PSS_CHANGE_NEXT && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->maxPageIndex) return; PlaySE(SE_SELECT); - ClearPageWindowTilemaps(pssData->currPageIndex); - pssData->currPageIndex += b; + ClearPageWindowTilemaps(sMonSummaryScreenData->currPageIndex); + sMonSummaryScreenData->currPageIndex += delta; data[0] = 0; - if (b == 1) + if (delta == PSS_CHANGE_NEXT) SetTaskFuncWithFollowupFunc(taskId, PssScrollRight, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, PssScrollLeft, gTasks[taskId].func); - CreateTextPrinterTask(pssData->currPageIndex); + CreateTextPrinterTask(sMonSummaryScreenData->currPageIndex); HidePageSpecificSprites(); } @@ -1687,7 +1745,7 @@ static void PssScrollRight(u8 taskId) // Scroll right s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->bgDisplayOrder == 0) + if (sMonSummaryScreenData->bgDisplayOrder == 0) { data[1] = 1; SetBgAttribute(1, BG_ATTR_PRIORITY, 1); @@ -1702,7 +1760,7 @@ static void PssScrollRight(u8 taskId) // Scroll right schedule_bg_copy_tilemap_to_vram(2); } ChangeBgX(data[1], 0, 0); - SetBgTilemapBuffer(data[1], pssData->bgTilemapBuffers[pssData->currPageIndex][0]); + SetBgTilemapBuffer(data[1], sMonSummaryScreenData->bgTilemapBuffers[sMonSummaryScreenData->currPageIndex][0]); ShowBg(1); ShowBg(2); } @@ -1715,11 +1773,11 @@ static void PssScrollRight(u8 taskId) // Scroll right static void PssScrollRightEnd(u8 taskId) // display right { s16 *data = gTasks[taskId].data; - pssData->bgDisplayOrder ^= 1; + sMonSummaryScreenData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; DrawPagination(); - CreatePageWindowTilemaps(pssData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); SetTypeIcons(); CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); @@ -1730,7 +1788,7 @@ static void PssScrollLeft(u8 taskId) // Scroll left s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (pssData->bgDisplayOrder == 0) + if (sMonSummaryScreenData->bgDisplayOrder == 0) data[1] = 2; else data[1] = 1; @@ -1745,7 +1803,7 @@ static void PssScrollLeft(u8 taskId) // Scroll left static void PssScrollLeftEnd(u8 taskId) // display left { s16 *data = gTasks[taskId].data; - if (pssData->bgDisplayOrder == 0) + if (sMonSummaryScreenData->bgDisplayOrder == 0) { SetBgAttribute(1, BG_ATTR_PRIORITY, 1); SetBgAttribute(2, BG_ATTR_PRIORITY, 2); @@ -1757,18 +1815,18 @@ static void PssScrollLeftEnd(u8 taskId) // display left SetBgAttribute(1, BG_ATTR_PRIORITY, 2); schedule_bg_copy_tilemap_to_vram(1); } - if (pssData->currPageIndex > 1) + if (sMonSummaryScreenData->currPageIndex > 1) { - SetBgTilemapBuffer(data[1], (u8*)pssData + ((pssData->currPageIndex << 12) + 0xFFFFF0BC)); + SetBgTilemapBuffer(data[1], (u8*)sMonSummaryScreenData + ((sMonSummaryScreenData->currPageIndex << 12) + 0xFFFFF0BC)); ChangeBgX(data[1], 0x10000, 0); } ShowBg(1); ShowBg(2); - pssData->bgDisplayOrder ^= 1; + sMonSummaryScreenData->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; DrawPagination(); - CreatePageWindowTilemaps(pssData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); SetTypeIcons(); CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); @@ -1776,27 +1834,27 @@ static void PssScrollLeftEnd(u8 taskId) // display left static void CheckExperienceProgressBar(void) { - if (pssData->currPageIndex == 1) - DrawExperienceProgressBar(&pssData->currentMon); + if (sMonSummaryScreenData->currPageIndex == 1) + DrawExperienceProgressBar(&sMonSummaryScreenData->currentMon); } static void sub_81C0E48(u8 taskId) { u16 move; - pssData->firstMoveIndex = 0; - move = pssData->summary.moves[pssData->firstMoveIndex]; - ClearWindowTilemap(0x13); - if (gSprites[pssData->spriteIds[2]].invisible == 0) - ClearWindowTilemap(0xD); + sMonSummaryScreenData->firstMoveIndex = 0; + move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + if (gSprites[sMonSummaryScreenData->spriteIds[2]].invisible == 0) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - if (!pssData->unk40C8) + if (!sMonSummaryScreenData->unk40C8) { - ClearWindowTilemap(5); - PutWindowTilemap(6); + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); } - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); PrintMoveDetails(move); PrintNewMoveDetailsOrCancelText(); SetNewMoveTypeIcon(); @@ -1817,17 +1875,17 @@ static void HandleInput_MoveSelect(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &pssData->firstMoveIndex); + sub_81C1070(data, -1, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &pssData->firstMoveIndex); + sub_81C1070(data, 1, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (pssData->unk40C8 == TRUE - || (pssData->newMove == MOVE_NONE && pssData->firstMoveIndex == MAX_MON_MOVES)) + if (sMonSummaryScreenData->unk40C8 == TRUE + || (sMonSummaryScreenData->newMove == MOVE_NONE && sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES)) { PlaySE(SE_SELECT); sub_81C11F4(taskId); @@ -1855,7 +1913,7 @@ static bool8 sub_81C1040(void) u8 i; for (i = 1; i < MAX_MON_MOVES; i++) { - if (pssData->summary.moves[i] != 0) + if (sMonSummaryScreenData->summary.moves[i] != 0) return TRUE; } return FALSE; @@ -1878,10 +1936,10 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) moveIndex = a[0]; if (moveIndex == MAX_MON_MOVES) { - move = pssData->newMove; + move = sMonSummaryScreenData->newMove; break; } - move = pssData->summary.moves[moveIndex]; + move = sMonSummaryScreenData->summary.moves[moveIndex]; if (move != 0) break; } @@ -1889,25 +1947,25 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); PrintMoveDetails(move); - if ((*c == 4 && pssData->newMove == MOVE_NONE) || a[1] == 1) + if ((*c == 4 && sMonSummaryScreenData->newMove == MOVE_NONE) || a[1] == 1) { - ClearWindowTilemap(19); - if (!gSprites[pssData->spriteIds[2]].invisible) - ClearWindowTilemap(13); + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); } - if (*c != 4 && moveIndex == 4 && pssData->newMove == MOVE_NONE) + if (*c != 4 && moveIndex == 4 && sMonSummaryScreenData->newMove == MOVE_NONE) { - ClearWindowTilemap(14); - ClearWindowTilemap(15); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); } *c = moveIndex; - if (c == &pssData->firstMoveIndex) + if (c == &sMonSummaryScreenData->firstMoveIndex) sub_81C4D18(8); else sub_81C4D18(18); @@ -1916,16 +1974,16 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) static void sub_81C11F4(u8 taskId) { sub_81C4C60(8); - ClearWindowTilemap(6); - PutWindowTilemap(5); + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); PrintMoveDetails(0); - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); - sub_81C2194(pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); + sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); sub_81C4064(); - if (pssData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) { - ClearWindowTilemap(14); - ClearWindowTilemap(15); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); } @@ -1937,7 +1995,7 @@ static void sub_81C11F4(u8 taskId) static void sub_81C129C(u8 taskId) { - pssData->secondMoveIndex = pssData->firstMoveIndex; + sMonSummaryScreenData->secondMoveIndex = sMonSummaryScreenData->firstMoveIndex; sub_81C4C84(1); sub_81C4AF8(18); gTasks[taskId].func = sub_81C12E4; @@ -1952,16 +2010,16 @@ static void sub_81C12E4(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 3; - sub_81C1070(&data[0], -1, &pssData->secondMoveIndex); + sub_81C1070(&data[0], -1, &sMonSummaryScreenData->secondMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 3; - sub_81C1070(&data[0], 1, &pssData->secondMoveIndex); + sub_81C1070(&data[0], 1, &sMonSummaryScreenData->secondMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (pssData->firstMoveIndex == pssData->secondMoveIndex) + if (sMonSummaryScreenData->firstMoveIndex == sMonSummaryScreenData->secondMoveIndex) { sub_81C13B0(taskId, 0); } @@ -1987,23 +2045,23 @@ static void sub_81C13B0(u8 taskId, bool8 b) if (b == TRUE) { - if (!pssData->isBoxMon) + if (!sMonSummaryScreenData->isBoxMon) { - struct Pokemon *why = pssData->monList.mons; - SwapMonMoves(&why[pssData->curMonIndex], pssData->firstMoveIndex, pssData->secondMoveIndex); + struct Pokemon *why = sMonSummaryScreenData->monList.mons; + SwapMonMoves(&why[sMonSummaryScreenData->curMonIndex], sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); } else { - struct BoxPokemon *why = pssData->monList.boxMons; - SwapBoxMonMoves(&why[pssData->curMonIndex], pssData->firstMoveIndex, pssData->secondMoveIndex); + struct BoxPokemon *why = sMonSummaryScreenData->monList.boxMons; + SwapBoxMonMoves(&why[sMonSummaryScreenData->curMonIndex], sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); } - CopyMonToSummaryStruct(&pssData->currentMon); - sub_81C40A0(pssData->firstMoveIndex, pssData->secondMoveIndex); - sub_81C4568(pssData->firstMoveIndex, pssData->secondMoveIndex); - pssData->firstMoveIndex = pssData->secondMoveIndex; + CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); + sub_81C40A0(sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); + sub_81C4568(sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); + sMonSummaryScreenData->firstMoveIndex = sMonSummaryScreenData->secondMoveIndex; } - move = pssData->summary.moves[pssData->firstMoveIndex]; + move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; PrintMoveDetails(move); DrawContestMoveHearts(move); schedule_bg_copy_tilemap_to_vram(1); @@ -2013,7 +2071,7 @@ static void sub_81C13B0(u8 taskId, bool8 b) static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) { - struct PokeSummary* summary = &pssData->summary; + struct PokeSummary* summary = &sMonSummaryScreenData->summary; u16 move1 = summary->moves[moveIndex1]; u16 move2 = summary->moves[moveIndex2]; @@ -2048,7 +2106,7 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2) { - struct PokeSummary* summary = &pssData->summary; + struct PokeSummary* summary = &sMonSummaryScreenData->summary; u16 move1 = summary->moves[moveIndex1]; u16 move2 = summary->moves[moveIndex2]; @@ -2092,27 +2150,27 @@ static void HandleReplaceMoveInput(u8 taskId) { s16* data = gTasks[taskId].data; - if (sub_81221EC() != 1) + if (sub_81221EC() != TRUE) { - if (gPaletteFade.active != 1) + if (gPaletteFade.active != TRUE) { if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &pssData->firstMoveIndex); + sub_81C1070(data, PSS_CHANGE_PREV, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &pssData->firstMoveIndex); + sub_81C1070(data, PSS_CHANGE_NEXT, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - ChangePage(taskId, -1); + ChangePage(taskId, PSS_CHANGE_PREV); } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - ChangePage(taskId, 1); + ChangePage(taskId, PSS_CHANGE_NEXT); } else if (gMain.newKeys & A_BUTTON) { @@ -2120,7 +2178,7 @@ static void HandleReplaceMoveInput(u8 taskId) { StopPokemonAnimations(); PlaySE(SE_SELECT); - sUnknown_0203CF21 = pssData->firstMoveIndex; + sUnknown_0203CF21 = sMonSummaryScreenData->firstMoveIndex; gSpecialVar_0x8005 = sUnknown_0203CF21; BeginCloseSummaryScreen(taskId); } @@ -2145,7 +2203,7 @@ static void HandleReplaceMoveInput(u8 taskId) static bool8 CanReplaceMove(void) { - if (pssData->firstMoveIndex == MAX_MON_MOVES || pssData->newMove == MOVE_NONE || IsMoveHm(pssData->summary.moves[pssData->firstMoveIndex]) != 1) + if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES || sMonSummaryScreenData->newMove == MOVE_NONE || IsMoveHm(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]) != 1) return TRUE; else return FALSE; @@ -2153,8 +2211,8 @@ static bool8 CanReplaceMove(void) static void ShowHMMovesCantBeForgottenWindow(u8 taskId) { - ClearWindowTilemap(14); - ClearWindowTilemap(15); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(0, 3); sub_81C1EFC(0, 3, 0); @@ -2173,7 +2231,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], -1, &pssData->firstMoveIndex); + sub_81C1070(&data[0], -1, &sMonSummaryScreenData->firstMoveIndex); data[1] = 0; gTasks[taskId].func = HandleReplaceMoveInput; } @@ -2181,44 +2239,44 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], 1, &pssData->firstMoveIndex); + sub_81C1070(&data[0], 1, &sMonSummaryScreenData->firstMoveIndex); data[1] = 0; gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (pssData->currPageIndex != 2) + if (sMonSummaryScreenData->currPageIndex != 2) { - ClearWindowTilemap(19); - if (!gSprites[pssData->spriteIds[2]].invisible) - ClearWindowTilemap(13); - move = pssData->summary.moves[pssData->firstMoveIndex]; + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); + move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; - ChangePage(taskId, -1); + ChangePage(taskId, PSS_CHANGE_PREV); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (pssData->currPageIndex != 3) + if (sMonSummaryScreenData->currPageIndex != 3) { - ClearWindowTilemap(19); - if (!gSprites[pssData->spriteIds[2]].invisible) - ClearWindowTilemap(13); - move = pssData->summary.moves[pssData->firstMoveIndex]; + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); + move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; - ChangePage(taskId, 1); + ChangePage(taskId, PSS_CHANGE_NEXT); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } } else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - ClearWindowTilemap(19); - if (!gSprites[pssData->spriteIds[2]].invisible) - ClearWindowTilemap(13); - move = pssData->summary.moves[pssData->firstMoveIndex]; + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); + move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; PrintMoveDetails(move); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); @@ -2242,30 +2300,30 @@ static void DrawPagination(void) // Updates the pagination dots at the top of th { u8 j = i * 2; - if (i < pssData->minPageIndex) + if (i < sMonSummaryScreenData->minPageIndex) { alloced[j + 0] = 0x40; alloced[j + 1] = 0x40; alloced[j + 8] = 0x50; alloced[j + 9] = 0x50; } - else if (i > pssData->maxPageIndex) + else if (i > sMonSummaryScreenData->maxPageIndex) { alloced[j + 0] = 0x4A; alloced[j + 1] = 0x4A; alloced[j + 8] = 0x5A; alloced[j + 9] = 0x5A; } - else if (i < pssData->currPageIndex) + else if (i < sMonSummaryScreenData->currPageIndex) { alloced[j + 0] = 0x46; alloced[j + 1] = 0x47; alloced[j + 8] = 0x56; alloced[j + 9] = 0x57; } - else if (i == pssData->currPageIndex) + else if (i == sMonSummaryScreenData->currPageIndex) { - if (i != pssData->maxPageIndex) + if (i != sMonSummaryScreenData->maxPageIndex) { alloced[j + 0] = 0x41; alloced[j + 1] = 0x42; @@ -2280,7 +2338,7 @@ static void DrawPagination(void) // Updates the pagination dots at the top of th alloced[j + 9] = 0x5C; } } - else if (i != pssData->maxPageIndex) + else if (i != sMonSummaryScreenData->maxPageIndex) { alloced[j + 0] = 0x43; alloced[j + 1] = 0x44; @@ -2335,7 +2393,7 @@ static void sub_81C1DA4(u16 a, s16 b) b = sUnknown_0861CC04.field_6; if (b == 0 || b == sUnknown_0861CC04.field_6) { - sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2361,19 +2419,19 @@ static void sub_81C1E20(u8 taskId) { data[1] = sUnknown_0861CC04.field_6; } - sub_81C1CB0(&sUnknown_0861CC04, pssData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); + sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= sUnknown_0861CC04.field_6) { if (data[0] < 0) { - if (pssData->currPageIndex == 2) - PutWindowTilemap(14); + if (sMonSummaryScreenData->currPageIndex == 2) + PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else { - if (!gSprites[pssData->spriteIds[2]].invisible) - PutWindowTilemap(13); - PutWindowTilemap(19); + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } schedule_bg_copy_tilemap_to_vram(0); DestroyTask(taskId); @@ -2387,7 +2445,7 @@ static void sub_81C1EFC(u16 a, s16 b, u16 move) if (b > sUnknown_0861CC10.field_6) b = sUnknown_0861CC10.field_6; if (b == 0 || b == sUnknown_0861CC10.field_6) - sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2411,22 +2469,22 @@ static void sub_81C1F80(u8 taskId) { data[1] = sUnknown_0861CC10.field_6; } - sub_81C1CB0(&sUnknown_0861CC10, pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); + sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= sUnknown_0861CC10.field_6) { if (data[0] < 0) { - if (pssData->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) - PutWindowTilemap(15); + if (sMonSummaryScreenData->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) + PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); DrawContestMoveHearts(data[2]); } else { - if (!gSprites[pssData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) { - PutWindowTilemap(13); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } - PutWindowTilemap(19); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } schedule_bg_copy_tilemap_to_vram(0); DestroyTask(taskId); @@ -2441,8 +2499,8 @@ static void sub_81C2074(u16 a, s16 b) b = sUnknown_0861CBEC.field_6; if (b == 0 || b == sUnknown_0861CBEC.field_6) { - sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); - sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2460,15 +2518,15 @@ static void sub_81C20F0(u8 taskId) data[1] = 0; else if (data[1] > sUnknown_0861CBEC.field_6) data[1] = sUnknown_0861CBEC.field_6; - sub_81C1CB0(&sUnknown_0861CBEC, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); - sub_81C1CB0(&sUnknown_0861CBF8, pssData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); if (data[1] <= 0 || data[1] >= sUnknown_0861CBEC.field_6) { if (data[0] < 0) { CreateSetStatusSprite(); - PutWindowTilemap(13); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); schedule_bg_copy_tilemap_to_vram(0); } DestroyTask(taskId); @@ -2507,13 +2565,13 @@ static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mo { if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) // If yes it draws the cured symbol { - pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; - pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; + sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; + sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; } else { - pssData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; - pssData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; + sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; + sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; } schedule_bg_copy_tilemap_to_vram(3); } @@ -2530,7 +2588,7 @@ static void sub_81C228C(bool8 isMonShiny) static void DrawExperienceProgressBar(struct Pokemon *unused) { s64 numExpProgressBarTicks; - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; u16 *r9; u8 i; @@ -2551,7 +2609,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) numExpProgressBarTicks = 0; } - r9 = &pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; + r9 = &sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; for (i = 0; i < 8; i++) { if (numExpProgressBarTicks > 7) @@ -2563,7 +2621,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) numExpProgressBarTicks = 0; } - if (GetBgTilemapBuffer(1) == pssData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) + if (GetBgTilemapBuffer(1) == sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) schedule_bg_copy_tilemap_to_vram(1); else schedule_bg_copy_tilemap_to_vram(2); @@ -2571,7 +2629,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) static void DrawContestMoveHearts(u16 move) { - u16 *tilemap = pssData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; + u16 *tilemap = sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; u8 i; u8 effectValue; @@ -2615,7 +2673,7 @@ static void DrawContestMoveHearts(u16 move) static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1 { - if (pssData->summary.isEgg) + if (sMonSummaryScreenData->summary.isEgg) ChangeBgX(3, 0x10000, 0); else ChangeBgX(3, 0, 0); @@ -2631,9 +2689,9 @@ static void ResetWindows(void) { FillWindowPixelBuffer(i, 0); } - for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) { - pssData->windowIds[i] = 0xFF; + sMonSummaryScreenData->windowIds[i] = 0xFF; } } @@ -2644,10 +2702,10 @@ static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, static void sub_81C25E8(void) { - FillWindowPixelBuffer(17, 0); - FillWindowPixelBuffer(18, 0); - FillWindowPixelBuffer(19, 0); - if (!pssData->summary.isEgg) + FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, 0); + FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, 0); + FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, 0); + if (!sMonSummaryScreenData->summary.isEgg) sub_81C2628(); else sub_81C2794(); @@ -2657,8 +2715,8 @@ static void sub_81C25E8(void) static void sub_81C2628(void) { u8 strArray[16]; - struct Pokemon *mon = &pssData->currentMon; - struct PokeSummary *summary = &pssData->summary; + struct Pokemon *mon = &sMonSummaryScreenData->currentMon; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; u16 dexNum = SpeciesToPokedexNum(summary->species); if (dexNum != 0xFFFF) { @@ -2667,19 +2725,19 @@ static void sub_81C2628(void) StringAppend(gStringVar1, gStringVar2); if (!IsMonShiny(mon)) { - SummaryScreen_PrintTextOnWindow(17, gStringVar1, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 1); sub_81C228C(FALSE); } else { - SummaryScreen_PrintTextOnWindow(17, gStringVar1, 0, 1, 0, 7); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 7); sub_81C228C(TRUE); } - PutWindowTilemap(17); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); } else { - ClearWindowTilemap(17); + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); if (!IsMonShiny(mon)) sub_81C228C(FALSE); else @@ -2688,24 +2746,24 @@ static void sub_81C2628(void) StringCopy(gStringVar1, &gText_LevelSymbol[0]); ConvertIntToDecimalStringN(gStringVar2, summary->level, 0, 3); StringAppend(gStringVar1, gStringVar2); - SummaryScreen_PrintTextOnWindow(19, gStringVar1, 0x18, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, gStringVar1, 0x18, 17, 0, 1); GetMonNickname(mon, gStringVar1); - SummaryScreen_PrintTextOnWindow(18, gStringVar1, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, gStringVar1, 0, 1, 0, 1); strArray[0] = CHAR_SLASH; StringCopy(&strArray[1], &gSpeciesNames[summary->species2][0]); - SummaryScreen_PrintTextOnWindow(19, &strArray[0], 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, &strArray[0], 0, 1, 0, 1); sub_81C27DC(mon, summary->species2); - PutWindowTilemap(18); - PutWindowTilemap(19); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } static void sub_81C2794(void) { - GetMonNickname(&pssData->currentMon, gStringVar1); - SummaryScreen_PrintTextOnWindow(18, gStringVar1, 0, 1, 0, 1); - PutWindowTilemap(18); - ClearWindowTilemap(17); - ClearWindowTilemap(19); + GetMonNickname(&sMonSummaryScreenData->currentMon, gStringVar1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, gStringVar1, 0, 1, 0, 1); + PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME); + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); + ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } static void sub_81C27DC(struct Pokemon *mon, u16 species) @@ -2716,10 +2774,10 @@ static void sub_81C27DC(struct Pokemon *mon, u16 species) switch (gender) { case MON_MALE: - SummaryScreen_PrintTextOnWindow(19, gText_MaleSymbol, 57, 17, 0, 3); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, gText_MaleSymbol, 57, 17, 0, 3); break; case MON_FEMALE: - SummaryScreen_PrintTextOnWindow(19, gText_FemaleSymbol, 57, 17, 0, 4); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, gText_FemaleSymbol, 57, 17, 0, 4); break; } } @@ -2737,108 +2795,108 @@ static void PrintPageNamesAndStatsPageToWindows(void) int iconXPos; int statsXPos; - SummaryScreen_PrintTextOnWindow(0, gText_PkmnInfo, 2, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(1, gText_PkmnSkills, 2, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(2, gText_BattleMoves, 2, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(3, gText_ContestMoves, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_INFO_TITLE, gText_PkmnInfo, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE, gText_PkmnSkills, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE, gText_BattleMoves, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE, gText_ContestMoves, 2, 1, 0, 1); stringXPos = GetStringRightAlignXOffset(1, gText_Cancel2, 62); iconXPos = stringXPos - 16; if (iconXPos < 0) iconXPos = 0; - PrintAOrBButtonIcon(4, FALSE, iconXPos); - SummaryScreen_PrintTextOnWindow(4, gText_Cancel2, stringXPos, 1, 0, 0); + PrintAOrBButtonIcon(PSS_LABEL_WINDOW_PROMPT_CANCEL, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PROMPT_CANCEL, gText_Cancel2, stringXPos, 1, 0, 0); stringXPos = GetStringRightAlignXOffset(1, gText_Info, 0x3E); iconXPos = stringXPos - 16; if (iconXPos < 0) iconXPos = 0; - PrintAOrBButtonIcon(5, FALSE, iconXPos); - SummaryScreen_PrintTextOnWindow(5, gText_Info, stringXPos, 1, 0, 0); + PrintAOrBButtonIcon(PSS_LABEL_WINDOW_PROMPT_INFO, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PROMPT_INFO, gText_Info, stringXPos, 1, 0, 0); stringXPos = GetStringRightAlignXOffset(1, gText_Switch, 0x3E); iconXPos = stringXPos - 16; if (iconXPos < 0) iconXPos = 0; - PrintAOrBButtonIcon(6, FALSE, iconXPos); - SummaryScreen_PrintTextOnWindow(6, gText_Switch, stringXPos, 1, 0, 0); + PrintAOrBButtonIcon(PSS_LABEL_WINDOW_PROMPT_SWITCH, FALSE, iconXPos); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PROMPT_SWITCH, gText_Switch, stringXPos, 1, 0, 0); - SummaryScreen_PrintTextOnWindow(8, gText_RentalPkmn, 0, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(9, gText_TypeSlash, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL, gText_RentalPkmn, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_INFO_TYPE, gText_TypeSlash, 0, 1, 0, 0); statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_HP4, 42); - SummaryScreen_PrintTextOnWindow(10, gText_HP4, statsXPos, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT, gText_HP4, statsXPos, 1, 0, 1); statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_Attack3, 42); - SummaryScreen_PrintTextOnWindow(10, gText_Attack3, statsXPos, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT, gText_Attack3, statsXPos, 17, 0, 1); statsXPos = 6 + GetStringCenterAlignXOffset(1, gText_Defense3, 42); - SummaryScreen_PrintTextOnWindow(10, gText_Defense3, statsXPos, 33, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT, gText_Defense3, statsXPos, 33, 0, 1); statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_SpAtk4, 36); - SummaryScreen_PrintTextOnWindow(11, gText_SpAtk4, statsXPos, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT, gText_SpAtk4, statsXPos, 1, 0, 1); statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_SpDef4, 36); - SummaryScreen_PrintTextOnWindow(11, gText_SpDef4, statsXPos, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT, gText_SpDef4, statsXPos, 17, 0, 1); statsXPos = 2 + GetStringCenterAlignXOffset(1, gText_Speed2, 36); - SummaryScreen_PrintTextOnWindow(11, gText_Speed2, statsXPos, 33, 0, 1); - SummaryScreen_PrintTextOnWindow(12, gText_ExpPoints, 6, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(12, gText_NextLv, 6, 17, 0, 1); - SummaryScreen_PrintTextOnWindow(13, gText_Status, 2, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(14, gText_Power, 0, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(14, gText_Accuracy2, 0, 17, 0, 1); - SummaryScreen_PrintTextOnWindow(15, gText_Appeal, 0, 1, 0, 1); - SummaryScreen_PrintTextOnWindow(15, gText_Jam, 0, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT, gText_Speed2, statsXPos, 33, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP, gText_ExpPoints, 6, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP, gText_NextLv, 6, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS, gText_Status, 2, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_POWER_ACC, gText_Power, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_POWER_ACC, gText_Accuracy2, 0, 17, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM, gText_Appeal, 0, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM, gText_Jam, 0, 17, 0, 1); } static void CreatePageWindowTilemaps(u8 page) { u8 i; - ClearWindowTilemap(0); - ClearWindowTilemap(1); - ClearWindowTilemap(2); - ClearWindowTilemap(3); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_TITLE); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE); + ClearWindowTilemap(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE); + ClearWindowTilemap(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE); switch (page) { case PSS_PAGE_INFO: - PutWindowTilemap(0); - PutWindowTilemap(4); - if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE) - PutWindowTilemap(8); - PutWindowTilemap(9); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_TITLE); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_CANCEL); + if (InBattleFactory() == TRUE || InSlateportBattleTent() == TRUE) + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_TYPE); break; case PSS_PAGE_SKILLS: - PutWindowTilemap(1); - PutWindowTilemap(10); - PutWindowTilemap(11); - PutWindowTilemap(12); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT); + PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP); break; case PSS_PAGE_BATTLE_MOVES: - PutWindowTilemap(2); - if (pssData->mode == PSS_MODE_SELECT_MOVE) + PutWindowTilemap(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE); + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) - PutWindowTilemap(14); + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else { - PutWindowTilemap(5); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); } break; case PSS_PAGE_CONTEST_MOVES: - PutWindowTilemap(3); - if (pssData->mode == PSS_MODE_SELECT_MOVE) + PutWindowTilemap(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE); + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) - PutWindowTilemap(15); + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); } else { - PutWindowTilemap(5); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); } break; } - for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) { - PutWindowTilemap(pssData->windowIds[i]); + PutWindowTilemap(sMonSummaryScreenData->windowIds[i]); } schedule_bg_copy_tilemap_to_vram(0); @@ -2850,41 +2908,41 @@ static void ClearPageWindowTilemaps(u8 page) switch (page) { case PSS_PAGE_INFO: - ClearWindowTilemap(4); - if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE) - ClearWindowTilemap(8); - ClearWindowTilemap(9); + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_CANCEL); + if (InBattleFactory() == TRUE || InSlateportBattleTent() == TRUE) + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_RENTAL); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_INFO_TYPE); break; case PSS_PAGE_SKILLS: - ClearWindowTilemap(10); - ClearWindowTilemap(11); - ClearWindowTilemap(12); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_LEFT); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATS_RIGHT); + ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP); break; case PSS_PAGE_BATTLE_MOVES: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) - ClearWindowTilemap(14); + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else { - ClearWindowTilemap(5); + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); } break; case PSS_PAGE_CONTEST_MOVES: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) - ClearWindowTilemap(15); + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); } else { - ClearWindowTilemap(5); + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); } break; } - for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) { SummaryScreen_RemoveWindowByIndex(i); } @@ -2894,7 +2952,7 @@ static void ClearPageWindowTilemaps(u8 page) static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) { - u8 *windowIdPtr = &(pssData->windowIds[templateId]); + u8 *windowIdPtr = &(sMonSummaryScreenData->windowIds[templateId]); if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); @@ -2905,7 +2963,7 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) { - u8 *windowIdPtr = &(pssData->windowIds[windowIndex]); + u8 *windowIdPtr = &(sMonSummaryScreenData->windowIds[windowIndex]); if (*windowIdPtr != 0xFF) { ClearWindowTilemap(*windowIdPtr); @@ -2917,10 +2975,10 @@ static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) static void PrintPageSpecificText(u8 pageIndex) { u16 i; - for (i = 0; i < ARRAY_COUNT(pssData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) { - if (pssData->windowIds[i] != 0xFF) - FillWindowPixelBuffer(pssData->windowIds[i], 0); + if (sMonSummaryScreenData->windowIds[i] != 0xFF) + FillWindowPixelBuffer(sMonSummaryScreenData->windowIds[i], 0); } sTextPrinterFunctions[pageIndex](); } @@ -2932,7 +2990,7 @@ static void CreateTextPrinterTask(u8 pageIndex) static void PrintInfoPageText(void) { - if (pssData->summary.isEgg) + if (sMonSummaryScreenData->summary.isEgg) { PrintEggOTName(); PrintEggOTID(); @@ -2984,44 +3042,44 @@ static void PrintMonOTName(void) { u8 windowId; int x; - if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) + if (InBattleFactory() != TRUE && InSlateportBattleTent() != TRUE) { - windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); + windowId = AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); x = GetStringWidth(1, gText_OTSlash, 0); - if (pssData->summary.OTGender == 0) - SummaryScreen_PrintTextOnWindow(windowId, pssData->summary.OTName, x, 1, 0, 5); + if (sMonSummaryScreenData->summary.OTGender == 0) + SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreenData->summary.OTName, x, 1, 0, 5); else - SummaryScreen_PrintTextOnWindow(windowId, pssData->summary.OTName, x, 1, 0, 6); + SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreenData->summary.OTName, x, 1, 0, 6); } } static void PrintMonOTID(void) { int xPos; - if (InBattleFactory() != TRUE && sub_81B9E94() != TRUE) + if (InBattleFactory() != TRUE && InSlateportBattleTent() != TRUE) { - ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)pssData->summary.OTID, 2, 5); + ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)sMonSummaryScreenData->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, xPos, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ID), gStringVar1, xPos, 1, 0, 1); } } static void PrintMonAbilityName(void) { - u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityNames[ability], 0, 1, 0, 1); + u8 ability = GetAbilityBySpecies(sMonSummaryScreenData->summary.species, sMonSummaryScreenData->summary.altAbility); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ABILITY), gAbilityNames[ability], 0, 1, 0, 1); } static void PrintMonAbilityDescription(void) { - u8 ability = GetAbilityBySpecies(pssData->summary.species, pssData->summary.altAbility); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); + u8 ability = GetAbilityBySpecies(sMonSummaryScreenData->summary.species, sMonSummaryScreenData->summary.altAbility); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ABILITY), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } static void BufferMonTrainerMemo(void) { - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; const u8 *text; DynamicPlaceholderTextUtil_Reset(); @@ -3029,7 +3087,7 @@ static void BufferMonTrainerMemo(void) DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sMemoMiscTextColor); BufferNatureString(); - if (InBattleFactory() == TRUE || sub_81B9E94() == TRUE || IsInGamePartnerMon() == TRUE) + if (InBattleFactory() == TRUE || InSlateportBattleTent() == TRUE || IsInGamePartnerMon() == TRUE) { DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_XNature); } @@ -3073,19 +3131,19 @@ static void BufferMonTrainerMemo(void) static void PrintMonTrainerMemo(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), gStringVar4, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_MEMO), gStringVar4, 0, 1, 0, 0); } static void BufferNatureString(void) { - struct PssData *sumStruct = pssData; + struct PokemonSummaryScreenData *sumStruct = sMonSummaryScreenData; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5); } static void GetMetLevelString(u8 *output) { - u8 level = pssData->summary.metLevel; + u8 level = sMonSummaryScreenData->summary.metLevel; if (level == 0) level = EGG_HATCH_LEVEL; ConvertIntToDecimalStringN(output, level, 0, 3); @@ -3094,11 +3152,11 @@ static void GetMetLevelString(u8 *output) static bool8 DoesMonOTMatchOwner(void) { - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; u32 trainerId; u8 gender; - if (pssData->monList.mons == gEnemyParty) + if (sMonSummaryScreenData->monList.mons == gEnemyParty) { u8 multiID = GetMultiplayerId() ^ 1; trainerId = (u16)gLinkPlayers[multiID].trainerId; @@ -3120,7 +3178,7 @@ static bool8 DoesMonOTMatchOwner(void) static bool8 DidMonComeFromGBAGames(void) { - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_LEAF_GREEN) return TRUE; return FALSE; @@ -3128,7 +3186,7 @@ static bool8 DidMonComeFromGBAGames(void) bool8 DidMonComeFromRSE(void) { - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_EMERALD) return TRUE; return FALSE; @@ -3138,7 +3196,7 @@ static bool8 IsInGamePartnerMon(void) { if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) { - if (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5) + if (sMonSummaryScreenData->curMonIndex == 1 || sMonSummaryScreenData->curMonIndex == 4 || sMonSummaryScreenData->curMonIndex == 5) return TRUE; } return FALSE; @@ -3146,7 +3204,7 @@ static bool8 IsInGamePartnerMon(void) static void PrintEggOTName(void) { - u32 windowId = AddWindowFromTemplateList(sPageInfoTemplate, 0); + u32 windowId = AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER); u32 width = GetStringWidth(1, gText_OTSlash, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); SummaryScreen_PrintTextOnWindow(windowId, gText_FiveMarks, width, 1, 0, 1); @@ -3158,15 +3216,15 @@ static void PrintEggOTID(void) StringCopy(gStringVar1, gText_UnkCtrlF907F908); StringAppend(gStringVar1, gText_FiveMarks); x = GetStringRightAlignXOffset(1, gStringVar1, 56); - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 1), gStringVar1, x, 1, 0, 1); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ID), gStringVar1, x, 1, 0, 1); } static void PrintEggState(void) { const u8 *text; - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; - if (pssData->summary.sanity == TRUE) + if (sMonSummaryScreenData->summary.sanity == TRUE) text = gText_EggWillTakeALongTime; else if (sum->friendship <= 5) text = gText_EggAboutToHatch; @@ -3177,15 +3235,15 @@ static void PrintEggState(void) else text = gText_EggWillTakeALongTime; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 2), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ABILITY), text, 0, 1, 0, 0); } static void PrintEggMemo(void) { const u8 *text; - struct PokeSummary *sum = &pssData->summary; + struct PokeSummary *sum = &sMonSummaryScreenData->summary; - if (pssData->summary.sanity != 1) + if (sMonSummaryScreenData->summary.sanity != 1) { if (sum->metLocation == METLOC_FATEFUL_ENCOUNTER) text = gText_PeculiarEggNicePlace; @@ -3201,7 +3259,7 @@ static void PrintEggMemo(void) text = gText_OddEggFoundByCouple; } - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, 3), text, 0, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_MEMO), text, 0, 1, 0, 0); } static void PrintSkillsPageText(void) @@ -3254,22 +3312,22 @@ static void PrintHeldItemName(void) const u8 *text; int offset; - if (pssData->summary.item == ITEM_ENIGMA_BERRY && IsMultiBattle() == TRUE && (pssData->curMonIndex == 1 || pssData->curMonIndex == 4 || pssData->curMonIndex == 5)) + if (sMonSummaryScreenData->summary.item == ITEM_ENIGMA_BERRY && IsMultiBattle() == TRUE && (sMonSummaryScreenData->curMonIndex == 1 || sMonSummaryScreenData->curMonIndex == 4 || sMonSummaryScreenData->curMonIndex == 5)) { text = ItemId_GetName(ITEM_ENIGMA_BERRY); } - else if (pssData->summary.item == ITEM_NONE) + else if (sMonSummaryScreenData->summary.item == ITEM_NONE) { text = gText_None; } else { - CopyItemName(pssData->summary.item, gStringVar1); + CopyItemName(sMonSummaryScreenData->summary.item, gStringVar1); text = gStringVar1; } offset = GetStringCenterAlignXOffset(1, text, 72) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 0), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_HELD_ITEM), text, offset, 1, 0, 0); } static void PrintRibbonCount(void) @@ -3277,19 +3335,19 @@ static void PrintRibbonCount(void) const u8 *text; int offset; - if (pssData->summary.ribbonCount == 0) + if (sMonSummaryScreenData->summary.ribbonCount == 0) { text = gText_None; } else { - ConvertIntToDecimalStringN(gStringVar1, pssData->summary.ribbonCount, 1, 2); + ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreenData->summary.ribbonCount, 1, 2); StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1); text = gStringVar4; } offset = GetStringCenterAlignXOffset(1, text, 70) + 6; - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 1), text, offset, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT), text, offset, 1, 0, 0); } static void BufferLeftColumnStats(void) @@ -3299,10 +3357,10 @@ static void BufferLeftColumnStats(void) u8 *attackString = Alloc(8); u8 *defenseString = Alloc(8); - ConvertIntToDecimalStringN(currentHPString, pssData->summary.currentHP, 1, 3); - ConvertIntToDecimalStringN(maxHPString, pssData->summary.maxHP, 1, 3); - ConvertIntToDecimalStringN(attackString, pssData->summary.atk, 1, 7); - ConvertIntToDecimalStringN(defenseString, pssData->summary.def, 1, 7); + ConvertIntToDecimalStringN(currentHPString, sMonSummaryScreenData->summary.currentHP, 1, 3); + ConvertIntToDecimalStringN(maxHPString, sMonSummaryScreenData->summary.maxHP, 1, 3); + ConvertIntToDecimalStringN(attackString, sMonSummaryScreenData->summary.atk, 1, 7); + ConvertIntToDecimalStringN(defenseString, sMonSummaryScreenData->summary.def, 1, 7); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString); @@ -3319,14 +3377,14 @@ static void BufferLeftColumnStats(void) static void PrintLeftColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 2), gStringVar4, 4, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_STATS_LEFT), gStringVar4, 4, 1, 0, 0); } static void BufferRightColumnStats(void) { - ConvertIntToDecimalStringN(gStringVar1, pssData->summary.spatk, 1, 3); - ConvertIntToDecimalStringN(gStringVar2, pssData->summary.spdef, 1, 3); - ConvertIntToDecimalStringN(gStringVar3, pssData->summary.speed, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreenData->summary.spatk, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, sMonSummaryScreenData->summary.spdef, 1, 3); + ConvertIntToDecimalStringN(gStringVar3, sMonSummaryScreenData->summary.speed, 1, 3); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); @@ -3337,13 +3395,13 @@ static void BufferRightColumnStats(void) static void PrintRightColumnStats(void) { - SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, 3), gStringVar4, 2, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_STATS_RIGHT), gStringVar4, 2, 1, 0, 0); } static void PrintExpPointsNextLevel(void) { - struct PokeSummary *sum = &pssData->summary; - u8 windowId = AddWindowFromTemplateList(sPageSkillsTemplate, 4); + struct PokeSummary *sum = &sMonSummaryScreenData->summary; + u8 windowId = AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_EXP); int offset; u32 expToNextLevel; @@ -3368,17 +3426,17 @@ static void PrintBattleMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - if (pssData->firstMoveIndex == MAX_MON_MOVES) + if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES) { - if (pssData->newMove != MOVE_NONE) - PrintMoveDetails(pssData->newMove); + if (sMonSummaryScreenData->newMove != MOVE_NONE) + PrintMoveDetails(sMonSummaryScreenData->newMove); } else { - PrintMoveDetails(pssData->summary.moves[pssData->firstMoveIndex]); + PrintMoveDetails(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]); } } } @@ -3402,22 +3460,22 @@ static void Task_PrintBattleMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 5: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 6: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->firstMoveIndex == MAX_MON_MOVES) - data[1] = pssData->newMove; + if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES) + data[1] = sMonSummaryScreenData->newMove; else - data[1] = pssData->summary.moves[pssData->firstMoveIndex]; + data[1] = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; } break; case 7: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) PrintMoveDetails(data[1]); } break; @@ -3434,9 +3492,9 @@ static void PrintMoveNameAndPP(u8 moveIndex) u32 ppState; const u8 *text; u32 offset; - struct PssData *summaryStruct = pssData; - u8 moveNameWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); - u8 ppValueWindowId = AddWindowFromTemplateList(sPageMovesTemplate, 1); + struct PokemonSummaryScreenData *summaryStruct = sMonSummaryScreenData; + u8 moveNameWindowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); + u8 ppValueWindowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_PP); u16 move = summaryStruct->summary.moves[moveIndex]; if (move != 0) @@ -3469,7 +3527,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) const u8 *text; if (moveIndex != 0) { - FillWindowPixelRect(14, 0, 53, 0, 19, 32); + FillWindowPixelRect(PSS_LABEL_WINDOW_MOVES_POWER_ACC, 0, 53, 0, 19, 32); if (gBattleMoves[moveIndex].power < 2) { @@ -3481,7 +3539,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) text = gStringVar1; } - SummaryScreen_PrintTextOnWindow(14, text, 53, 1, 0, 0); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_POWER_ACC, text, 53, 1, 0, 0); if (gBattleMoves[moveIndex].accuracy == 0) { @@ -3493,7 +3551,7 @@ static void PrintMovePowerAndAccuracy(u16 moveIndex) text = gStringVar1; } - SummaryScreen_PrintTextOnWindow(14, text, 53, 17, 0, 0); + SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_POWER_ACC, text, 53, 17, 0, 0); } } @@ -3504,10 +3562,10 @@ static void PrintContestMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - PrintContestMoveDescription(pssData->firstMoveIndex); + PrintContestMoveDescription(sMonSummaryScreenData->firstMoveIndex); } } @@ -3531,14 +3589,14 @@ static void Task_PrintContestMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 4: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 5: - if (pssData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) { - if (pssData->newMove != MOVE_NONE || pssData->firstMoveIndex != MAX_MON_MOVES) - PrintContestMoveDescription(pssData->firstMoveIndex); + if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + PrintContestMoveDescription(sMonSummaryScreenData->firstMoveIndex); } break; case 6: @@ -3553,24 +3611,24 @@ static void PrintContestMoveDescription(u8 moveSlot) u16 move; if (moveSlot == MAX_MON_MOVES) - move = pssData->newMove; + move = sMonSummaryScreenData->newMove; else - move = pssData->summary.moves[moveSlot]; + move = sMonSummaryScreenData->summary.moves[moveSlot]; if (move != MOVE_NONE) { - u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_DESCRIPTION); SummaryScreen_PrintTextOnWindow(windowId, gContestEffectDescriptionPointers[gContestMoves[move].effect], 6, 1, 0, 0); } } static void PrintMoveDetails(u16 move) { - u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_DESCRIPTION); FillWindowPixelBuffer(windowId, 0); if (move != MOVE_NONE) { - if (pssData->currPageIndex == 2) + if (sMonSummaryScreenData->currPageIndex == PSS_MODE_BOX) { PrintMovePowerAndAccuracy(move); SummaryScreen_PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); @@ -3591,18 +3649,18 @@ static void PrintMoveDetails(u16 move) static void PrintNewMoveDetailsOrCancelText(void) { - u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); - u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_PP); - if (pssData->newMove == MOVE_NONE) + if (sMonSummaryScreenData->newMove == MOVE_NONE) { SummaryScreen_PrintTextOnWindow(windowId1, gText_Cancel, 0, 65, 0, 1); } else { - u16 move = pssData->newMove; + u16 move = sMonSummaryScreenData->newMove; - if (pssData->currPageIndex == 2) + if (sMonSummaryScreenData->currPageIndex == 2) SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 6); else SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 5); @@ -3618,15 +3676,15 @@ static void PrintNewMoveDetailsOrCancelText(void) static void sub_81C4064(void) { - u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 0); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); FillWindowPixelRect(windowId, 0, 0, 66, 72, 16); CopyWindowToVram(windowId, 2); } static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) { - u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, 0); - u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, 1); + u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); + u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_PP); FillWindowPixelRect(windowId1, 0, 0, moveIndex1 * 16, 0x48, 0x10); FillWindowPixelRect(windowId1, 0, 0, moveIndex2 * 16, 0x48, 0x10); @@ -3640,7 +3698,7 @@ static void sub_81C40A0(u8 moveIndex1, u8 moveIndex2) static void PrintHMMovesCantBeForgotten(void) { - u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, 2); + u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_DESCRIPTION); FillWindowPixelBuffer(windowId, 0); SummaryScreen_PrintTextOnWindow(windowId, gText_HMMovesCantBeForgotten2, 6, 1, 0, 0); } @@ -3649,24 +3707,24 @@ static void ResetSpriteIds(void) { u8 i; - for (i = 0; i < ARRAY_COUNT(pssData->spriteIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->spriteIds); i++) { - pssData->spriteIds[i] = 0xFF; + sMonSummaryScreenData->spriteIds[i] = 0xFF; } } static void DestroySpriteInArray(u8 spriteArrayId) { - if (pssData->spriteIds[spriteArrayId] != 0xFF) + if (sMonSummaryScreenData->spriteIds[spriteArrayId] != 0xFF) { - DestroySprite(&gSprites[pssData->spriteIds[spriteArrayId]]); - pssData->spriteIds[spriteArrayId] = 0xFF; + DestroySprite(&gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]]); + sMonSummaryScreenData->spriteIds[spriteArrayId] = 0xFF; } } static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible) { - gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible; + gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]].invisible = invisible; } static void HidePageSpecificSprites(void) @@ -3674,16 +3732,16 @@ static void HidePageSpecificSprites(void) // Keeps Pokémon, caught ball and status sprites visible. u8 i; - for (i = 3; i < ARRAY_COUNT(pssData->spriteIds); i++) + for (i = 3; i < ARRAY_COUNT(sMonSummaryScreenData->spriteIds); i++) { - if (pssData->spriteIds[i] != 0xFF) + if (sMonSummaryScreenData->spriteIds[i] != 0xFF) SetSpriteInvisibility(i, TRUE); } } static void SetTypeIcons(void) { - switch (pssData->currPageIndex) + switch (sMonSummaryScreenData->currPageIndex) { case PSS_PAGE_INFO: SetMonTypeIcons(); @@ -3705,8 +3763,8 @@ static void CreateMoveTypeIcons(void) for (i = 3; i < 8; i++) { - if (pssData->spriteIds[i] == 0xFF) - pssData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); + if (sMonSummaryScreenData->spriteIds[i] == 0xFF) + sMonSummaryScreenData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); SetSpriteInvisibility(i, TRUE); } @@ -3714,7 +3772,7 @@ static void CreateMoveTypeIcons(void) static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) { - struct Sprite *sprite = &gSprites[pssData->spriteIds[spriteArrayId]]; + struct Sprite *sprite = &gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId]; sprite->pos1.x = x + 16; @@ -3724,7 +3782,7 @@ static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) static void SetMonTypeIcons(void) { - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; if (summary->isEgg) { SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3); @@ -3748,7 +3806,7 @@ static void SetMonTypeIcons(void) static void SetMoveTypeIcons(void) { u8 i; - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; for (i = 0; i < MAX_MON_MOVES; i++) { if (summary->moves[i] != MOVE_NONE) @@ -3761,7 +3819,7 @@ static void SetMoveTypeIcons(void) static void SetContestMoveTypeIcons(void) { u8 i; - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; for (i = 0; i < MAX_MON_MOVES; i++) { if (summary->moves[i] != MOVE_NONE) @@ -3773,23 +3831,23 @@ static void SetContestMoveTypeIcons(void) static void SetNewMoveTypeIcon(void) { - if (pssData->newMove == MOVE_NONE) + if (sMonSummaryScreenData->newMove == MOVE_NONE) { SetSpriteInvisibility(7, TRUE); } else { - if (pssData->currPageIndex == 2) - SetMoveTypeSpritePosAndType(gBattleMoves[pssData->newMove].type, 85, 96, 7); + if (sMonSummaryScreenData->currPageIndex == 2) + SetMoveTypeSpritePosAndType(gBattleMoves[sMonSummaryScreenData->newMove].type, 85, 96, 7); else - SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[pssData->newMove].contestCategory, 85, 96, 7); + SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[sMonSummaryScreenData->newMove].contestCategory, 85, 96, 7); } } static void sub_81C4568(u8 a0, u8 a1) { - struct Sprite *sprite1 = &gSprites[pssData->spriteIds[a0 + 3]]; - struct Sprite *sprite2 = &gSprites[pssData->spriteIds[a1 + 3]]; + struct Sprite *sprite1 = &gSprites[sMonSummaryScreenData->spriteIds[a0 + 3]]; + struct Sprite *sprite2 = &gSprites[sMonSummaryScreenData->spriteIds[a1 + 3]]; u8 temp = sprite1->animNum; sprite1->animNum = sprite2->animNum; @@ -3808,7 +3866,7 @@ static void sub_81C4568(u8 a0, u8 a1) static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) { const struct CompressedSpritePalette *pal; - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; switch (*a1) { @@ -3817,7 +3875,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) case 0: if (gMain.inBattle) { - if (sub_80688F8(3, pssData->curMonIndex)) + if (sub_80688F8(3, sMonSummaryScreenData->curMonIndex)) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3830,7 +3888,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) { if (gMonSpritesGfxPtr != NULL) { - if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_BOX || pssData->unk40EF == TRUE) + if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3841,7 +3899,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) } else { - if (pssData->monList.mons == gPlayerParty || pssData->mode == PSS_MODE_BOX || pssData->unk40EF == TRUE) + if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); } @@ -3864,10 +3922,10 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) static void PlayMonCry(void) { - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; if (!summary->isEgg) { - if (ShouldPlayNormalMonCry(&pssData->currentMon) == TRUE) + if (ShouldPlayNormalMonCry(&sMonSummaryScreenData->currentMon) == TRUE) { PlayCry3(summary->species2, 0, 0); } @@ -3880,7 +3938,7 @@ static void PlayMonCry(void) static u8 sub_81C47B4(struct Pokemon *unused) { - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, 40, 64, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3905,7 +3963,7 @@ static u8 sub_81C47B4(struct Pokemon *unused) static void SpriteCB_Pokemon(struct Sprite *sprite) { - struct PokeSummary *summary = &pssData->summary; + struct PokeSummary *summary = &sMonSummaryScreenData->summary; if (!gPaletteFade.active && sprite->data[2] != 1) { @@ -3931,7 +3989,7 @@ void SummaryScreen_DestroyUnknownTask(void) static bool32 SummaryScreen_DoesSpriteHaveCallback(void) { - if (gSprites[pssData->spriteIds[0]].callback == SpriteCallbackDummy) + if (gSprites[sMonSummaryScreenData->spriteIds[0]].callback == SpriteCallbackDummy) { return FALSE; } @@ -3946,11 +4004,11 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops u16 i; u16 paletteIndex; - gSprites[pssData->spriteIds[0]].animPaused = TRUE; - gSprites[pssData->spriteIds[0]].callback = SpriteCallbackDummy; + gSprites[sMonSummaryScreenData->spriteIds[0]].animPaused = TRUE; + gSprites[sMonSummaryScreenData->spriteIds[0]].callback = SpriteCallbackDummy; StopPokemonAnimationDelayTask(); - paletteIndex = (gSprites[pssData->spriteIds[0]].oam.paletteNum * 16) | 0x100; + paletteIndex = (gSprites[sMonSummaryScreenData->spriteIds[0]].oam.paletteNum * 16) | 0x100; for (i = 0; i < 16; i++) { @@ -3962,20 +4020,20 @@ static void CreateMonMarkingsSprite(struct Pokemon *mon) { struct Sprite *sprite = sub_811FF94(30003, 30003, sSummaryMarkingsPalette); - pssData->markingsSprite = sprite; + sMonSummaryScreenData->markingsSprite = sprite; if (sprite != NULL) { StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); - pssData->markingsSprite->pos1.x = 60; - pssData->markingsSprite->pos1.y = 26; - pssData->markingsSprite->oam.priority = 1; + sMonSummaryScreenData->markingsSprite->pos1.x = 60; + sMonSummaryScreenData->markingsSprite->pos1.y = 26; + sMonSummaryScreenData->markingsSprite->oam.priority = 1; } } static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) { - DestroySprite(pssData->markingsSprite); + DestroySprite(sMonSummaryScreenData->markingsSprite); FreeSpriteTilesByTag(30003); CreateMonMarkingsSprite(mon); } @@ -3985,14 +4043,14 @@ static void CreateCaughtBallSprite(struct Pokemon *mon) u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); LoadBallGfx(ball); - pssData->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); - gSprites[pssData->spriteIds[1]].callback = SpriteCallbackDummy; - gSprites[pssData->spriteIds[1]].oam.priority = 3; + sMonSummaryScreenData->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); + gSprites[sMonSummaryScreenData->spriteIds[1]].callback = SpriteCallbackDummy; + gSprites[sMonSummaryScreenData->spriteIds[1]].oam.priority = 3; } static void CreateSetStatusSprite(void) { - u8 *spriteId = &pssData->spriteIds[2]; + u8 *spriteId = &sMonSummaryScreenData->spriteIds[2]; u8 anim; if (*spriteId == 0xFF) @@ -4000,7 +4058,7 @@ static void CreateSetStatusSprite(void) *spriteId = CreateSprite(&sSpriteTemplate_StatusCondition, 64, 152, 0); } - anim = sub_81B205C(&pssData->currentMon); + anim = GetMonAilment(&sMonSummaryScreenData->currentMon); if (anim != 0) { @@ -4016,9 +4074,9 @@ static void CreateSetStatusSprite(void) static void sub_81C4AF8(u8 a0) { u8 i; - u8 *spriteIds = &pssData->spriteIds[a0]; + u8 *spriteIds = &sMonSummaryScreenData->spriteIds[a0]; - if (pssData->currPageIndex > 1) + if (sMonSummaryScreenData->currPageIndex > 1) { u8 subsprite = 0; if (a0 == 8) @@ -4070,11 +4128,11 @@ static void sub_81C4BE4(struct Sprite *sprite) if (sprite->data[0] == 8) { - sprite->pos2.y = pssData->firstMoveIndex * 16; + sprite->pos2.y = sMonSummaryScreenData->firstMoveIndex * 16; } else { - sprite->pos2.y = pssData->secondMoveIndex * 16; + sprite->pos2.y = sMonSummaryScreenData->secondMoveIndex * 16; } } @@ -4090,7 +4148,7 @@ static void sub_81C4C60(u8 a0) static void sub_81C4C84(u8 a0) { u8 i; - u8 *spriteIds = &pssData->spriteIds[8]; + u8 *spriteIds = &sMonSummaryScreenData->spriteIds[8]; a0 *= 3; for (i = 0; i < 10; i++) @@ -4113,7 +4171,7 @@ static void sub_81C4C84(u8 a0) static void sub_81C4D18(u8 firstSpriteId) { u8 i; - u8 *spriteIds = &pssData->spriteIds[firstSpriteId]; + u8 *spriteIds = &sMonSummaryScreenData->spriteIds[firstSpriteId]; for (i = 0; i < 10; i++) { -- cgit v1.2.3 From 1758eb99dfe13c9fc93284d2bbf55dce315fd2c9 Mon Sep 17 00:00:00 2001 From: garak Date: Sun, 3 Mar 2019 22:08:58 -0500 Subject: match sub_810EE14 in flying.c --- src/flying.c | 130 +---------------------------------------------------------- 1 file changed, 2 insertions(+), 128 deletions(-) (limited to 'src') diff --git a/src/flying.c b/src/flying.c index 7f48e57cb..3b7417551 100644 --- a/src/flying.c +++ b/src/flying.c @@ -1496,11 +1496,8 @@ void sub_810EDD0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -#ifdef NONMATCHING void sub_810EE14(struct Sprite *sprite) { - // NONMATCHING - Functionally equivalent - slight register swap at end - u32 matrixNum; int t1, t2; @@ -1540,16 +1537,9 @@ void sub_810EE14(struct Sprite *sprite) if (t2 > 128) t2 = 128; - - /* NONMATCHING - * compiles to: - * asr r0, r0, #0x1 - strh r0, [r5, #0x26] - * needed: - * asrs r1, r0, 1 - * strh r1, [r5, 0x26] */ - sprite->pos2.y = (64 - t2) / 2; + t2 = (64 - t2) / 2; + sprite->pos2.y = t2; if (sprite->data[2] == 24) { @@ -1559,122 +1549,6 @@ void sub_810EE14(struct Sprite *sprite) } } -#else -NAKED -void sub_810EE14(struct Sprite *sprite) -{ - asm_unified("push {r4,r5,lr}\n\ - sub sp, 0x4\n\ - adds r5, r0, 0\n\ - movs r1, 0x2E\n\ - ldrsh r0, [r5, r1]\n\ - cmp r0, 0\n\ - beq _0810EE28\n\ - cmp r0, 0x1\n\ - beq _0810EE80\n\ - b _0810EEEC\n\ -_0810EE28:\n\ - ldr r0, =gBattleAnimArgs\n\ - movs r2, 0\n\ - ldrsh r0, [r0, r2]\n\ - cmp r0, 0\n\ - bne _0810EE40\n\ - ldr r4, =gBattleAnimAttacker\n\ - b _0810EE42\n\ - .pool\n\ -_0810EE40:\n\ - ldr r4, =gBattleAnimTarget\n\ -_0810EE42:\n\ - ldrb r0, [r4]\n\ - movs r1, 0\n\ - bl GetBattlerSpriteCoord\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - strh r0, [r5, 0x20]\n\ - ldrb r0, [r4]\n\ - movs r1, 0x1\n\ - bl GetBattlerSpriteCoord\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - strh r0, [r5, 0x22]\n\ - movs r0, 0\n\ - movs r3, 0x80\n\ - lsls r3, 2\n\ - strh r3, [r5, 0x30]\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - str r0, [sp]\n\ - adds r0, r5, 0\n\ - movs r1, 0\n\ - bl TrySetSpriteRotScale\n\ - ldrh r0, [r5, 0x2E]\n\ - adds r0, 0x1\n\ - strh r0, [r5, 0x2E]\n\ - b _0810EEEC\n\ - .pool\n\ -_0810EE80:\n\ - movs r1, 0x32\n\ - ldrsh r0, [r5, r1]\n\ - cmp r0, 0xB\n\ - bgt _0810EE8E\n\ - ldrh r0, [r5, 0x30]\n\ - subs r0, 0x28\n\ - b _0810EE92\n\ -_0810EE8E:\n\ - ldrh r0, [r5, 0x30]\n\ - adds r0, 0x28\n\ -_0810EE92:\n\ - strh r0, [r5, 0x30]\n\ - ldrh r0, [r5, 0x32]\n\ - adds r0, 0x1\n\ - movs r1, 0\n\ - strh r0, [r5, 0x32]\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - movs r0, 0x30\n\ - ldrsh r3, [r5, r0]\n\ - str r1, [sp]\n\ - adds r0, r5, 0\n\ - bl TrySetSpriteRotScale\n\ - ldrb r1, [r5, 0x3]\n\ - lsls r1, 26\n\ - lsrs r1, 27\n\ - movs r0, 0xF4\n\ - lsls r0, 6\n\ - ldr r2, =gOamMatrices\n\ - lsls r1, 3\n\ - adds r1, r2\n\ - movs r2, 0x6\n\ - ldrsh r1, [r1, r2]\n\ - bl __divsi3\n\ - adds r1, r0, 0x1\n\ - cmp r1, 0x80\n\ - ble _0810EECC\n\ - movs r1, 0x80\n\ -_0810EECC:\n\ - movs r0, 0x40\n\ - subs r0, r1\n\ - lsrs r1, r0, 31\n\ - adds r0, r1\n\ - asrs r1, r0, 1\n\ - strh r1, [r5, 0x26]\n\ - movs r1, 0x32\n\ - ldrsh r0, [r5, r1]\n\ - cmp r0, 0x18\n\ - bne _0810EEEC\n\ - adds r0, r5, 0\n\ - bl sub_80A749C\n\ - adds r0, r5, 0\n\ - bl DestroyAnimSprite\n\ -_0810EEEC:\n\ - add sp, 0x4\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n"); -} -#endif - void sub_810EEF8(struct Sprite *sprite) { int v1, v2; -- cgit v1.2.3 From 05199f8fc7b89bdd401ee112e5f500235e99736b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 22:27:57 -0500 Subject: Fix merge issue --- src/pokemon_summary_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index edfd481de..3ed27dcbd 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1407,7 +1407,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) case 3: GetMonData(mon, MON_DATA_OT_NAME, sum->OTName); ConvertInternationalString((u8*)&sum->OTName, GetMonData(mon, MON_DATA_LANGUAGE)); - sum->ailment = sub_81B205C(mon); + sum->ailment = GetMonAilment(mon); sum->OTGender = GetMonData(mon, MON_DATA_OT_GENDER); sum->OTID = GetMonData(mon, MON_DATA_OT_ID); sum->metLocation = GetMonData(mon, MON_DATA_MET_LOCATION); -- cgit v1.2.3 From ac7a048380217560b4e8f4f43858112e185ba2ef Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 4 Mar 2019 00:25:07 -0500 Subject: Removed PREV and NEXT macros, changed summary name --- src/pokemon_summary_screen.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3ed27dcbd..01cafb100 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -98,10 +98,6 @@ #define PSS_DATA_WINDOW_MOVE_PP 1 #define PSS_DATA_WINDOW_MOVE_DESCRIPTION 2 -// Used for switching between pages, pokemon, and moves. -#define PSS_CHANGE_NEXT 1 -#define PSS_CHANGE_PREV -1 - static EWRAM_DATA struct PokemonSummaryScreenData { /*0x00*/ union { @@ -1490,19 +1486,19 @@ static void HandleInput(u8 taskId) { if (gMain.newKeys & DPAD_UP) { - ChangeSummaryPokemon(taskId, PSS_CHANGE_PREV); + ChangeSummaryPokemon(taskId, -1); } else if (gMain.newKeys & DPAD_DOWN) { - ChangeSummaryPokemon(taskId, PSS_CHANGE_NEXT); + ChangeSummaryPokemon(taskId, 1); } else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1) { - ChangePage(taskId, PSS_CHANGE_PREV); + ChangePage(taskId, -1); } else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2) { - ChangePage(taskId, PSS_CHANGE_NEXT); + ChangePage(taskId, 1); } else if (gMain.newKeys & A_BUTTON) { @@ -1542,14 +1538,14 @@ static void ChangeSummaryPokemon(u8 taskId, s8 delta) if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_INFO) { - if (delta == PSS_CHANGE_NEXT) + if (delta == 1) delta = 0; else delta = 2; } else { - if (delta == PSS_CHANGE_NEXT) + if (delta == 1) delta = 1; else delta = 3; @@ -1723,16 +1719,16 @@ static void ChangePage(u8 taskId, s8 delta) if (summary->isEgg) return; - else if (delta == PSS_CHANGE_PREV && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->minPageIndex) + else if (delta == -1&& sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->minPageIndex) return; - else if (delta == PSS_CHANGE_NEXT && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->maxPageIndex) + else if (delta == 1 && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->maxPageIndex) return; PlaySE(SE_SELECT); ClearPageWindowTilemaps(sMonSummaryScreenData->currPageIndex); sMonSummaryScreenData->currPageIndex += delta; data[0] = 0; - if (delta == PSS_CHANGE_NEXT) + if (delta == 1) SetTaskFuncWithFollowupFunc(taskId, PssScrollRight, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, PssScrollLeft, gTasks[taskId].func); @@ -2157,20 +2153,20 @@ static void HandleReplaceMoveInput(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, PSS_CHANGE_PREV, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, -1, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, PSS_CHANGE_NEXT, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, 1, &sMonSummaryScreenData->firstMoveIndex); } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - ChangePage(taskId, PSS_CHANGE_PREV); + ChangePage(taskId, -1); } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - ChangePage(taskId, PSS_CHANGE_NEXT); + ChangePage(taskId, 1); } else if (gMain.newKeys & A_BUTTON) { @@ -2252,7 +2248,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; - ChangePage(taskId, PSS_CHANGE_PREV); + ChangePage(taskId, -1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } @@ -2266,7 +2262,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; - ChangePage(taskId, PSS_CHANGE_NEXT); + ChangePage(taskId, 1); sub_81C1DA4(9, -2); sub_81C1EFC(9, -2, move); } -- cgit v1.2.3 From cae63cf1c79ed243827e8a9149c1aa652f80d374 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 4 Mar 2019 20:56:39 -0500 Subject: Rename move tutor to move relearner --- src/move_relearner.c | 976 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/move_tutor.c | 976 --------------------------------------------------- src/strings.c | 16 +- 3 files changed, 984 insertions(+), 984 deletions(-) create mode 100644 src/move_relearner.c delete mode 100644 src/move_tutor.c (limited to 'src') diff --git a/src/move_relearner.c b/src/move_relearner.c new file mode 100644 index 000000000..1766476cc --- /dev/null +++ b/src/move_relearner.c @@ -0,0 +1,976 @@ +#include "global.h" +#include "main.h" +#include "battle.h" +#include "bg.h" +#include "contest_effect.h" +#include "data2.h" +#include "event_data.h" +#include "field_screen_effect.h" +#include "gpu_regs.h" +#include "move_relearner.h" +#include "list_menu.h" +#include "alloc.h" +#include "menu.h" +#include "menu_helpers.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_summary_screen.h" +#include "pokenav.h" +#include "script.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +/* + * Move relearner state machine + * ------------------------ + * + * Entry point: TeachMoveRelearnerMove + * + * TeachMoveRelearnerMove + * Task_WaitForFadeOut + * CB2_InitLearnMove + * - Creates moveDisplayArrowTask to listen to right/left buttons. + * - Creates moveListScrollArrowTask to listen to up/down buttons. + * - Whenever the selected move changes (and once on init), the MoveRelearnerCursorCallback + * is called (see gMoveRelearnerMovesListTemplate). That callback will reload the contest + * display and battle display windows for the new move. Both are always loaded in + * memory, but only the currently active one is copied to VRAM. The exception to this + * is the appeal and jam hearts, which are sprites. MoveRelearnerShowHideHearts is called + * while reloading the contest display to control them. + * DoMoveRelearnerMain: MENU_STATE_FADE_TO_BLACK + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_FADE + * - Go to MENU_STATE_IDLE_BATTLE_MODE + * + * DoMoveRelearnerMain: MENU_STATE_SETUP_BATTLE_MODE + * DoMoveRelearnerMain: MENU_STATE_IDLE_BATTLE_MODE + * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. + * - If the player pressed left or right, swap the move display window to contest mode, + * and go to MENU_STATE_SETUP_CONTEST_MODE. + * + * DoMoveRelearnerMain: MENU_STATE_SETUP_CONTEST_MODE + * DoMoveRelearnerMain: MENU_STATE_IDLE_CONTEST_MODE + * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. + * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT + * - If the player pressed left or right, swap the move display window to battle mode, + * and go to MENU_STATE_SETUP_BATTLE_MODE. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT + * DoMoveRelearnerMain: MENU_STATE_TEACH_MOVE_CONFIRM + * - Wait for the player to confirm. + * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. + * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to + * MENU_STATE_PRINT_TEXT_THEN_FANFARE. + * - If confirmed and the pokemon doesn't have an empty move slot, go to + * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN + * DoMoveRelearnerMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE + * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. + * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_STOP_TEACHING + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_STOP_TEACHING + * DoMoveRelearnerMain: MENU_STATE_CONFIRM_STOP_TEACHING + * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. + * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT + * DoMoveRelearnerMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN + * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to + * CB2_InitLearnMoveReturnFromSelectMove. + * + * DoMoveRelearnerMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE + * DoMoveRelearnerMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_FANFARE + * DoMoveRelearnerMain: MENU_STATE_WAIT_FOR_A_BUTTON + * DoMoveRelearnerMain: MENU_STATE_FADE_AND_RETURN + * DoMoveRelearnerMain: MENU_STATE_RETURN_TO_FIELD + * - Clean up and go to CB2_ReturnToField. + * + * DoMoveRelearnerMain: MENU_STATE_PRINT_GIVE_UP_PROMPT + * DoMoveRelearnerMain: MENU_STATE_GIVE_UP_CONFIRM + * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. + * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or + * MENU_STATE_SETUP_CONTEST_MODE. + * + * CB2_InitLearnMoveReturnFromSelectMove: + * - Do most of the same stuff as CB2_InitLearnMove. + * DoMoveRelearnerMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN + * DoMoveRelearnerMain: MENU_STATE_TRY_OVERWRITE_MOVE + * - If any of the pokemon's existing moves were chosen, overwrite the move and + * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. + * - If the chosen move is the one the player selected before the summary screen, + * go to MENU_STATE_PRINT_STOP_TEACHING. + * + */ + +#define MENU_STATE_FADE_TO_BLACK 0 +#define MENU_STATE_WAIT_FOR_FADE 1 +#define MENU_STATE_UNREACHABLE 2 +#define MENU_STATE_SETUP_BATTLE_MODE 3 +#define MENU_STATE_IDLE_BATTLE_MODE 4 +#define MENU_STATE_SETUP_CONTEST_MODE 5 +#define MENU_STATE_IDLE_CONTEST_MODE 6 +// State 7 is skipped. +#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 +#define MENU_STATE_TEACH_MOVE_CONFIRM 9 +// States 10 and 11 are skipped. +#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 +#define MENU_STATE_GIVE_UP_CONFIRM 13 +#define MENU_STATE_FADE_AND_RETURN 14 +#define MENU_STATE_RETURN_TO_FIELD 15 +#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 +#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 +#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 +#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 +#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 +// States 21, 22, and 23 are skipped. +#define MENU_STATE_PRINT_STOP_TEACHING 24 +#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 +#define MENU_STATE_CONFIRM_STOP_TEACHING 26 +#define MENU_STATE_CHOOSE_SETUP_STATE 27 +#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 +#define MENU_STATE_TRY_OVERWRITE_MOVE 29 +#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 +#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 +#define MENU_STATE_WAIT_FOR_FANFARE 32 +#define MENU_STATE_WAIT_FOR_A_BUTTON 33 + +// The different versions of hearts are selected using animation +// commands. +#define APPEAL_HEART_EMPTY 0 +#define APPEAL_HEART_FULL 1 +#define JAM_HEART_EMPTY 2 +#define JAM_HEART_FULL 3 + +static EWRAM_DATA struct +{ + u8 state; + u8 heartSpriteIds[16]; /*0x001*/ + u16 movesToLearn[4]; /*0x012*/ + u8 filler1A[0x44 - 0x1A]; /*0x01A*/ + u8 partyMon; /*0x044*/ + u8 moveSlot; /*0x045*/ + struct ListMenuItem menuItems[20]; /*0x048*/ + u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ + u8 numMenuChoices; /*0x110*/ + u8 numToShowAtOnce; /*0x111*/ + u8 moveListMenuTask; /*0x112*/ + u8 moveListScrollArrowTask; /*0x113*/ + u8 moveDisplayArrowTask; /*0x114*/ + u16 scrollOffset; /*0x116*/ +} *sMoveRelearnerStruct = {0}; + +static EWRAM_DATA struct { + u16 listOffset; + u16 listRow; + bool8 showContestInfo; +} sMoveRelearnerMenuSate = {0}; + +static const u16 sMoveRelearnerPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); + +// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own +// arrow sprites. +static const u8 sMoveRelearnerSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); + +static const struct OamData sHeartSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_SQUARE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam1 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_V_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData sUnusedOam2 = +{ + .y = 0, + .affineMode = 0, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = ST_OAM_H_RECTANGLE, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct SpriteSheet sMoveRelearnerSpriteSheet = +{ + .data = sMoveRelearnerSpriteSheetData, + .size = 0x180, + .tag = 5525 +}; + +static const struct SpritePalette sMoveRelearnerPalette = +{ + .data = sMoveRelearnerPaletteData, + .tag = 5526 +}; + +static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_LEFT, + .firstX = 27, + .firstY = 16, + .secondArrowType = SCROLL_ARROW_RIGHT, + .secondX = 117, + .secondY = 16, + .fullyUpThreshold = -1, + .fullyDownThreshold = -1, + .tileTag = 5325, + .palTag = 5325, + .palNum = 0, +}; + +static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = +{ + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 192, + .firstY = 8, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 192, + .secondY = 104, + .fullyUpThreshold = 0, + .fullyDownThreshold = 0, + .tileTag = 5425, + .palTag = 5425, + .palNum = 0, +}; + +static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = +{ + ANIMCMD_FRAME(8, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_AppealFullFrame[] = +{ + ANIMCMD_FRAME(9, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamEmptyFrame[] = +{ + ANIMCMD_FRAME(10, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd sHeartSprite_JamFullFrame[] = +{ + ANIMCMD_FRAME(11, 5, FALSE, FALSE), + ANIMCMD_END +}; + +static const union AnimCmd *const sHeartSpriteAnimationCommands[] = +{ + [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, + [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, + [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, + [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, +}; + +static const struct SpriteTemplate sConstestMoveHeartSprite = +{ + .tileTag = 5525, + .paletteTag = 5526, + .oam = &sHeartSpriteOamData, + .anims = sHeartSpriteAnimationCommands, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct BgTemplate sMoveRelearnerMenuBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0, + }, +}; + +static void DoMoveRelearnerMain(void); +static void CreateLearnableMovesList(void); +static void CreateUISprites(void); +static void CB2_MoveRelearnerMain(void); +static void Task_WaitForFadeOut(u8 taskId); +static void CB2_InitLearnMove(void); +static void CB2_InitLearnMoveReturnFromSelectMove(void); +static void InitMoveRelearnerBackgroundLayers(void); +static void AddScrollArrows(void); +static void HandleInput(u8); +static void ShowTeachMoveText(u8); +static s32 GetCurrentSelectedMove(void); +static void FreeMoveRelearnerResources(void); +static void RemoveScrollArrows(void); +static void HideHeartSpritesAndShowTeachMoveText(bool8); + +static void VBlankCB_MoveRelearner(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +// Script arguments: The pokemon to teach is in VAR_0x8004 +void TeachMoveRelearnerMove(void) +{ + ScriptContext2_Enable(); + CreateTask(Task_WaitForFadeOut, 10); + // Fade to black + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); +} + +static void Task_WaitForFadeOut(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(CB2_InitLearnMove); + gFieldCallback = FieldCallback_ReturnToEventScript2; + DestroyTask(taskId); + } +} + +static void CB2_InitLearnMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); + sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_MoveRelearner); + + InitMoveRelearnerBackgroundLayers(); + InitMoveRelearnerWindows(FALSE); + + sMoveRelearnerMenuSate.listOffset = 0; + sMoveRelearnerMenuSate.listRow = 0; + sMoveRelearnerMenuSate.showContestInfo = FALSE; + + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveRelearnerSpriteSheet); + LoadSpritePalette(&sMoveRelearnerPalette); + CreateUISprites(); + + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveRelearnerMain); +} + +static void CB2_InitLearnMoveReturnFromSelectMove(void) +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sMoveRelearnerStruct = AllocZeroed(sizeof(*sMoveRelearnerStruct)); + sMoveRelearnerStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; + sMoveRelearnerStruct->partyMon = gSpecialVar_0x8004; + sMoveRelearnerStruct->moveSlot = gSpecialVar_0x8005; + SetVBlankCallback(VBlankCB_MoveRelearner); + + InitMoveRelearnerBackgroundLayers(); + InitMoveRelearnerWindows(sMoveRelearnerMenuSate.showContestInfo); + CreateLearnableMovesList(); + + LoadSpriteSheet(&sMoveRelearnerSpriteSheet); + LoadSpritePalette(&sMoveRelearnerPalette); + CreateUISprites(); + + sMoveRelearnerStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveRelearnerMenuSate.listOffset, sMoveRelearnerMenuSate.listRow); + FillPalette(RGB_BLACK, 0, 2); + SetMainCallback2(CB2_MoveRelearnerMain); +} + +static void InitMoveRelearnerBackgroundLayers(void) +{ + ResetVramOamAndBgCntRegs(); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sMoveRelearnerMenuBackgroundTemplates, ARRAY_COUNT(sMoveRelearnerMenuBackgroundTemplates)); + ResetAllBgsCoordinates(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | + DISPCNT_OBJ_1D_MAP | + DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +static void CB2_MoveRelearnerMain(void) +{ + DoMoveRelearnerMain(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void FormatAndPrintText(const u8 *src) +{ + StringExpandPlaceholders(gStringVar4, src); + MoveRelearnerPrintText(gStringVar4); +} + +// See the state machine doc at the top of the file. +static void DoMoveRelearnerMain(void) +{ + switch (sMoveRelearnerStruct->state) + { + case MENU_STATE_FADE_TO_BLACK: + sMoveRelearnerStruct->state++; + HideHeartSpritesAndShowTeachMoveText(FALSE); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_WAIT_FOR_FADE: + if (!gPaletteFade.active) + { + sMoveRelearnerStruct->state = MENU_STATE_IDLE_BATTLE_MODE; + } + break; + case MENU_STATE_UNREACHABLE: + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_SETUP_BATTLE_MODE: + + HideHeartSpritesAndShowTeachMoveText(FALSE); + sMoveRelearnerStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_BATTLE_MODE: + HandleInput(FALSE); + break; + case MENU_STATE_SETUP_CONTEST_MODE: + ShowTeachMoveText(FALSE); + sMoveRelearnerStruct->state++; + AddScrollArrows(); + break; + case MENU_STATE_IDLE_CONTEST_MODE: + HandleInput(TRUE); + break; + case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_TEACH_MOVE_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + if (GiveMoveToMon(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) + { + FormatAndPrintText(gText_MoveRelearnerPkmnLearnedMove); + gSpecialVar_0x8004 = TRUE; + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + } + else + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + else if (selection == MENU_B_PRESSED || selection == 1) + { + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_GIVE_UP_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_GIVE_UP_CONFIRM: + { + s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); + + if (selection == 0) + { + gSpecialVar_0x8004 = FALSE; + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + else if (selection == -1 || selection == 1) + { + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + } + break; + case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: + FormatAndPrintText(gText_MoveRelearnerPkmnTryingToLearnMove); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; + } + break; + case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + FormatAndPrintText(gText_MoveRelearnerWhichMoveToForget); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; + } + else if (var == -1 || var == 1) + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + } + break; + case MENU_STATE_PRINT_STOP_TEACHING: + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveRelearnerStopTryingToTeachMove); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_WAIT_FOR_STOP_TEACHING: + if (!MoveRelearnerRunTextPrinters()) + { + MoveRelearnerCreateYesNoMenu(); + sMoveRelearnerStruct->state++; + } + break; + case MENU_STATE_CONFIRM_STOP_TEACHING: + { + s8 var = Menu_ProcessInputNoWrapClearOnChoose(); + + if (var == 0) + { + sMoveRelearnerStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; + } + else if (var == MENU_B_PRESSED || var == 1) + { + // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; + } + } + break; + case MENU_STATE_CHOOSE_SETUP_STATE: + if (!MoveRelearnerRunTextPrinters()) + { + FillWindowPixelBuffer(3, 0x11); + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + } + } + break; + case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: + if (!MoveRelearnerRunTextPrinters()) + { + sMoveRelearnerStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + } + break; + case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: + if (!gPaletteFade.active) + { + ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveRelearnerStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); + FreeMoveRelearnerResources(); + } + break; + case 21: + if (!MoveRelearnerRunTextPrinters()) + { + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + case 22: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + break; + case MENU_STATE_FADE_AND_RETURN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + sMoveRelearnerStruct->state++; + break; + case MENU_STATE_RETURN_TO_FIELD: + if (!gPaletteFade.active) + { + FreeMoveRelearnerResources(); + SetMainCallback2(CB2_ReturnToField); + } + break; + case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + sMoveRelearnerStruct->state++; + if (sMoveRelearnerMenuSate.showContestInfo == FALSE) + { + HideHeartSpritesAndShowTeachMoveText(TRUE); + } + else if (sMoveRelearnerMenuSate.showContestInfo == TRUE) + { + ShowTeachMoveText(TRUE); + } + RemoveScrollArrows(); + CopyWindowToVram(3, 2); + break; + case MENU_STATE_TRY_OVERWRITE_MOVE: + if (!gPaletteFade.active) + { + if (sMoveRelearnerStruct->moveSlot == MAX_MON_MOVES) + { + sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING; + } + else + { + u16 moveId = GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_MOVE1 + sMoveRelearnerStruct->moveSlot); + + StringCopy(gStringVar3, gMoveNames[moveId]); + RemoveMonPPBonus(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->moveSlot); + SetMonMoveSlot(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove(), sMoveRelearnerStruct->moveSlot); + StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); + FormatAndPrintText(gText_MoveRelearnerAndPoof); + sMoveRelearnerStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; + gSpecialVar_0x8004 = TRUE; + } + } + break; + case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: + if (!MoveRelearnerRunTextPrinters()) + { + FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; + PlayFanfare(MUS_FANFA1); + } + break; + case MENU_STATE_PRINT_TEXT_THEN_FANFARE: + if (!MoveRelearnerRunTextPrinters()) + { + PlayFanfare(MUS_FANFA1); + sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_FANFARE; + } + break; + case MENU_STATE_WAIT_FOR_FANFARE: + if (IsFanfareTaskInactive()) + { + sMoveRelearnerStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; + } + break; + case MENU_STATE_WAIT_FOR_A_BUTTON: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sMoveRelearnerStruct->state = MENU_STATE_FADE_AND_RETURN; + } + break; + } +} + +static void FreeMoveRelearnerResources(void) +{ + RemoveScrollArrows(); + DestroyListMenuTask(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sMoveRelearnerStruct); + ResetSpriteData(); + FreeAllSpritePalettes(); +} + +// Note: The hearts are already made invisible by MoveRelearnerShowHideHearts, +// which is called whenever the cursor in either list changes. +static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) +{ + s32 i; + + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } + + if (!onlyHideSprites) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void HandleInput(bool8 showContest) +{ + s32 itemId = ListMenu_ProcessInput(sMoveRelearnerStruct->moveListMenuTask); + ListMenuGetScrollAndRow(sMoveRelearnerStruct->moveListMenuTask, &sMoveRelearnerMenuSate.listOffset, &sMoveRelearnerMenuSate.listRow); + + switch (itemId) + { + case LIST_NOTHING_CHOSEN: + if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) + { + break; + } + + PlaySE(SE_SELECT); + + if (showContest == FALSE) + { + PutWindowTilemap(1); + sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; + sMoveRelearnerMenuSate.showContestInfo = TRUE; + } + else + { + PutWindowTilemap(0); + sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; + sMoveRelearnerMenuSate.showContestInfo = FALSE; + } + + schedule_bg_copy_tilemap_to_vram(1); + MoveRelearnerShowHideHearts(GetCurrentSelectedMove()); + break; + case LIST_CANCEL: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; + StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerGiveUp); + MoveRelearnerPrintText(gStringVar4); + break; + default: + PlaySE(SE_SELECT); + RemoveScrollArrows(); + sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; + StringCopy(gStringVar2, gMoveNames[itemId]); + StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerTeachMoveConfirm); + MoveRelearnerPrintText(gStringVar4); + break; + } +} + +static s32 GetCurrentSelectedMove(void) +{ + return sMoveRelearnerStruct->menuItems[sMoveRelearnerMenuSate.listRow + sMoveRelearnerMenuSate.listOffset].id; +} + +// Theory: This used to make the heart sprites visible again (i.e. +// this was the inverse of HideHeartsAndShowTeachMoveText), but the +// code was commented out. The bool argument would have been named +// "justShowHearts." The code for showing/hiding the heards was moved +// to MoveRelearnerShowHideHearts, which is called whenever a new move is +// selected and whenever the display mode changes. +static void ShowTeachMoveText(bool8 shouldDoNothingInstead) +{ + if (shouldDoNothingInstead == FALSE) + { + StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); + FillWindowPixelBuffer(3, 0x11); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); + } +} + +static void CreateUISprites(void) +{ + int i; + + sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; + sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + AddScrollArrows(); + + // These are the appeal hearts. + for (i = 0; i < 8; i++) + { + sMoveRelearnerStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); + } + + // These are the jam harts. + // The animation is used to toggle between full/empty heart sprites. + for (i = 0; i < 8; i++) + { + sMoveRelearnerStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 2); + } + + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } +} + +static void AddScrollArrows(void) +{ + if (sMoveRelearnerStruct->moveDisplayArrowTask == 0xFF) + { + sMoveRelearnerStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveRelearnerStruct->scrollOffset); + } + + if (sMoveRelearnerStruct->moveListScrollArrowTask == 0xFF) + { + gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; + gTempScrollArrowTemplate.fullyDownThreshold = sMoveRelearnerStruct->numMenuChoices - sMoveRelearnerStruct->numToShowAtOnce; + sMoveRelearnerStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveRelearnerMenuSate.listOffset); + } +} + +static void RemoveScrollArrows(void) +{ + if (sMoveRelearnerStruct->moveDisplayArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveDisplayArrowTask); + sMoveRelearnerStruct->moveDisplayArrowTask = 0xFF; + } + + if (sMoveRelearnerStruct->moveListScrollArrowTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sMoveRelearnerStruct->moveListScrollArrowTask); + sMoveRelearnerStruct->moveListScrollArrowTask = 0xFF; + } +} + +static void CreateLearnableMovesList(void) +{ + s32 i; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + + sMoveRelearnerStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->movesToLearn); + + for (i = 0; i < sMoveRelearnerStruct->numMenuChoices; i++) + { + sMoveRelearnerStruct->menuItems[i].name = gMoveNames[sMoveRelearnerStruct->movesToLearn[i]]; + sMoveRelearnerStruct->menuItems[i].id = sMoveRelearnerStruct->movesToLearn[i]; + } + + GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_NICKNAME, nickname); + StringCopy10(gStringVar1, nickname); + sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].name = gText_Cancel; + sMoveRelearnerStruct->menuItems[sMoveRelearnerStruct->numMenuChoices].id = LIST_CANCEL; + sMoveRelearnerStruct->numMenuChoices++; + sMoveRelearnerStruct->numToShowAtOnce = LoadMoveRelearnerMovesList(sMoveRelearnerStruct->menuItems, sMoveRelearnerStruct->numMenuChoices); +} + +void MoveRelearnerShowHideHearts(s32 moveId) +{ + u16 numHearts; + u16 i; + + if (!sMoveRelearnerMenuSate.showContestInfo || moveId == LIST_CANCEL) + { + for (i = 0; i < 16; i++) + { + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; + } + } + else + { + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 1); + } + else + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 0); + } + gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = FALSE; + } + + numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); + + if (numHearts == 0xFF) + { + numHearts = 0; + } + + for (i = 0; i < 8; i++) + { + if (i < numHearts) + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 3); + } + else + { + StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 2); + } + gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]].invisible = FALSE; + } + } +} diff --git a/src/move_tutor.c b/src/move_tutor.c deleted file mode 100644 index 89291a008..000000000 --- a/src/move_tutor.c +++ /dev/null @@ -1,976 +0,0 @@ -#include "global.h" -#include "main.h" -#include "battle.h" -#include "bg.h" -#include "contest_effect.h" -#include "data2.h" -#include "event_data.h" -#include "field_screen_effect.h" -#include "gpu_regs.h" -#include "move_tutor.h" -#include "list_menu.h" -#include "alloc.h" -#include "menu.h" -#include "menu_helpers.h" -#include "overworld.h" -#include "palette.h" -#include "pokemon_summary_screen.h" -#include "pokenav.h" -#include "script.h" -#include "sound.h" -#include "sprite.h" -#include "string_util.h" -#include "strings.h" -#include "task.h" -#include "constants/rgb.h" -#include "constants/songs.h" - -/* - * Move tutor state machine - * ------------------------ - * - * Entry point: TeachMoveTutorMove - * - * TeachMoveTutorMove - * Task_WaitForFadeOut - * CB2_InitLearnMove - * - Creates moveDisplayArrowTask to listen to right/left buttons. - * - Creates moveListScrollArrowTask to listen to up/down buttons. - * - Whenever the selected move changes (and once on init), the MoveTutorCursorCallback - * is called (see gMoveTutorMovesListTemplate). That callback will reload the contest - * display and battle display windows for the new move. Both are always loaded in - * memory, but only the currently active one is copied to VRAM. The exception to this - * is the appeal and jam hearts, which are sprites. MoveTutorShowHideHearts is called - * while reloading the contest display to control them. - * DoMoveTutorMain: MENU_STATE_FADE_TO_BLACK - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FADE - * - Go to MENU_STATE_IDLE_BATTLE_MODE - * - * DoMoveTutorMain: MENU_STATE_SETUP_BATTLE_MODE - * DoMoveTutorMain: MENU_STATE_IDLE_BATTLE_MODE - * - If the player selected a move (pressed A), go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. - * - If the player cancelled (pressed B), go to MENU_STATE_PRINT_GIVE_UP_PROMPT. - * - If the player pressed left or right, swap the move display window to contest mode, - * and go to MENU_STATE_SETUP_CONTEST_MODE. - * - * DoMoveTutorMain: MENU_STATE_SETUP_CONTEST_MODE - * DoMoveTutorMain: MENU_STATE_IDLE_CONTEST_MODE - * - If the player selected a move, go to MENU_STATE_PRINT_TEACH_MOVE_PROMPT. - * - If the player cancelled, go to MENU_STATE_PRINT_GIVE_UP_PROMPT - * - If the player pressed left or right, swap the move display window to battle mode, - * and go to MENU_STATE_SETUP_BATTLE_MODE. - * - * DoMoveTutorMain: MENU_STATE_PRINT_TEACH_MOVE_PROMPT - * DoMoveTutorMain: MENU_STATE_TEACH_MOVE_CONFIRM - * - Wait for the player to confirm. - * - If cancelled, go to either MENU_STATE_SETUP_BATTLE_MODE or MENU_STATE_SETUP_CONTEST_MODE. - * - If confirmed and the pokemon had an empty move slot, set VAR_0x8004 to TRUE and go to - * MENU_STATE_PRINT_TEXT_THEN_FANFARE. - * - If confirmed and the pokemon doesn't have an empty move slot, go to - * MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. - * - * DoMoveTutorMain: MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_TRYING_TO_LEARN - * DoMoveTutorMain: MENU_STATE_CONFIRM_DELETE_OLD_MOVE - * - If the player confirms, go to MENU_STATE_PRINT_WHICH_MOVE_PROMPT. - * - If the player cancels, go to MENU_STATE_PRINT_STOP_TEACHING - * - * DoMoveTutorMain: MENU_STATE_PRINT_STOP_TEACHING - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_STOP_TEACHING - * DoMoveTutorMain: MENU_STATE_CONFIRM_STOP_TEACHING - * - If the player confirms, go to MENU_STATE_CHOOSE_SETUP_STATE. - * - If the player cancels, go back to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT. - * - * DoMoveTutorMain: MENU_STATE_PRINT_WHICH_MOVE_PROMPT - * DoMoveTutorMain: MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN - * - Go to ShowSelectMovePokemonSummaryScreen. When done, control returns to - * CB2_InitLearnMoveReturnFromSelectMove. - * - * DoMoveTutorMain: MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE - * DoMoveTutorMain: MENU_STATE_PRINT_TEXT_THEN_FANFARE - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_FANFARE - * DoMoveTutorMain: MENU_STATE_WAIT_FOR_A_BUTTON - * DoMoveTutorMain: MENU_STATE_FADE_AND_RETURN - * DoMoveTutorMain: MENU_STATE_RETURN_TO_FIELD - * - Clean up and go to CB2_ReturnToField. - * - * DoMoveTutorMain: MENU_STATE_PRINT_GIVE_UP_PROMPT - * DoMoveTutorMain: MENU_STATE_GIVE_UP_CONFIRM - * - If the player confirms, go to MENU_STATE_FADE_AND_RETURN, and set VAR_0x8004 to FALSE. - * - If the player cancels, go to either MENU_STATE_SETUP_BATTLE_MODE or - * MENU_STATE_SETUP_CONTEST_MODE. - * - * CB2_InitLearnMoveReturnFromSelectMove: - * - Do most of the same stuff as CB2_InitLearnMove. - * DoMoveTutorMain: MENU_STATE_FADE_FROM_SUMMARY_SCREEN - * DoMoveTutorMain: MENU_STATE_TRY_OVERWRITE_MOVE - * - If any of the pokemon's existing moves were chosen, overwrite the move and - * go to MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE and set VAR_0x8004 to TRUE. - * - If the chosen move is the one the player selected before the summary screen, - * go to MENU_STATE_PRINT_STOP_TEACHING. - * - */ - -#define MENU_STATE_FADE_TO_BLACK 0 -#define MENU_STATE_WAIT_FOR_FADE 1 -#define MENU_STATE_UNREACHABLE 2 -#define MENU_STATE_SETUP_BATTLE_MODE 3 -#define MENU_STATE_IDLE_BATTLE_MODE 4 -#define MENU_STATE_SETUP_CONTEST_MODE 5 -#define MENU_STATE_IDLE_CONTEST_MODE 6 -// State 7 is skipped. -#define MENU_STATE_PRINT_TEACH_MOVE_PROMPT 8 -#define MENU_STATE_TEACH_MOVE_CONFIRM 9 -// States 10 and 11 are skipped. -#define MENU_STATE_PRINT_GIVE_UP_PROMPT 12 -#define MENU_STATE_GIVE_UP_CONFIRM 13 -#define MENU_STATE_FADE_AND_RETURN 14 -#define MENU_STATE_RETURN_TO_FIELD 15 -#define MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT 16 -#define MENU_STATE_WAIT_FOR_TRYING_TO_LEARN 17 -#define MENU_STATE_CONFIRM_DELETE_OLD_MOVE 18 -#define MENU_STATE_PRINT_WHICH_MOVE_PROMPT 19 -#define MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN 20 -// States 21, 22, and 23 are skipped. -#define MENU_STATE_PRINT_STOP_TEACHING 24 -#define MENU_STATE_WAIT_FOR_STOP_TEACHING 25 -#define MENU_STATE_CONFIRM_STOP_TEACHING 26 -#define MENU_STATE_CHOOSE_SETUP_STATE 27 -#define MENU_STATE_FADE_FROM_SUMMARY_SCREEN 28 -#define MENU_STATE_TRY_OVERWRITE_MOVE 29 -#define MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE 30 -#define MENU_STATE_PRINT_TEXT_THEN_FANFARE 31 -#define MENU_STATE_WAIT_FOR_FANFARE 32 -#define MENU_STATE_WAIT_FOR_A_BUTTON 33 - -// The different versions of hearts are selected using animation -// commands. -#define APPEAL_HEART_EMPTY 0 -#define APPEAL_HEART_FULL 1 -#define JAM_HEART_EMPTY 2 -#define JAM_HEART_FULL 3 - -static EWRAM_DATA struct -{ - u8 state; - u8 heartSpriteIds[16]; /*0x001*/ - u16 movesToLearn[4]; /*0x012*/ - u8 filler1A[0x44 - 0x1A]; /*0x01A*/ - u8 partyMon; /*0x044*/ - u8 moveSlot; /*0x045*/ - struct ListMenuItem menuItems[20]; /*0x048*/ - u8 fillerE8[0x110 - 0xE8]; /*0x0E8*/ - u8 numMenuChoices; /*0x110*/ - u8 numToShowAtOnce; /*0x111*/ - u8 moveListMenuTask; /*0x112*/ - u8 moveListScrollArrowTask; /*0x113*/ - u8 moveDisplayArrowTask; /*0x114*/ - u16 scrollOffset; /*0x116*/ -} *sMoveTutorStruct = {0}; - -static EWRAM_DATA struct { - u16 listOffset; - u16 listRow; - bool8 showContestInfo; -} sMoveTutorMenuSate = {0}; - -static const u16 sMoveTutorPaletteData[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); - -// The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own -// arrow sprites. -static const u8 sMoveTutorSpriteSheetData[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp"); - -static const struct OamData sHeartSpriteOamData = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct OamData sUnusedOam1 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct OamData sUnusedOam2 = -{ - .y = 0, - .affineMode = 0, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = 0, - .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -static const struct SpriteSheet sMoveTutorSpriteSheet = -{ - .data = sMoveTutorSpriteSheetData, - .size = 0x180, - .tag = 5525 -}; - -static const struct SpritePalette sMoveTutorPalette = -{ - .data = sMoveTutorPaletteData, - .tag = 5526 -}; - -static const struct ScrollArrowsTemplate sDisplayModeArrowsTemplate = -{ - .firstArrowType = SCROLL_ARROW_LEFT, - .firstX = 27, - .firstY = 16, - .secondArrowType = SCROLL_ARROW_RIGHT, - .secondX = 117, - .secondY = 16, - .fullyUpThreshold = -1, - .fullyDownThreshold = -1, - .tileTag = 5325, - .palTag = 5325, - .palNum = 0, -}; - -static const struct ScrollArrowsTemplate sMoveListScrollArrowsTemplate = -{ - .firstArrowType = SCROLL_ARROW_UP, - .firstX = 192, - .firstY = 8, - .secondArrowType = SCROLL_ARROW_DOWN, - .secondX = 192, - .secondY = 104, - .fullyUpThreshold = 0, - .fullyDownThreshold = 0, - .tileTag = 5425, - .palTag = 5425, - .palNum = 0, -}; - -static const union AnimCmd sHeartSprite_AppealEmptyFrame[] = -{ - ANIMCMD_FRAME(8, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_AppealFullFrame[] = -{ - ANIMCMD_FRAME(9, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_JamEmptyFrame[] = -{ - ANIMCMD_FRAME(10, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd sHeartSprite_JamFullFrame[] = -{ - ANIMCMD_FRAME(11, 5, FALSE, FALSE), - ANIMCMD_END -}; - -static const union AnimCmd *const sHeartSpriteAnimationCommands[] = -{ - [APPEAL_HEART_EMPTY] = sHeartSprite_AppealEmptyFrame, - [APPEAL_HEART_FULL] = sHeartSprite_AppealFullFrame, - [JAM_HEART_EMPTY] = sHeartSprite_JamEmptyFrame, - [JAM_HEART_FULL] = sHeartSprite_JamFullFrame, -}; - -static const struct SpriteTemplate sConstestMoveHeartSprite = -{ - .tileTag = 5525, - .paletteTag = 5526, - .oam = &sHeartSpriteOamData, - .anims = sHeartSpriteAnimationCommands, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -static const struct BgTemplate sMoveTutorMenuBackgroundTemplates[] = -{ - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - { - .bg = 1, - .charBaseIndex = 0, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0, - }, -}; - -static void DoMoveTutorMain(void); -static void CreateLearnableMovesList(void); -static void CreateUISprites(void); -static void CB2_MoveTutorMain(void); -static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); -static void CB2_InitLearnMoveReturnFromSelectMove(void); -static void InitMoveTutorBackgroundLayers(void); -static void AddScrollArrows(void); -static void HandleInput(u8); -static void ShowTeachMoveText(u8); -static s32 GetCurrentSelectedMove(void); -static void FreeMoveTutorResources(void); -static void RemoveScrollArrows(void); -static void HideHeartSpritesAndShowTeachMoveText(bool8); - -static void VBlankCB_MoveTutor(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -// Script arguments: The pokemon to teach is in VAR_0x8004 -void TeachMoveTutorMove(void) -{ - ScriptContext2_Enable(); - CreateTask(Task_WaitForFadeOut, 10); - // Fade to black - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); -} - -static void Task_WaitForFadeOut(u8 taskId) -{ - if (!gPaletteFade.active) - { - SetMainCallback2(CB2_InitLearnMove); - gFieldCallback = FieldCallback_ReturnToEventScript2; - DestroyTask(taskId); - } -} - -static void CB2_InitLearnMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); - sMoveTutorStruct->partyMon = gSpecialVar_0x8004; - SetVBlankCallback(VBlankCB_MoveTutor); - - InitMoveTutorBackgroundLayers(); - InitMoveTutorWindows(FALSE); - - sMoveTutorMenuSate.listOffset = 0; - sMoveTutorMenuSate.listRow = 0; - sMoveTutorMenuSate.showContestInfo = FALSE; - - CreateLearnableMovesList(); - - LoadSpriteSheet(&sMoveTutorSpriteSheet); - LoadSpritePalette(&sMoveTutorPalette); - CreateUISprites(); - - sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_MoveTutorMain); -} - -static void CB2_InitLearnMoveReturnFromSelectMove(void) -{ - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetTasks(); - clear_scheduled_bg_copies_to_vram(); - sMoveTutorStruct = AllocZeroed(sizeof(*sMoveTutorStruct)); - sMoveTutorStruct->state = MENU_STATE_FADE_FROM_SUMMARY_SCREEN; - sMoveTutorStruct->partyMon = gSpecialVar_0x8004; - sMoveTutorStruct->moveSlot = gSpecialVar_0x8005; - SetVBlankCallback(VBlankCB_MoveTutor); - - InitMoveTutorBackgroundLayers(); - InitMoveTutorWindows(sMoveTutorMenuSate.showContestInfo); - CreateLearnableMovesList(); - - LoadSpriteSheet(&sMoveTutorSpriteSheet); - LoadSpritePalette(&sMoveTutorPalette); - CreateUISprites(); - - sMoveTutorStruct->moveListMenuTask = ListMenuInit(&gMultiuseListMenuTemplate, sMoveTutorMenuSate.listOffset, sMoveTutorMenuSate.listRow); - FillPalette(RGB_BLACK, 0, 2); - SetMainCallback2(CB2_MoveTutorMain); -} - -static void InitMoveTutorBackgroundLayers(void) -{ - ResetVramOamAndBgCntRegs(); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sMoveTutorMenuBackgroundTemplates, ARRAY_COUNT(sMoveTutorMenuBackgroundTemplates)); - ResetAllBgsCoordinates(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | - DISPCNT_OBJ_1D_MAP | - DISPCNT_OBJ_ON); - ShowBg(0); - ShowBg(1); - SetGpuReg(REG_OFFSET_BLDCNT, 0); -} - -static void CB2_MoveTutorMain(void) -{ - DoMoveTutorMain(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); - UpdatePaletteFade(); -} - -static void FormatAndPrintText(const u8 *src) -{ - StringExpandPlaceholders(gStringVar4, src); - MoveTutorPrintText(gStringVar4); -} - -// See the state machine doc at the top of the file. -static void DoMoveTutorMain(void) -{ - switch (sMoveTutorStruct->state) - { - case MENU_STATE_FADE_TO_BLACK: - sMoveTutorStruct->state++; - HideHeartSpritesAndShowTeachMoveText(FALSE); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case MENU_STATE_WAIT_FOR_FADE: - if (!gPaletteFade.active) - { - sMoveTutorStruct->state = MENU_STATE_IDLE_BATTLE_MODE; - } - break; - case MENU_STATE_UNREACHABLE: - sMoveTutorStruct->state++; - break; - case MENU_STATE_SETUP_BATTLE_MODE: - - HideHeartSpritesAndShowTeachMoveText(FALSE); - sMoveTutorStruct->state++; - AddScrollArrows(); - break; - case MENU_STATE_IDLE_BATTLE_MODE: - HandleInput(FALSE); - break; - case MENU_STATE_SETUP_CONTEST_MODE: - ShowTeachMoveText(FALSE); - sMoveTutorStruct->state++; - AddScrollArrows(); - break; - case MENU_STATE_IDLE_CONTEST_MODE: - HandleInput(TRUE); - break; - case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_TEACH_MOVE_CONFIRM: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - if (GiveMoveToMon(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF) - { - FormatAndPrintText(gText_MoveTutorPkmnLearnedMove); - gSpecialVar_0x8004 = TRUE; - sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - } - else - { - sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; - } - } - else if (selection == MENU_B_PRESSED || selection == 1) - { - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - } - break; - case MENU_STATE_PRINT_GIVE_UP_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_GIVE_UP_CONFIRM: - { - s8 selection = Menu_ProcessInputNoWrapClearOnChoose(); - - if (selection == 0) - { - gSpecialVar_0x8004 = FALSE; - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - else if (selection == -1 || selection == 1) - { - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - } - break; - case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: - FormatAndPrintText(gText_MoveTutorPkmnTryingToLearnMove); - sMoveTutorStruct->state++; - break; - case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state = MENU_STATE_CONFIRM_DELETE_OLD_MOVE; - } - break; - case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - FormatAndPrintText(gText_MoveTutorWhichMoveToForget); - sMoveTutorStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; - } - else if (var == -1 || var == 1) - { - sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; - } - } - break; - case MENU_STATE_PRINT_STOP_TEACHING: - StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveTutorStopTryingToTeachMove); - sMoveTutorStruct->state++; - break; - case MENU_STATE_WAIT_FOR_STOP_TEACHING: - if (!MoveTutorRunTextPrinters()) - { - MoveTutorCreateYesNoMenu(); - sMoveTutorStruct->state++; - } - break; - case MENU_STATE_CONFIRM_STOP_TEACHING: - { - s8 var = Menu_ProcessInputNoWrapClearOnChoose(); - - if (var == 0) - { - sMoveTutorStruct->state = MENU_STATE_CHOOSE_SETUP_STATE; - } - else if (var == MENU_B_PRESSED || var == 1) - { - // What's the point? It gets set to MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT, anyway. - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - sMoveTutorStruct->state = MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT; - } - } - break; - case MENU_STATE_CHOOSE_SETUP_STATE: - if (!MoveTutorRunTextPrinters()) - { - FillWindowPixelBuffer(3, 0x11); - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - } - } - break; - case MENU_STATE_PRINT_WHICH_MOVE_PROMPT: - if (!MoveTutorRunTextPrinters()) - { - sMoveTutorStruct->state = MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - } - break; - case MENU_STATE_SHOW_MOVE_SUMMARY_SCREEN: - if (!gPaletteFade.active) - { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, sMoveTutorStruct->partyMon, gPlayerPartyCount - 1, CB2_InitLearnMoveReturnFromSelectMove, GetCurrentSelectedMove()); - FreeMoveTutorResources(); - } - break; - case 21: - if (!MoveTutorRunTextPrinters()) - { - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - break; - case 22: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - break; - case MENU_STATE_FADE_AND_RETURN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - sMoveTutorStruct->state++; - break; - case MENU_STATE_RETURN_TO_FIELD: - if (!gPaletteFade.active) - { - FreeMoveTutorResources(); - SetMainCallback2(CB2_ReturnToField); - } - break; - case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); - sMoveTutorStruct->state++; - if (sMoveTutorMenuSate.showContestInfo == FALSE) - { - HideHeartSpritesAndShowTeachMoveText(TRUE); - } - else if (sMoveTutorMenuSate.showContestInfo == TRUE) - { - ShowTeachMoveText(TRUE); - } - RemoveScrollArrows(); - CopyWindowToVram(3, 2); - break; - case MENU_STATE_TRY_OVERWRITE_MOVE: - if (!gPaletteFade.active) - { - if (sMoveTutorStruct->moveSlot == MAX_MON_MOVES) - { - sMoveTutorStruct->state = MENU_STATE_PRINT_STOP_TEACHING; - } - else - { - u16 moveId = GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_MOVE1 + sMoveTutorStruct->moveSlot); - - StringCopy(gStringVar3, gMoveNames[moveId]); - RemoveMonPPBonus(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->moveSlot); - SetMonMoveSlot(&gPlayerParty[sMoveTutorStruct->partyMon], GetCurrentSelectedMove(), sMoveTutorStruct->moveSlot); - StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveTutorAndPoof); - sMoveTutorStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; - gSpecialVar_0x8004 = TRUE; - } - } - break; - case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: - if (!MoveTutorRunTextPrinters()) - { - FormatAndPrintText(gText_MoveTutorPkmnForgotMoveAndLearnedNew); - sMoveTutorStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; - PlayFanfare(MUS_FANFA1); - } - break; - case MENU_STATE_PRINT_TEXT_THEN_FANFARE: - if (!MoveTutorRunTextPrinters()) - { - PlayFanfare(MUS_FANFA1); - sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_FANFARE; - } - break; - case MENU_STATE_WAIT_FOR_FANFARE: - if (IsFanfareTaskInactive()) - { - sMoveTutorStruct->state = MENU_STATE_WAIT_FOR_A_BUTTON; - } - break; - case MENU_STATE_WAIT_FOR_A_BUTTON: - if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - sMoveTutorStruct->state = MENU_STATE_FADE_AND_RETURN; - } - break; - } -} - -static void FreeMoveTutorResources(void) -{ - RemoveScrollArrows(); - DestroyListMenuTask(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); - FreeAllWindowBuffers(); - FREE_AND_SET_NULL(sMoveTutorStruct); - ResetSpriteData(); - FreeAllSpritePalettes(); -} - -// Note: The hearts are already made invisible by MoveTutorShowHideHearts, -// which is called whenever the cursor in either list changes. -static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) -{ - s32 i; - - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } - - if (!onlyHideSprites) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void HandleInput(bool8 showContest) -{ - s32 itemId = ListMenu_ProcessInput(sMoveTutorStruct->moveListMenuTask); - ListMenuGetScrollAndRow(sMoveTutorStruct->moveListMenuTask, &sMoveTutorMenuSate.listOffset, &sMoveTutorMenuSate.listRow); - - switch (itemId) - { - case LIST_NOTHING_CHOSEN: - if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState()) - { - break; - } - - PlaySE(SE_SELECT); - - if (showContest == FALSE) - { - PutWindowTilemap(1); - sMoveTutorStruct->state = MENU_STATE_SETUP_CONTEST_MODE; - sMoveTutorMenuSate.showContestInfo = TRUE; - } - else - { - PutWindowTilemap(0); - sMoveTutorStruct->state = MENU_STATE_SETUP_BATTLE_MODE; - sMoveTutorMenuSate.showContestInfo = FALSE; - } - - schedule_bg_copy_tilemap_to_vram(1); - MoveTutorShowHideHearts(GetCurrentSelectedMove()); - break; - case LIST_CANCEL: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sMoveTutorStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; - StringExpandPlaceholders(gStringVar4, gText_MoveTutorGiveUp); - MoveTutorPrintText(gStringVar4); - break; - default: - PlaySE(SE_SELECT); - RemoveScrollArrows(); - sMoveTutorStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; - StringCopy(gStringVar2, gMoveNames[itemId]); - StringExpandPlaceholders(gStringVar4, gText_MoveTutorTeachMoveConfirm); - MoveTutorPrintText(gStringVar4); - break; - } -} - -static s32 GetCurrentSelectedMove(void) -{ - return sMoveTutorStruct->menuItems[sMoveTutorMenuSate.listRow + sMoveTutorMenuSate.listOffset].id; -} - -// Theory: This used to make the heart sprites visible again (i.e. -// this was the inverse of HideHeartsAndShowTeachMoveText), but the -// code was commented out. The bool argument would have been named -// "justShowHearts." The code for showing/hiding the heards was moved -// to MoveTutorShowHideHearts, which is called whenever a new move is -// selected and whenever the display mode changes. -static void ShowTeachMoveText(bool8 shouldDoNothingInstead) -{ - if (shouldDoNothingInstead == FALSE) - { - StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); - } -} - -static void CreateUISprites(void) -{ - int i; - - sMoveTutorStruct->moveDisplayArrowTask = 0xFF; - sMoveTutorStruct->moveListScrollArrowTask = 0xFF; - AddScrollArrows(); - - // These are the appeal hearts. - for (i = 0; i < 8; i++) - { - sMoveTutorStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } - - // These are the jam harts. - // The animation is used to toggle between full/empty heart sprites. - for (i = 0; i < 8; i++) - { - sMoveTutorStruct->heartSpriteIds[i + 8] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 52, 0); - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); - } - - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } -} - -static void AddScrollArrows(void) -{ - if (sMoveTutorStruct->moveDisplayArrowTask == 0xFF) - { - sMoveTutorStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveTutorStruct->scrollOffset); - } - - if (sMoveTutorStruct->moveListScrollArrowTask == 0xFF) - { - gTempScrollArrowTemplate = sMoveListScrollArrowsTemplate; - gTempScrollArrowTemplate.fullyDownThreshold = sMoveTutorStruct->numMenuChoices - sMoveTutorStruct->numToShowAtOnce; - sMoveTutorStruct->moveListScrollArrowTask = AddScrollIndicatorArrowPair(&gTempScrollArrowTemplate, &sMoveTutorMenuSate.listOffset); - } -} - -static void RemoveScrollArrows(void) -{ - if (sMoveTutorStruct->moveDisplayArrowTask != 0xFF) - { - RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveDisplayArrowTask); - sMoveTutorStruct->moveDisplayArrowTask = 0xFF; - } - - if (sMoveTutorStruct->moveListScrollArrowTask != 0xFF) - { - RemoveScrollIndicatorArrowPair(sMoveTutorStruct->moveListScrollArrowTask); - sMoveTutorStruct->moveListScrollArrowTask = 0xFF; - } -} - -static void CreateLearnableMovesList(void) -{ - s32 i; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - - sMoveTutorStruct->numMenuChoices = GetMoveRelearnerMoves(&gPlayerParty[sMoveTutorStruct->partyMon], sMoveTutorStruct->movesToLearn); - - for (i = 0; i < sMoveTutorStruct->numMenuChoices; i++) - { - sMoveTutorStruct->menuItems[i].name = gMoveNames[sMoveTutorStruct->movesToLearn[i]]; - sMoveTutorStruct->menuItems[i].id = sMoveTutorStruct->movesToLearn[i]; - } - - GetMonData(&gPlayerParty[sMoveTutorStruct->partyMon], MON_DATA_NICKNAME, nickname); - StringCopy10(gStringVar1, nickname); - sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].name = gText_Cancel; - sMoveTutorStruct->menuItems[sMoveTutorStruct->numMenuChoices].id = LIST_CANCEL; - sMoveTutorStruct->numMenuChoices++; - sMoveTutorStruct->numToShowAtOnce = LoadMoveTutorMovesList(sMoveTutorStruct->menuItems, sMoveTutorStruct->numMenuChoices); -} - -void MoveTutorShowHideHearts(s32 moveId) -{ - u16 numHearts; - u16 i; - - if (!sMoveTutorMenuSate.showContestInfo || moveId == LIST_CANCEL) - { - for (i = 0; i < 16; i++) - { - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = TRUE; - } - } - else - { - numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 1); - } - else - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i]], 0); - } - gSprites[sMoveTutorStruct->heartSpriteIds[i]].invisible = FALSE; - } - - numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); - - if (numHearts == 0xFF) - { - numHearts = 0; - } - - for (i = 0; i < 8; i++) - { - if (i < numHearts) - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 3); - } - else - { - StartSpriteAnim(&gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]], 2); - } - gSprites[sMoveTutorStruct->heartSpriteIds[i + 8]].invisible = FALSE; - } - } -} diff --git a/src/strings.c b/src/strings.c index c2f476b58..bed8f4b68 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1742,15 +1742,15 @@ const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); -const u8 gText_MoveTutorTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); -const u8 gText_MoveTutorPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); -const u8 gText_MoveTutorPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); -const u8 gText_MoveTutorStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_MoveTutorAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); -const u8 gText_MoveTutorPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); +const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); +const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); +const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); +const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); +const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); -const u8 gText_MoveTutorGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); -const u8 gText_MoveTutorWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); +const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); +const u8 gText_MoveRelearnerWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); -- cgit v1.2.3 From 907492fd6e724d8dc2e5d2eff372be85e6f0d30c Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 4 Mar 2019 23:26:51 -0500 Subject: Split rom asm file in half The first half is ui/menu stuff, while the second half is link-related stuff. --- src/battle_script_commands.c | 14 +++++++------- src/party_menu.c | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index a53fa30f2..89c2baca9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -54,9 +54,9 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const u8* const gBattleScriptsForMoveEffects[]; // functions -extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s -extern void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s -extern void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s +extern void GetMonLevelUpWindowStats(struct Pokemon* mon, void* statStoreLocation); // pokenav.s +extern void DrawLevelUpWindowPg1(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s +extern void DrawLevelUpWindowPg2(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s extern u8 sub_813B21C(void); #define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) @@ -6321,16 +6321,16 @@ static void sub_804F100(void) { struct StatsArray currentStats; - sub_81D388C(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - sub_81D3640(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); + DrawLevelUpWindowPg1(0xD, gBattleResources->statsBeforeLvlUp, ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F144(void) { struct StatsArray currentStats; - sub_81D388C(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); - sub_81D3784(0xD, ¤tStats, 0xE, 0xD, 0xF); + GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], ¤tStats); + DrawLevelUpWindowPg2(0xD, ¤tStats, 0xE, 0xD, 0xF); } static void sub_804F17C(void) diff --git a/src/party_menu.c b/src/party_menu.c index dad778b49..7e47e9ced 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6005,7 +6005,7 @@ static void sub_81B767C(u8 taskId) s16 *arrayPtr = gUnknown_0203CEC4->data; arrayPtr[12] = sub_81B3364(); - sub_81D3640(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3); + DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], 1, 2, 3); CopyWindowToVram(arrayPtr[12], 2); schedule_bg_copy_tilemap_to_vram(2); } @@ -6014,7 +6014,7 @@ static void sub_81B76C8(u8 taskId) { s16 *arrayPtr = gUnknown_0203CEC4->data; - sub_81D3784(arrayPtr[12], &arrayPtr[6], 1, 2, 3); + DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], 1, 2, 3); CopyWindowToVram(arrayPtr[12], 2); schedule_bg_copy_tilemap_to_vram(2); } -- cgit v1.2.3 From 3507ac397415b445f40fd70c48550fe00deb1484 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 5 Mar 2019 09:02:05 +0100 Subject: Start fixing flying.c --- src/flying.c | 421 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 321 insertions(+), 100 deletions(-) (limited to 'src') diff --git a/src/flying.c b/src/flying.c index 7f48e57cb..951906448 100644 --- a/src/flying.c +++ b/src/flying.c @@ -108,7 +108,7 @@ const union AffineAnimCmd gUnknown_085962EC[] = const union AffineAnimCmd *const gUnknown_08596314[] = { - gUnknown_085962EC, + gUnknown_085962EC, }; const union AffineAnimCmd gUnknown_08596318[] = @@ -357,7 +357,8 @@ void sub_810DE70(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_810DE98(struct Sprite *sprite) { +static void sub_810DE98(struct Sprite *sprite) +{ sprite->pos2.x = Sin(sprite->data[1], 32); sprite->pos2.y = Cos(sprite->data[1], 8); sprite->data[1] += 5; @@ -392,8 +393,7 @@ static void sub_810DF18(u8 taskId) { gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i]; i--; - } - while (i > 0); + } while (i > 0); gPlttBufferFaded[base + 0x101] = temp; } @@ -524,7 +524,9 @@ static void sub_810E24C(struct Sprite *sprite) sprite->data[3] &= 0xFF; } - if ((u32)(sprite->pos1.x + sprite->pos2.x + 32) > 304 || sprite->pos1.y + sprite->pos2.y > 160) + if (sprite->pos1.x + sprite->pos2.x < -32 + || sprite->pos1.x + sprite->pos2.x > 272 + || sprite->pos1.y + sprite->pos2.y > 160) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 0; DestroyAnimSprite(sprite); @@ -547,55 +549,62 @@ void sub_810E2C8(struct Sprite *sprite) } // FAKEMATCHING +struct FeatherDanceData +{ + u8 unk0_0a:1; + u8 unk0_0b:1; + u8 unk0_0c:1; + u8 unk0_0d:1; + u8 unk0_1:4; + u8 unk1; + u16 unk2; + s16 unk4; + u16 unk6; + u16 unk8; + u16 unkA; + u8 unkC[2]; + u16 unkE_0:1; + u16 unkE_1:15; +}; + void sub_810E314(struct Sprite *sprite) { - s16 *data; - u8 slot; - s16 spriteCoord; - int t1, t2; - u32 arg2; - u32 matrixNum; - u8 sinIndex; - register s16 sinVal asm ("r4"); - register int sinVal2 asm ("r0"); + u8 battler, matrixNum, sinIndex; + s16 spriteCoord, sinVal; - data = sprite->data; + struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; if (gBattleAnimArgs[7] & 0x100) - slot = gBattleAnimAttacker; + battler = gBattleAnimAttacker; else - slot = gBattleAnimTarget; + battler = gBattleAnimTarget; - if (GetBattlerSide(slot) == B_SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; - sprite->pos1.x = GetBattlerSpriteCoord(slot, 0) + gBattleAnimArgs[0]; - spriteCoord = GetBattlerSpriteCoord(slot, 1); + sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0]; + spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH); sprite->pos1.y = spriteCoord + gBattleAnimArgs[1]; - data[4] = sprite->pos1.y << 8; - - t1 = (spriteCoord + (u16) gBattleAnimArgs[6]) << 1; - data[7] = (data[7] & 1) | t1; - ((u8 *) data)[0] |= 4; - arg2 = (u16) gBattleAnimArgs[2]; - data[1] = (u8) gBattleAnimArgs[2]; - arg2 <<= 16; - data[5] = arg2 >> 24; - data[2] = gBattleAnimArgs[3]; - data[3] = gBattleAnimArgs[4]; - data[6] = gBattleAnimArgs[5]; + data->unk8 = sprite->pos1.y << 8; + data->unkE_1 = spriteCoord + gBattleAnimArgs[6]; + data->unk0_0c = 1; + data->unk2 = gBattleAnimArgs[2] & 0xFF; + data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF; + data->unk4 = gBattleAnimArgs[3]; + data->unk6 = gBattleAnimArgs[4]; + *(u16*)(data->unkC) = gBattleAnimArgs[5]; - if ((u16) (data[1] - 64) <= 0x7f) + if (data->unk2 >= 64 && data->unk2 <= 191) { if (!IsContest()) - sprite->oam.priority = GetBattlerSpriteBGPriority(slot) + 1; + sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1; else - sprite->oam.priority = GetBattlerSpriteBGPriority(slot); + sprite->oam.priority = GetBattlerSpriteBGPriority(battler); - ((u8 *) data)[14] = data[7] & -2; + data->unkE_0 = 0; - if (!(data[2] & 0x8000)) + if (!(data->unk4 & 0x8000)) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; @@ -606,10 +615,10 @@ void sub_810E314(struct Sprite *sprite) } else { - sprite->oam.priority = GetBattlerSpriteBGPriority(slot); - ((u8 *) data)[14] |= 1; + sprite->oam.priority = GetBattlerSpriteBGPriority(battler); + data->unkE_0 = 1; - if (data[2] & 0x8000) + if (data->unk4 & 0x8000) { sprite->hFlip ^= 1; sprite->animNum = sprite->hFlip; @@ -619,24 +628,236 @@ void sub_810E314(struct Sprite *sprite) } } - t2 = (u16) data[1] >> 6 << 4; - ((u8 *) data)[0] = (15 & data[0]) | t2; - - sprite->pos2.x = (gSineTable[(u16) data[1]] * (u8) data[6]) >> 8; - + data->unk0_1 = data->unk2 >> 6; + sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8; matrixNum = sprite->oam.matrixNum; - sinIndex = (-sprite->pos2.x >> 1) + data[5]; + sinIndex = (-sprite->pos2.x >> 1) + data->unkA; sinVal = gSineTable[sinIndex]; gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; - gOamMatrices[matrixNum].b = sinVal; - sinVal2 = -sinVal; - gOamMatrices[matrixNum].c = sinVal2; + // The comparison below is completely pointless. 'sprite' is sure to be a valid pointer and + // both the 'if' and 'else' parts are exactly the same. + // The only reason for this is making sure the compiler generates the exact ASM. + if (sprite) + { + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; + } + else + { + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; + } sprite->callback = sub_810E520; } +#ifndef NONMATCHING +void sub_810E520(struct Sprite *sprite) +{ + u8 matrixNum, sinIndex, var; + s16 sinVal = 0; + struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data; + + if (data->unk0_0a) + { + if (data->unk1-- % 256 == 0) + { + data->unk0_0a = 0; + data->unk1 = 0; + } + } + else + { + switch (data->unk2 >> 6) + { + case 0: + if (data->unk0_1 == 1) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_1 == 3) + { + data->unk0_0b ^= 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = 1; + sprite->animEnded = 0; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + sprite->oam.priority--; + else + sprite->oam.priority++; + } + else + { + if (!data->unkE_0) + sprite->subpriority -= 12; + else + sprite->subpriority += 12; + } + data->unkE_0 ^= 1; + } + data->unk0_0d = 0; + } + data->unk0_1 = 0; + break; + case 1: + if (data->unk0_1 == 0) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_1 == 2) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = 1; + sprite->animEnded = 0; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + sprite->oam.priority--; + else + sprite->oam.priority++; + } + else + { + if (!data->unkE_0) + sprite->subpriority -= 12; + else + sprite->subpriority += 12; + } + data->unkE_0 ^= 1; + } + data->unk0_0d = 0; + } + data->unk0_1 = 1; + break; + case 2: + if (data->unk0_1 == 0) + { + data->unk0_0d = 1; + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_1 == 2) + { + data->unk0_0a = 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = 1; + sprite->animEnded = 0; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + sprite->oam.priority--; + else + sprite->oam.priority++; + } + else + { + if (!data->unkE_0) + sprite->subpriority -= 12; + else + sprite->subpriority += 12; + } + data->unkE_0 ^= 1; + } + data->unk0_0d = 0; + } + data->unk0_1 = 2; + break; + case 3: + if (data->unk0_1 == 2) + { + data->unk0_0d = 1; + } + else if (data->unk0_1 == 0) + { + data->unk0_0b ^= 1; + data->unk1 = 0; + } + else if (data->unk0_0d) + { + sprite->hFlip ^= 1; + sprite->animNum = sprite->hFlip; + sprite->animBeginning = 1; + sprite->animEnded = 0; + if (data->unk0_0c) + { + if (!IsContest()) + { + if (!data->unkE_0) + sprite->oam.priority--; + else + sprite->oam.priority++; + } + else + { + if (!data->unkE_0) + sprite->subpriority -= 12; + else + sprite->subpriority += 12; + } + data->unkE_0 ^= 1; + } + data->unk0_0d = 0; + } + data->unk0_1 = 3; + break; + } + + var = data->unkC[data->unk0_0b]; + sprite->pos2.x = (gSineTable[data->unk2] * var) >> 8; + matrixNum = sprite->oam.matrixNum; + + sinIndex = (-sprite->pos2.x >> 1) + data->unkA; + sinVal = gSineTable[sinIndex]; + + gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64]; + gOamMatrices[matrixNum].b = sinVal; + gOamMatrices[matrixNum].c = -sinVal; + + data->unk8 += data->unk6; + sprite->pos1.y = data->unk8 >> 8; + if (data->unk4 & 0x8000) + data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF; + else + data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF; + + if (sprite->pos1.y + sprite->pos2.y > data->unkE_1) + { + sprite->data[0] = 0; + sprite->callback = sub_810E2C8; + } + } +} +#else NAKED void sub_810E520(struct Sprite *sprite) { @@ -1345,6 +1566,7 @@ _0810EA36:\n\ .pool\n\ "); } +#endif void sub_810EA4C(struct Sprite *sprite) { @@ -1363,7 +1585,7 @@ void sub_810EAA0(struct Sprite * sprite) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); - + if ((!gBattleAnimArgs[2] && !GetBattlerSide(gBattleAnimAttacker)) || (gBattleAnimArgs[2] == 1 && !GetBattlerSide(gBattleAnimTarget))) { @@ -1424,14 +1646,15 @@ void sub_810EC34(struct Sprite *sprite) { switch (sprite->data[0]) { - case 0: - InitSpritePosToAnimAttacker(sprite, 1); - gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; - ++sprite->data[0]; - break; - case 1: - if (sprite->affineAnimEnded) - DestroyAnimSprite(sprite); + case 0: + InitSpritePosToAnimAttacker(sprite, 1); + gSprites[GetAnimBattlerSpriteId(0)].invisible = 1; + ++sprite->data[0]; + break; + case 1: + if (sprite->affineAnimEnded) + DestroyAnimSprite(sprite); + break; } } @@ -1439,23 +1662,24 @@ void sub_810EC94(struct Sprite *sprite) { switch (sprite->data[0]) { - case 0: - sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); - sprite->pos2.y = -sprite->pos1.y - 32; - sprite->data[0]++; - break; - case 1: - sprite->pos2.y += 10; - if (sprite->pos2.y >= 0) - ++sprite->data[0]; - break; - case 2: - sprite->pos2.y -= 10; - if (sprite->pos1.y + sprite->pos2.y < -32) - { - gSprites[GetAnimBattlerSpriteId(0)].invisible = 0; - DestroyAnimSprite(sprite); - } + case 0: + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->pos2.y = -sprite->pos1.y - 32; + sprite->data[0]++; + break; + case 1: + sprite->pos2.y += 10; + if (sprite->pos2.y >= 0) + ++sprite->data[0]; + break; + case 2: + sprite->pos2.y -= 10; + if (sprite->pos1.y + sprite->pos2.y < -32) + { + gSprites[GetAnimBattlerSpriteId(0)].invisible = 0; + DestroyAnimSprite(sprite); + } + break; } } @@ -1471,7 +1695,9 @@ void sub_810ED28(struct Sprite *sprite) void sub_810ED70(struct Sprite *sprite) { if (sprite->data[0] > 0) + { sprite->data[0]--; + } else if (sprite->pos1.y + sprite->pos2.y > -32) { sprite->data[2] += sprite->data[1]; @@ -1503,7 +1729,7 @@ void sub_810EE14(struct Sprite *sprite) u32 matrixNum; int t1, t2; - + switch (sprite->data[0]) { case 0: @@ -1528,7 +1754,7 @@ void sub_810EE14(struct Sprite *sprite) sprite->data[1] -= 40; else sprite->data[1] += 40; - + sprite->data[2]++; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); @@ -1540,7 +1766,7 @@ void sub_810EE14(struct Sprite *sprite) if (t2 > 128) t2 = 128; - + /* NONMATCHING * compiles to: @@ -1684,22 +1910,18 @@ void sub_810EEF8(struct Sprite *sprite) if (v1 % 2) sprite->data[0] = 736 + v1; - else sprite->data[0] = 736 - v1; - if (v2 % 2) sprite->data[1] = 896 + v2; - else sprite->data[1] = 896 - v2; - + sprite->data[2] = gBattleAnimArgs[0]; if (sprite->data[2]) sprite->oam.matrixNum = 8; - if (gBattleAnimArgs[1] == 0) { @@ -1733,7 +1955,6 @@ void sub_810EFA8(struct Sprite *sprite) if (sprite->data[0] < 0) sprite->data[0] = 0; - if (++sprite->data[3] == 31) DestroyAnimSprite(sprite); @@ -1750,27 +1971,26 @@ void sub_810F018(struct Sprite *sprite) { switch (sprite->data[0]) { - case 0: - if (++sprite->data[1] > 8) - { - sprite->data[1] = 0; - sprite->invisible ^= 1; - if (++sprite->data[2] > 5 && sprite->invisible) - sprite->data[0]++; - } - break; - case 1: - DestroyAnimSprite(sprite); + case 0: + if (++sprite->data[1] > 8) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] > 5 && sprite->invisible) + sprite->data[0]++; + } + break; + case 1: + DestroyAnimSprite(sprite); + break; } } void sub_810F084(struct Sprite *sprite) { - s16 posx, posy; u16 rotation; - - posx = sprite->pos1.x; - posy = sprite->pos1.y; + s16 posx = sprite->pos1.x; + s16 posy = sprite->pos1.y; sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); @@ -1797,7 +2017,8 @@ void sub_810F140(struct Sprite *sprite) sprite->pos1.x = sprite->data[4] >> 4; sprite->pos1.y = sprite->data[5] >> 4; - if ((u16) (sprite->pos1.x + 0x2d) > 0x14a || sprite->pos1.y > 0x9d || sprite->pos1.y < -0x2d) + if (sprite->pos1.x > 285 || sprite->pos1.x < -45 + || sprite->pos1.y > 157 || sprite->pos1.y < -45) DestroySpriteAndMatrix(sprite); } -- cgit v1.2.3 From 9bea9e1624a30980aa194b076f0324b77c76edc9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 06:06:20 -0500 Subject: Start decompiling menu_unknown --- src/menu_unknown.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/party_menu.c | 3 +- src/player_pc.c | 2 +- 3 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 src/menu_unknown.c (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c new file mode 100644 index 000000000..21f42d264 --- /dev/null +++ b/src/menu_unknown.c @@ -0,0 +1,186 @@ +#include "global.h" +#include "alloc.h" +#include "international_string_util.h" +#include "menu.h" +#include "menu_unknown.h" +#include "player_pc.h" +#include "sound.h" +#include "strings.h" +#include "string_util.h" +#include "window.h" +#include "constants/songs.h" + +#define WINDOW_UNK_0 0 +#define WINDOW_UNK_1 1 +#define WINDOW_UNK_2 2 + +extern struct ListMenuItem *gUnknown_0203CF4C; +extern u8 gUnknown_0203CF48[3]; + +void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); + +const struct WindowTemplate gUnknown_086253E8[] = +{ + [WINDOW_UNK_0] = { + //0x08010100, + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 8, + //0x00080F02, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x8 + }, + [WINDOW_UNK_1] = { + //0x08 01 15 00, + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + //0x0018 0F 12, + .height = 18, + .paletteNum = 0xF, + .baseBlock = 0x18 + }, + [WINDOW_UNK_2] = { + //0x0B 01 01 00 + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 11, + //0x0018 0F 08 + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x18 + } +}; + +const u8 gUnknown_08625400[] = { + 1, 2, 3 +}; + +static const u8 sEmptyItemName[] = _(""); + +bool8 sub_81D1C44(u8 count) +{ + u32 i; + struct ListMenuItem **v1; + v1 = &gUnknown_0203CF4C; + *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); + + if (gUnknown_0203CF4C == NULL) + return FALSE; + + for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1)) + { + gUnknown_0203CF48[i] |= 0xFF; + } + + return TRUE; +} + +u8 sub_81D1C84(u8 a0) +{ + struct WindowTemplate template; + + u8 windowId = gUnknown_0203CF48[a0]; + if (windowId == 0xFF) + { + if (a0 == WINDOW_UNK_2) + { + u32 v1; + u32 v2; + s32 v3; + + template = gUnknown_086253E8[WINDOW_UNK_2]; + v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); + template.width = v3; + gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + } + else + { + gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]); + } + SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0); + } + return gUnknown_0203CF48[a0]; +} + +void sub_81D1D04(u8 a0) +{ + sub_8198070(gUnknown_0203CF48[a0], 0); + ClearWindowTilemap(gUnknown_0203CF48[a0]); + RemoveWindow(gUnknown_0203CF48[a0]); + gUnknown_0203CF48[a0] = 0xFF; +} + +u8 sub_81D1D34(u8 a0) +{ + return gUnknown_0203CF48[a0]; +} + +void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +{ + u8 buffer[30]; + u16 length; + + if (itemId == LIST_CANCEL) + return; + + StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); + sub_81DB52C(buffer); + length = StringLength(buffer); + if (length <= 5) + ConvertInternationalString(buffer, LANGUAGE_JAPANESE); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer); +} + +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) +{ + u16 i; + for (i = 0; i < page->count; i++) + { + gUnknown_0203CF4C[i].name = sEmptyItemName; + gUnknown_0203CF4C[i].id = i; + } + + gUnknown_0203CF4C[i].name = gText_Cancel2; + gUnknown_0203CF4C[i].id = LIST_CANCEL; + + gMultiuseListMenuTemplate.items = gUnknown_0203CF4C; + gMultiuseListMenuTemplate.totalItems = page->count + 1; + gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 8; + gMultiuseListMenuTemplate.cursor_X = 0; + gMultiuseListMenuTemplate.maxShowed = 8; + gMultiuseListMenuTemplate.upText_Y = 9; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 1; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; + gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; + gMultiuseListMenuTemplate.fontId = 1; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 0; + gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; + return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); +} + +void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); +} + +void sub_81D1E90(struct PlayerPCItemPageStruct *page) +{ + page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); +} + +void sub_81D1EC0(void) +{ + Free(gUnknown_0203CF4C); +} \ No newline at end of file diff --git a/src/party_menu.c b/src/party_menu.c index 7e47e9ced..7e47cbf80 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -37,15 +37,16 @@ #include "main.h" #include "menu.h" #include "menu_helpers.h" +#include "menu_unknown.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" #include "party_menu.h" +#include "player_pc.h" #include "pokemon.h" #include "pokemon_icon.h" #include "pokemon_storage_system.h" #include "pokemon_summary_screen.h" -#include "pokenav.h" #include "region_map.h" #include "reshow_battle_screen.h" #include "rom_8011DC0.h" diff --git a/src/player_pc.c b/src/player_pc.c index bec763b41..f167062cb 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -20,7 +20,6 @@ #include "overworld.h" #include "palette.h" #include "party_menu.h" -#include "pokenav.h" #include "player_pc.h" #include "script.h" #include "sound.h" @@ -29,6 +28,7 @@ #include "strings.h" #include "task.h" #include "window.h" +#include "menu_unknown.h" // structures struct Struct203BCC4 -- cgit v1.2.3 From b150091436a97178675f40bfccf737a08f215ad8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 5 Mar 2019 17:06:29 +0100 Subject: Rename an erroneously named battlescript --- src/battle_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/battle_util.c b/src/battle_util.c index fc6042b65..aa88cf952 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1526,7 +1526,7 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); + BattleScriptPush(BattleScript_MoveUsedIsInLoveCantAttack); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gProtectStructs[gBattlerAttacker].loveImmobility = 1; CancelMultiTurnMoves(gBattlerAttacker); -- cgit v1.2.3 From 596d85bcbd13c11ad71307e79e641035811941db Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 5 Mar 2019 17:07:37 +0100 Subject: What is love, baby dont hurt me --- src/flying.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/flying.c b/src/flying.c index b48538706..a157582e9 100644 --- a/src/flying.c +++ b/src/flying.c @@ -652,7 +652,7 @@ void sub_810E314(struct Sprite *sprite) sprite->callback = sub_810E520; } -#ifndef NONMATCHING +#ifdef NONMATCHING /* Things I can't get to match: 1. data->unk0_1 bitfield behaviour. The way bits are read is different. -- cgit v1.2.3 From e79b6f747b2095bf78336f4b6e6998d818ce8400 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 5 Mar 2019 20:07:59 +0100 Subject: Fix Controllers end command function names --- src/battle_controller_link_opponent.c | 9 ++++----- src/battle_controller_link_partner.c | 8 ++++---- src/battle_controller_opponent.c | 6 +++--- src/battle_controller_player.c | 6 +++--- src/battle_controller_player_partner.c | 6 +++--- src/battle_controller_recorded_opponent.c | 7 +++---- src/battle_controller_recorded_player.c | 6 +++--- src/battle_controller_safari.c | 6 +++--- src/battle_controller_wally.c | 6 +++--- 9 files changed, 29 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 05da72e16..28ab4c279 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -16,6 +16,7 @@ #include "palette.h" #include "pokeball.h" #include "pokemon.h" +#include "recorded_battle.h" #include "reshow_battle_screen.h" #include "sound.h" #include "string_util.h" @@ -32,8 +33,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void sub_81851A8(u8 *); -extern u16 sub_8068B48(void); // this file's functions static void LinkOpponentHandleGetMonData(void); @@ -92,7 +91,7 @@ static void LinkOpponentHandleBattleAnimation(void); static void LinkOpponentHandleLinkStandbyMsg(void); static void LinkOpponentHandleResetActionMoveSelection(void); static void LinkOpponentHandleCmd55(void); -static void nullsub_92(void); +static void LinkOpponentCmdEnd(void); static void LinkOpponentBufferRunCommand(void); static void LinkOpponentBufferExecCompleted(void); @@ -164,7 +163,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleLinkStandbyMsg, LinkOpponentHandleResetActionMoveSelection, LinkOpponentHandleCmd55, - nullsub_92 + LinkOpponentCmdEnd }; static void nullsub_28(void) @@ -1857,6 +1856,6 @@ static void LinkOpponentHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_92(void) +static void LinkOpponentCmdEnd(void) { } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 4eb122d05..06a8d4a6a 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -16,6 +16,7 @@ #include "palette.h" #include "pokeball.h" #include "pokemon.h" +#include "recorded_battle.h" #include "reshow_battle_screen.h" #include "sound.h" #include "string_util.h" @@ -31,7 +32,6 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern void sub_81851A8(u8 *); // this file's functions static void LinkPartnerHandleGetMonData(void); @@ -90,7 +90,7 @@ static void LinkPartnerHandleBattleAnimation(void); static void LinkPartnerHandleLinkStandbyMsg(void); static void LinkPartnerHandleResetActionMoveSelection(void); static void LinkPartnerHandleCmd55(void); -static void SpriteCB_Null3(void); +static void LinkPartnerCmdEnd(void); static void LinkPartnerBufferRunCommand(void); static void LinkPartnerBufferExecCompleted(void); @@ -161,7 +161,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandleLinkStandbyMsg, LinkPartnerHandleResetActionMoveSelection, LinkPartnerHandleCmd55, - SpriteCB_Null3 + LinkPartnerCmdEnd }; static void SpriteCB_Null2(void) @@ -1687,6 +1687,6 @@ static void LinkPartnerHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void SpriteCB_Null3(void) +static void LinkPartnerCmdEnd(void) { } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 99bb0c588..cdb886e5d 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -97,7 +97,7 @@ static void OpponentHandleBattleAnimation(void); static void OpponentHandleLinkStandbyMsg(void); static void OpponentHandleResetActionMoveSelection(void); static void OpponentHandleCmd55(void); -static void nullsub_91(void); +static void OpponentCmdEnd(void); static void OpponentBufferRunCommand(void); static void OpponentBufferExecCompleted(void); @@ -169,7 +169,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandleLinkStandbyMsg, OpponentHandleResetActionMoveSelection, OpponentHandleCmd55, - nullsub_91 + OpponentCmdEnd }; // unknown unused data @@ -2003,6 +2003,6 @@ static void OpponentHandleCmd55(void) OpponentBufferExecCompleted(); } -static void nullsub_91(void) +static void OpponentCmdEnd(void) { } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6bcc97c68..a0d92f23a 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -99,7 +99,7 @@ static void PlayerHandleBattleAnimation(void); static void PlayerHandleLinkStandbyMsg(void); static void PlayerHandleResetActionMoveSelection(void); static void PlayerHandleCmd55(void); -static void nullsub_22(void); +static void PlayerCmdEnd(void); static void PlayerBufferRunCommand(void); static void HandleInputChooseTarget(void); @@ -186,7 +186,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandleLinkStandbyMsg, PlayerHandleResetActionMoveSelection, PlayerHandleCmd55, - nullsub_22 + PlayerCmdEnd }; static const u8 sTargetIdentities[] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT}; @@ -3105,6 +3105,6 @@ static void PlayerHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_22(void) +static void PlayerCmdEnd(void) { } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index a9b0f376b..787a4f77c 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -90,7 +90,7 @@ static void PlayerPartnerHandleBattleAnimation(void); static void PlayerPartnerHandleLinkStandbyMsg(void); static void PlayerPartnerHandleResetActionMoveSelection(void); static void PlayerPartnerHandleCmd55(void); -static void nullsub_128(void); +static void PlayerPartnerCmdEnd(void); static void PlayerPartnerBufferRunCommand(void); static void PlayerPartnerBufferExecCompleted(void); @@ -167,7 +167,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandleLinkStandbyMsg, PlayerPartnerHandleResetActionMoveSelection, PlayerPartnerHandleCmd55, - nullsub_128 + PlayerPartnerCmdEnd }; // unknown unused data @@ -1928,6 +1928,6 @@ static void PlayerPartnerHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_128(void) +static void PlayerPartnerCmdEnd(void) { } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 25e59172d..79065c2e2 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -34,7 +34,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); -extern u16 sub_8068B48(void); // this file's functions static void RecordedOpponentHandleGetMonData(void); @@ -93,7 +92,7 @@ static void RecordedOpponentHandleBattleAnimation(void); static void RecordedOpponentHandleLinkStandbyMsg(void); static void RecordedOpponentHandleResetActionMoveSelection(void); static void RecordedOpponentHandleCmd55(void); -static void SpriteCB_Null9(void); +static void RecordedOpponentCmdEnd(void); static void RecordedOpponentBufferRunCommand(void); static void RecordedOpponentBufferExecCompleted(void); @@ -165,7 +164,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandleLinkStandbyMsg, RecordedOpponentHandleResetActionMoveSelection, RecordedOpponentHandleCmd55, - SpriteCB_Null9 + RecordedOpponentCmdEnd }; static void nullsub_70(void) @@ -1791,6 +1790,6 @@ static void RecordedOpponentHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void SpriteCB_Null9(void) +static void RecordedOpponentCmdEnd(void) { } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index b2dfca6a0..e5e934761 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -89,7 +89,7 @@ static void RecordedPlayerHandleBattleAnimation(void); static void RecordedPlayerHandleLinkStandbyMsg(void); static void RecordedPlayerHandleResetActionMoveSelection(void); static void RecordedPlayerHandleCmd55(void); -static void nullsub_121(void); +static void RecordedPlayerCmdEnd(void); static void RecordedPlayerBufferRunCommand(void); static void RecordedPlayerBufferExecCompleted(void); @@ -160,7 +160,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandleLinkStandbyMsg, RecordedPlayerHandleResetActionMoveSelection, RecordedPlayerHandleCmd55, - nullsub_121 + RecordedPlayerCmdEnd }; static void nullsub_120(void) @@ -1808,6 +1808,6 @@ static void RecordedPlayerHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void nullsub_121(void) +static void RecordedPlayerCmdEnd(void) { } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index b7223844f..247f00627 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -84,7 +84,7 @@ static void SafariHandleBattleAnimation(void); static void SafariHandleLinkStandbyMsg(void); static void SafariHandleResetActionMoveSelection(void); static void SafariHandleCmd55(void); -static void SpriteCB_Null5(void); +static void SafariCmdEnd(void); static void SafariBufferRunCommand(void); static void SafariBufferExecCompleted(void); @@ -148,7 +148,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandleLinkStandbyMsg, SafariHandleResetActionMoveSelection, SafariHandleCmd55, - SpriteCB_Null5 + SafariCmdEnd }; static void SpriteCB_Null4(void) @@ -688,6 +688,6 @@ static void SafariHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_81595E4; } -static void SpriteCB_Null5(void) +static void SafariCmdEnd(void) { } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index a196f8a44..7f4fe4761 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -92,7 +92,7 @@ static void WallyHandleBattleAnimation(void); static void WallyHandleLinkStandbyMsg(void); static void WallyHandleResetActionMoveSelection(void); static void WallyHandleCmd55(void); -static void SpriteCB_Null8(void); +static void WallyCmdEnd(void); static void WallyBufferRunCommand(void); static void WallyBufferExecCompleted(void); @@ -161,7 +161,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandleLinkStandbyMsg, WallyHandleResetActionMoveSelection, WallyHandleCmd55, - SpriteCB_Null8 + WallyCmdEnd }; static void SpriteCB_Null7(void) @@ -1559,6 +1559,6 @@ static void WallyHandleCmd55(void) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } -static void SpriteCB_Null8(void) +static void WallyCmdEnd(void) { } -- cgit v1.2.3 From c3594f982ddd0839aa7b97cb5a54087e198b0326 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 20:32:14 -0500 Subject: Decompiling pokeblock ui stuff --- src/menu_unknown.c | 35 +++++++++++++++++++++++++++++++++++ src/use_pokeblock.c | 18 ++++++++++-------- 2 files changed, 45 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 21f42d264..303bb7c82 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -183,4 +183,39 @@ void sub_81D1E90(struct PlayerPCItemPageStruct *page) void sub_81D1EC0(void) { Free(gUnknown_0203CF4C); +} + +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +{ + u8 j; + u8 i; + u8 v1; + for (j = 0; j < 5; j++) + { + for (i = 0; i < 10; i++) + { + // u16 + a0->unk64[i][j].unk0 = 0; + a0->unk64[i][j].unk2 = 0; + } + for (i = 0; i < 4; i++) + { + // u8 + a0->unk0[i][j] = 0; + + // u16 + a0->unk14[i][j].unk0 = 0x9B; + a0->unk14[i][j].unk2 = 0x5B; + } + + // u16 + a0->unk12C[j].unk0 = 0; + a0->unk12C[j].unk2 = 0; + } + + // u8 + a0->unk354 = 0; + + // u16 + a0->unk352 = 0; } \ No newline at end of file diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 762019ecd..8b4738608 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,6 +4,7 @@ #include "alloc.h" #include "palette.h" #include "pokenav.h" +#include "menu_unknown.h" #include "scanline_effect.h" #include "text.h" #include "bg.h" @@ -33,7 +34,8 @@ struct UsePokeblockSubStruct struct UsePokeblockStruct { u8 field_0[0x7C58]; - u8 field_7C58[0x378]; + //u8 field_7C58[0x378]; + struct UnknownStruct_81D1ED4 field_7C58; struct UsePokeblockSubStruct info; }; @@ -130,7 +132,7 @@ void sub_8166340(void) LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); - sub_81D2108(gUnknown_0203BCAC->field_7C58); + sub_81D2108(&gUnknown_0203BCAC->field_7C58); ScanlineEffect_InitHBlankDmaTransfer(); } @@ -146,7 +148,7 @@ void sub_8166380(void) { case 0: gUnknown_0203BCAC->field_0[0x7B10] = 0xFF; - sub_81D1ED4(gUnknown_0203BCAC->field_7C58); + sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 1: @@ -202,19 +204,19 @@ void sub_8166380(void) gUnknown_0203BC90->field_50++; break; case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); - sub_81D20AC(gUnknown_0203BCAC->field_7C58); + sub_81D2754(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); + sub_81D20AC(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 12: - if (!sub_81D20BC(gUnknown_0203BCAC->field_7C58)) + if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) { - sub_81D1F84(gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_7C58[0x14], &gUnknown_0203BCAC->field_7C58[0x14]); + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14, gUnknown_0203BCAC->field_7C58.unk14); gUnknown_0203BC90->field_50++; } break; case 13: - sub_81D2230(gUnknown_0203BCAC->field_7C58); + sub_81D2230(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; case 14: -- cgit v1.2.3 From 4345ba8e6cf145a646666b8d2be1a255873ed29a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 5 Mar 2019 22:32:28 -0500 Subject: More decompiled and cleanup --- src/menu_unknown.c | 264 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 222 insertions(+), 42 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 303bb7c82..243eb33ff 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -9,72 +9,76 @@ #include "string_util.h" #include "window.h" #include "constants/songs.h" +#include "scanline_effect.h" #define WINDOW_UNK_0 0 #define WINDOW_UNK_1 1 #define WINDOW_UNK_2 2 -extern struct ListMenuItem *gUnknown_0203CF4C; -extern u8 gUnknown_0203CF48[3]; +EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; +EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -const struct WindowTemplate gUnknown_086253E8[] = +static const struct WindowTemplate sUnknown_086253E8[] = { [WINDOW_UNK_0] = { - //0x08010100, .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 8, - //0x00080F02, .height = 2, .paletteNum = 0xF, .baseBlock = 0x8 }, [WINDOW_UNK_1] = { - //0x08 01 15 00, .bg = 0, .tilemapLeft = 21, .tilemapTop = 1, .width = 8, - //0x0018 0F 12, .height = 18, .paletteNum = 0xF, .baseBlock = 0x18 }, [WINDOW_UNK_2] = { - //0x0B 01 01 00 .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, .width = 11, - //0x0018 0F 08 .height = 8, .paletteNum = 0xF, .baseBlock = 0x18 } }; -const u8 gUnknown_08625400[] = { +static const u8 sUnknown_08625400[] = +{ 1, 2, 3 }; static const u8 sEmptyItemName[] = _(""); +static const struct ScanlineEffectParams sUnknown_08625404 = +{ + .dmaDest = (void*)REG_ADDR_WIN0H, + .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, + .initState = 1, + .unused9 = 0 +}; + bool8 sub_81D1C44(u8 count) { u32 i; struct ListMenuItem **v1; - v1 = &gUnknown_0203CF4C; + v1 = &sUnknown_0203CF4C; *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); - if (gUnknown_0203CF4C == NULL) + if (sUnknown_0203CF4C == NULL) return FALSE; - for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1)) + for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) { - gUnknown_0203CF48[i] |= 0xFF; + sUnknown_0203CF48[i] |= 0xFF; } return TRUE; @@ -84,7 +88,7 @@ u8 sub_81D1C84(u8 a0) { struct WindowTemplate template; - u8 windowId = gUnknown_0203CF48[a0]; + u8 windowId = sUnknown_0203CF48[a0]; if (windowId == 0xFF) { if (a0 == WINDOW_UNK_2) @@ -93,31 +97,31 @@ u8 sub_81D1C84(u8 a0) u32 v2; s32 v3; - template = gUnknown_086253E8[WINDOW_UNK_2]; + template = sUnknown_086253E8[WINDOW_UNK_2]; v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); template.width = v3; - gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + sUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); } else { - gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]); + sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); } - SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0); + SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); } - return gUnknown_0203CF48[a0]; + return sUnknown_0203CF48[a0]; } void sub_81D1D04(u8 a0) { - sub_8198070(gUnknown_0203CF48[a0], 0); - ClearWindowTilemap(gUnknown_0203CF48[a0]); - RemoveWindow(gUnknown_0203CF48[a0]); - gUnknown_0203CF48[a0] = 0xFF; + sub_8198070(sUnknown_0203CF48[a0], 0); + ClearWindowTilemap(sUnknown_0203CF48[a0]); + RemoveWindow(sUnknown_0203CF48[a0]); + sUnknown_0203CF48[a0] = 0xFF; } u8 sub_81D1D34(u8 a0) { - return gUnknown_0203CF48[a0]; + return sUnknown_0203CF48[a0]; } void sub_81D1D44(u8 windowId, s32 itemId, u8 y) @@ -133,7 +137,7 @@ void sub_81D1D44(u8 windowId, s32 itemId, u8 y) length = StringLength(buffer); if (length <= 5) ConvertInternationalString(buffer, LANGUAGE_JAPANESE); - AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); } u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) @@ -141,16 +145,16 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) u16 i; for (i = 0; i < page->count; i++) { - gUnknown_0203CF4C[i].name = sEmptyItemName; - gUnknown_0203CF4C[i].id = i; + sUnknown_0203CF4C[i].name = sEmptyItemName; + sUnknown_0203CF4C[i].id = i; } - gUnknown_0203CF4C[i].name = gText_Cancel2; - gUnknown_0203CF4C[i].id = LIST_CANCEL; + sUnknown_0203CF4C[i].name = gText_Cancel2; + sUnknown_0203CF4C[i].id = LIST_CANCEL; - gMultiuseListMenuTemplate.items = gUnknown_0203CF4C; + gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; gMultiuseListMenuTemplate.totalItems = page->count + 1; - gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; gMultiuseListMenuTemplate.header_X = 0; gMultiuseListMenuTemplate.item_X = 8; gMultiuseListMenuTemplate.cursor_X = 0; @@ -182,40 +186,216 @@ void sub_81D1E90(struct PlayerPCItemPageStruct *page) void sub_81D1EC0(void) { - Free(gUnknown_0203CF4C); + Free(sUnknown_0203CF4C); } void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) { u8 j; u8 i; - u8 v1; for (j = 0; j < 5; j++) { for (i = 0; i < 10; i++) { - // u16 a0->unk64[i][j].unk0 = 0; a0->unk64[i][j].unk2 = 0; } for (i = 0; i < 4; i++) { - // u8 a0->unk0[i][j] = 0; - - // u16 a0->unk14[i][j].unk0 = 0x9B; a0->unk14[i][j].unk2 = 0x5B; } - // u16 a0->unk12C[j].unk0 = 0; a0->unk12C[j].unk2 = 0; } - // u8 a0->unk354 = 0; - - // u16 a0->unk352 = 0; +} + +NAKED +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) +{ + /* + u16 j; + u16 i; + s16 v1; + s16 v2; + for (j = 0; j < 5; j++) + { + v1 = arg1[0][j].unk0; + v2 = (arg2[0][j].unk0 - v1) / 10; + + for (i = 0; i < 9; i++) + { + arg0->unk64[i][j].unk0 = v1 + ((v1 << 1) & 1); + } + + for (i = 0; i < 9; i++) + { + + } + } + */ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + mov r8, r0\n\ + str r1, [sp]\n\ + mov r9, r2\n\ + movs r7, 0\n\ +_081D1F98:\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r4, r1\n\ + ldrh r1, [r0]\n\ + lsls r5, r1, 8\n\ + mov r2, r9\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r10, r7\n\ + mov r12, r4\n\ +_081D1FBC:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + add r0, r12\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + movs r7, 0x1\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x64\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D1FBC\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r1, r9\n\ + adds r2, r4, r1\n\ + ldrh r1, [r2]\n\ + adds r0, 0x64\n\ + strh r1, [r0]\n\ + ldr r7, [sp]\n\ + adds r0, r4, r7\n\ + ldrh r1, [r0, 0x2]\n\ + lsls r5, r1, 8\n\ + ldrh r0, [r2, 0x2]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + str r4, [sp, 0x4]\n\ + movs r0, 0x1\n\ + mov r12, r0\n\ +_081D2012:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r0\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + mov r7, r12\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x66\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D2012\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r2, r9\n\ + adds r1, r4, r2\n\ + ldrh r1, [r1, 0x2]\n\ + adds r0, 0x66\n\ + strh r1, [r0]\n\ + mov r7, r10\n\ + lsls r0, r7, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x4\n\ + bls _081D1F98\n\ + ldr r1, =0x00000352\n\ + add r1, r8\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +{ + if (a0->unk352 < 10) + { + sub_81D2230(a0); + return ++a0->unk352 != 10; + } + else + { + return FALSE; + } + +} + +void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +{ + a0->unk355 = 0; +} + +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +{ + struct ScanlineEffectParams params; + switch (arg0->unk355) + { + case 0: + ScanlineEffect_Clear(); + arg0->unk355++; + return TRUE; + case 1: + params = sUnknown_08625404; + ScanlineEffect_SetParams(params); + arg0->unk355++; + return FALSE; + default: + return FALSE; + } } \ No newline at end of file -- cgit v1.2.3 From 0da83abad297cdc2d07e89aa30dbf86ab6360ac9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 6 Mar 2019 22:27:30 -0500 Subject: Several nonmatching functions Huge and difficult. --- src/menu_unknown.c | 1103 ++++++++++++++++++++++++++++++++++++++++++++++++++- src/use_pokeblock.c | 3 +- 2 files changed, 1103 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 243eb33ff..dc8351d92 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -1,15 +1,18 @@ #include "global.h" #include "alloc.h" +#include "gpu_regs.h" #include "international_string_util.h" #include "menu.h" #include "menu_unknown.h" #include "player_pc.h" +#include "scanline_effect.h" #include "sound.h" #include "strings.h" #include "string_util.h" +#include "trig.h" #include "window.h" #include "constants/songs.h" -#include "scanline_effect.h" +#include "gba/io_reg.h" #define WINDOW_UNK_0 0 #define WINDOW_UNK_1 1 @@ -19,6 +22,8 @@ EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -66,6 +71,44 @@ static const struct ScanlineEffectParams sUnknown_08625404 = .unused9 = 0 }; + +const u8 gUnknown_08625410[] = +{ + 4, + 5, + 6, + 7, + 8, + 9, 9, + 10, 10, + 0xB, 0xB, + 0xC, 0xC, + 0xD, 0xD, + 0xD, 0xD, + 0xE, 0xE, 0xE, 0xE, + 0xF, 0xF, 0xF, 0xF, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, + 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, + 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23 +}; + bool8 sub_81D1C44(u8 count) { u32 i; @@ -398,4 +441,1062 @@ bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) default: return FALSE; } +} + +NAKED +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +{ + // Three of the additions are in the wrong order. +#ifdef NONMATCHING + u16 i; + u32 v3; + u32 v4; + u16 *scanBuffer1; + u16 *scanBuffer2; + u32 scanBufferWidth; + u32 mask; + u16 *unkBuff1; + u16 *unkBuff2; + u16 *unkBuff3; + u16 *unkBuff4; + + if (arg0->unk354 == 0) + return; + + sub_81D24A4(arg0); + sub_81D2634(arg0); + + i = 0; + scanBuffer1 = gScanlineEffectRegBuffers[0]; + scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); + scanBuffer2 = scanBuffer1 + scanBufferWidth; + + // This function accesses the arrays "manually", where every other entry + // is just handled differently, rather than a pairwise struct. + unkBuff1 = (u16*)&arg0->unk13C[0].unk0; + mask = 0xFFFF; + unkBuff2 = (u16*)&arg0->unk13C[0].unk2; + unkBuff3 = (u16*)&arg0->unk248[0].unk0; + unkBuff4 = (u16*)&arg0->unk248[0].unk2; + + for (; i < 0x42; i++) + { + u32 offset1; + register u32 offset2 asm("r2"); + u32 offset3; + + offset1 = (i + 0x37) * 2; + offset2 = i + 0x37; + scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; + + offset3 = offset2 * 2 + 1; + scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; + } + + arg0->unk354 = 0; +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r6, r0, 0\n\ + movs r1, 0xD5\n\ + lsls r1, 2\n\ + adds r0, r6, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D21BE\n\ + adds r0, r6, 0\n\ + bl sub_81D24A4\n\ + adds r0, r6, 0\n\ + bl sub_81D2634\n\ + movs r7, 0\n\ + ldr r5, =gScanlineEffectRegBuffers\n\ + mov r12, r5\n\ + movs r0, 0xF0\n\ + lsls r0, 3\n\ + add r0, r12\n\ + mov r9, r0\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r1, r6, r1\n\ + str r1, [sp]\n\ + ldr r5, =0x0000ffff\n\ + mov r8, r5\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + str r0, [sp, 0x4]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + str r1, [sp, 0x8]\n\ + ldr r5, =0x0000024a\n\ + adds r5, r6\n\ + mov r10, r5\n\ +_081D215E:\n\ + adds r2, r7, 0\n\ + adds r2, 0x37\n\ + lsls r3, r2, 2\n\ + mov r0, r9\n\ + adds r0, r3, r0\n\ + str r0, [sp, 0xC]\n\ + add r3, r12\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + ldr r5, [sp, 0x4]\n\ + adds r1, r5, r4\n\ + ldrh r1, [r1]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r5, [sp, 0xC]\n\ + strh r0, [r5]\n\ + lsls r2, 1\n\ + adds r2, 0x1\n\ + lsls r2, 1\n\ + mov r0, r9\n\ + adds r3, r2, r0\n\ + add r2, r12\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + add r4, r10\n\ + ldrh r1, [r4]\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + strh r0, [r3]\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x41\n\ + bls _081D215E\n\ + movs r0, 0xD5\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + movs r0, 0\n\ + strb r0, [r1]\n\ +_081D21BE:\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void sub_81D21DC(u8 bg) +{ + u8 flags; + + if (bg > 3) + bg = 0; + + // Unset the WINOUT flag for the bg. + flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); + + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, flags); +} + +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +{ + u16 i; + for (i = 0; i < 5; i++) + { + arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + } + arg0->unk354 = 1; +} + +NAKED +void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +{ +#ifdef NONMATCHING + // a0 => sp0 + // a1 => r6 + // a2 => r5 + // a3 => sp4 + // a38 => r9 + // a3C => r7 + u32 v1; // r10 + u32 v2; // sp8 + u32 v3; // spC + u32 v4; + u32 v5; + u16 v6; // r8 + u32 v7; + u32 v8; // sp10 + + v3 = 0; + + // v4 => r4 + // v5 => r0 + // v7 => r1 + if (a2[1] < a3[1]) + { + v1 = a2[1]; + v5 = a3[1]; + v7 = a2[0]; + v4 = v7 << 10; + v2 = a3[0]; + } + else + { + v5 = a2[1]; + v1 = a3[1]; + v7 = a3[0]; + v4 = v7 << 10; + v2 = a2[0]; + } + + v6 = v5 - v1; + if (v6 != 0) + { + v3 = (v2 - v7) / v6; + } + v6++; + + if (a3C == 0) + { + v8 = + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + str r0, [sp]\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + str r3, [sp, 0x4]\n\ + ldr r0, [sp, 0x38]\n\ + ldr r7, [sp, 0x3C]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r3, 0x2]\n\ + cmp r0, r1\n\ + bcs _081D22B2\n\ + adds r2, r0, 0\n\ + mov r10, r2\n\ + ldrh r0, [r3, 0x2]\n\ + ldrh r1, [r5]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r3]\n\ + str r3, [sp, 0x8]\n\ + b _081D22C6\n\ +_081D22B2:\n\ + ldrh r0, [r5, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r1, [r1, 0x2]\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r1, [r2]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r5]\n\ + str r3, [sp, 0x8]\n\ + mov r2, r10\n\ +_081D22C6:\n\ + subs r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r0, 0\n\ + beq _081D22DE\n\ + subs r0, r3, r1\n\ + lsls r0, 10\n\ + mov r1, r8\n\ + bl __divsi3\n\ + str r0, [sp, 0xC]\n\ +_081D22DE:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r7, 0\n\ + bne _081D2328\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r7, r8\n\ + bcs _081D23B6\n\ + movs r7, 0x1\n\ +_081D2308:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r1, [sp, 0xC]\n\ + adds r4, r1\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2308\n\ + b _081D23B6\n\ +_081D2328:\n\ + ldr r2, [sp, 0xC]\n\ + cmp r2, 0\n\ + ble _081D23C0\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D237A\n\ + mov r1, r12\n\ + str r1, [sp, 0x14]\n\ +_081D2352:\n\ + ldr r3, [sp, 0x14]\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r3, 0x1\n\ + ands r0, r3\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r1, =0x00026bff\n\ + cmp r4, r1\n\ + ble _081D2352\n\ +_081D237A:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + cmp r5, r8\n\ + bcs _081D23B6\n\ + mov r3, r12\n\ + movs r7, 0x1\n\ +_081D2398:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2398\n\ +_081D23B6:\n\ + subs r0, r6, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D23C0:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + bge _081D2464\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r2, r9\n\ + lsls r2, 1\n\ + mov r12, r2\n\ + ldr r3, [sp, 0x8]\n\ + add r3, r9\n\ + str r3, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + adds r3, r2, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r3]\n\ + b _081D2414\n\ +_081D23F2:\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + mov r1, r12\n\ + adds r3, r1, r6\n\ + asrs r2, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + adds r2, r0\n\ + add r2, r9\n\ + strh r2, [r3]\n\ +_081D2414:\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D23F2\n\ + movs r0, 0x9B\n\ + strh r0, [r3]\n\ +_081D241E:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + cmp r5, r8\n\ + bcs _081D245A\n\ + mov r3, r12\n\ + movs r6, 0x1\n\ +_081D243C:\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r6\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D243C\n\ +_081D245A:\n\ + subs r0, r7, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D2464:\n\ + ldr r1, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + mov r3, r10\n\ + strh r3, [r0]\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + adds r7, r0\n\ + ldrh r0, [r5]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + movs r0, 0x9B\n\ + strh r0, [r7, 0x2]\n\ + b _081D2494\n\ +_081D248C:\n\ + add r0, r12\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0x10]\n\ + strh r2, [r0]\n\ +_081D2494:\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +#endif +} + +NAKED +void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x99\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r3, [r1]\n\ + cmp r0, r3\n\ + bcs _081D24E0\n\ + adds r7, r0, 0\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r1, r4, r0\n\ + movs r3, 0x96\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + subs r0, 0x10\n\ + adds r3, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2500\n\ +_081D24E0:\n\ + ldrh r7, [r1]\n\ + movs r2, 0xA0\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x96\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2500:\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x9A\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r3, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0\n\ + movs r1, 0x9B\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + movs r3, 0x9D\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bhi _081D253C\n\ + movs r2, 0x1\n\ +_081D253C:\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + str r2, [sp]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r0, r4, r1\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0x38\n\ + cmp r2, r7\n\ + bcs _081D257E\n\ + adds r6, r5, 0\n\ + movs r3, 0\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r5, r4, r0\n\ +_081D2566:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, r7\n\ + bcc _081D2566\n\ +_081D257E:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r1, [r0]\n\ + cmp r2, r1\n\ + bhi _081D25B2\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r3, r4, r1\n\ + movs r5, 0x9B\n\ + adds r1, r0, 0\n\ +_081D259C:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r0, r3, r0\n\ + strh r5, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + bls _081D259C\n\ +_081D25B2:\n\ + movs r2, 0x9B\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bcs _081D25C8\n\ + adds r0, r1, 0\n\ +_081D25C8:\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bhi _081D25F8\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r3, 0\n\ + movs r1, 0xA1\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ +_081D25E0:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D25E0\n\ +_081D25F8:\n\ + movs r2, 0x38\n\ + movs r3, 0xA0\n\ + lsls r3, 1\n\ + adds r5, r4, r3\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r4, r0\n\ + movs r6, 0x9B\n\ +_081D2608:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r1, r0, 2\n\ + adds r3, r5, r1\n\ + ldrh r0, [r3]\n\ + cmp r0, 0\n\ + bne _081D2620\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D2620\n\ + strh r6, [r3]\n\ +_081D2620:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D2608\n\ + add sp, 0x8\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x9F\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r5, [r1]\n\ + cmp r0, r5\n\ + bcs _081D266E\n\ + adds r6, r0, 0\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + subs r3, 0x12\n\ + adds r2, r4, r3\n\ + movs r5, 0x9E\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2690\n\ +_081D266E:\n\ + ldrh r6, [r1]\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + movs r3, 0x9E\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r5, 0x96\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2690:\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r5, r4, r0\n\ + movs r1, 0x9E\n\ + lsls r1, 1\n\ + adds r2, r4, r1\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + bl sub_81D2278\n\ + cmp r6, 0x38\n\ + ble _081D26C8\n\ + movs r0, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + subs r2, 0x38\n\ +_081D26BC:\n\ + strh r0, [r1]\n\ + strh r0, [r1, 0x2]\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bne _081D26BC\n\ +_081D26C8:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r5, [r0]\n\ + cmp r2, r5\n\ + bgt _081D26F6\n\ + movs r3, 0x9B\n\ + adds r1, r0, 0\n\ + lsls r0, r2, 2\n\ + movs r5, 0xB5\n\ + lsls r5, 1\n\ + adds r0, r5\n\ + adds r0, r4\n\ +_081D26EA:\n\ + strh r3, [r0]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + ldrh r5, [r1]\n\ + cmp r2, r5\n\ + ble _081D26EA\n\ +_081D26F6:\n\ + movs r1, 0x9D\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + adds r1, r0, 0x1\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + cmp r0, r1\n\ + bge _081D270E\n\ + adds r0, r1, 0\n\ +_081D270E:\n\ + adds r2, r0, 0\n\ + cmp r2, 0x79\n\ + bgt _081D272C\n\ + movs r1, 0\n\ + lsls r0, r2, 2\n\ + movs r3, 0xB4\n\ + lsls r3, 1\n\ + adds r0, r3\n\ + adds r0, r4\n\ +_081D2720:\n\ + strh r1, [r0]\n\ + strh r1, [r0, 0x2]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + cmp r2, 0x79\n\ + ble _081D2720\n\ +_081D272C:\n\ + movs r3, 0\n\ + movs r5, 0x92\n\ + lsls r5, 2\n\ + adds r1, r4, r5\n\ + movs r2, 0x41\n\ +_081D2736:\n\ + ldrh r0, [r1]\n\ + ldrh r4, [r1, 0x2]\n\ + cmp r0, r4\n\ + bcc _081D2742\n\ + strh r3, [r1, 0x2]\n\ + strh r3, [r1]\n\ +_081D2742:\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bge _081D2736\n\ + add sp, 0x8\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +{ + // There are some register-renaming issues here. The cause of the problem seems to be that + // GCC tries to save gUnknown_08625410 in a register, instead of loading the constant repeatedly. + // But this is one too many things to keep track of, so GCC is forced to use the stack. +#ifdef NONMATCHING + u8* v1; + u8 v2; + u8 v3; + s8 v4; + u16 v5; + + v1 = arg0->unk0[0]; + v2 = gUnknown_08625410[*v1]; + v1++; + arg1[0].unk0 = 0x9B; + arg1[0].unk2 = 0x5B - v2; + for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) + { + v3 += 0x33; + v4--; + if (v4 < 0) + { + v4 = 4; + } + if (v4 == 2) + { + v3++; + } + + v2 = gUnknown_08625410[*v1]; + v1++; + arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; + arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; + if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) + { + arg1[v4].unk0 = arg1[v4].unk0 + 1; + } + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + adds r6, r0, 0\n\ + mov r8, r1\n\ + ldr r1, =gUnknown_08625410\n\ + ldrb r0, [r6]\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + movs r0, 0x9B\n\ + mov r3, r8\n\ + strh r0, [r3]\n\ + movs r0, 0x5B\n\ + subs r0, r2\n\ + strh r0, [r3, 0x2]\n\ + movs r7, 0x40\n\ + movs r0, 0\n\ + mov r12, r0\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + ldr r3, =gSineTable\n\ + mov r10, r3\n\ +_081D2786:\n\ + adds r0, r7, 0\n\ + adds r0, 0x33\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + movs r2, 0xFF\n\ + lsls r2, 24\n\ + adds r0, r2\n\ + lsrs r3, r0, 24\n\ + mov r12, r3\n\ + cmp r0, 0\n\ + bge _081D27A4\n\ + movs r0, 0x4\n\ + mov r12, r0\n\ +_081D27A4:\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + asrs r4, r0, 24\n\ + cmp r4, 0x2\n\ + bne _081D27B4\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ +_081D27B4:\n\ + ldrb r0, [r6]\n\ + ldr r2, =gUnknown_08625410\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + lsls r0, r4, 2\n\ + mov r1, r8\n\ + adds r3, r0, r1\n\ + adds r0, r7, 0\n\ + adds r0, 0x40\n\ + lsls r0, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + muls r0, r2\n\ + asrs r5, r0, 8\n\ + adds r0, r5, 0\n\ + adds r0, 0x9B\n\ + strh r0, [r3]\n\ + lsls r0, r7, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + adds r1, r2, 0\n\ + muls r1, r0\n\ + asrs r1, 8\n\ + movs r0, 0x5B\n\ + subs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + cmp r4, 0x2\n\ + bgt _081D2800\n\ + cmp r2, 0x20\n\ + bne _081D27FA\n\ + cmp r4, 0x2\n\ + beq _081D2800\n\ +_081D27FA:\n\ + adds r0, r5, 0\n\ + adds r0, 0x9C\n\ + strh r0, [r3]\n\ +_081D2800:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + cmp r0, 0x4\n\ + bls _081D2786\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif } \ No newline at end of file diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 8b4738608..75e8da3f8 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -34,7 +34,6 @@ struct UsePokeblockSubStruct struct UsePokeblockStruct { u8 field_0[0x7C58]; - //u8 field_7C58[0x378]; struct UnknownStruct_81D1ED4 field_7C58; struct UsePokeblockSubStruct info; }; @@ -204,7 +203,7 @@ void sub_8166380(void) gUnknown_0203BC90->field_50++; break; case 11: - sub_81D2754(&gUnknown_0203BCAC->field_7C58, &gUnknown_0203BCAC->field_0[0x7C6C]); + sub_81D2754(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0]); sub_81D20AC(&gUnknown_0203BCAC->field_7C58); gUnknown_0203BC90->field_50++; break; -- cgit v1.2.3 From aa7657a82a108321d5112f0ad195132e2c6e6c99 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 6 Mar 2019 22:58:05 -0500 Subject: Move constants into C Also figured out what one of the graphics files is for. --- src/menu_unknown.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 92 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index dc8351d92..9a8ea5906 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -24,6 +24,7 @@ EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -72,7 +73,7 @@ static const struct ScanlineEffectParams sUnknown_08625404 = }; -const u8 gUnknown_08625410[] = +static const u8 sUnknown_08625410[] = { 4, 5, @@ -109,6 +110,91 @@ const u8 gUnknown_08625410[] = 0x23 }; + +const struct WindowTemplate gMoveRelearnerWindowTemplates[] = +{ + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xA + }, + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xCA + }, + { + .bg = 1, + .tilemapLeft = 19, + .tilemapTop = 1, + .width = 10, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0x18A + }, + { + .bg = 1, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x202 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = +{ + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A +}; + + +const struct ListMenuTemplate gMoveRelearnerMovesListTemplate = +{ + .items = NULL, + .moveCursorFunc = MoveRelearnerCursorCallback, + .itemPrintFunc = NULL, + .totalItems = 0, + .maxShowed = 0, + .windowId = 2, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 1, + .cursorKind = 0 +}; + bool8 sub_81D1C44(u8 count) { u32 i; @@ -1353,7 +1439,7 @@ NAKED void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) { // There are some register-renaming issues here. The cause of the problem seems to be that - // GCC tries to save gUnknown_08625410 in a register, instead of loading the constant repeatedly. + // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. // But this is one too many things to keep track of, so GCC is forced to use the stack. #ifdef NONMATCHING u8* v1; @@ -1363,7 +1449,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D u16 v5; v1 = arg0->unk0[0]; - v2 = gUnknown_08625410[*v1]; + v2 = sUnknown_08625410[*v1]; v1++; arg1[0].unk0 = 0x9B; arg1[0].unk2 = 0x5B - v2; @@ -1380,7 +1466,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D v3++; } - v2 = gUnknown_08625410[*v1]; + v2 = sUnknown_08625410[*v1]; v1++; arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; @@ -1398,7 +1484,7 @@ void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D push {r5-r7}\n\ adds r6, r0, 0\n\ mov r8, r1\n\ - ldr r1, =gUnknown_08625410\n\ + ldr r1, =sUnknown_08625410\n\ ldrb r0, [r6]\n\ adds r0, r1\n\ ldrb r2, [r0]\n\ @@ -1443,7 +1529,7 @@ _081D27A4:\n\ lsrs r7, r0, 24\n\ _081D27B4:\n\ ldrb r0, [r6]\n\ - ldr r2, =gUnknown_08625410\n\ + ldr r2, =sUnknown_08625410\n\ adds r0, r2\n\ ldrb r2, [r0]\n\ adds r6, 0x1\n\ -- cgit v1.2.3 From 105e1721d665d8386afd47882020c51d6d97c522 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 3 Mar 2019 21:59:57 -0500 Subject: Overhaul scaninc to work recursively This also fixes the bug where scaninc would ignore #include lines in assembly files. --- src/field_message_box.c | 2 +- src/item_menu.c | 2 +- src/main_menu.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_message_box.c b/src/field_message_box.c index ac5e7a4bb..ca1c05e22 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,6 +1,6 @@ +#include #include "global.h" #include "menu.h" -#include "string.h" #include "string_util.h" #include "task.h" #include "text.h" diff --git a/src/item_menu.c b/src/item_menu.c index 5b9946e62..5d5dfe854 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1,3 +1,4 @@ +#include #include "global.h" #include "item_menu.h" #include "battle.h" @@ -40,7 +41,6 @@ #include "shop.h" #include "sound.h" #include "sprite.h" -#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" diff --git a/src/main_menu.c b/src/main_menu.c index e6e29d942..1879495f5 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,3 +1,4 @@ +#include #include "global.h" #include "trainer_pokemon_sprites.h" #include "bg.h" @@ -30,7 +31,6 @@ #include "scanline_effect.h" #include "sound.h" #include "sprite.h" -#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" -- cgit v1.2.3 From bd157b301dea3526a4c373737dc8167d9a02b168 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 7 Mar 2019 09:46:14 -0600 Subject: Scaninc: Don't insert missing headers into dependencies --- src/field_message_box.c | 2 +- src/item_menu.c | 2 +- src/main_menu.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_message_box.c b/src/field_message_box.c index ca1c05e22..ac5e7a4bb 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,6 +1,6 @@ -#include #include "global.h" #include "menu.h" +#include "string.h" #include "string_util.h" #include "task.h" #include "text.h" diff --git a/src/item_menu.c b/src/item_menu.c index 5d5dfe854..5b9946e62 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1,4 +1,3 @@ -#include #include "global.h" #include "item_menu.h" #include "battle.h" @@ -41,6 +40,7 @@ #include "shop.h" #include "sound.h" #include "sprite.h" +#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" diff --git a/src/main_menu.c b/src/main_menu.c index 1879495f5..e6e29d942 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,4 +1,3 @@ -#include #include "global.h" #include "trainer_pokemon_sprites.h" #include "bg.h" @@ -31,6 +30,7 @@ #include "scanline_effect.h" #include "sound.h" #include "sprite.h" +#include "string.h" #include "strings.h" #include "string_util.h" #include "task.h" -- cgit v1.2.3 From 69aec91577659cfe89a63fc4c8d2fc77ab344cbb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 01:56:38 -0500 Subject: Decompile move tutor stuff 2 nonmatching. --- src/menu_unknown.c | 531 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/move_relearner.c | 2 +- src/strings.c | 14 +- 3 files changed, 539 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 9a8ea5906..78b2cc8d5 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -1,14 +1,21 @@ #include "global.h" #include "alloc.h" +#include "battle_main.h" +#include "contest_effect.h" #include "gpu_regs.h" +#include "menu.h" #include "international_string_util.h" #include "menu.h" #include "menu_unknown.h" +#include "move_relearner.h" +#include "palette.h" #include "player_pc.h" +#include "pokemon_summary_screen.h" #include "scanline_effect.h" #include "sound.h" #include "strings.h" #include "string_util.h" +#include "text_window.h" #include "trig.h" #include "window.h" #include "constants/songs.h" @@ -25,6 +32,7 @@ void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +extern void nullsub_79(void); static const struct WindowTemplate sUnknown_086253E8[] = { @@ -1585,4 +1593,527 @@ _081D2800:\n\ .pool\n\ .syntax divided"); #endif +} + +void InitMoveRelearnerWindows(bool8 useContextWindow) +{ + u8 i; + + InitWindows(gMoveRelearnerWindowTemplates); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 1, 0xE0); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); + + for (i = 0; i < 5; i++) + { + FillWindowPixelBuffer(i, 0x11); + } + + if (!useContextWindow) + { + PutWindowTilemap(0); + SetWindowBorderStyle(0, 0, 0x1, 0xE); + } + else + { + PutWindowTilemap(1); + SetWindowBorderStyle(1, 0, 1, 0xE); + } + PutWindowTilemap(2); + PutWindowTilemap(3); + SetWindowBorderStyle(2, 0, 1, 0xE); + SetWindowBorderStyle(3, 0, 1, 0xE); + nullsub_79(); + schedule_bg_copy_tilemap_to_vram(1); +} + +void nullsub_79(void) +{ + +} + +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) +{ + gMultiuseListMenuTemplate = gMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate.totalItems = numChoices; + gMultiuseListMenuTemplate.items = items; + + if (numChoices < 6) + { + gMultiuseListMenuTemplate.maxShowed = numChoices; + } + else + { + gMultiuseListMenuTemplate.maxShowed = 6; + } + return gMultiuseListMenuTemplate.maxShowed; +} + +NAKED +void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +{ + // Two small issues, and a few renamed registers. +#ifdef NONMATCHING + u8 offset; + s32 width; + const struct BattleMove *move; + u8 buffer[0x20]; + const u8 *labelStr; + + FillWindowPixelBuffer(0, 0x11); + labelStr = gText_MoveRelearnerBattleMoves; + offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPP; + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPower; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAccuracy; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); + if (chosenMove == LIST_CANCEL) + { + CopyWindowToVram(0, 2); + return; + } + move = &gBattleMoves[chosenMove]; + labelStr = gTypeNames[move->type]; + // GCC tries to be smart, and preserves the same 0x19 from above for this. + // The original asm just loads the constant 0x19 twice. + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + // GCC tries to generate this as: + // add r4, r0, 0 + // add r4, r4, 4 + // But the original asm is: + // add r4, r0, 4 + width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); + + ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); + AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); + + + if (move->power < 2) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->power, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); + + if (move->accuracy == 0) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); + labelStr = gMoveDescriptionPointers[chosenMove - 1]; + AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r9, r0\n\ + movs r0, 0\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerBattleMoves\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + mov r8, r0\n\ + str r0, [sp, 0x4]\n\ + movs r7, 0\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPP\n\ + movs r1, 0x29\n\ + mov r10, r1\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPower\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r1, 0x19\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAccuracy\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r9, r0\n\ + bne _081D29C4\n\ + movs r0, 0\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2AB6\n\ + .pool\n\ +_081D29C4:\n\ + mov r1, r9\n\ + lsls r0, r1, 1\n\ + add r0, r9\n\ + lsls r0, 2\n\ + ldr r1, =gBattleMoves\n\ + adds r6, r0, r1\n\ + ldrb r1, [r6, 0x2]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + ldr r1, =gTypeNames\n\ + adds r5, r0, r1\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gText_MoveRelearnerPP\n\ + movs r0, 0x1\n\ + movs r2, 0\n\ + bl GetStringWidth\n\ + adds r4, r0, 0x4\n\ + ldrb r1, [r6, 0x4]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + add r2, sp, 0xC\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x1]\n\ + cmp r0, 0x1\n\ + bhi _081D2A3C\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A4A\n\ + .pool\n\ +_081D2A3C:\n\ + ldrb r1, [r6, 0x1]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A4A:\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x3]\n\ + cmp r0, 0\n\ + bne _081D2A70\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A7E\n\ + .pool\n\ +_081D2A70:\n\ + ldrb r1, [r6, 0x3]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A7E:\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r4, 0\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gMoveDescriptionPointers\n\ + mov r0, r9\n\ + subs r0, 0x1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ +_081D2AB6:\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +NAKED +void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +{ +#ifdef NONMATCHING + //u8 offset; + const u8 *labelStr; + const struct ContestMove *move; + u8 category; + const u8 **temp; + + MoveRelearnerShowHideHearts(chosenMove); + FillWindowPixelBuffer(1, 0x11); + labelStr = gText_MoveRelearnerContestMovesTitle; + // GCC compiles these as: + // add r3, r0, 0 + // lsls r3, r3, 24 + // lsrs r3, r3, 24 + // But in the original asm: + // lsls r3, r0, 24 + // lsrs r3, r3, 24 + //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAppeal; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerJam; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); + + if (chosenMove == MENU_NOTHING_CHOSEN) + { + CopyWindowToVram(1, 2); + return; + } + + move = &gContestMoves[chosenMove]; + temp = (const u8**)gContestMoveTypeTextPointers; + category = move->contestCategory; + labelStr = temp[category]; + AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gContestEffectDescriptionPointers[move->effect]; + AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); + + CopyWindowToVram(1, 2); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0xC\n\ + adds r4, r0, 0\n\ + bl MoveRelearnerShowHideHearts\n\ + movs r0, 0x1\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r7, 0xFF\n\ + str r7, [sp, 0x4]\n\ + movs r6, 0\n\ + str r6, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAppeal\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x19\n\ + mov r8, r0\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerJam\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + bne _081D2B6C\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2BB8\n\ + .pool\n\ +_081D2B6C:\n\ + lsls r4, 3\n\ + ldr r0, =gContestMoves\n\ + adds r4, r0\n\ + ldr r1, =gContestMoveTypeTextPointers\n\ + ldrb r0, [r4, 0x1]\n\ + lsls r0, 29\n\ + lsrs r0, 27\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + mov r0, r8\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gContestEffectDescriptionPointers\n\ + ldrb r0, [r4]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ +_081D2BB8:\n\ + add sp, 0xC\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); + MoveRelearnerLoadBattleMoveDescription(itemIndex); + MoveRelearnerMenuLoadContestMoveDescription(itemIndex); +} + +void MoveRelearnerPrintText(u8 *text) +{ + u8 speed; + + FillWindowPixelBuffer(3, 0x11); + gTextFlags.canABSpeedUpPrint = TRUE; + speed = GetPlayerTextSpeedDelay(); + AddTextPrinterParameterized2(3, 1, text, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); +} + +bool16 MoveRelearnerRunTextPrinters(void) +{ + RunTextPrinters(); + return IsTextPrinterActive(3); +} + +void MoveRelearnerCreateYesNoMenu(void) +{ + CreateYesNoMenu(&gMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); } \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 1766476cc..8576c5e68 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -12,10 +12,10 @@ #include "alloc.h" #include "menu.h" #include "menu_helpers.h" +#include "menu_unknown.h" #include "overworld.h" #include "palette.h" #include "pokemon_summary_screen.h" -#include "pokenav.h" #include "script.h" #include "sound.h" #include "sprite.h" diff --git a/src/strings.c b/src/strings.c index bed8f4b68..577d26f5c 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1751,14 +1751,14 @@ const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgo const u8 gUnknown_085EF9C8[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); const u8 gText_MoveRelearnerWhichMoveToForget[] = _("Which move should be\nforgotten?\p"); -const u8 gText_BattleMoves2[] = _("BATTLE MOVES"); -const u8 gText_ContestMoves2[] = _("CONTEST MOVES"); +const u8 gText_MoveRelearnerBattleMoves[] = _("BATTLE MOVES"); +const u8 gText_MoveRelearnerContestMovesTitle[] = _("CONTEST MOVES"); const u8 gUnknown_085EFA4C[] = _("TYPE/"); -const u8 gText_PPSlash[] = _("PP/"); -const u8 gText_PowerSlash[] = _("POWER/"); -const u8 gText_AccuracySlash[] = _("ACCURACY/"); -const u8 gText_Appeal2[] = _("APPEAL"); -const u8 gText_Jam2[] = _("JAM"); +const u8 gText_MoveRelearnerPP[] = _("PP/"); +const u8 gText_MoveRelearnerPower[] = _("POWER/"); +const u8 gText_MoveRelearnerAccuracy[] = _("ACCURACY/"); +const u8 gText_MoveRelearnerAppeal[] = _("APPEAL"); +const u8 gText_MoveRelearnerJam[] = _("JAM"); const u8 gText_Kira[] = _("KIRA"); const u8 gText_Amy[] = _("AMY"); const u8 gText_John[] = _("JOHN"); -- cgit v1.2.3 From af182d6f168afbb7c8c35fe9240ecf931099d06e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:10:44 -0500 Subject: Minor cleanup before pushing --- src/menu_unknown.c | 83 ++++++++++++++++++---------------------------------- src/move_relearner.c | 2 +- 2 files changed, 30 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/menu_unknown.c b/src/menu_unknown.c index 78b2cc8d5..21e19cacc 100644 --- a/src/menu_unknown.c +++ b/src/menu_unknown.c @@ -21,22 +21,18 @@ #include "constants/songs.h" #include "gba/io_reg.h" -#define WINDOW_UNK_0 0 -#define WINDOW_UNK_1 1 -#define WINDOW_UNK_2 2 - EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; -void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); -void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); -extern void nullsub_79(void); +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void nullsub_79(void); static const struct WindowTemplate sUnknown_086253E8[] = { - [WINDOW_UNK_0] = { + { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -45,7 +41,7 @@ static const struct WindowTemplate sUnknown_086253E8[] = .paletteNum = 0xF, .baseBlock = 0x8 }, - [WINDOW_UNK_1] = { + { .bg = 0, .tilemapLeft = 21, .tilemapTop = 1, @@ -54,7 +50,7 @@ static const struct WindowTemplate sUnknown_086253E8[] = .paletteNum = 0xF, .baseBlock = 0x18 }, - [WINDOW_UNK_2] = { + { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -119,7 +115,7 @@ static const u8 sUnknown_08625410[] = }; -const struct WindowTemplate gMoveRelearnerWindowTemplates[] = +static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = { { .bg = 1, @@ -169,7 +165,7 @@ const struct WindowTemplate gMoveRelearnerWindowTemplates[] = DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = { .bg = 0, .tilemapLeft = 22, @@ -181,7 +177,7 @@ const struct WindowTemplate gMoveRelearnerYesNoMenuTemplate = }; -const struct ListMenuTemplate gMoveRelearnerMovesListTemplate = +static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = { .items = NULL, .moveCursorFunc = MoveRelearnerCursorCallback, @@ -228,16 +224,16 @@ u8 sub_81D1C84(u8 a0) u8 windowId = sUnknown_0203CF48[a0]; if (windowId == 0xFF) { - if (a0 == WINDOW_UNK_2) + if (a0 == 2) { u32 v1; u32 v2; s32 v3; - template = sUnknown_086253E8[WINDOW_UNK_2]; + template = sUnknown_086253E8[2]; v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); template.width = v3; - sUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template); + sUnknown_0203CF48[2] = AddWindow(&template); } else { @@ -256,12 +252,12 @@ void sub_81D1D04(u8 a0) sUnknown_0203CF48[a0] = 0xFF; } -u8 sub_81D1D34(u8 a0) +static u8 sub_81D1D34(u8 a0) { return sUnknown_0203CF48[a0]; } -void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) { u8 buffer[30]; u16 length; @@ -310,7 +306,7 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); } -void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) PlaySE(SE_SELECT); @@ -355,27 +351,6 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) NAKED void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) { - /* - u16 j; - u16 i; - s16 v1; - s16 v2; - for (j = 0; j < 5; j++) - { - v1 = arg1[0][j].unk0; - v2 = (arg2[0][j].unk0 - v1) / 10; - - for (i = 0; i < 9; i++) - { - arg0->unk64[i][j].unk0 = v1 + ((v1 << 1) & 1); - } - - for (i = 0; i < 9; i++) - { - - } - } - */ asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -723,7 +698,7 @@ void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) } NAKED -void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) { #ifdef NONMATCHING // a0 => sp0 @@ -1072,7 +1047,7 @@ _081D2494:\n\ } NAKED -void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -1286,7 +1261,7 @@ _081D2620:\n\ } NAKED -void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) { asm(".syntax unified\n\ push {r4-r6,lr}\n\ @@ -1599,7 +1574,7 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) { u8 i; - InitWindows(gMoveRelearnerWindowTemplates); + InitWindows(sMoveRelearnerWindowTemplates); DeactivateAllTextPrinters(); LoadUserWindowBorderGfx(0, 1, 0xE0); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); @@ -1627,14 +1602,14 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) schedule_bg_copy_tilemap_to_vram(1); } -void nullsub_79(void) +static void nullsub_79(void) { } u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) { - gMultiuseListMenuTemplate = gMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; gMultiuseListMenuTemplate.totalItems = numChoices; gMultiuseListMenuTemplate.items = items; @@ -1650,7 +1625,7 @@ u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) } NAKED -void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) { // Two small issues, and a few renamed registers. #ifdef NONMATCHING @@ -1928,7 +1903,7 @@ _081D2AB6:\n\ } NAKED -void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) { #ifdef NONMATCHING //u8 offset; @@ -2089,7 +2064,7 @@ _081D2BB8:\n\ #endif } -void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (onInit != TRUE) PlaySE(SE_SELECT); @@ -2097,14 +2072,14 @@ void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *l MoveRelearnerMenuLoadContestMoveDescription(itemIndex); } -void MoveRelearnerPrintText(u8 *text) +void MoveRelearnerPrintText(u8 *str) { u8 speed; FillWindowPixelBuffer(3, 0x11); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, 1, text, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); + AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); } bool16 MoveRelearnerRunTextPrinters(void) @@ -2115,5 +2090,5 @@ bool16 MoveRelearnerRunTextPrinters(void) void MoveRelearnerCreateYesNoMenu(void) { - CreateYesNoMenu(&gMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); } \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 8576c5e68..7d5b51899 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -37,7 +37,7 @@ * - Creates moveDisplayArrowTask to listen to right/left buttons. * - Creates moveListScrollArrowTask to listen to up/down buttons. * - Whenever the selected move changes (and once on init), the MoveRelearnerCursorCallback - * is called (see gMoveRelearnerMovesListTemplate). That callback will reload the contest + * is called (see sMoveRelearnerMovesListTemplate). That callback will reload the contest * display and battle display windows for the new move. Both are always loaded in * memory, but only the currently active one is copied to VRAM. The exception to this * is the appeal and jam hearts, which are sprites. MoveRelearnerShowHideHearts is called -- cgit v1.2.3 From eac70acab65dea005da2299e4bb209aff1ded60f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:17:01 -0500 Subject: Change filename to something more descriptive --- src/menu_specialized.c | 2094 ++++++++++++++++++++++++++++++++++++++++++++++++ src/menu_unknown.c | 2094 ------------------------------------------------ src/move_relearner.c | 2 +- src/party_menu.c | 2 +- src/player_pc.c | 2 +- src/use_pokeblock.c | 2 +- 6 files changed, 2098 insertions(+), 2098 deletions(-) create mode 100644 src/menu_specialized.c delete mode 100644 src/menu_unknown.c (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c new file mode 100644 index 000000000..d9b2270f4 --- /dev/null +++ b/src/menu_specialized.c @@ -0,0 +1,2094 @@ +#include "global.h" +#include "alloc.h" +#include "battle_main.h" +#include "contest_effect.h" +#include "gpu_regs.h" +#include "menu.h" +#include "international_string_util.h" +#include "menu.h" +#include "menu_specialized.h" +#include "move_relearner.h" +#include "palette.h" +#include "player_pc.h" +#include "pokemon_summary_screen.h" +#include "scanline_effect.h" +#include "sound.h" +#include "strings.h" +#include "string_util.h" +#include "text_window.h" +#include "trig.h" +#include "window.h" +#include "constants/songs.h" +#include "gba/io_reg.h" + +EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; +EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; + +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void nullsub_79(void); + +static const struct WindowTemplate sUnknown_086253E8[] = +{ + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x8 + }, + { + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 1, + .width = 8, + .height = 18, + .paletteNum = 0xF, + .baseBlock = 0x18 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 11, + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x18 + } +}; + +static const u8 sUnknown_08625400[] = +{ + 1, 2, 3 +}; + +static const u8 sEmptyItemName[] = _(""); + +static const struct ScanlineEffectParams sUnknown_08625404 = +{ + .dmaDest = (void*)REG_ADDR_WIN0H, + .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, + .initState = 1, + .unused9 = 0 +}; + + +static const u8 sUnknown_08625410[] = +{ + 4, + 5, + 6, + 7, + 8, + 9, 9, + 10, 10, + 0xB, 0xB, + 0xC, 0xC, + 0xD, 0xD, + 0xD, 0xD, + 0xE, 0xE, 0xE, 0xE, + 0xF, 0xF, 0xF, 0xF, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, + 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, + 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, + 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, + 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, + 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x23 +}; + + +static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = +{ + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xA + }, + { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 16, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0xCA + }, + { + .bg = 1, + .tilemapLeft = 19, + .tilemapTop = 1, + .width = 10, + .height = 12, + .paletteNum = 0xF, + .baseBlock = 0x18A + }, + { + .bg = 1, + .tilemapLeft = 4, + .tilemapTop = 15, + .width = 22, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x202 + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = +{ + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 8, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x25A +}; + + +static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = +{ + .items = NULL, + .moveCursorFunc = MoveRelearnerCursorCallback, + .itemPrintFunc = NULL, + .totalItems = 0, + .maxShowed = 0, + .windowId = 2, + .header_X = 0, + .item_X = 8, + .cursor_X = 0, + .upText_Y = 1, + .cursorPal = 2, + .fillValue = 1, + .cursorShadowPal = 3, + .lettersSpacing = 0, + .itemVerticalPadding = 0, + .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, + .fontId = 1, + .cursorKind = 0 +}; + +bool8 sub_81D1C44(u8 count) +{ + u32 i; + struct ListMenuItem **v1; + v1 = &sUnknown_0203CF4C; + *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); + + if (sUnknown_0203CF4C == NULL) + return FALSE; + + for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) + { + sUnknown_0203CF48[i] |= 0xFF; + } + + return TRUE; +} + +u8 sub_81D1C84(u8 a0) +{ + struct WindowTemplate template; + + u8 windowId = sUnknown_0203CF48[a0]; + if (windowId == 0xFF) + { + if (a0 == 2) + { + u32 v1; + u32 v2; + s32 v3; + + template = sUnknown_086253E8[2]; + v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); + template.width = v3; + sUnknown_0203CF48[2] = AddWindow(&template); + } + else + { + sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); + } + SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); + } + return sUnknown_0203CF48[a0]; +} + +void sub_81D1D04(u8 a0) +{ + sub_8198070(sUnknown_0203CF48[a0], 0); + ClearWindowTilemap(sUnknown_0203CF48[a0]); + RemoveWindow(sUnknown_0203CF48[a0]); + sUnknown_0203CF48[a0] = 0xFF; +} + +static u8 sub_81D1D34(u8 a0) +{ + return sUnknown_0203CF48[a0]; +} + +static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) +{ + u8 buffer[30]; + u16 length; + + if (itemId == LIST_CANCEL) + return; + + StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); + sub_81DB52C(buffer); + length = StringLength(buffer); + if (length <= 5) + ConvertInternationalString(buffer, LANGUAGE_JAPANESE); + AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); +} + +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) +{ + u16 i; + for (i = 0; i < page->count; i++) + { + sUnknown_0203CF4C[i].name = sEmptyItemName; + sUnknown_0203CF4C[i].id = i; + } + + sUnknown_0203CF4C[i].name = gText_Cancel2; + sUnknown_0203CF4C[i].id = LIST_CANCEL; + + gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; + gMultiuseListMenuTemplate.totalItems = page->count + 1; + gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 8; + gMultiuseListMenuTemplate.cursor_X = 0; + gMultiuseListMenuTemplate.maxShowed = 8; + gMultiuseListMenuTemplate.upText_Y = 9; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 1; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; + gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; + gMultiuseListMenuTemplate.fontId = 1; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 0; + gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; + return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); +} + +static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); +} + +void sub_81D1E90(struct PlayerPCItemPageStruct *page) +{ + page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); +} + +void sub_81D1EC0(void) +{ + Free(sUnknown_0203CF4C); +} + +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) +{ + u8 j; + u8 i; + for (j = 0; j < 5; j++) + { + for (i = 0; i < 10; i++) + { + a0->unk64[i][j].unk0 = 0; + a0->unk64[i][j].unk2 = 0; + } + for (i = 0; i < 4; i++) + { + a0->unk0[i][j] = 0; + a0->unk14[i][j].unk0 = 0x9B; + a0->unk14[i][j].unk2 = 0x5B; + } + + a0->unk12C[j].unk0 = 0; + a0->unk12C[j].unk2 = 0; + } + + a0->unk354 = 0; + a0->unk352 = 0; +} + +NAKED +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x8\n\ + mov r8, r0\n\ + str r1, [sp]\n\ + mov r9, r2\n\ + movs r7, 0\n\ +_081D1F98:\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r4, r1\n\ + ldrh r1, [r0]\n\ + lsls r5, r1, 8\n\ + mov r2, r9\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r10, r7\n\ + mov r12, r4\n\ +_081D1FBC:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + add r0, r12\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + movs r7, 0x1\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x64\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D1FBC\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r1, r9\n\ + adds r2, r4, r1\n\ + ldrh r1, [r2]\n\ + adds r0, 0x64\n\ + strh r1, [r0]\n\ + ldr r7, [sp]\n\ + adds r0, r4, r7\n\ + ldrh r1, [r0, 0x2]\n\ + lsls r5, r1, 8\n\ + ldrh r0, [r2, 0x2]\n\ + subs r0, r1\n\ + lsls r0, 8\n\ + movs r1, 0xA\n\ + bl __divsi3\n\ + adds r6, r0, 0\n\ + movs r3, 0\n\ + str r4, [sp, 0x4]\n\ + movs r0, 0x1\n\ + mov r12, r0\n\ +_081D2012:\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + ldr r1, [sp, 0x4]\n\ + adds r0, r1, r0\n\ + add r0, r8\n\ + asrs r2, r5, 8\n\ + asrs r1, r5, 7\n\ + mov r7, r12\n\ + ands r1, r7\n\ + adds r2, r1\n\ + adds r0, 0x66\n\ + strh r2, [r0]\n\ + adds r5, r6\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x8\n\ + bls _081D2012\n\ + lsls r0, r3, 2\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r0, r4, r0\n\ + add r0, r8\n\ + mov r2, r9\n\ + adds r1, r4, r2\n\ + ldrh r1, [r1, 0x2]\n\ + adds r0, 0x66\n\ + strh r1, [r0]\n\ + mov r7, r10\n\ + lsls r0, r7, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x4\n\ + bls _081D1F98\n\ + ldr r1, =0x00000352\n\ + add r1, r8\n\ + movs r0, 0\n\ + strh r0, [r1]\n\ + add sp, 0x8\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +} + +bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) +{ + if (a0->unk352 < 10) + { + sub_81D2230(a0); + return ++a0->unk352 != 10; + } + else + { + return FALSE; + } + +} + +void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) +{ + a0->unk355 = 0; +} + +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) +{ + struct ScanlineEffectParams params; + switch (arg0->unk355) + { + case 0: + ScanlineEffect_Clear(); + arg0->unk355++; + return TRUE; + case 1: + params = sUnknown_08625404; + ScanlineEffect_SetParams(params); + arg0->unk355++; + return FALSE; + default: + return FALSE; + } +} + +NAKED +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) +{ + // Three of the additions are in the wrong order. +#ifdef NONMATCHING + u16 i; + u32 v3; + u32 v4; + u16 *scanBuffer1; + u16 *scanBuffer2; + u32 scanBufferWidth; + u32 mask; + u16 *unkBuff1; + u16 *unkBuff2; + u16 *unkBuff3; + u16 *unkBuff4; + + if (arg0->unk354 == 0) + return; + + sub_81D24A4(arg0); + sub_81D2634(arg0); + + i = 0; + scanBuffer1 = gScanlineEffectRegBuffers[0]; + scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); + scanBuffer2 = scanBuffer1 + scanBufferWidth; + + // This function accesses the arrays "manually", where every other entry + // is just handled differently, rather than a pairwise struct. + unkBuff1 = (u16*)&arg0->unk13C[0].unk0; + mask = 0xFFFF; + unkBuff2 = (u16*)&arg0->unk13C[0].unk2; + unkBuff3 = (u16*)&arg0->unk248[0].unk0; + unkBuff4 = (u16*)&arg0->unk248[0].unk2; + + for (; i < 0x42; i++) + { + u32 offset1; + register u32 offset2 asm("r2"); + u32 offset3; + + offset1 = (i + 0x37) * 2; + offset2 = i + 0x37; + scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; + + offset3 = offset2 * 2 + 1; + scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; + } + + arg0->unk354 = 0; +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + adds r6, r0, 0\n\ + movs r1, 0xD5\n\ + lsls r1, 2\n\ + adds r0, r6, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D21BE\n\ + adds r0, r6, 0\n\ + bl sub_81D24A4\n\ + adds r0, r6, 0\n\ + bl sub_81D2634\n\ + movs r7, 0\n\ + ldr r5, =gScanlineEffectRegBuffers\n\ + mov r12, r5\n\ + movs r0, 0xF0\n\ + lsls r0, 3\n\ + add r0, r12\n\ + mov r9, r0\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r1, r6, r1\n\ + str r1, [sp]\n\ + ldr r5, =0x0000ffff\n\ + mov r8, r5\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r0, r6, r0\n\ + str r0, [sp, 0x4]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r1, r6, r1\n\ + str r1, [sp, 0x8]\n\ + ldr r5, =0x0000024a\n\ + adds r5, r6\n\ + mov r10, r5\n\ +_081D215E:\n\ + adds r2, r7, 0\n\ + adds r2, 0x37\n\ + lsls r3, r2, 2\n\ + mov r0, r9\n\ + adds r0, r3, r0\n\ + str r0, [sp, 0xC]\n\ + add r3, r12\n\ + lsls r4, r7, 2\n\ + ldr r1, [sp]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + ldr r5, [sp, 0x4]\n\ + adds r1, r5, r4\n\ + ldrh r1, [r1]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + mov r1, r8\n\ + ands r0, r1\n\ + ldr r5, [sp, 0xC]\n\ + strh r0, [r5]\n\ + lsls r2, 1\n\ + adds r2, 0x1\n\ + lsls r2, 1\n\ + mov r0, r9\n\ + adds r3, r2, r0\n\ + add r2, r12\n\ + ldr r1, [sp, 0x8]\n\ + adds r0, r1, r4\n\ + ldrh r0, [r0]\n\ + lsls r0, 8\n\ + add r4, r10\n\ + ldrh r1, [r4]\n\ + orrs r0, r1\n\ + strh r0, [r2]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + strh r0, [r3]\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + cmp r7, 0x41\n\ + bls _081D215E\n\ + movs r0, 0xD5\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + movs r0, 0\n\ + strb r0, [r1]\n\ +_081D21BE:\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void sub_81D21DC(u8 bg) +{ + u8 flags; + + if (bg > 3) + bg = 0; + + // Unset the WINOUT flag for the bg. + flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); + + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); + SetGpuReg(REG_OFFSET_WINOUT, flags); +} + +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) +{ + u16 i; + for (i = 0; i < 5; i++) + { + arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; + } + arg0->unk354 = 1; +} + +NAKED +static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) +{ +#ifdef NONMATCHING + // a0 => sp0 + // a1 => r6 + // a2 => r5 + // a3 => sp4 + // a38 => r9 + // a3C => r7 + u32 v1; // r10 + u32 v2; // sp8 + u32 v3; // spC + u32 v4; + u32 v5; + u16 v6; // r8 + u32 v7; + u32 v8; // sp10 + + v3 = 0; + + // v4 => r4 + // v5 => r0 + // v7 => r1 + if (a2[1] < a3[1]) + { + v1 = a2[1]; + v5 = a3[1]; + v7 = a2[0]; + v4 = v7 << 10; + v2 = a3[0]; + } + else + { + v5 = a2[1]; + v1 = a3[1]; + v7 = a3[0]; + v4 = v7 << 10; + v2 = a2[0]; + } + + v6 = v5 - v1; + if (v6 != 0) + { + v3 = (v2 - v7) / v6; + } + v6++; + + if (a3C == 0) + { + v8 = + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + str r0, [sp]\n\ + adds r6, r1, 0\n\ + adds r5, r2, 0\n\ + str r3, [sp, 0x4]\n\ + ldr r0, [sp, 0x38]\n\ + ldr r7, [sp, 0x3C]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r9, r0\n\ + movs r0, 0\n\ + str r0, [sp, 0xC]\n\ + ldrh r0, [r5, 0x2]\n\ + ldrh r1, [r3, 0x2]\n\ + cmp r0, r1\n\ + bcs _081D22B2\n\ + adds r2, r0, 0\n\ + mov r10, r2\n\ + ldrh r0, [r3, 0x2]\n\ + ldrh r1, [r5]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r3]\n\ + str r3, [sp, 0x8]\n\ + b _081D22C6\n\ +_081D22B2:\n\ + ldrh r0, [r5, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r1, [r1, 0x2]\n\ + mov r10, r1\n\ + ldr r2, [sp, 0x4]\n\ + ldrh r1, [r2]\n\ + lsls r4, r1, 10\n\ + ldrh r3, [r5]\n\ + str r3, [sp, 0x8]\n\ + mov r2, r10\n\ +_081D22C6:\n\ + subs r0, r2\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r0, 0\n\ + beq _081D22DE\n\ + subs r0, r3, r1\n\ + lsls r0, 10\n\ + mov r1, r8\n\ + bl __divsi3\n\ + str r0, [sp, 0xC]\n\ +_081D22DE:\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + cmp r7, 0\n\ + bne _081D2328\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r7, r8\n\ + bcs _081D23B6\n\ + movs r7, 0x1\n\ +_081D2308:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r1, [sp, 0xC]\n\ + adds r4, r1\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2308\n\ + b _081D23B6\n\ +_081D2328:\n\ + ldr r2, [sp, 0xC]\n\ + cmp r2, 0\n\ + ble _081D23C0\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + movs r5, 0\n\ + mov r3, r9\n\ + lsls r3, 1\n\ + mov r12, r3\n\ + ldr r0, [sp, 0x8]\n\ + add r0, r9\n\ + str r0, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D237A\n\ + mov r1, r12\n\ + str r1, [sp, 0x14]\n\ +_081D2352:\n\ + ldr r3, [sp, 0x14]\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r3, 0x1\n\ + ands r0, r3\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D237A\n\ + ldr r1, =0x00026bff\n\ + cmp r4, r1\n\ + ble _081D2352\n\ +_081D237A:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + cmp r5, r8\n\ + bcs _081D23B6\n\ + mov r3, r12\n\ + movs r7, 0x1\n\ +_081D2398:\n\ + adds r2, r3, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r7\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D2398\n\ +_081D23B6:\n\ + subs r0, r6, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D23C0:\n\ + ldr r1, [sp, 0xC]\n\ + cmp r1, 0\n\ + bge _081D2464\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + movs r5, 0\n\ + mov r2, r9\n\ + lsls r2, 1\n\ + mov r12, r2\n\ + ldr r3, [sp, 0x8]\n\ + add r3, r9\n\ + str r3, [sp, 0x10]\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + adds r3, r2, r6\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r2, 0x1\n\ + ands r0, r2\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r3]\n\ + b _081D2414\n\ +_081D23F2:\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r6, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcs _081D241E\n\ + mov r1, r12\n\ + adds r3, r1, r6\n\ + asrs r2, r4, 10\n\ + asrs r0, r4, 9\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + adds r2, r0\n\ + add r2, r9\n\ + strh r2, [r3]\n\ +_081D2414:\n\ + ldr r0, =0x00026bff\n\ + cmp r4, r0\n\ + bgt _081D23F2\n\ + movs r0, 0x9B\n\ + strh r0, [r3]\n\ +_081D241E:\n\ + mov r2, r10\n\ + adds r1, r2, r5\n\ + ldr r3, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r3, r2\n\ + strh r1, [r0]\n\ + ldrh r0, [r0]\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r7, r0\n\ + cmp r5, r8\n\ + bcs _081D245A\n\ + mov r3, r12\n\ + movs r6, 0x1\n\ +_081D243C:\n\ + adds r2, r3, r7\n\ + asrs r1, r4, 10\n\ + asrs r0, r4, 9\n\ + ands r0, r6\n\ + adds r1, r0\n\ + add r1, r9\n\ + strh r1, [r2]\n\ + ldr r0, [sp, 0xC]\n\ + adds r4, r0\n\ + adds r7, 0x4\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + cmp r5, r8\n\ + bcc _081D243C\n\ +_081D245A:\n\ + subs r0, r7, 0x4\n\ + b _081D248C\n\ + .pool\n\ +_081D2464:\n\ + ldr r1, [sp]\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r1, r2\n\ + mov r3, r10\n\ + strh r3, [r0]\n\ + mov r0, r10\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r6, r0\n\ + adds r7, r0\n\ + ldrh r0, [r5]\n\ + adds r0, 0x1\n\ + strh r0, [r6, 0x2]\n\ + ldr r1, [sp, 0x4]\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + movs r0, 0x9B\n\ + strh r0, [r7, 0x2]\n\ + b _081D2494\n\ +_081D248C:\n\ + add r0, r12\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0x10]\n\ + strh r2, [r0]\n\ +_081D2494:\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +#endif +} + +NAKED +static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x99\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r3, [r1]\n\ + cmp r0, r3\n\ + bcs _081D24E0\n\ + adds r7, r0, 0\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r1, r4, r0\n\ + movs r3, 0x96\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + subs r0, 0x10\n\ + adds r3, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2500\n\ +_081D24E0:\n\ + ldrh r7, [r1]\n\ + movs r2, 0xA0\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x96\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2500:\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ + movs r3, 0x98\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r0, 0x9A\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r3, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0\n\ + movs r1, 0x9B\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + movs r3, 0x9D\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bhi _081D253C\n\ + movs r2, 0x1\n\ +_081D253C:\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + str r2, [sp]\n\ + movs r1, 0x92\n\ + lsls r1, 2\n\ + adds r0, r4, r1\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + bl sub_81D2278\n\ + movs r2, 0x38\n\ + cmp r2, r7\n\ + bcs _081D257E\n\ + adds r6, r5, 0\n\ + movs r3, 0\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r5, r4, r0\n\ +_081D2566:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, r7\n\ + bcc _081D2566\n\ +_081D257E:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r1, [r0]\n\ + cmp r2, r1\n\ + bhi _081D25B2\n\ + movs r1, 0xA0\n\ + lsls r1, 1\n\ + adds r3, r4, r1\n\ + movs r5, 0x9B\n\ + adds r1, r0, 0\n\ +_081D259C:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r0, r3, r0\n\ + strh r5, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + bls _081D259C\n\ +_081D25B2:\n\ + movs r2, 0x9B\n\ + lsls r2, 1\n\ + adds r1, r4, r2\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r0, [r0]\n\ + ldrh r1, [r1]\n\ + cmp r0, r1\n\ + bcs _081D25C8\n\ + adds r0, r1, 0\n\ +_081D25C8:\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bhi _081D25F8\n\ + movs r0, 0xA0\n\ + lsls r0, 1\n\ + adds r6, r4, r0\n\ + movs r3, 0\n\ + movs r1, 0xA1\n\ + lsls r1, 1\n\ + adds r5, r4, r1\n\ +_081D25E0:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r0, 2\n\ + adds r1, r6, r0\n\ + strh r3, [r1]\n\ + adds r0, r5, r0\n\ + strh r3, [r0]\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D25E0\n\ +_081D25F8:\n\ + movs r2, 0x38\n\ + movs r3, 0xA0\n\ + lsls r3, 1\n\ + adds r5, r4, r3\n\ + movs r0, 0xA1\n\ + lsls r0, 1\n\ + adds r4, r0\n\ + movs r6, 0x9B\n\ +_081D2608:\n\ + adds r0, r2, 0\n\ + subs r0, 0x38\n\ + lsls r1, r0, 2\n\ + adds r3, r5, r1\n\ + ldrh r0, [r3]\n\ + cmp r0, 0\n\ + bne _081D2620\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + beq _081D2620\n\ + strh r6, [r3]\n\ +_081D2620:\n\ + adds r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r2, r0, 16\n\ + cmp r2, 0x79\n\ + bls _081D2608\n\ + add sp, 0x8\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x8\n\ + adds r4, r0, 0\n\ + movs r0, 0x97\n\ + lsls r0, 1\n\ + adds r2, r4, r0\n\ + movs r3, 0x9F\n\ + lsls r3, 1\n\ + adds r1, r4, r3\n\ + ldrh r0, [r2]\n\ + ldrh r5, [r1]\n\ + cmp r0, r5\n\ + bcs _081D266E\n\ + adds r6, r0, 0\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + subs r3, 0x12\n\ + adds r2, r4, r3\n\ + movs r5, 0x9E\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ + b _081D2690\n\ +_081D266E:\n\ + ldrh r6, [r1]\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r1, r4, r0\n\ + movs r3, 0x9E\n\ + lsls r3, 1\n\ + adds r2, r4, r3\n\ + movs r5, 0x96\n\ + lsls r5, 1\n\ + adds r3, r4, r5\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + bl sub_81D2278\n\ +_081D2690:\n\ + movs r0, 0x92\n\ + lsls r0, 2\n\ + adds r5, r4, r0\n\ + movs r1, 0x9E\n\ + lsls r1, 1\n\ + adds r2, r4, r1\n\ + movs r0, 0x9C\n\ + lsls r0, 1\n\ + adds r3, r4, r0\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + str r0, [sp, 0x4]\n\ + adds r0, r4, 0\n\ + adds r1, r5, 0\n\ + bl sub_81D2278\n\ + cmp r6, 0x38\n\ + ble _081D26C8\n\ + movs r0, 0\n\ + adds r1, r5, 0\n\ + adds r2, r6, 0\n\ + subs r2, 0x38\n\ +_081D26BC:\n\ + strh r0, [r1]\n\ + strh r0, [r1, 0x2]\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bne _081D26BC\n\ +_081D26C8:\n\ + movs r1, 0x97\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r2, [r0]\n\ + movs r3, 0xD4\n\ + lsls r3, 2\n\ + adds r0, r4, r3\n\ + ldrh r5, [r0]\n\ + cmp r2, r5\n\ + bgt _081D26F6\n\ + movs r3, 0x9B\n\ + adds r1, r0, 0\n\ + lsls r0, r2, 2\n\ + movs r5, 0xB5\n\ + lsls r5, 1\n\ + adds r0, r5\n\ + adds r0, r4\n\ +_081D26EA:\n\ + strh r3, [r0]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + ldrh r5, [r1]\n\ + cmp r2, r5\n\ + ble _081D26EA\n\ +_081D26F6:\n\ + movs r1, 0x9D\n\ + lsls r1, 1\n\ + adds r0, r4, r1\n\ + ldrh r0, [r0]\n\ + adds r1, r0, 0x1\n\ + movs r2, 0xD4\n\ + lsls r2, 2\n\ + adds r0, r4, r2\n\ + ldrh r0, [r0]\n\ + cmp r0, r1\n\ + bge _081D270E\n\ + adds r0, r1, 0\n\ +_081D270E:\n\ + adds r2, r0, 0\n\ + cmp r2, 0x79\n\ + bgt _081D272C\n\ + movs r1, 0\n\ + lsls r0, r2, 2\n\ + movs r3, 0xB4\n\ + lsls r3, 1\n\ + adds r0, r3\n\ + adds r0, r4\n\ +_081D2720:\n\ + strh r1, [r0]\n\ + strh r1, [r0, 0x2]\n\ + adds r0, 0x4\n\ + adds r2, 0x1\n\ + cmp r2, 0x79\n\ + ble _081D2720\n\ +_081D272C:\n\ + movs r3, 0\n\ + movs r5, 0x92\n\ + lsls r5, 2\n\ + adds r1, r4, r5\n\ + movs r2, 0x41\n\ +_081D2736:\n\ + ldrh r0, [r1]\n\ + ldrh r4, [r1, 0x2]\n\ + cmp r0, r4\n\ + bcc _081D2742\n\ + strh r3, [r1, 0x2]\n\ + strh r3, [r1]\n\ +_081D2742:\n\ + adds r1, 0x4\n\ + subs r2, 0x1\n\ + cmp r2, 0\n\ + bge _081D2736\n\ + add sp, 0x8\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided"); +} + +NAKED +void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) +{ + // There are some register-renaming issues here. The cause of the problem seems to be that + // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. + // But this is one too many things to keep track of, so GCC is forced to use the stack. +#ifdef NONMATCHING + u8* v1; + u8 v2; + u8 v3; + s8 v4; + u16 v5; + + v1 = arg0->unk0[0]; + v2 = sUnknown_08625410[*v1]; + v1++; + arg1[0].unk0 = 0x9B; + arg1[0].unk2 = 0x5B - v2; + for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) + { + v3 += 0x33; + v4--; + if (v4 < 0) + { + v4 = 4; + } + if (v4 == 2) + { + v3++; + } + + v2 = sUnknown_08625410[*v1]; + v1++; + arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; + arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; + if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) + { + arg1[v4].unk0 = arg1[v4].unk0 + 1; + } + } +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + adds r6, r0, 0\n\ + mov r8, r1\n\ + ldr r1, =sUnknown_08625410\n\ + ldrb r0, [r6]\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + movs r0, 0x9B\n\ + mov r3, r8\n\ + strh r0, [r3]\n\ + movs r0, 0x5B\n\ + subs r0, r2\n\ + strh r0, [r3, 0x2]\n\ + movs r7, 0x40\n\ + movs r0, 0\n\ + mov r12, r0\n\ + movs r2, 0x1\n\ + mov r9, r2\n\ + ldr r3, =gSineTable\n\ + mov r10, r3\n\ +_081D2786:\n\ + adds r0, r7, 0\n\ + adds r0, 0x33\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + movs r2, 0xFF\n\ + lsls r2, 24\n\ + adds r0, r2\n\ + lsrs r3, r0, 24\n\ + mov r12, r3\n\ + cmp r0, 0\n\ + bge _081D27A4\n\ + movs r0, 0x4\n\ + mov r12, r0\n\ +_081D27A4:\n\ + mov r1, r12\n\ + lsls r0, r1, 24\n\ + asrs r4, r0, 24\n\ + cmp r4, 0x2\n\ + bne _081D27B4\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ +_081D27B4:\n\ + ldrb r0, [r6]\n\ + ldr r2, =sUnknown_08625410\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + adds r6, 0x1\n\ + lsls r0, r4, 2\n\ + mov r1, r8\n\ + adds r3, r0, r1\n\ + adds r0, r7, 0\n\ + adds r0, 0x40\n\ + lsls r0, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + muls r0, r2\n\ + asrs r5, r0, 8\n\ + adds r0, r5, 0\n\ + adds r0, 0x9B\n\ + strh r0, [r3]\n\ + lsls r0, r7, 1\n\ + add r0, r10\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + adds r1, r2, 0\n\ + muls r1, r0\n\ + asrs r1, 8\n\ + movs r0, 0x5B\n\ + subs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + cmp r4, 0x2\n\ + bgt _081D2800\n\ + cmp r2, 0x20\n\ + bne _081D27FA\n\ + cmp r4, 0x2\n\ + beq _081D2800\n\ +_081D27FA:\n\ + adds r0, r5, 0\n\ + adds r0, 0x9C\n\ + strh r0, [r3]\n\ +_081D2800:\n\ + mov r0, r9\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + cmp r0, 0x4\n\ + bls _081D2786\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +void InitMoveRelearnerWindows(bool8 useContextWindow) +{ + u8 i; + + InitWindows(sMoveRelearnerWindowTemplates); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 1, 0xE0); + LoadPalette(gUnknown_0860F074, 0xF0, 0x20); + + for (i = 0; i < 5; i++) + { + FillWindowPixelBuffer(i, 0x11); + } + + if (!useContextWindow) + { + PutWindowTilemap(0); + SetWindowBorderStyle(0, 0, 0x1, 0xE); + } + else + { + PutWindowTilemap(1); + SetWindowBorderStyle(1, 0, 1, 0xE); + } + PutWindowTilemap(2); + PutWindowTilemap(3); + SetWindowBorderStyle(2, 0, 1, 0xE); + SetWindowBorderStyle(3, 0, 1, 0xE); + nullsub_79(); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void nullsub_79(void) +{ + +} + +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) +{ + gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; + gMultiuseListMenuTemplate.totalItems = numChoices; + gMultiuseListMenuTemplate.items = items; + + if (numChoices < 6) + { + gMultiuseListMenuTemplate.maxShowed = numChoices; + } + else + { + gMultiuseListMenuTemplate.maxShowed = 6; + } + return gMultiuseListMenuTemplate.maxShowed; +} + +NAKED +static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) +{ + // Two small issues, and a few renamed registers. +#ifdef NONMATCHING + u8 offset; + s32 width; + const struct BattleMove *move; + u8 buffer[0x20]; + const u8 *labelStr; + + FillWindowPixelBuffer(0, 0x11); + labelStr = gText_MoveRelearnerBattleMoves; + offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPP; + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerPower; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAccuracy; + offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); + AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); + if (chosenMove == LIST_CANCEL) + { + CopyWindowToVram(0, 2); + return; + } + move = &gBattleMoves[chosenMove]; + labelStr = gTypeNames[move->type]; + // GCC tries to be smart, and preserves the same 0x19 from above for this. + // The original asm just loads the constant 0x19 twice. + AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + // GCC tries to generate this as: + // add r4, r0, 0 + // add r4, r4, 4 + // But the original asm is: + // add r4, r0, 4 + width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); + + ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); + AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); + + + if (move->power < 2) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->power, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); + + if (move->accuracy == 0) + { + labelStr = gText_ThreeDashes; + } + else + { + ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); + labelStr = buffer; + } + AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); + labelStr = gMoveDescriptionPointers[chosenMove - 1]; + AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x2C\n\ + mov r9, r0\n\ + movs r0, 0\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerBattleMoves\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + mov r8, r0\n\ + str r0, [sp, 0x4]\n\ + movs r7, 0\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPP\n\ + movs r1, 0x29\n\ + mov r10, r1\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerPower\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + movs r1, 0x19\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAccuracy\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x6A\n\ + bl GetStringRightAlignXOffset\n\ + adds r4, r0, 0\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r1, r10\n\ + str r1, [sp]\n\ + mov r0, r8\n\ + str r0, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r9, r0\n\ + bne _081D29C4\n\ + movs r0, 0\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2AB6\n\ + .pool\n\ +_081D29C4:\n\ + mov r1, r9\n\ + lsls r0, r1, 1\n\ + add r0, r9\n\ + lsls r0, 2\n\ + ldr r1, =gBattleMoves\n\ + adds r6, r0, r1\n\ + ldrb r1, [r6, 0x2]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + ldr r1, =gTypeNames\n\ + adds r5, r0, r1\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gText_MoveRelearnerPP\n\ + movs r0, 0x1\n\ + movs r2, 0\n\ + bl GetStringWidth\n\ + adds r4, r0, 0x4\n\ + ldrb r1, [r6, 0x4]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x2\n\ + bl ConvertIntToDecimalStringN\n\ + lsls r3, r4, 24\n\ + lsrs r3, 24\n\ + mov r0, r10\n\ + str r0, [sp]\n\ + mov r1, r8\n\ + str r1, [sp, 0x4]\n\ + str r7, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + add r2, sp, 0xC\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x1]\n\ + cmp r0, 0x1\n\ + bhi _081D2A3C\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A4A\n\ + .pool\n\ +_081D2A3C:\n\ + ldrb r1, [r6, 0x1]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A4A:\n\ + movs r0, 0x19\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldrb r0, [r6, 0x3]\n\ + cmp r0, 0\n\ + bne _081D2A70\n\ + ldr r5, =gText_ThreeDashes\n\ + b _081D2A7E\n\ + .pool\n\ +_081D2A70:\n\ + ldrb r1, [r6, 0x3]\n\ + add r0, sp, 0xC\n\ + movs r2, 0\n\ + movs r3, 0x3\n\ + bl ConvertIntToDecimalStringN\n\ + add r5, sp, 0xC\n\ +_081D2A7E:\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + movs r0, 0xFF\n\ + str r0, [sp, 0x4]\n\ + movs r4, 0\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x6A\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gMoveDescriptionPointers\n\ + mov r0, r9\n\ + subs r0, 0x1\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r4, [sp, 0x8]\n\ + movs r0, 0\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ +_081D2AB6:\n\ + add sp, 0x2C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +NAKED +static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) +{ +#ifdef NONMATCHING + //u8 offset; + const u8 *labelStr; + const struct ContestMove *move; + u8 category; + const u8 **temp; + + MoveRelearnerShowHideHearts(chosenMove); + FillWindowPixelBuffer(1, 0x11); + labelStr = gText_MoveRelearnerContestMovesTitle; + // GCC compiles these as: + // add r3, r0, 0 + // lsls r3, r3, 24 + // lsrs r3, r3, 24 + // But in the original asm: + // lsls r3, r0, 24 + // lsrs r3, r3, 24 + //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerAppeal; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gText_MoveRelearnerJam; + //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); + AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); + + if (chosenMove == MENU_NOTHING_CHOSEN) + { + CopyWindowToVram(1, 2); + return; + } + + move = &gContestMoves[chosenMove]; + temp = (const u8**)gContestMoveTypeTextPointers; + category = move->contestCategory; + labelStr = temp[category]; + AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); + + labelStr = gContestEffectDescriptionPointers[move->effect]; + AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); + + CopyWindowToVram(1, 2); +#else + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0xC\n\ + adds r4, r0, 0\n\ + bl MoveRelearnerShowHideHearts\n\ + movs r0, 0x1\n\ + movs r1, 0x11\n\ + bl FillWindowPixelBuffer\n\ + ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x80\n\ + bl GetStringCenterAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + movs r7, 0xFF\n\ + str r7, [sp, 0x4]\n\ + movs r6, 0\n\ + str r6, [sp, 0x8]\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerAppeal\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x19\n\ + mov r8, r0\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + ldr r5, =gText_MoveRelearnerJam\n\ + movs r0, 0x1\n\ + adds r1, r5, 0\n\ + movs r2, 0x5C\n\ + bl GetStringRightAlignXOffset\n\ + lsls r3, r0, 24\n\ + lsrs r3, 24\n\ + movs r0, 0x29\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + cmp r4, r0\n\ + bne _081D2B6C\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ + b _081D2BB8\n\ + .pool\n\ +_081D2B6C:\n\ + lsls r4, 3\n\ + ldr r0, =gContestMoves\n\ + adds r4, r0\n\ + ldr r1, =gContestMoveTypeTextPointers\n\ + ldrb r0, [r4, 0x1]\n\ + lsls r0, 29\n\ + lsrs r0, 27\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + mov r0, r8\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x1\n\ + adds r2, r5, 0\n\ + movs r3, 0x4\n\ + bl AddTextPrinterParameterized\n\ + ldr r1, =gContestEffectDescriptionPointers\n\ + ldrb r0, [r4]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + movs r0, 0x41\n\ + str r0, [sp]\n\ + str r7, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + movs r0, 0x1\n\ + movs r1, 0x7\n\ + adds r2, r5, 0\n\ + movs r3, 0\n\ + bl AddTextPrinterParameterized\n\ + movs r0, 0x1\n\ + movs r1, 0x2\n\ + bl CopyWindowToVram\n\ +_081D2BB8:\n\ + add sp, 0xC\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided"); +#endif +} + +static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + PlaySE(SE_SELECT); + MoveRelearnerLoadBattleMoveDescription(itemIndex); + MoveRelearnerMenuLoadContestMoveDescription(itemIndex); +} + +void MoveRelearnerPrintText(u8 *str) +{ + u8 speed; + + FillWindowPixelBuffer(3, 0x11); + gTextFlags.canABSpeedUpPrint = TRUE; + speed = GetPlayerTextSpeedDelay(); + AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); +} + +bool16 MoveRelearnerRunTextPrinters(void) +{ + RunTextPrinters(); + return IsTextPrinterActive(3); +} + +void MoveRelearnerCreateYesNoMenu(void) +{ + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); +} \ No newline at end of file diff --git a/src/menu_unknown.c b/src/menu_unknown.c deleted file mode 100644 index 21e19cacc..000000000 --- a/src/menu_unknown.c +++ /dev/null @@ -1,2094 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "battle_main.h" -#include "contest_effect.h" -#include "gpu_regs.h" -#include "menu.h" -#include "international_string_util.h" -#include "menu.h" -#include "menu_unknown.h" -#include "move_relearner.h" -#include "palette.h" -#include "player_pc.h" -#include "pokemon_summary_screen.h" -#include "scanline_effect.h" -#include "sound.h" -#include "strings.h" -#include "string_util.h" -#include "text_window.h" -#include "trig.h" -#include "window.h" -#include "constants/songs.h" -#include "gba/io_reg.h" - -EWRAM_DATA static u8 sUnknown_0203CF48[3] = {0}; -EWRAM_DATA static struct ListMenuItem *sUnknown_0203CF4C = NULL; - -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0); -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0); -static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list); -static void nullsub_79(void); - -static const struct WindowTemplate sUnknown_086253E8[] = -{ - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 8, - .height = 2, - .paletteNum = 0xF, - .baseBlock = 0x8 - }, - { - .bg = 0, - .tilemapLeft = 21, - .tilemapTop = 1, - .width = 8, - .height = 18, - .paletteNum = 0xF, - .baseBlock = 0x18 - }, - { - .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 11, - .height = 8, - .paletteNum = 0xF, - .baseBlock = 0x18 - } -}; - -static const u8 sUnknown_08625400[] = -{ - 1, 2, 3 -}; - -static const u8 sEmptyItemName[] = _(""); - -static const struct ScanlineEffectParams sUnknown_08625404 = -{ - .dmaDest = (void*)REG_ADDR_WIN0H, - .dmaControl = SCANLINE_EFFECT_DMACNT_32BIT, - .initState = 1, - .unused9 = 0 -}; - - -static const u8 sUnknown_08625410[] = -{ - 4, - 5, - 6, - 7, - 8, - 9, 9, - 10, 10, - 0xB, 0xB, - 0xC, 0xC, - 0xD, 0xD, - 0xD, 0xD, - 0xE, 0xE, 0xE, 0xE, - 0xF, 0xF, 0xF, 0xF, - 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, - 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, - 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, - 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, - 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, - 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, 0x1D, - 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, - 0x23 -}; - - -static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = -{ - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 16, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0xA - }, - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 16, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0xCA - }, - { - .bg = 1, - .tilemapLeft = 19, - .tilemapTop = 1, - .width = 10, - .height = 12, - .paletteNum = 0xF, - .baseBlock = 0x18A - }, - { - .bg = 1, - .tilemapLeft = 4, - .tilemapTop = 15, - .width = 22, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x202 - }, - { - .bg = 0, - .tilemapLeft = 22, - .tilemapTop = 8, - .width = 5, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x25A - }, - DUMMY_WIN_TEMPLATE -}; - -static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = -{ - .bg = 0, - .tilemapLeft = 22, - .tilemapTop = 8, - .width = 5, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x25A -}; - - -static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = -{ - .items = NULL, - .moveCursorFunc = MoveRelearnerCursorCallback, - .itemPrintFunc = NULL, - .totalItems = 0, - .maxShowed = 0, - .windowId = 2, - .header_X = 0, - .item_X = 8, - .cursor_X = 0, - .upText_Y = 1, - .cursorPal = 2, - .fillValue = 1, - .cursorShadowPal = 3, - .lettersSpacing = 0, - .itemVerticalPadding = 0, - .scrollMultiple = LIST_NO_MULTIPLE_SCROLL, - .fontId = 1, - .cursorKind = 0 -}; - -bool8 sub_81D1C44(u8 count) -{ - u32 i; - struct ListMenuItem **v1; - v1 = &sUnknown_0203CF4C; - *v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem)); - - if (sUnknown_0203CF4C == NULL) - return FALSE; - - for (i = 0; i < ARRAY_COUNT(sUnknown_0203CF48); i = (u8)(i + 1)) - { - sUnknown_0203CF48[i] |= 0xFF; - } - - return TRUE; -} - -u8 sub_81D1C84(u8 a0) -{ - struct WindowTemplate template; - - u8 windowId = sUnknown_0203CF48[a0]; - if (windowId == 0xFF) - { - if (a0 == 2) - { - u32 v1; - u32 v2; - s32 v3; - - template = sUnknown_086253E8[2]; - v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4); - template.width = v3; - sUnknown_0203CF48[2] = AddWindow(&template); - } - else - { - sUnknown_0203CF48[a0] = AddWindow(&sUnknown_086253E8[a0]); - } - SetStandardWindowBorderStyle(sUnknown_0203CF48[a0], 0); - } - return sUnknown_0203CF48[a0]; -} - -void sub_81D1D04(u8 a0) -{ - sub_8198070(sUnknown_0203CF48[a0], 0); - ClearWindowTilemap(sUnknown_0203CF48[a0]); - RemoveWindow(sUnknown_0203CF48[a0]); - sUnknown_0203CF48[a0] = 0xFF; -} - -static u8 sub_81D1D34(u8 a0) -{ - return sUnknown_0203CF48[a0]; -} - -static void sub_81D1D44(u8 windowId, s32 itemId, u8 y) -{ - u8 buffer[30]; - u16 length; - - if (itemId == LIST_CANCEL) - return; - - StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName); - sub_81DB52C(buffer); - length = StringLength(buffer); - if (length <= 5) - ConvertInternationalString(buffer, LANGUAGE_JAPANESE); - AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, sUnknown_08625400, -1, buffer); -} - -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page) -{ - u16 i; - for (i = 0; i < page->count; i++) - { - sUnknown_0203CF4C[i].name = sEmptyItemName; - sUnknown_0203CF4C[i].id = i; - } - - sUnknown_0203CF4C[i].name = gText_Cancel2; - sUnknown_0203CF4C[i].id = LIST_CANCEL; - - gMultiuseListMenuTemplate.items = sUnknown_0203CF4C; - gMultiuseListMenuTemplate.totalItems = page->count + 1; - gMultiuseListMenuTemplate.windowId = sUnknown_0203CF48[1]; - gMultiuseListMenuTemplate.header_X = 0; - gMultiuseListMenuTemplate.item_X = 8; - gMultiuseListMenuTemplate.cursor_X = 0; - gMultiuseListMenuTemplate.maxShowed = 8; - gMultiuseListMenuTemplate.upText_Y = 9; - gMultiuseListMenuTemplate.cursorPal = 2; - gMultiuseListMenuTemplate.fillValue = 1; - gMultiuseListMenuTemplate.cursorShadowPal = 3; - gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C; - gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44; - gMultiuseListMenuTemplate.fontId = 1; - gMultiuseListMenuTemplate.cursorKind = 0; - gMultiuseListMenuTemplate.lettersSpacing = 0; - gMultiuseListMenuTemplate.itemVerticalPadding = 0; - gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; - return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos); -} - -static void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list) -{ - if (onInit != TRUE) - PlaySE(SE_SELECT); -} - -void sub_81D1E90(struct PlayerPCItemPageStruct *page) -{ - page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove); -} - -void sub_81D1EC0(void) -{ - Free(sUnknown_0203CF4C); -} - -void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0) -{ - u8 j; - u8 i; - for (j = 0; j < 5; j++) - { - for (i = 0; i < 10; i++) - { - a0->unk64[i][j].unk0 = 0; - a0->unk64[i][j].unk2 = 0; - } - for (i = 0; i < 4; i++) - { - a0->unk0[i][j] = 0; - a0->unk14[i][j].unk0 = 0x9B; - a0->unk14[i][j].unk2 = 0x5B; - } - - a0->unk12C[j].unk0 = 0; - a0->unk12C[j].unk2 = 0; - } - - a0->unk354 = 0; - a0->unk352 = 0; -} - -NAKED -void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - mov r8, r0\n\ - str r1, [sp]\n\ - mov r9, r2\n\ - movs r7, 0\n\ -_081D1F98:\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r4, r1\n\ - ldrh r1, [r0]\n\ - lsls r5, r1, 8\n\ - mov r2, r9\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - adds r7, 0x1\n\ - mov r10, r7\n\ - mov r12, r4\n\ -_081D1FBC:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - add r0, r12\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - movs r7, 0x1\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x64\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D1FBC\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r1, r9\n\ - adds r2, r4, r1\n\ - ldrh r1, [r2]\n\ - adds r0, 0x64\n\ - strh r1, [r0]\n\ - ldr r7, [sp]\n\ - adds r0, r4, r7\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r5, r1, 8\n\ - ldrh r0, [r2, 0x2]\n\ - subs r0, r1\n\ - lsls r0, 8\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - adds r6, r0, 0\n\ - movs r3, 0\n\ - str r4, [sp, 0x4]\n\ - movs r0, 0x1\n\ - mov r12, r0\n\ -_081D2012:\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - ldr r1, [sp, 0x4]\n\ - adds r0, r1, r0\n\ - add r0, r8\n\ - asrs r2, r5, 8\n\ - asrs r1, r5, 7\n\ - mov r7, r12\n\ - ands r1, r7\n\ - adds r2, r1\n\ - adds r0, 0x66\n\ - strh r2, [r0]\n\ - adds r5, r6\n\ - adds r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r3, r0, 16\n\ - cmp r3, 0x8\n\ - bls _081D2012\n\ - lsls r0, r3, 2\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - add r0, r8\n\ - mov r2, r9\n\ - adds r1, r4, r2\n\ - ldrh r1, [r1, 0x2]\n\ - adds r0, 0x66\n\ - strh r1, [r0]\n\ - mov r7, r10\n\ - lsls r0, r7, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x4\n\ - bls _081D1F98\n\ - ldr r1, =0x00000352\n\ - add r1, r8\n\ - movs r0, 0\n\ - strh r0, [r1]\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} - -bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0) -{ - if (a0->unk352 < 10) - { - sub_81D2230(a0); - return ++a0->unk352 != 10; - } - else - { - return FALSE; - } - -} - -void sub_81D20AC(struct UnknownStruct_81D1ED4 *a0) -{ - a0->unk355 = 0; -} - -bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0) -{ - struct ScanlineEffectParams params; - switch (arg0->unk355) - { - case 0: - ScanlineEffect_Clear(); - arg0->unk355++; - return TRUE; - case 1: - params = sUnknown_08625404; - ScanlineEffect_SetParams(params); - arg0->unk355++; - return FALSE; - default: - return FALSE; - } -} - -NAKED -void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0) -{ - // Three of the additions are in the wrong order. -#ifdef NONMATCHING - u16 i; - u32 v3; - u32 v4; - u16 *scanBuffer1; - u16 *scanBuffer2; - u32 scanBufferWidth; - u32 mask; - u16 *unkBuff1; - u16 *unkBuff2; - u16 *unkBuff3; - u16 *unkBuff4; - - if (arg0->unk354 == 0) - return; - - sub_81D24A4(arg0); - sub_81D2634(arg0); - - i = 0; - scanBuffer1 = gScanlineEffectRegBuffers[0]; - scanBufferWidth = ARRAY_COUNT(gScanlineEffectRegBuffers[0]); - scanBuffer2 = scanBuffer1 + scanBufferWidth; - - // This function accesses the arrays "manually", where every other entry - // is just handled differently, rather than a pairwise struct. - unkBuff1 = (u16*)&arg0->unk13C[0].unk0; - mask = 0xFFFF; - unkBuff2 = (u16*)&arg0->unk13C[0].unk2; - unkBuff3 = (u16*)&arg0->unk248[0].unk0; - unkBuff4 = (u16*)&arg0->unk248[0].unk2; - - for (; i < 0x42; i++) - { - u32 offset1; - register u32 offset2 asm("r2"); - u32 offset3; - - offset1 = (i + 0x37) * 2; - offset2 = i + 0x37; - scanBuffer2[offset1] = (scanBuffer1[offset1] = (unkBuff1[i * 2] << 8) | unkBuff2[i * 2]) & mask; - - offset3 = offset2 * 2 + 1; - scanBuffer2[offset3] = (scanBuffer1[offset3] = (unkBuff3[i * 2] << 8) | unkBuff4[i * 2]) & mask; - } - - arg0->unk354 = 0; -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x10\n\ - adds r6, r0, 0\n\ - movs r1, 0xD5\n\ - lsls r1, 2\n\ - adds r0, r6, r1\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D21BE\n\ - adds r0, r6, 0\n\ - bl sub_81D24A4\n\ - adds r0, r6, 0\n\ - bl sub_81D2634\n\ - movs r7, 0\n\ - ldr r5, =gScanlineEffectRegBuffers\n\ - mov r12, r5\n\ - movs r0, 0xF0\n\ - lsls r0, 3\n\ - add r0, r12\n\ - mov r9, r0\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r1, r6, r1\n\ - str r1, [sp]\n\ - ldr r5, =0x0000ffff\n\ - mov r8, r5\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r0, r6, r0\n\ - str r0, [sp, 0x4]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - str r1, [sp, 0x8]\n\ - ldr r5, =0x0000024a\n\ - adds r5, r6\n\ - mov r10, r5\n\ -_081D215E:\n\ - adds r2, r7, 0\n\ - adds r2, 0x37\n\ - lsls r3, r2, 2\n\ - mov r0, r9\n\ - adds r0, r3, r0\n\ - str r0, [sp, 0xC]\n\ - add r3, r12\n\ - lsls r4, r7, 2\n\ - ldr r1, [sp]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - ldr r5, [sp, 0x4]\n\ - adds r1, r5, r4\n\ - ldrh r1, [r1]\n\ - orrs r0, r1\n\ - strh r0, [r3]\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r5, [sp, 0xC]\n\ - strh r0, [r5]\n\ - lsls r2, 1\n\ - adds r2, 0x1\n\ - lsls r2, 1\n\ - mov r0, r9\n\ - adds r3, r2, r0\n\ - add r2, r12\n\ - ldr r1, [sp, 0x8]\n\ - adds r0, r1, r4\n\ - ldrh r0, [r0]\n\ - lsls r0, 8\n\ - add r4, r10\n\ - ldrh r1, [r4]\n\ - orrs r0, r1\n\ - strh r0, [r2]\n\ - mov r5, r8\n\ - ands r0, r5\n\ - strh r0, [r3]\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - cmp r7, 0x41\n\ - bls _081D215E\n\ - movs r0, 0xD5\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - movs r0, 0\n\ - strb r0, [r1]\n\ -_081D21BE:\n\ - add sp, 0x10\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -void sub_81D21DC(u8 bg) -{ - u8 flags; - - if (bg > 3) - bg = 0; - - // Unset the WINOUT flag for the bg. - flags = (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) & ~(1 << bg); - - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0x9B)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0x38, 0x79)); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); - SetGpuReg(REG_OFFSET_WINOUT, flags); -} - -void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0) -{ - u16 i; - for (i = 0; i < 5; i++) - { - arg0->unk12C[i] = arg0->unk64[arg0->unk352][i]; - } - arg0->unk354 = 1; -} - -NAKED -static void sub_81D2278(void *a0, void *a1, u16 *a2, u16 *a3, u8 a38, u32 a3C) -{ -#ifdef NONMATCHING - // a0 => sp0 - // a1 => r6 - // a2 => r5 - // a3 => sp4 - // a38 => r9 - // a3C => r7 - u32 v1; // r10 - u32 v2; // sp8 - u32 v3; // spC - u32 v4; - u32 v5; - u16 v6; // r8 - u32 v7; - u32 v8; // sp10 - - v3 = 0; - - // v4 => r4 - // v5 => r0 - // v7 => r1 - if (a2[1] < a3[1]) - { - v1 = a2[1]; - v5 = a3[1]; - v7 = a2[0]; - v4 = v7 << 10; - v2 = a3[0]; - } - else - { - v5 = a2[1]; - v1 = a3[1]; - v7 = a3[0]; - v4 = v7 << 10; - v2 = a2[0]; - } - - v6 = v5 - v1; - if (v6 != 0) - { - v3 = (v2 - v7) / v6; - } - v6++; - - if (a3C == 0) - { - v8 = - } -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x18\n\ - str r0, [sp]\n\ - adds r6, r1, 0\n\ - adds r5, r2, 0\n\ - str r3, [sp, 0x4]\n\ - ldr r0, [sp, 0x38]\n\ - ldr r7, [sp, 0x3C]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - movs r0, 0\n\ - str r0, [sp, 0xC]\n\ - ldrh r0, [r5, 0x2]\n\ - ldrh r1, [r3, 0x2]\n\ - cmp r0, r1\n\ - bcs _081D22B2\n\ - adds r2, r0, 0\n\ - mov r10, r2\n\ - ldrh r0, [r3, 0x2]\n\ - ldrh r1, [r5]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r3]\n\ - str r3, [sp, 0x8]\n\ - b _081D22C6\n\ -_081D22B2:\n\ - ldrh r0, [r5, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r1, [r1, 0x2]\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x4]\n\ - ldrh r1, [r2]\n\ - lsls r4, r1, 10\n\ - ldrh r3, [r5]\n\ - str r3, [sp, 0x8]\n\ - mov r2, r10\n\ -_081D22C6:\n\ - subs r0, r2\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r0, 0\n\ - beq _081D22DE\n\ - subs r0, r3, r1\n\ - lsls r0, 10\n\ - mov r1, r8\n\ - bl __divsi3\n\ - str r0, [sp, 0xC]\n\ -_081D22DE:\n\ - mov r0, r8\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r8, r0\n\ - cmp r7, 0\n\ - bne _081D2328\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r7, r8\n\ - bcs _081D23B6\n\ - movs r7, 0x1\n\ -_081D2308:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r1, [sp, 0xC]\n\ - adds r4, r1\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2308\n\ - b _081D23B6\n\ -_081D2328:\n\ - ldr r2, [sp, 0xC]\n\ - cmp r2, 0\n\ - ble _081D23C0\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - movs r5, 0\n\ - mov r3, r9\n\ - lsls r3, 1\n\ - mov r12, r3\n\ - ldr r0, [sp, 0x8]\n\ - add r0, r9\n\ - str r0, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D237A\n\ - mov r1, r12\n\ - str r1, [sp, 0x14]\n\ -_081D2352:\n\ - ldr r3, [sp, 0x14]\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r3, 0x1\n\ - ands r0, r3\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D237A\n\ - ldr r1, =0x00026bff\n\ - cmp r4, r1\n\ - ble _081D2352\n\ -_081D237A:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - cmp r5, r8\n\ - bcs _081D23B6\n\ - mov r3, r12\n\ - movs r7, 0x1\n\ -_081D2398:\n\ - adds r2, r3, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r7\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D2398\n\ -_081D23B6:\n\ - subs r0, r6, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D23C0:\n\ - ldr r1, [sp, 0xC]\n\ - cmp r1, 0\n\ - bge _081D2464\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - movs r5, 0\n\ - mov r2, r9\n\ - lsls r2, 1\n\ - mov r12, r2\n\ - ldr r3, [sp, 0x8]\n\ - add r3, r9\n\ - str r3, [sp, 0x10]\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - adds r3, r2, r6\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r2, 0x1\n\ - ands r0, r2\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r3]\n\ - b _081D2414\n\ -_081D23F2:\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r6, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcs _081D241E\n\ - mov r1, r12\n\ - adds r3, r1, r6\n\ - asrs r2, r4, 10\n\ - asrs r0, r4, 9\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - adds r2, r0\n\ - add r2, r9\n\ - strh r2, [r3]\n\ -_081D2414:\n\ - ldr r0, =0x00026bff\n\ - cmp r4, r0\n\ - bgt _081D23F2\n\ - movs r0, 0x9B\n\ - strh r0, [r3]\n\ -_081D241E:\n\ - mov r2, r10\n\ - adds r1, r2, r5\n\ - ldr r3, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r3, r2\n\ - strh r1, [r0]\n\ - ldrh r0, [r0]\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r7, r0\n\ - cmp r5, r8\n\ - bcs _081D245A\n\ - mov r3, r12\n\ - movs r6, 0x1\n\ -_081D243C:\n\ - adds r2, r3, r7\n\ - asrs r1, r4, 10\n\ - asrs r0, r4, 9\n\ - ands r0, r6\n\ - adds r1, r0\n\ - add r1, r9\n\ - strh r1, [r2]\n\ - ldr r0, [sp, 0xC]\n\ - adds r4, r0\n\ - adds r7, 0x4\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - cmp r5, r8\n\ - bcc _081D243C\n\ -_081D245A:\n\ - subs r0, r7, 0x4\n\ - b _081D248C\n\ - .pool\n\ -_081D2464:\n\ - ldr r1, [sp]\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r1, r2\n\ - mov r3, r10\n\ - strh r3, [r0]\n\ - mov r0, r10\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r6, r0\n\ - adds r7, r0\n\ - ldrh r0, [r5]\n\ - adds r0, 0x1\n\ - strh r0, [r6, 0x2]\n\ - ldr r1, [sp, 0x4]\n\ - ldrh r0, [r1]\n\ - strh r0, [r7]\n\ - movs r0, 0x9B\n\ - strh r0, [r7, 0x2]\n\ - b _081D2494\n\ -_081D248C:\n\ - add r0, r12\n\ - mov r2, sp\n\ - ldrh r2, [r2, 0x10]\n\ - strh r2, [r0]\n\ -_081D2494:\n\ - add sp, 0x18\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -#endif -} - -NAKED -static void sub_81D24A4(struct UnknownStruct_81D1ED4 *a0) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x99\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r3, [r1]\n\ - cmp r0, r3\n\ - bcs _081D24E0\n\ - adds r7, r0, 0\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r1, r4, r0\n\ - movs r3, 0x96\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - subs r0, 0x10\n\ - adds r3, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2500\n\ -_081D24E0:\n\ - ldrh r7, [r1]\n\ - movs r2, 0xA0\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x96\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2500:\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ - movs r3, 0x98\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r0, 0x9A\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r3, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0\n\ - movs r1, 0x9B\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - movs r3, 0x9D\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bhi _081D253C\n\ - movs r2, 0x1\n\ -_081D253C:\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - str r2, [sp]\n\ - movs r1, 0x92\n\ - lsls r1, 2\n\ - adds r0, r4, r1\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - bl sub_81D2278\n\ - movs r2, 0x38\n\ - cmp r2, r7\n\ - bcs _081D257E\n\ - adds r6, r5, 0\n\ - movs r3, 0\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r5, r4, r0\n\ -_081D2566:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, r7\n\ - bcc _081D2566\n\ -_081D257E:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r1, [r0]\n\ - cmp r2, r1\n\ - bhi _081D25B2\n\ - movs r1, 0xA0\n\ - lsls r1, 1\n\ - adds r3, r4, r1\n\ - movs r5, 0x9B\n\ - adds r1, r0, 0\n\ -_081D259C:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r0, r3, r0\n\ - strh r5, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - ldrh r0, [r1]\n\ - cmp r2, r0\n\ - bls _081D259C\n\ -_081D25B2:\n\ - movs r2, 0x9B\n\ - lsls r2, 1\n\ - adds r1, r4, r2\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r0, [r0]\n\ - ldrh r1, [r1]\n\ - cmp r0, r1\n\ - bcs _081D25C8\n\ - adds r0, r1, 0\n\ -_081D25C8:\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bhi _081D25F8\n\ - movs r0, 0xA0\n\ - lsls r0, 1\n\ - adds r6, r4, r0\n\ - movs r3, 0\n\ - movs r1, 0xA1\n\ - lsls r1, 1\n\ - adds r5, r4, r1\n\ -_081D25E0:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r0, 2\n\ - adds r1, r6, r0\n\ - strh r3, [r1]\n\ - adds r0, r5, r0\n\ - strh r3, [r0]\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D25E0\n\ -_081D25F8:\n\ - movs r2, 0x38\n\ - movs r3, 0xA0\n\ - lsls r3, 1\n\ - adds r5, r4, r3\n\ - movs r0, 0xA1\n\ - lsls r0, 1\n\ - adds r4, r0\n\ - movs r6, 0x9B\n\ -_081D2608:\n\ - adds r0, r2, 0\n\ - subs r0, 0x38\n\ - lsls r1, r0, 2\n\ - adds r3, r5, r1\n\ - ldrh r0, [r3]\n\ - cmp r0, 0\n\ - bne _081D2620\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - cmp r0, 0\n\ - beq _081D2620\n\ - strh r6, [r3]\n\ -_081D2620:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x79\n\ - bls _081D2608\n\ - add sp, 0x8\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -NAKED -static void sub_81D2634(struct UnknownStruct_81D1ED4 *a0) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x8\n\ - adds r4, r0, 0\n\ - movs r0, 0x97\n\ - lsls r0, 1\n\ - adds r2, r4, r0\n\ - movs r3, 0x9F\n\ - lsls r3, 1\n\ - adds r1, r4, r3\n\ - ldrh r0, [r2]\n\ - ldrh r5, [r1]\n\ - cmp r0, r5\n\ - bcs _081D266E\n\ - adds r6, r0, 0\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - subs r3, 0x12\n\ - adds r2, r4, r3\n\ - movs r5, 0x9E\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ - b _081D2690\n\ -_081D266E:\n\ - ldrh r6, [r1]\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - movs r3, 0x9E\n\ - lsls r3, 1\n\ - adds r2, r4, r3\n\ - movs r5, 0x96\n\ - lsls r5, 1\n\ - adds r3, r4, r5\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - bl sub_81D2278\n\ -_081D2690:\n\ - movs r0, 0x92\n\ - lsls r0, 2\n\ - adds r5, r4, r0\n\ - movs r1, 0x9E\n\ - lsls r1, 1\n\ - adds r2, r4, r1\n\ - movs r0, 0x9C\n\ - lsls r0, 1\n\ - adds r3, r4, r0\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - adds r0, r4, 0\n\ - adds r1, r5, 0\n\ - bl sub_81D2278\n\ - cmp r6, 0x38\n\ - ble _081D26C8\n\ - movs r0, 0\n\ - adds r1, r5, 0\n\ - adds r2, r6, 0\n\ - subs r2, 0x38\n\ -_081D26BC:\n\ - strh r0, [r1]\n\ - strh r0, [r1, 0x2]\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bne _081D26BC\n\ -_081D26C8:\n\ - movs r1, 0x97\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r2, [r0]\n\ - movs r3, 0xD4\n\ - lsls r3, 2\n\ - adds r0, r4, r3\n\ - ldrh r5, [r0]\n\ - cmp r2, r5\n\ - bgt _081D26F6\n\ - movs r3, 0x9B\n\ - adds r1, r0, 0\n\ - lsls r0, r2, 2\n\ - movs r5, 0xB5\n\ - lsls r5, 1\n\ - adds r0, r5\n\ - adds r0, r4\n\ -_081D26EA:\n\ - strh r3, [r0]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - ldrh r5, [r1]\n\ - cmp r2, r5\n\ - ble _081D26EA\n\ -_081D26F6:\n\ - movs r1, 0x9D\n\ - lsls r1, 1\n\ - adds r0, r4, r1\n\ - ldrh r0, [r0]\n\ - adds r1, r0, 0x1\n\ - movs r2, 0xD4\n\ - lsls r2, 2\n\ - adds r0, r4, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r1\n\ - bge _081D270E\n\ - adds r0, r1, 0\n\ -_081D270E:\n\ - adds r2, r0, 0\n\ - cmp r2, 0x79\n\ - bgt _081D272C\n\ - movs r1, 0\n\ - lsls r0, r2, 2\n\ - movs r3, 0xB4\n\ - lsls r3, 1\n\ - adds r0, r3\n\ - adds r0, r4\n\ -_081D2720:\n\ - strh r1, [r0]\n\ - strh r1, [r0, 0x2]\n\ - adds r0, 0x4\n\ - adds r2, 0x1\n\ - cmp r2, 0x79\n\ - ble _081D2720\n\ -_081D272C:\n\ - movs r3, 0\n\ - movs r5, 0x92\n\ - lsls r5, 2\n\ - adds r1, r4, r5\n\ - movs r2, 0x41\n\ -_081D2736:\n\ - ldrh r0, [r1]\n\ - ldrh r4, [r1, 0x2]\n\ - cmp r0, r4\n\ - bcc _081D2742\n\ - strh r3, [r1, 0x2]\n\ - strh r3, [r1]\n\ -_081D2742:\n\ - adds r1, 0x4\n\ - subs r2, 0x1\n\ - cmp r2, 0\n\ - bge _081D2736\n\ - add sp, 0x8\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -NAKED -void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1) -{ - // There are some register-renaming issues here. The cause of the problem seems to be that - // GCC tries to save sUnknown_08625410 in a register, instead of loading the constant repeatedly. - // But this is one too many things to keep track of, so GCC is forced to use the stack. -#ifdef NONMATCHING - u8* v1; - u8 v2; - u8 v3; - s8 v4; - u16 v5; - - v1 = arg0->unk0[0]; - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[0].unk0 = 0x9B; - arg1[0].unk2 = 0x5B - v2; - for (v3 = 0x40, v4 = 0, v5 = 1; v5 < 5; v5++) - { - v3 += 0x33; - v4--; - if (v4 < 0) - { - v4 = 4; - } - if (v4 == 2) - { - v3++; - } - - v2 = sUnknown_08625410[*v1]; - v1++; - arg1[v4].unk0 = ((gSineTable[v3 + 0x40] * v2) >> 8) + 0x9B; - arg1[v4].unk2 = ((gSineTable[v3] * v2) >> 8) - 0x5B; - if (v4 <= 2 && (v2 != 0x20 || v4 != 2)) - { - arg1[v4].unk0 = arg1[v4].unk0 + 1; - } - } -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - adds r6, r0, 0\n\ - mov r8, r1\n\ - ldr r1, =sUnknown_08625410\n\ - ldrb r0, [r6]\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - movs r0, 0x9B\n\ - mov r3, r8\n\ - strh r0, [r3]\n\ - movs r0, 0x5B\n\ - subs r0, r2\n\ - strh r0, [r3, 0x2]\n\ - movs r7, 0x40\n\ - movs r0, 0\n\ - mov r12, r0\n\ - movs r2, 0x1\n\ - mov r9, r2\n\ - ldr r3, =gSineTable\n\ - mov r10, r3\n\ -_081D2786:\n\ - adds r0, r7, 0\n\ - adds r0, 0x33\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - movs r2, 0xFF\n\ - lsls r2, 24\n\ - adds r0, r2\n\ - lsrs r3, r0, 24\n\ - mov r12, r3\n\ - cmp r0, 0\n\ - bge _081D27A4\n\ - movs r0, 0x4\n\ - mov r12, r0\n\ -_081D27A4:\n\ - mov r1, r12\n\ - lsls r0, r1, 24\n\ - asrs r4, r0, 24\n\ - cmp r4, 0x2\n\ - bne _081D27B4\n\ - adds r0, r7, 0x1\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ -_081D27B4:\n\ - ldrb r0, [r6]\n\ - ldr r2, =sUnknown_08625410\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - adds r6, 0x1\n\ - lsls r0, r4, 2\n\ - mov r1, r8\n\ - adds r3, r0, r1\n\ - adds r0, r7, 0\n\ - adds r0, 0x40\n\ - lsls r0, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - muls r0, r2\n\ - asrs r5, r0, 8\n\ - adds r0, r5, 0\n\ - adds r0, 0x9B\n\ - strh r0, [r3]\n\ - lsls r0, r7, 1\n\ - add r0, r10\n\ - movs r1, 0\n\ - ldrsh r0, [r0, r1]\n\ - adds r1, r2, 0\n\ - muls r1, r0\n\ - asrs r1, 8\n\ - movs r0, 0x5B\n\ - subs r0, r1\n\ - strh r0, [r3, 0x2]\n\ - cmp r4, 0x2\n\ - bgt _081D2800\n\ - cmp r2, 0x20\n\ - bne _081D27FA\n\ - cmp r4, 0x2\n\ - beq _081D2800\n\ -_081D27FA:\n\ - adds r0, r5, 0\n\ - adds r0, 0x9C\n\ - strh r0, [r3]\n\ -_081D2800:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - mov r9, r0\n\ - cmp r0, 0x4\n\ - bls _081D2786\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -void InitMoveRelearnerWindows(bool8 useContextWindow) -{ - u8 i; - - InitWindows(sMoveRelearnerWindowTemplates); - DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 1, 0xE0); - LoadPalette(gUnknown_0860F074, 0xF0, 0x20); - - for (i = 0; i < 5; i++) - { - FillWindowPixelBuffer(i, 0x11); - } - - if (!useContextWindow) - { - PutWindowTilemap(0); - SetWindowBorderStyle(0, 0, 0x1, 0xE); - } - else - { - PutWindowTilemap(1); - SetWindowBorderStyle(1, 0, 1, 0xE); - } - PutWindowTilemap(2); - PutWindowTilemap(3); - SetWindowBorderStyle(2, 0, 1, 0xE); - SetWindowBorderStyle(3, 0, 1, 0xE); - nullsub_79(); - schedule_bg_copy_tilemap_to_vram(1); -} - -static void nullsub_79(void) -{ - -} - -u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices) -{ - gMultiuseListMenuTemplate = sMoveRelearnerMovesListTemplate; - gMultiuseListMenuTemplate.totalItems = numChoices; - gMultiuseListMenuTemplate.items = items; - - if (numChoices < 6) - { - gMultiuseListMenuTemplate.maxShowed = numChoices; - } - else - { - gMultiuseListMenuTemplate.maxShowed = 6; - } - return gMultiuseListMenuTemplate.maxShowed; -} - -NAKED -static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) -{ - // Two small issues, and a few renamed registers. -#ifdef NONMATCHING - u8 offset; - s32 width; - const struct BattleMove *move; - u8 buffer[0x20]; - const u8 *labelStr; - - FillWindowPixelBuffer(0, 0x11); - labelStr = gText_MoveRelearnerBattleMoves; - offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerPP; - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x29, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerPower; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerAccuracy; - offset = GetStringRightAlignXOffset(1, labelStr, 0x6A); - AddTextPrinterParameterized(0, 1, labelStr, offset, 0x29, TEXT_SPEED_FF, NULL); - if (chosenMove == LIST_CANCEL) - { - CopyWindowToVram(0, 2); - return; - } - move = &gBattleMoves[chosenMove]; - labelStr = gTypeNames[move->type]; - // GCC tries to be smart, and preserves the same 0x19 from above for this. - // The original asm just loads the constant 0x19 twice. - AddTextPrinterParameterized(0, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); - - // GCC tries to generate this as: - // add r4, r0, 0 - // add r4, r4, 4 - // But the original asm is: - // add r4, r0, 4 - width = 4 + GetStringWidth(1, gText_MoveRelearnerPP, 0); - - ConvertIntToDecimalStringN(buffer, move->pp, 0, 2); - AddTextPrinterParameterized(0, 1, buffer, width, 0x29, TEXT_SPEED_FF, NULL); - - - if (move->power < 2) - { - labelStr = gText_ThreeDashes; - } - else - { - ConvertIntToDecimalStringN(buffer, move->power, 0, 3); - labelStr = buffer; - } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x19, TEXT_SPEED_FF, NULL); - - if (move->accuracy == 0) - { - labelStr = gText_ThreeDashes; - } - else - { - ConvertIntToDecimalStringN(buffer, move->accuracy, 0, 3); - labelStr = buffer; - } - AddTextPrinterParameterized(0, 1, labelStr, 0x6A, 0x29, TEXT_SPEED_FF, NULL); - labelStr = gMoveDescriptionPointers[chosenMove - 1]; - AddTextPrinterParameterized(0, 7, labelStr, 0, 0x41, 0, NULL); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x2C\n\ - mov r9, r0\n\ - movs r0, 0\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerBattleMoves\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - mov r8, r0\n\ - str r0, [sp, 0x4]\n\ - movs r7, 0\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPP\n\ - movs r1, 0x29\n\ - mov r10, r1\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerPower\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - movs r1, 0x19\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAccuracy\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x6A\n\ - bl GetStringRightAlignXOffset\n\ - adds r4, r0, 0\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r1, r10\n\ - str r1, [sp]\n\ - mov r0, r8\n\ - str r0, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r9, r0\n\ - bne _081D29C4\n\ - movs r0, 0\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2AB6\n\ - .pool\n\ -_081D29C4:\n\ - mov r1, r9\n\ - lsls r0, r1, 1\n\ - add r0, r9\n\ - lsls r0, 2\n\ - ldr r1, =gBattleMoves\n\ - adds r6, r0, r1\n\ - ldrb r1, [r6, 0x2]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - ldr r1, =gTypeNames\n\ - adds r5, r0, r1\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gText_MoveRelearnerPP\n\ - movs r0, 0x1\n\ - movs r2, 0\n\ - bl GetStringWidth\n\ - adds r4, r0, 0x4\n\ - ldrb r1, [r6, 0x4]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x2\n\ - bl ConvertIntToDecimalStringN\n\ - lsls r3, r4, 24\n\ - lsrs r3, 24\n\ - mov r0, r10\n\ - str r0, [sp]\n\ - mov r1, r8\n\ - str r1, [sp, 0x4]\n\ - str r7, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - add r2, sp, 0xC\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x1]\n\ - cmp r0, 0x1\n\ - bhi _081D2A3C\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A4A\n\ - .pool\n\ -_081D2A3C:\n\ - ldrb r1, [r6, 0x1]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A4A:\n\ - movs r0, 0x19\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldrb r0, [r6, 0x3]\n\ - cmp r0, 0\n\ - bne _081D2A70\n\ - ldr r5, =gText_ThreeDashes\n\ - b _081D2A7E\n\ - .pool\n\ -_081D2A70:\n\ - ldrb r1, [r6, 0x3]\n\ - add r0, sp, 0xC\n\ - movs r2, 0\n\ - movs r3, 0x3\n\ - bl ConvertIntToDecimalStringN\n\ - add r5, sp, 0xC\n\ -_081D2A7E:\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - movs r0, 0xFF\n\ - str r0, [sp, 0x4]\n\ - movs r4, 0\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x6A\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gMoveDescriptionPointers\n\ - mov r0, r9\n\ - subs r0, 0x1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r4, [sp, 0x8]\n\ - movs r0, 0\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ -_081D2AB6:\n\ - add sp, 0x2C\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -NAKED -static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) -{ -#ifdef NONMATCHING - //u8 offset; - const u8 *labelStr; - const struct ContestMove *move; - u8 category; - const u8 **temp; - - MoveRelearnerShowHideHearts(chosenMove); - FillWindowPixelBuffer(1, 0x11); - labelStr = gText_MoveRelearnerContestMovesTitle; - // GCC compiles these as: - // add r3, r0, 0 - // lsls r3, r3, 24 - // lsrs r3, r3, 24 - // But in the original asm: - // lsls r3, r0, 24 - // lsrs r3, r3, 24 - //offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x80), 1, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerAppeal; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gText_MoveRelearnerJam; - //offset = GetStringRightAlignXOffset(1, labelStr, 0x5C); - AddTextPrinterParameterized(1, 1, labelStr, GetStringCenterAlignXOffset(1, labelStr, 0x5C), 0x29, TEXT_SPEED_FF, NULL); - - if (chosenMove == MENU_NOTHING_CHOSEN) - { - CopyWindowToVram(1, 2); - return; - } - - move = &gContestMoves[chosenMove]; - temp = (const u8**)gContestMoveTypeTextPointers; - category = move->contestCategory; - labelStr = temp[category]; - AddTextPrinterParameterized(1, 1, labelStr, 4, 0x19, TEXT_SPEED_FF, NULL); - - labelStr = gContestEffectDescriptionPointers[move->effect]; - AddTextPrinterParameterized(1, 1, labelStr, 0, 0x41, TEXT_SPEED_FF, NULL); - - CopyWindowToVram(1, 2); -#else - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0xC\n\ - adds r4, r0, 0\n\ - bl MoveRelearnerShowHideHearts\n\ - movs r0, 0x1\n\ - movs r1, 0x11\n\ - bl FillWindowPixelBuffer\n\ - ldr r5, =gText_MoveRelearnerContestMovesTitle\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x80\n\ - bl GetStringCenterAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - movs r7, 0xFF\n\ - str r7, [sp, 0x4]\n\ - movs r6, 0\n\ - str r6, [sp, 0x8]\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerAppeal\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x19\n\ - mov r8, r0\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - ldr r5, =gText_MoveRelearnerJam\n\ - movs r0, 0x1\n\ - adds r1, r5, 0\n\ - movs r2, 0x5C\n\ - bl GetStringRightAlignXOffset\n\ - lsls r3, r0, 24\n\ - lsrs r3, 24\n\ - movs r0, 0x29\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - cmp r4, r0\n\ - bne _081D2B6C\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ - b _081D2BB8\n\ - .pool\n\ -_081D2B6C:\n\ - lsls r4, 3\n\ - ldr r0, =gContestMoves\n\ - adds r4, r0\n\ - ldr r1, =gContestMoveTypeTextPointers\n\ - ldrb r0, [r4, 0x1]\n\ - lsls r0, 29\n\ - lsrs r0, 27\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - mov r0, r8\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x1\n\ - adds r2, r5, 0\n\ - movs r3, 0x4\n\ - bl AddTextPrinterParameterized\n\ - ldr r1, =gContestEffectDescriptionPointers\n\ - ldrb r0, [r4]\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - movs r0, 0x41\n\ - str r0, [sp]\n\ - str r7, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - movs r0, 0x1\n\ - movs r1, 0x7\n\ - adds r2, r5, 0\n\ - movs r3, 0\n\ - bl AddTextPrinterParameterized\n\ - movs r0, 0x1\n\ - movs r1, 0x2\n\ - bl CopyWindowToVram\n\ -_081D2BB8:\n\ - add sp, 0xC\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -#endif -} - -static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) -{ - if (onInit != TRUE) - PlaySE(SE_SELECT); - MoveRelearnerLoadBattleMoveDescription(itemIndex); - MoveRelearnerMenuLoadContestMoveDescription(itemIndex); -} - -void MoveRelearnerPrintText(u8 *str) -{ - u8 speed; - - FillWindowPixelBuffer(3, 0x11); - gTextFlags.canABSpeedUpPrint = TRUE; - speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); -} - -bool16 MoveRelearnerRunTextPrinters(void) -{ - RunTextPrinters(); - return IsTextPrinterActive(3); -} - -void MoveRelearnerCreateYesNoMenu(void) -{ - CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, 1, 0xE, 0); -} \ No newline at end of file diff --git a/src/move_relearner.c b/src/move_relearner.c index 7d5b51899..e148b9ace 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -12,7 +12,7 @@ #include "alloc.h" #include "menu.h" #include "menu_helpers.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "overworld.h" #include "palette.h" #include "pokemon_summary_screen.h" diff --git a/src/party_menu.c b/src/party_menu.c index 7e47cbf80..71609bf9e 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -37,7 +37,7 @@ #include "main.h" #include "menu.h" #include "menu_helpers.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" diff --git a/src/player_pc.c b/src/player_pc.c index f167062cb..38f556b28 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -28,7 +28,7 @@ #include "strings.h" #include "task.h" #include "window.h" -#include "menu_unknown.h" +#include "menu_specialized.h" // structures struct Struct203BCC4 diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 75e8da3f8..b06d0cba9 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -4,7 +4,7 @@ #include "alloc.h" #include "palette.h" #include "pokenav.h" -#include "menu_unknown.h" +#include "menu_specialized.h" #include "scanline_effect.h" #include "text.h" #include "bg.h" -- cgit v1.2.3 From eaddf396b2b19e342a03585f0527906aa7dcecd5 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 02:35:19 -0500 Subject: I was dumb and forgot to add merge fixes --- src/menu_specialized.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index d9b2270f4..bf5d2ec56 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -246,7 +246,7 @@ u8 sub_81D1C84(u8 a0) void sub_81D1D04(u8 a0) { - sub_8198070(sUnknown_0203CF48[a0], 0); + ClearStdWindowAndFrameToTransparent(sUnknown_0203CF48[a0], 0); ClearWindowTilemap(sUnknown_0203CF48[a0]); RemoveWindow(sUnknown_0203CF48[a0]); sUnknown_0203CF48[a0] = 0xFF; @@ -1587,17 +1587,17 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) if (!useContextWindow) { PutWindowTilemap(0); - SetWindowBorderStyle(0, 0, 0x1, 0xE); + DrawStdFrameWithCustomTileAndPalette(0, 0, 0x1, 0xE); } else { PutWindowTilemap(1); - SetWindowBorderStyle(1, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(1, 0, 1, 0xE); } PutWindowTilemap(2); PutWindowTilemap(3); - SetWindowBorderStyle(2, 0, 1, 0xE); - SetWindowBorderStyle(3, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(2, 0, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(3, 0, 1, 0xE); nullsub_79(); schedule_bg_copy_tilemap_to_vram(1); } -- cgit v1.2.3 From 146c194b0c638693270d6e4eac490e33a9dbb8fd Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 03:12:08 -0500 Subject: Actually change the variable name this time --- src/pokemon_summary_screen.c | 662 +++++++++++++++++++++---------------------- 1 file changed, 331 insertions(+), 331 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 01cafb100..3bbc832a0 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -160,7 +160,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData bool8 unk40EF; s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data u8 unk_filler4[6]; -} *sMonSummaryScreenData = NULL; +} *sMonSummaryScreen = NULL; EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sUnknown_0203CF21 = 0; ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0; @@ -1047,38 +1047,38 @@ static const u16 sSummaryMarkingsPalette[] = INCBIN_U16("graphics/interface/summ // code void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { - sMonSummaryScreenData = AllocZeroed(sizeof(*sMonSummaryScreenData)); - sMonSummaryScreenData->mode = mode; - sMonSummaryScreenData->monList.mons = mons; - sMonSummaryScreenData->curMonIndex = monIndex; - sMonSummaryScreenData->maxMonIndex = maxMonIndex; - sMonSummaryScreenData->callback = callback; + sMonSummaryScreen = AllocZeroed(sizeof(*sMonSummaryScreen)); + sMonSummaryScreen->mode = mode; + sMonSummaryScreen->monList.mons = mons; + sMonSummaryScreen->curMonIndex = monIndex; + sMonSummaryScreen->maxMonIndex = maxMonIndex; + sMonSummaryScreen->callback = callback; if (mode == PSS_MODE_BOX) - sMonSummaryScreenData->isBoxMon = TRUE; + sMonSummaryScreen->isBoxMon = TRUE; else - sMonSummaryScreenData->isBoxMon = FALSE; + sMonSummaryScreen->isBoxMon = FALSE; switch (mode) { case PSS_MODE_NORMAL: case PSS_MODE_BOX: - sMonSummaryScreenData->minPageIndex = 0; - sMonSummaryScreenData->maxPageIndex = 3; + sMonSummaryScreen->minPageIndex = 0; + sMonSummaryScreen->maxPageIndex = 3; break; case PSS_MODE_UNK1: - sMonSummaryScreenData->minPageIndex = 0; - sMonSummaryScreenData->maxPageIndex = 3; - sMonSummaryScreenData->unk40C8 = TRUE; + sMonSummaryScreen->minPageIndex = 0; + sMonSummaryScreen->maxPageIndex = 3; + sMonSummaryScreen->unk40C8 = TRUE; break; case PSS_MODE_SELECT_MOVE: - sMonSummaryScreenData->minPageIndex = 2; - sMonSummaryScreenData->maxPageIndex = 3; - sMonSummaryScreenData->lockMonFlag = TRUE; + sMonSummaryScreen->minPageIndex = 2; + sMonSummaryScreen->maxPageIndex = 3; + sMonSummaryScreen->lockMonFlag = TRUE; break; } - sMonSummaryScreenData->currPageIndex = sMonSummaryScreenData->minPageIndex; + sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex; SummaryScreen_SetUnknownTaskId(-1); if (gMonSpritesGfxPtr == 0) @@ -1090,13 +1090,13 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove) { ShowPokemonSummaryScreen(PSS_MODE_SELECT_MOVE, mons, monIndex, maxMonIndex, callback); - sMonSummaryScreenData->newMove = newMove; + sMonSummaryScreen->newMove = newMove; } void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) { ShowPokemonSummaryScreen(mode, mons, monIndex, maxMonIndex, callback); - sMonSummaryScreenData->unk40EF = TRUE; + sMonSummaryScreen->unk40EF = TRUE; } static void SummaryScreen_MainCB2(void) @@ -1149,7 +1149,7 @@ static bool8 SummaryScreen_LoadGraphics(void) break; case 5: InitBGs(); - sMonSummaryScreenData->switchCounter = 0; + sMonSummaryScreen->switchCounter = 0; gMain.state++; break; case 6: @@ -1165,12 +1165,12 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 9: - CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); - sMonSummaryScreenData->switchCounter = 0; + CopyMonToSummaryStruct(&sMonSummaryScreen->currentMon); + sMonSummaryScreen->switchCounter = 0; gMain.state++; break; case 10: - if (ExtractMonDataToSummaryStruct(&sMonSummaryScreenData->currentMon) != 0) + if (ExtractMonDataToSummaryStruct(&sMonSummaryScreen->currentMon) != 0) gMain.state++; break; case 11: @@ -1182,7 +1182,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 13: - PrintPageSpecificText(sMonSummaryScreenData->currPageIndex); + PrintPageSpecificText(sMonSummaryScreen->currPageIndex); gMain.state++; break; case 14: @@ -1190,29 +1190,29 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 15: - CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreen->currPageIndex); gMain.state++; break; case 16: ResetSpriteIds(); CreateMoveTypeIcons(); - sMonSummaryScreenData->switchCounter = 0; + sMonSummaryScreen->switchCounter = 0; gMain.state++; break; case 17: - sMonSummaryScreenData->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreenData->currentMon, &sMonSummaryScreenData->switchCounter); - if (sMonSummaryScreenData->spriteIds[0] != 0xFF) + sMonSummaryScreen->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreen->currentMon, &sMonSummaryScreen->switchCounter); + if (sMonSummaryScreen->spriteIds[0] != 0xFF) { - sMonSummaryScreenData->switchCounter = 0; + sMonSummaryScreen->switchCounter = 0; gMain.state++; } break; case 18: - CreateMonMarkingsSprite(&sMonSummaryScreenData->currentMon); + CreateMonMarkingsSprite(&sMonSummaryScreen->currentMon); gMain.state++; break; case 19: - CreateCaughtBallSprite(&sMonSummaryScreenData->currentMon); + CreateCaughtBallSprite(&sMonSummaryScreen->currentMon); gMain.state++; break; case 20: @@ -1224,7 +1224,7 @@ static bool8 SummaryScreen_LoadGraphics(void) gMain.state++; break; case 22: - if (sMonSummaryScreenData->mode != PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE) CreateTask(HandleInput, 0); else CreateTask(sub_81C171C, 0); @@ -1251,9 +1251,9 @@ static void InitBGs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sUnknown_0861CBB4, ARRAY_COUNT(sUnknown_0861CBB4)); - SetBgTilemapBuffer(1, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); - SetBgTilemapBuffer(2, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); - SetBgTilemapBuffer(3, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0]); + SetBgTilemapBuffer(1, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgTilemapBuffer(2, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); + SetBgTilemapBuffer(3, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0]); ResetAllBgsCoordinates(); schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); @@ -1268,64 +1268,64 @@ static void InitBGs(void) static bool8 SummaryScreen_DecompressGraphics(void) { - switch (sMonSummaryScreenData->switchCounter) + switch (sMonSummaryScreen->switchCounter) { case 0: reset_temp_tile_data_buffers(); decompress_and_copy_tile_data_to_vram(1, &gStatusScreenBitmap, 0, 0, 0); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 1: if (free_temp_tile_data_buffers_if_possible() != 1) { - LZDecompressWram(gPageInfoTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0]); - sMonSummaryScreenData->switchCounter++; + LZDecompressWram(gPageInfoTilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0]); + sMonSummaryScreen->switchCounter++; } break; case 2: - LZDecompressWram(gUnknown_08D98CC8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1]); - sMonSummaryScreenData->switchCounter++; + LZDecompressWram(gUnknown_08D98CC8, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1]); + sMonSummaryScreen->switchCounter++; break; case 3: - LZDecompressWram(gPageSkillsTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); - sMonSummaryScreenData->switchCounter++; + LZDecompressWram(gPageSkillsTilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_SKILLS][1]); + sMonSummaryScreen->switchCounter++; break; case 4: - LZDecompressWram(gPageBattleMovesTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); - sMonSummaryScreenData->switchCounter++; + LZDecompressWram(gPageBattleMovesTilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][1]); + sMonSummaryScreen->switchCounter++; break; case 5: - LZDecompressWram(gPageContestMovesTilemap, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); - sMonSummaryScreenData->switchCounter++; + LZDecompressWram(gPageContestMovesTilemap, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]); + sMonSummaryScreen->switchCounter++; break; case 6: LoadCompressedPalette(gStatusScreenPalette, 0, 0x100); LoadPalette(&gUnknown_08D85620, 0x81, 0x1E); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 7: LoadCompressedSpriteSheet(&sSpriteSheet_MoveTypes); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 8: LoadCompressedSpriteSheet(&sMoveSelectorSpriteSheet); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 9: LoadCompressedSpriteSheet(&sStatusIconsSpriteSheet); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 10: LoadCompressedSpritePalette(&sStatusIconsSpritePalette); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 11: LoadCompressedSpritePalette(&gUnknown_0861D07C); - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; break; case 12: LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); - sMonSummaryScreenData->switchCounter = 0; + sMonSummaryScreen->switchCounter = 0; return TRUE; } return FALSE; @@ -1333,24 +1333,24 @@ static bool8 SummaryScreen_DecompressGraphics(void) static void CopyMonToSummaryStruct(struct Pokemon *mon) { - if (!sMonSummaryScreenData->isBoxMon) + if (!sMonSummaryScreen->isBoxMon) { - struct Pokemon *partyMon = sMonSummaryScreenData->monList.mons; - *mon = partyMon[sMonSummaryScreenData->curMonIndex]; + struct Pokemon *partyMon = sMonSummaryScreen->monList.mons; + *mon = partyMon[sMonSummaryScreen->curMonIndex]; } else { - struct BoxPokemon *boxMon = sMonSummaryScreenData->monList.boxMons; - BoxMonToMon(&boxMon[sMonSummaryScreenData->curMonIndex], mon); + struct BoxPokemon *boxMon = sMonSummaryScreen->monList.boxMons; + BoxMonToMon(&boxMon[sMonSummaryScreen->curMonIndex], mon); } } static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) { u32 i; - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; // Spread the data extraction over multiple frames. - switch (sMonSummaryScreenData->switchCounter) + switch (sMonSummaryScreen->switchCounter) { case 0: sum->species = GetMonData(mon, MON_DATA_SPECIES); @@ -1377,7 +1377,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) sum->ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); break; case 2: - if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) { sum->nature = GetNature(mon); sum->currentHP = GetMonData(mon, MON_DATA_HP); @@ -1415,45 +1415,45 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) sum->ribbonCount = GetMonData(mon, MON_DATA_RIBBON_COUNT); return TRUE; } - sMonSummaryScreenData->switchCounter++; + sMonSummaryScreen->switchCounter++; return FALSE; } static void sub_81C0348(void) { - if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreenData->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if (sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) { sub_81C1DA4(0, 255); sub_81C1EFC(0, 255, 0); } else { - DrawContestMoveHearts(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]); - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); - SetBgTilemapBuffer(1, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); - SetBgTilemapBuffer(2, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + DrawContestMoveHearts(sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + SetBgTilemapBuffer(1, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); + SetBgTilemapBuffer(2, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); ChangeBgX(2, 0x10000, 1); ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } - if (sMonSummaryScreenData->summary.ailment == AILMENT_NONE) + if (sMonSummaryScreen->summary.ailment == AILMENT_NONE) { sub_81C2074(0, 0xFF); } else { - if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreenData->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if (sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } LimitEggSummaryPageDisplay(); - DrawPokerusCuredSymbol(&sMonSummaryScreenData->currentMon); + DrawPokerusCuredSymbol(&sMonSummaryScreen->currentMon); } static void sub_81C0434(void) { FreeAllWindowBuffers(); - Free(sMonSummaryScreenData); + Free(sMonSummaryScreen); } static void BeginCloseSummaryScreen(u8 taskId) @@ -1466,8 +1466,8 @@ static void CloseSummaryScreen(u8 taskId) { if (sub_81221EC() != TRUE && !gPaletteFade.active) { - SetMainCallback2(sMonSummaryScreenData->callback); - gLastViewedMonIndex = sMonSummaryScreenData->curMonIndex; + SetMainCallback2(sMonSummaryScreen->callback); + gLastViewedMonIndex = sMonSummaryScreen->curMonIndex; SummaryScreen_DestroyUnknownTask(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1502,9 +1502,9 @@ static void HandleInput(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_SKILLS) + if (sMonSummaryScreen->currPageIndex != PSS_PAGE_SKILLS) { - if (sMonSummaryScreenData->currPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreen->currPageIndex == PSS_PAGE_INFO) { StopPokemonAnimations(); PlaySE(SE_SELECT); @@ -1531,12 +1531,12 @@ static void ChangeSummaryPokemon(u8 taskId, s8 delta) s8 v1; s8 v2; - if (!sMonSummaryScreenData->lockMonFlag) + if (!sMonSummaryScreen->lockMonFlag) { - if (sMonSummaryScreenData->isBoxMon == TRUE) + if (sMonSummaryScreen->isBoxMon == TRUE) { - if (sMonSummaryScreenData->currPageIndex != PSS_PAGE_INFO) + if (sMonSummaryScreen->currPageIndex != PSS_PAGE_INFO) { if (delta == 1) delta = 0; @@ -1550,7 +1550,7 @@ static void ChangeSummaryPokemon(u8 taskId, s8 delta) else delta = 3; } - v1 = sub_80D214C(sMonSummaryScreenData->monList.boxMons, sMonSummaryScreenData->curMonIndex, sMonSummaryScreenData->maxMonIndex, delta); + v1 = sub_80D214C(sMonSummaryScreen->monList.boxMons, sMonSummaryScreen->curMonIndex, sMonSummaryScreen->maxMonIndex, delta); } else if (IsMultiBattle() == TRUE) { @@ -1564,14 +1564,14 @@ static void ChangeSummaryPokemon(u8 taskId, s8 delta) if (v1 != -1) { PlaySE(SE_SELECT); - if (sMonSummaryScreenData->summary.ailment != AILMENT_NONE) + if (sMonSummaryScreen->summary.ailment != AILMENT_NONE) { SetSpriteInvisibility(2, 1); ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); schedule_bg_copy_tilemap_to_vram(0); sub_81C2074(0, 2); } - sMonSummaryScreenData->curMonIndex = v1; + sMonSummaryScreen->curMonIndex = v1; gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_81C0704; } @@ -1589,36 +1589,36 @@ static void sub_81C0704(u8 taskId) break; case 1: SummaryScreen_DestroyUnknownTask(); - DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreenData->spriteIds[0]]); + DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreen->spriteIds[0]]); break; case 2: - DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreenData->spriteIds[1]]); + DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreen->spriteIds[1]]); break; case 3: - CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); - sMonSummaryScreenData->switchCounter = 0; + CopyMonToSummaryStruct(&sMonSummaryScreen->currentMon); + sMonSummaryScreen->switchCounter = 0; break; case 4: - if (ExtractMonDataToSummaryStruct(&sMonSummaryScreenData->currentMon) == FALSE) + if (ExtractMonDataToSummaryStruct(&sMonSummaryScreen->currentMon) == FALSE) return; break; case 5: - RemoveAndCreateMonMarkingsSprite(&sMonSummaryScreenData->currentMon); + RemoveAndCreateMonMarkingsSprite(&sMonSummaryScreen->currentMon); break; case 6: - CreateCaughtBallSprite(&sMonSummaryScreenData->currentMon); + CreateCaughtBallSprite(&sMonSummaryScreen->currentMon); break; case 7: - if (sMonSummaryScreenData->summary.ailment != AILMENT_NONE) + if (sMonSummaryScreen->summary.ailment != AILMENT_NONE) sub_81C2074(10, -2); - DrawPokerusCuredSymbol(&sMonSummaryScreenData->currentMon); + DrawPokerusCuredSymbol(&sMonSummaryScreen->currentMon); data[1] = 0; break; case 8: - sMonSummaryScreenData->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreenData->currentMon, &data[1]); - if (sMonSummaryScreenData->spriteIds[0] == 0xFF) + sMonSummaryScreen->spriteIds[0] = CreatePokemonSprite(&sMonSummaryScreen->currentMon, &data[1]); + if (sMonSummaryScreen->spriteIds[0] == 0xFF) return; - gSprites[sMonSummaryScreenData->spriteIds[0]].data[2] = 1; + gSprites[sMonSummaryScreen->spriteIds[0]].data[2] = 1; CheckExperienceProgressBar(); data[1] = 0; break; @@ -1629,11 +1629,11 @@ static void sub_81C0704(u8 taskId) sub_81C25E8(); break; case 11: - PrintPageSpecificText(sMonSummaryScreenData->currPageIndex); + PrintPageSpecificText(sMonSummaryScreen->currPageIndex); LimitEggSummaryPageDisplay(); break; case 12: - gSprites[sMonSummaryScreenData->spriteIds[0]].data[2] = 0; + gSprites[sMonSummaryScreen->spriteIds[0]].data[2] = 0; break; default: if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) @@ -1648,25 +1648,25 @@ static void sub_81C0704(u8 taskId) static s8 sub_81C08F8(s8 a) { - struct Pokemon *mon = sMonSummaryScreenData->monList.mons; + struct Pokemon *mon = sMonSummaryScreen->monList.mons; - if (sMonSummaryScreenData->currPageIndex == PSS_PAGE_INFO) + if (sMonSummaryScreen->currPageIndex == PSS_PAGE_INFO) { - if (a == -1 && sMonSummaryScreenData->curMonIndex == 0) + if (a == -1 && sMonSummaryScreen->curMonIndex == 0) return -1; - else if (a == 1 && sMonSummaryScreenData->curMonIndex >= sMonSummaryScreenData->maxMonIndex) + else if (a == 1 && sMonSummaryScreen->curMonIndex >= sMonSummaryScreen->maxMonIndex) return -1; else - return sMonSummaryScreenData->curMonIndex + a; + return sMonSummaryScreen->curMonIndex + a; } else { - s8 index = sMonSummaryScreenData->curMonIndex; + s8 index = sMonSummaryScreen->curMonIndex; do { index += a; - if (index < 0 || index > sMonSummaryScreenData->maxMonIndex) + if (index < 0 || index > sMonSummaryScreen->maxMonIndex) return -1; } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0); return index; @@ -1675,13 +1675,13 @@ static s8 sub_81C08F8(s8 a) static s8 sub_81C09B4(s8 a) { - struct Pokemon *mon = sMonSummaryScreenData->monList.mons; + struct Pokemon *mon = sMonSummaryScreen->monList.mons; s8 r5 = 0; u8 i; for (i = 0; i < 6; i++) { - if (gUnknown_0861CC1C[i] == sMonSummaryScreenData->curMonIndex) + if (gUnknown_0861CC1C[i] == sMonSummaryScreen->curMonIndex) { r5 = i; break; @@ -1706,7 +1706,7 @@ static bool8 sub_81C0A50(struct Pokemon* mon) { if (GetMonData(mon, MON_DATA_SPECIES) == SPECIES_NONE) return FALSE; - else if (sMonSummaryScreenData->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) + else if (sMonSummaryScreen->curMonIndex != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0) return TRUE; else return FALSE; @@ -1714,25 +1714,25 @@ static bool8 sub_81C0A50(struct Pokemon* mon) static void ChangePage(u8 taskId, s8 delta) { - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; s16 *data = gTasks[taskId].data; if (summary->isEgg) return; - else if (delta == -1&& sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->minPageIndex) + else if (delta == -1 && sMonSummaryScreen->currPageIndex == sMonSummaryScreen->minPageIndex) return; - else if (delta == 1 && sMonSummaryScreenData->currPageIndex == sMonSummaryScreenData->maxPageIndex) + else if (delta == 1 && sMonSummaryScreen->currPageIndex == sMonSummaryScreen->maxPageIndex) return; PlaySE(SE_SELECT); - ClearPageWindowTilemaps(sMonSummaryScreenData->currPageIndex); - sMonSummaryScreenData->currPageIndex += delta; + ClearPageWindowTilemaps(sMonSummaryScreen->currPageIndex); + sMonSummaryScreen->currPageIndex += delta; data[0] = 0; if (delta == 1) SetTaskFuncWithFollowupFunc(taskId, PssScrollRight, gTasks[taskId].func); else SetTaskFuncWithFollowupFunc(taskId, PssScrollLeft, gTasks[taskId].func); - CreateTextPrinterTask(sMonSummaryScreenData->currPageIndex); + CreateTextPrinterTask(sMonSummaryScreen->currPageIndex); HidePageSpecificSprites(); } @@ -1741,7 +1741,7 @@ static void PssScrollRight(u8 taskId) // Scroll right s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (sMonSummaryScreenData->bgDisplayOrder == 0) + if (sMonSummaryScreen->bgDisplayOrder == 0) { data[1] = 1; SetBgAttribute(1, BG_ATTR_PRIORITY, 1); @@ -1756,7 +1756,7 @@ static void PssScrollRight(u8 taskId) // Scroll right schedule_bg_copy_tilemap_to_vram(2); } ChangeBgX(data[1], 0, 0); - SetBgTilemapBuffer(data[1], sMonSummaryScreenData->bgTilemapBuffers[sMonSummaryScreenData->currPageIndex][0]); + SetBgTilemapBuffer(data[1], sMonSummaryScreen->bgTilemapBuffers[sMonSummaryScreen->currPageIndex][0]); ShowBg(1); ShowBg(2); } @@ -1769,11 +1769,11 @@ static void PssScrollRight(u8 taskId) // Scroll right static void PssScrollRightEnd(u8 taskId) // display right { s16 *data = gTasks[taskId].data; - sMonSummaryScreenData->bgDisplayOrder ^= 1; + sMonSummaryScreen->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; DrawPagination(); - CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreen->currPageIndex); SetTypeIcons(); CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); @@ -1784,7 +1784,7 @@ static void PssScrollLeft(u8 taskId) // Scroll left s16 *data = gTasks[taskId].data; if (data[0] == 0) { - if (sMonSummaryScreenData->bgDisplayOrder == 0) + if (sMonSummaryScreen->bgDisplayOrder == 0) data[1] = 2; else data[1] = 1; @@ -1799,7 +1799,7 @@ static void PssScrollLeft(u8 taskId) // Scroll left static void PssScrollLeftEnd(u8 taskId) // display left { s16 *data = gTasks[taskId].data; - if (sMonSummaryScreenData->bgDisplayOrder == 0) + if (sMonSummaryScreen->bgDisplayOrder == 0) { SetBgAttribute(1, BG_ATTR_PRIORITY, 1); SetBgAttribute(2, BG_ATTR_PRIORITY, 2); @@ -1811,18 +1811,18 @@ static void PssScrollLeftEnd(u8 taskId) // display left SetBgAttribute(1, BG_ATTR_PRIORITY, 2); schedule_bg_copy_tilemap_to_vram(1); } - if (sMonSummaryScreenData->currPageIndex > 1) + if (sMonSummaryScreen->currPageIndex > 1) { - SetBgTilemapBuffer(data[1], (u8*)sMonSummaryScreenData + ((sMonSummaryScreenData->currPageIndex << 12) + 0xFFFFF0BC)); + SetBgTilemapBuffer(data[1], (u8*)sMonSummaryScreen + ((sMonSummaryScreen->currPageIndex << 12) + 0xFFFFF0BC)); ChangeBgX(data[1], 0x10000, 0); } ShowBg(1); ShowBg(2); - sMonSummaryScreenData->bgDisplayOrder ^= 1; + sMonSummaryScreen->bgDisplayOrder ^= 1; data[1] = 0; data[0] = 0; DrawPagination(); - CreatePageWindowTilemaps(sMonSummaryScreenData->currPageIndex); + CreatePageWindowTilemaps(sMonSummaryScreen->currPageIndex); SetTypeIcons(); CheckExperienceProgressBar(); SwitchTaskToFollowupFunc(taskId); @@ -1830,27 +1830,27 @@ static void PssScrollLeftEnd(u8 taskId) // display left static void CheckExperienceProgressBar(void) { - if (sMonSummaryScreenData->currPageIndex == 1) - DrawExperienceProgressBar(&sMonSummaryScreenData->currentMon); + if (sMonSummaryScreen->currPageIndex == 1) + DrawExperienceProgressBar(&sMonSummaryScreen->currentMon); } static void sub_81C0E48(u8 taskId) { u16 move; - sMonSummaryScreenData->firstMoveIndex = 0; - move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + sMonSummaryScreen->firstMoveIndex = 0; + move = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); - if (gSprites[sMonSummaryScreenData->spriteIds[2]].invisible == 0) + if (gSprites[sMonSummaryScreen->spriteIds[2]].invisible == 0) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); - if (!sMonSummaryScreenData->unk40C8) + if (!sMonSummaryScreen->unk40C8) { ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); } - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 0); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 0); PrintMoveDetails(move); PrintNewMoveDetailsOrCancelText(); SetNewMoveTypeIcon(); @@ -1871,17 +1871,17 @@ static void HandleInput_MoveSelect(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, -1, &sMonSummaryScreen->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, 1, &sMonSummaryScreen->firstMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (sMonSummaryScreenData->unk40C8 == TRUE - || (sMonSummaryScreenData->newMove == MOVE_NONE && sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES)) + if (sMonSummaryScreen->unk40C8 == TRUE + || (sMonSummaryScreen->newMove == MOVE_NONE && sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES)) { PlaySE(SE_SELECT); sub_81C11F4(taskId); @@ -1909,7 +1909,7 @@ static bool8 sub_81C1040(void) u8 i; for (i = 1; i < MAX_MON_MOVES; i++) { - if (sMonSummaryScreenData->summary.moves[i] != 0) + if (sMonSummaryScreen->summary.moves[i] != 0) return TRUE; } return FALSE; @@ -1932,10 +1932,10 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) moveIndex = a[0]; if (moveIndex == MAX_MON_MOVES) { - move = sMonSummaryScreenData->newMove; + move = sMonSummaryScreen->newMove; break; } - move = sMonSummaryScreenData->summary.moves[moveIndex]; + move = sMonSummaryScreen->summary.moves[moveIndex]; if (move != 0) break; } @@ -1943,16 +1943,16 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) schedule_bg_copy_tilemap_to_vram(1); schedule_bg_copy_tilemap_to_vram(2); PrintMoveDetails(move); - if ((*c == 4 && sMonSummaryScreenData->newMove == MOVE_NONE) || a[1] == 1) + if ((*c == 4 && sMonSummaryScreen->newMove == MOVE_NONE) || a[1] == 1) { ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); sub_81C1EFC(9, -3, move); } - if (*c != 4 && moveIndex == 4 && sMonSummaryScreenData->newMove == MOVE_NONE) + if (*c != 4 && moveIndex == 4 && sMonSummaryScreen->newMove == MOVE_NONE) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); @@ -1961,7 +1961,7 @@ static void sub_81C1070(s16 *a, s8 b, u8 *c) sub_81C1EFC(0, 3, 0); } *c = moveIndex; - if (c == &sMonSummaryScreenData->firstMoveIndex) + if (c == &sMonSummaryScreen->firstMoveIndex) sub_81C4D18(8); else sub_81C4D18(18); @@ -1973,10 +1973,10 @@ static void sub_81C11F4(u8 taskId) ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); PrintMoveDetails(0); - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); - sub_81C2194(sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, 1); + sub_81C2194(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, 1); sub_81C4064(); - if (sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); @@ -1991,7 +1991,7 @@ static void sub_81C11F4(u8 taskId) static void sub_81C129C(u8 taskId) { - sMonSummaryScreenData->secondMoveIndex = sMonSummaryScreenData->firstMoveIndex; + sMonSummaryScreen->secondMoveIndex = sMonSummaryScreen->firstMoveIndex; sub_81C4C84(1); sub_81C4AF8(18); gTasks[taskId].func = sub_81C12E4; @@ -2006,16 +2006,16 @@ static void sub_81C12E4(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 3; - sub_81C1070(&data[0], -1, &sMonSummaryScreenData->secondMoveIndex); + sub_81C1070(&data[0], -1, &sMonSummaryScreen->secondMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 3; - sub_81C1070(&data[0], 1, &sMonSummaryScreenData->secondMoveIndex); + sub_81C1070(&data[0], 1, &sMonSummaryScreen->secondMoveIndex); } else if (gMain.newKeys & A_BUTTON) { - if (sMonSummaryScreenData->firstMoveIndex == sMonSummaryScreenData->secondMoveIndex) + if (sMonSummaryScreen->firstMoveIndex == sMonSummaryScreen->secondMoveIndex) { sub_81C13B0(taskId, 0); } @@ -2041,23 +2041,23 @@ static void sub_81C13B0(u8 taskId, bool8 b) if (b == TRUE) { - if (!sMonSummaryScreenData->isBoxMon) + if (!sMonSummaryScreen->isBoxMon) { - struct Pokemon *why = sMonSummaryScreenData->monList.mons; - SwapMonMoves(&why[sMonSummaryScreenData->curMonIndex], sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); + struct Pokemon *why = sMonSummaryScreen->monList.mons; + SwapMonMoves(&why[sMonSummaryScreen->curMonIndex], sMonSummaryScreen->firstMoveIndex, sMonSummaryScreen->secondMoveIndex); } else { - struct BoxPokemon *why = sMonSummaryScreenData->monList.boxMons; - SwapBoxMonMoves(&why[sMonSummaryScreenData->curMonIndex], sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); + struct BoxPokemon *why = sMonSummaryScreen->monList.boxMons; + SwapBoxMonMoves(&why[sMonSummaryScreen->curMonIndex], sMonSummaryScreen->firstMoveIndex, sMonSummaryScreen->secondMoveIndex); } - CopyMonToSummaryStruct(&sMonSummaryScreenData->currentMon); - sub_81C40A0(sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); - sub_81C4568(sMonSummaryScreenData->firstMoveIndex, sMonSummaryScreenData->secondMoveIndex); - sMonSummaryScreenData->firstMoveIndex = sMonSummaryScreenData->secondMoveIndex; + CopyMonToSummaryStruct(&sMonSummaryScreen->currentMon); + sub_81C40A0(sMonSummaryScreen->firstMoveIndex, sMonSummaryScreen->secondMoveIndex); + sub_81C4568(sMonSummaryScreen->firstMoveIndex, sMonSummaryScreen->secondMoveIndex); + sMonSummaryScreen->firstMoveIndex = sMonSummaryScreen->secondMoveIndex; } - move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + move = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; PrintMoveDetails(move); DrawContestMoveHearts(move); schedule_bg_copy_tilemap_to_vram(1); @@ -2067,7 +2067,7 @@ static void sub_81C13B0(u8 taskId, bool8 b) static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) { - struct PokeSummary* summary = &sMonSummaryScreenData->summary; + struct PokeSummary* summary = &sMonSummaryScreen->summary; u16 move1 = summary->moves[moveIndex1]; u16 move2 = summary->moves[moveIndex2]; @@ -2102,7 +2102,7 @@ static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2) { - struct PokeSummary* summary = &sMonSummaryScreenData->summary; + struct PokeSummary* summary = &sMonSummaryScreen->summary; u16 move1 = summary->moves[moveIndex1]; u16 move2 = summary->moves[moveIndex2]; @@ -2153,12 +2153,12 @@ static void HandleReplaceMoveInput(u8 taskId) if (gMain.newKeys & DPAD_UP) { data[0] = 4; - sub_81C1070(data, -1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, -1, &sMonSummaryScreen->firstMoveIndex); } else if (gMain.newKeys & DPAD_DOWN) { data[0] = 4; - sub_81C1070(data, 1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(data, 1, &sMonSummaryScreen->firstMoveIndex); } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { @@ -2174,7 +2174,7 @@ static void HandleReplaceMoveInput(u8 taskId) { StopPokemonAnimations(); PlaySE(SE_SELECT); - sUnknown_0203CF21 = sMonSummaryScreenData->firstMoveIndex; + sUnknown_0203CF21 = sMonSummaryScreen->firstMoveIndex; gSpecialVar_0x8005 = sUnknown_0203CF21; BeginCloseSummaryScreen(taskId); } @@ -2199,7 +2199,7 @@ static void HandleReplaceMoveInput(u8 taskId) static bool8 CanReplaceMove(void) { - if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES || sMonSummaryScreenData->newMove == MOVE_NONE || IsMoveHm(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]) != 1) + if (sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES || sMonSummaryScreen->newMove == MOVE_NONE || IsMoveHm(sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]) != 1) return TRUE; else return FALSE; @@ -2227,7 +2227,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], -1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(&data[0], -1, &sMonSummaryScreen->firstMoveIndex); data[1] = 0; gTasks[taskId].func = HandleReplaceMoveInput; } @@ -2235,18 +2235,18 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) { data[1] = 1; data[0] = 4; - sub_81C1070(&data[0], 1, &sMonSummaryScreenData->firstMoveIndex); + sub_81C1070(&data[0], 1, &sMonSummaryScreen->firstMoveIndex); data[1] = 0; gTasks[taskId].func = HandleReplaceMoveInput; } else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1) { - if (sMonSummaryScreenData->currPageIndex != 2) + if (sMonSummaryScreen->currPageIndex != 2) { ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); - move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + move = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, -1); sub_81C1DA4(9, -2); @@ -2255,12 +2255,12 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2) { - if (sMonSummaryScreenData->currPageIndex != 3) + if (sMonSummaryScreen->currPageIndex != 3) { ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); - move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + move = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; gTasks[taskId].func = HandleReplaceMoveInput; ChangePage(taskId, 1); sub_81C1DA4(9, -2); @@ -2270,9 +2270,9 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId) else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); - move = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + move = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; PrintMoveDetails(move); schedule_bg_copy_tilemap_to_vram(0); sub_81C1DA4(9, -3); @@ -2296,30 +2296,30 @@ static void DrawPagination(void) // Updates the pagination dots at the top of th { u8 j = i * 2; - if (i < sMonSummaryScreenData->minPageIndex) + if (i < sMonSummaryScreen->minPageIndex) { alloced[j + 0] = 0x40; alloced[j + 1] = 0x40; alloced[j + 8] = 0x50; alloced[j + 9] = 0x50; } - else if (i > sMonSummaryScreenData->maxPageIndex) + else if (i > sMonSummaryScreen->maxPageIndex) { alloced[j + 0] = 0x4A; alloced[j + 1] = 0x4A; alloced[j + 8] = 0x5A; alloced[j + 9] = 0x5A; } - else if (i < sMonSummaryScreenData->currPageIndex) + else if (i < sMonSummaryScreen->currPageIndex) { alloced[j + 0] = 0x46; alloced[j + 1] = 0x47; alloced[j + 8] = 0x56; alloced[j + 9] = 0x57; } - else if (i == sMonSummaryScreenData->currPageIndex) + else if (i == sMonSummaryScreen->currPageIndex) { - if (i != sMonSummaryScreenData->maxPageIndex) + if (i != sMonSummaryScreen->maxPageIndex) { alloced[j + 0] = 0x41; alloced[j + 1] = 0x42; @@ -2334,7 +2334,7 @@ static void DrawPagination(void) // Updates the pagination dots at the top of th alloced[j + 9] = 0x5C; } } - else if (i != sMonSummaryScreenData->maxPageIndex) + else if (i != sMonSummaryScreen->maxPageIndex) { alloced[j + 0] = 0x43; alloced[j + 1] = 0x44; @@ -2389,7 +2389,7 @@ static void sub_81C1DA4(u16 a, s16 b) b = sUnknown_0861CC04.field_6; if (b == 0 || b == sUnknown_0861CC04.field_6) { - sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], b, 1); } else { @@ -2415,17 +2415,17 @@ static void sub_81C1E20(u8 taskId) { data[1] = sUnknown_0861CC04.field_6; } - sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); + sub_81C1CB0(&sUnknown_0861CC04, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= sUnknown_0861CC04.field_6) { if (data[0] < 0) { - if (sMonSummaryScreenData->currPageIndex == 2) + if (sMonSummaryScreen->currPageIndex == 2) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else { - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } @@ -2441,7 +2441,7 @@ static void sub_81C1EFC(u16 a, s16 b, u16 move) if (b > sUnknown_0861CC10.field_6) b = sUnknown_0861CC10.field_6; if (b == 0 || b == sUnknown_0861CC10.field_6) - sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); + sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], b, 1); else { u8 taskId = FindTaskIdByFunc(sub_81C1F80); @@ -2465,18 +2465,18 @@ static void sub_81C1F80(u8 taskId) { data[1] = sUnknown_0861CC10.field_6; } - sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); + sub_81C1CB0(&sUnknown_0861CC10, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], data[1], 1); if (data[1] <= 0 || data[1] >= sUnknown_0861CC10.field_6) { if (data[0] < 0) { - if (sMonSummaryScreenData->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) + if (sMonSummaryScreen->currPageIndex == 3 && FuncIsActiveTask(PssScrollRight) == 0) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); DrawContestMoveHearts(data[2]); } else { - if (!gSprites[sMonSummaryScreenData->spriteIds[2]].invisible) + if (!gSprites[sMonSummaryScreen->spriteIds[2]].invisible) { PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } @@ -2495,8 +2495,8 @@ static void sub_81C2074(u16 a, s16 b) b = sUnknown_0861CBEC.field_6; if (b == 0 || b == sUnknown_0861CBEC.field_6) { - sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); - sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); + sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0], b, 0); } else { @@ -2514,8 +2514,8 @@ static void sub_81C20F0(u8 taskId) data[1] = 0; else if (data[1] > sUnknown_0861CBEC.field_6) data[1] = sUnknown_0861CBEC.field_6; - sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); - sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBEC, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); + sub_81C1CB0(&sUnknown_0861CBF8, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0], data[1], 0); schedule_bg_copy_tilemap_to_vram(3); if (data[1] <= 0 || data[1] >= sUnknown_0861CBEC.field_6) { @@ -2561,13 +2561,13 @@ static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mo { if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0)) // If yes it draws the cured symbol { - sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; - sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; + sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x2C; + sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x2C; } else { - sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; - sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; + sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][0][0x223] = 0x81A; + sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_INFO][1][0x223] = 0x81A; } schedule_bg_copy_tilemap_to_vram(3); } @@ -2584,7 +2584,7 @@ static void sub_81C228C(bool8 isMonShiny) static void DrawExperienceProgressBar(struct Pokemon *unused) { s64 numExpProgressBarTicks; - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; u16 *r9; u8 i; @@ -2605,7 +2605,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) numExpProgressBarTicks = 0; } - r9 = &sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; + r9 = &sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_SKILLS][1][0x255]; for (i = 0; i < 8; i++) { if (numExpProgressBarTicks > 7) @@ -2617,7 +2617,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) numExpProgressBarTicks = 0; } - if (GetBgTilemapBuffer(1) == sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) + if (GetBgTilemapBuffer(1) == sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_SKILLS][0]) schedule_bg_copy_tilemap_to_vram(1); else schedule_bg_copy_tilemap_to_vram(2); @@ -2625,7 +2625,7 @@ static void DrawExperienceProgressBar(struct Pokemon *unused) static void DrawContestMoveHearts(u16 move) { - u16 *tilemap = sMonSummaryScreenData->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; + u16 *tilemap = sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][1]; u8 i; u8 effectValue; @@ -2669,7 +2669,7 @@ static void DrawContestMoveHearts(u16 move) static void LimitEggSummaryPageDisplay(void) // If the pokemon is an egg, limit the number of pages displayed to 1 { - if (sMonSummaryScreenData->summary.isEgg) + if (sMonSummaryScreen->summary.isEgg) ChangeBgX(3, 0x10000, 0); else ChangeBgX(3, 0, 0); @@ -2685,9 +2685,9 @@ static void ResetWindows(void) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); } - for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) { - sMonSummaryScreenData->windowIds[i] = 0xFF; + sMonSummaryScreen->windowIds[i] = 0xFF; } } @@ -2701,7 +2701,7 @@ static void sub_81C25E8(void) FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, PIXEL_FILL(0)); FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, PIXEL_FILL(0)); FillWindowPixelBuffer(PSS_LABEL_WINDOW_PORTRAIT_SPECIES, PIXEL_FILL(0)); - if (!sMonSummaryScreenData->summary.isEgg) + if (!sMonSummaryScreen->summary.isEgg) sub_81C2628(); else sub_81C2794(); @@ -2711,8 +2711,8 @@ static void sub_81C25E8(void) static void sub_81C2628(void) { u8 strArray[16]; - struct Pokemon *mon = &sMonSummaryScreenData->currentMon; - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct Pokemon *mon = &sMonSummaryScreen->currentMon; + struct PokeSummary *summary = &sMonSummaryScreen->summary; u16 dexNum = SpeciesToPokedexNum(summary->species); if (dexNum != 0xFFFF) { @@ -2755,7 +2755,7 @@ static void sub_81C2628(void) static void sub_81C2794(void) { - GetMonNickname(&sMonSummaryScreenData->currentMon, gStringVar1); + GetMonNickname(&sMonSummaryScreen->currentMon, gStringVar1); SummaryScreen_PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME, gStringVar1, 0, 1, 0, 1); PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_NICKNAME); ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); @@ -2866,9 +2866,9 @@ static void CreatePageWindowTilemaps(u8 page) break; case PSS_PAGE_BATTLE_MOVES: PutWindowTilemap(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE); - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else @@ -2878,9 +2878,9 @@ static void CreatePageWindowTilemaps(u8 page) break; case PSS_PAGE_CONTEST_MOVES: PutWindowTilemap(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE); - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PutWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); } else @@ -2890,9 +2890,9 @@ static void CreatePageWindowTilemaps(u8 page) break; } - for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) { - PutWindowTilemap(sMonSummaryScreenData->windowIds[i]); + PutWindowTilemap(sMonSummaryScreen->windowIds[i]); } schedule_bg_copy_tilemap_to_vram(0); @@ -2915,9 +2915,9 @@ static void ClearPageWindowTilemaps(u8 page) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_EXP); break; case PSS_PAGE_BATTLE_MOVES: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); } else @@ -2926,9 +2926,9 @@ static void ClearPageWindowTilemaps(u8 page) } break; case PSS_PAGE_CONTEST_MOVES: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); } else @@ -2938,7 +2938,7 @@ static void ClearPageWindowTilemaps(u8 page) break; } - for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) { SummaryScreen_RemoveWindowByIndex(i); } @@ -2948,7 +2948,7 @@ static void ClearPageWindowTilemaps(u8 page) static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 templateId) { - u8 *windowIdPtr = &(sMonSummaryScreenData->windowIds[templateId]); + u8 *windowIdPtr = &(sMonSummaryScreen->windowIds[templateId]); if (*windowIdPtr == 0xFF) { *windowIdPtr = AddWindow(&template[templateId]); @@ -2959,7 +2959,7 @@ static u8 AddWindowFromTemplateList(const struct WindowTemplate *template, u8 te static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) { - u8 *windowIdPtr = &(sMonSummaryScreenData->windowIds[windowIndex]); + u8 *windowIdPtr = &(sMonSummaryScreen->windowIds[windowIndex]); if (*windowIdPtr != 0xFF) { ClearWindowTilemap(*windowIdPtr); @@ -2971,10 +2971,10 @@ static void SummaryScreen_RemoveWindowByIndex(u8 windowIndex) static void PrintPageSpecificText(u8 pageIndex) { u16 i; - for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->windowIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->windowIds); i++) { - if (sMonSummaryScreenData->windowIds[i] != 0xFF) - FillWindowPixelBuffer(sMonSummaryScreenData->windowIds[i], PIXEL_FILL(0)); + if (sMonSummaryScreen->windowIds[i] != 0xFF) + FillWindowPixelBuffer(sMonSummaryScreen->windowIds[i], PIXEL_FILL(0)); } sTextPrinterFunctions[pageIndex](); } @@ -2986,7 +2986,7 @@ static void CreateTextPrinterTask(u8 pageIndex) static void PrintInfoPageText(void) { - if (sMonSummaryScreenData->summary.isEgg) + if (sMonSummaryScreen->summary.isEgg) { PrintEggOTName(); PrintEggOTID(); @@ -3043,10 +3043,10 @@ static void PrintMonOTName(void) windowId = AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ORIGINAL_TRAINER); SummaryScreen_PrintTextOnWindow(windowId, gText_OTSlash, 0, 1, 0, 1); x = GetStringWidth(1, gText_OTSlash, 0); - if (sMonSummaryScreenData->summary.OTGender == 0) - SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreenData->summary.OTName, x, 1, 0, 5); + if (sMonSummaryScreen->summary.OTGender == 0) + SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreen->summary.OTName, x, 1, 0, 5); else - SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreenData->summary.OTName, x, 1, 0, 6); + SummaryScreen_PrintTextOnWindow(windowId, sMonSummaryScreen->summary.OTName, x, 1, 0, 6); } } @@ -3055,7 +3055,7 @@ static void PrintMonOTID(void) int xPos; if (InBattleFactory() != TRUE && InSlateportBattleTent() != TRUE) { - ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)sMonSummaryScreenData->summary.OTID, 2, 5); + ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)sMonSummaryScreen->summary.OTID, 2, 5); xPos = GetStringRightAlignXOffset(1, gStringVar1, 56); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ID), gStringVar1, xPos, 1, 0, 1); } @@ -3063,19 +3063,19 @@ static void PrintMonOTID(void) static void PrintMonAbilityName(void) { - u8 ability = GetAbilityBySpecies(sMonSummaryScreenData->summary.species, sMonSummaryScreenData->summary.altAbility); + u8 ability = GetAbilityBySpecies(sMonSummaryScreen->summary.species, sMonSummaryScreen->summary.altAbility); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ABILITY), gAbilityNames[ability], 0, 1, 0, 1); } static void PrintMonAbilityDescription(void) { - u8 ability = GetAbilityBySpecies(sMonSummaryScreenData->summary.species, sMonSummaryScreenData->summary.altAbility); + u8 ability = GetAbilityBySpecies(sMonSummaryScreen->summary.species, sMonSummaryScreen->summary.altAbility); SummaryScreen_PrintTextOnWindow(AddWindowFromTemplateList(sPageInfoTemplate, PSS_DATA_WINDOW_INFO_ABILITY), gAbilityDescriptionPointers[ability], 0, 17, 0, 0); } static void BufferMonTrainerMemo(void) { - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; const u8 *text; DynamicPlaceholderTextUtil_Reset(); @@ -3132,14 +3132,14 @@ static void PrintMonTrainerMemo(void) static void BufferNatureString(void) { - struct PokemonSummaryScreenData *sumStruct = sMonSummaryScreenData; + struct PokemonSummaryScreenData *sumStruct = sMonSummaryScreen; DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gNatureNamePointers[sumStruct->summary.nature]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gText_EmptyString5); } static void GetMetLevelString(u8 *output) { - u8 level = sMonSummaryScreenData->summary.metLevel; + u8 level = sMonSummaryScreen->summary.metLevel; if (level == 0) level = EGG_HATCH_LEVEL; ConvertIntToDecimalStringN(output, level, 0, 3); @@ -3148,11 +3148,11 @@ static void GetMetLevelString(u8 *output) static bool8 DoesMonOTMatchOwner(void) { - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; u32 trainerId; u8 gender; - if (sMonSummaryScreenData->monList.mons == gEnemyParty) + if (sMonSummaryScreen->monList.mons == gEnemyParty) { u8 multiID = GetMultiplayerId() ^ 1; trainerId = (u16)gLinkPlayers[multiID].trainerId; @@ -3174,7 +3174,7 @@ static bool8 DoesMonOTMatchOwner(void) static bool8 DidMonComeFromGBAGames(void) { - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_LEAF_GREEN) return TRUE; return FALSE; @@ -3182,7 +3182,7 @@ static bool8 DidMonComeFromGBAGames(void) bool8 DidMonComeFromRSE(void) { - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; if (sum->metGame > 0 && sum->metGame <= VERSION_EMERALD) return TRUE; return FALSE; @@ -3192,7 +3192,7 @@ static bool8 IsInGamePartnerMon(void) { if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle) { - if (sMonSummaryScreenData->curMonIndex == 1 || sMonSummaryScreenData->curMonIndex == 4 || sMonSummaryScreenData->curMonIndex == 5) + if (sMonSummaryScreen->curMonIndex == 1 || sMonSummaryScreen->curMonIndex == 4 || sMonSummaryScreen->curMonIndex == 5) return TRUE; } return FALSE; @@ -3218,9 +3218,9 @@ static void PrintEggOTID(void) static void PrintEggState(void) { const u8 *text; - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; - if (sMonSummaryScreenData->summary.sanity == TRUE) + if (sMonSummaryScreen->summary.sanity == TRUE) text = gText_EggWillTakeALongTime; else if (sum->friendship <= 5) text = gText_EggAboutToHatch; @@ -3237,9 +3237,9 @@ static void PrintEggState(void) static void PrintEggMemo(void) { const u8 *text; - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; - if (sMonSummaryScreenData->summary.sanity != 1) + if (sMonSummaryScreen->summary.sanity != 1) { if (sum->metLocation == METLOC_FATEFUL_ENCOUNTER) text = gText_PeculiarEggNicePlace; @@ -3308,17 +3308,17 @@ static void PrintHeldItemName(void) const u8 *text; int offset; - if (sMonSummaryScreenData->summary.item == ITEM_ENIGMA_BERRY && IsMultiBattle() == TRUE && (sMonSummaryScreenData->curMonIndex == 1 || sMonSummaryScreenData->curMonIndex == 4 || sMonSummaryScreenData->curMonIndex == 5)) + if (sMonSummaryScreen->summary.item == ITEM_ENIGMA_BERRY && IsMultiBattle() == TRUE && (sMonSummaryScreen->curMonIndex == 1 || sMonSummaryScreen->curMonIndex == 4 || sMonSummaryScreen->curMonIndex == 5)) { text = ItemId_GetName(ITEM_ENIGMA_BERRY); } - else if (sMonSummaryScreenData->summary.item == ITEM_NONE) + else if (sMonSummaryScreen->summary.item == ITEM_NONE) { text = gText_None; } else { - CopyItemName(sMonSummaryScreenData->summary.item, gStringVar1); + CopyItemName(sMonSummaryScreen->summary.item, gStringVar1); text = gStringVar1; } @@ -3331,13 +3331,13 @@ static void PrintRibbonCount(void) const u8 *text; int offset; - if (sMonSummaryScreenData->summary.ribbonCount == 0) + if (sMonSummaryScreen->summary.ribbonCount == 0) { text = gText_None; } else { - ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreenData->summary.ribbonCount, 1, 2); + ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreen->summary.ribbonCount, 1, 2); StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1); text = gStringVar4; } @@ -3353,10 +3353,10 @@ static void BufferLeftColumnStats(void) u8 *attackString = Alloc(8); u8 *defenseString = Alloc(8); - ConvertIntToDecimalStringN(currentHPString, sMonSummaryScreenData->summary.currentHP, 1, 3); - ConvertIntToDecimalStringN(maxHPString, sMonSummaryScreenData->summary.maxHP, 1, 3); - ConvertIntToDecimalStringN(attackString, sMonSummaryScreenData->summary.atk, 1, 7); - ConvertIntToDecimalStringN(defenseString, sMonSummaryScreenData->summary.def, 1, 7); + ConvertIntToDecimalStringN(currentHPString, sMonSummaryScreen->summary.currentHP, 1, 3); + ConvertIntToDecimalStringN(maxHPString, sMonSummaryScreen->summary.maxHP, 1, 3); + ConvertIntToDecimalStringN(attackString, sMonSummaryScreen->summary.atk, 1, 7); + ConvertIntToDecimalStringN(defenseString, sMonSummaryScreen->summary.def, 1, 7); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString); @@ -3378,9 +3378,9 @@ static void PrintLeftColumnStats(void) static void BufferRightColumnStats(void) { - ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreenData->summary.spatk, 1, 3); - ConvertIntToDecimalStringN(gStringVar2, sMonSummaryScreenData->summary.spdef, 1, 3); - ConvertIntToDecimalStringN(gStringVar3, sMonSummaryScreenData->summary.speed, 1, 3); + ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreen->summary.spatk, 1, 3); + ConvertIntToDecimalStringN(gStringVar2, sMonSummaryScreen->summary.spdef, 1, 3); + ConvertIntToDecimalStringN(gStringVar3, sMonSummaryScreen->summary.speed, 1, 3); DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); @@ -3396,7 +3396,7 @@ static void PrintRightColumnStats(void) static void PrintExpPointsNextLevel(void) { - struct PokeSummary *sum = &sMonSummaryScreenData->summary; + struct PokeSummary *sum = &sMonSummaryScreen->summary; u8 windowId = AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_EXP); int offset; u32 expToNextLevel; @@ -3422,17 +3422,17 @@ static void PrintBattleMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES) + if (sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES) { - if (sMonSummaryScreenData->newMove != MOVE_NONE) - PrintMoveDetails(sMonSummaryScreenData->newMove); + if (sMonSummaryScreen->newMove != MOVE_NONE) + PrintMoveDetails(sMonSummaryScreen->newMove); } else { - PrintMoveDetails(sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]); + PrintMoveDetails(sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]); } } } @@ -3456,22 +3456,22 @@ static void Task_PrintBattleMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 5: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 6: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->firstMoveIndex == MAX_MON_MOVES) - data[1] = sMonSummaryScreenData->newMove; + if (sMonSummaryScreen->firstMoveIndex == MAX_MON_MOVES) + data[1] = sMonSummaryScreen->newMove; else - data[1] = sMonSummaryScreenData->summary.moves[sMonSummaryScreenData->firstMoveIndex]; + data[1] = sMonSummaryScreen->summary.moves[sMonSummaryScreen->firstMoveIndex]; } break; case 7: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) PrintMoveDetails(data[1]); } break; @@ -3488,7 +3488,7 @@ static void PrintMoveNameAndPP(u8 moveIndex) u32 ppState; const u8 *text; u32 offset; - struct PokemonSummaryScreenData *summaryStruct = sMonSummaryScreenData; + struct PokemonSummaryScreenData *summaryStruct = sMonSummaryScreen; u8 moveNameWindowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); u8 ppValueWindowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_PP); u16 move = summaryStruct->summary.moves[moveIndex]; @@ -3558,10 +3558,10 @@ static void PrintContestMoves(void) PrintMoveNameAndPP(2); PrintMoveNameAndPP(3); - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { PrintNewMoveDetailsOrCancelText(); - PrintContestMoveDescription(sMonSummaryScreenData->firstMoveIndex); + PrintContestMoveDescription(sMonSummaryScreen->firstMoveIndex); } } @@ -3585,14 +3585,14 @@ static void Task_PrintContestMoves(u8 taskId) PrintMoveNameAndPP(3); break; case 4: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) PrintNewMoveDetailsOrCancelText(); break; case 5: - if (sMonSummaryScreenData->mode == PSS_MODE_SELECT_MOVE) + if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE) { - if (sMonSummaryScreenData->newMove != MOVE_NONE || sMonSummaryScreenData->firstMoveIndex != MAX_MON_MOVES) - PrintContestMoveDescription(sMonSummaryScreenData->firstMoveIndex); + if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) + PrintContestMoveDescription(sMonSummaryScreen->firstMoveIndex); } break; case 6: @@ -3607,9 +3607,9 @@ static void PrintContestMoveDescription(u8 moveSlot) u16 move; if (moveSlot == MAX_MON_MOVES) - move = sMonSummaryScreenData->newMove; + move = sMonSummaryScreen->newMove; else - move = sMonSummaryScreenData->summary.moves[moveSlot]; + move = sMonSummaryScreen->summary.moves[moveSlot]; if (move != MOVE_NONE) { @@ -3624,7 +3624,7 @@ static void PrintMoveDetails(u16 move) FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); if (move != MOVE_NONE) { - if (sMonSummaryScreenData->currPageIndex == PSS_MODE_BOX) + if (sMonSummaryScreen->currPageIndex == PSS_MODE_BOX) { PrintMovePowerAndAccuracy(move); SummaryScreen_PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); @@ -3648,15 +3648,15 @@ static void PrintNewMoveDetailsOrCancelText(void) u8 windowId1 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_NAMES); u8 windowId2 = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_PP); - if (sMonSummaryScreenData->newMove == MOVE_NONE) + if (sMonSummaryScreen->newMove == MOVE_NONE) { SummaryScreen_PrintTextOnWindow(windowId1, gText_Cancel, 0, 65, 0, 1); } else { - u16 move = sMonSummaryScreenData->newMove; + u16 move = sMonSummaryScreen->newMove; - if (sMonSummaryScreenData->currPageIndex == 2) + if (sMonSummaryScreen->currPageIndex == 2) SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 6); else SummaryScreen_PrintTextOnWindow(windowId1, gMoveNames[move], 0, 65, 0, 5); @@ -3703,24 +3703,24 @@ static void ResetSpriteIds(void) { u8 i; - for (i = 0; i < ARRAY_COUNT(sMonSummaryScreenData->spriteIds); i++) + for (i = 0; i < ARRAY_COUNT(sMonSummaryScreen->spriteIds); i++) { - sMonSummaryScreenData->spriteIds[i] = 0xFF; + sMonSummaryScreen->spriteIds[i] = 0xFF; } } static void DestroySpriteInArray(u8 spriteArrayId) { - if (sMonSummaryScreenData->spriteIds[spriteArrayId] != 0xFF) + if (sMonSummaryScreen->spriteIds[spriteArrayId] != 0xFF) { - DestroySprite(&gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]]); - sMonSummaryScreenData->spriteIds[spriteArrayId] = 0xFF; + DestroySprite(&gSprites[sMonSummaryScreen->spriteIds[spriteArrayId]]); + sMonSummaryScreen->spriteIds[spriteArrayId] = 0xFF; } } static void SetSpriteInvisibility(u8 spriteArrayId, bool8 invisible) { - gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]].invisible = invisible; + gSprites[sMonSummaryScreen->spriteIds[spriteArrayId]].invisible = invisible; } static void HidePageSpecificSprites(void) @@ -3728,16 +3728,16 @@ static void HidePageSpecificSprites(void) // Keeps Pokémon, caught ball and status sprites visible. u8 i; - for (i = 3; i < ARRAY_COUNT(sMonSummaryScreenData->spriteIds); i++) + for (i = 3; i < ARRAY_COUNT(sMonSummaryScreen->spriteIds); i++) { - if (sMonSummaryScreenData->spriteIds[i] != 0xFF) + if (sMonSummaryScreen->spriteIds[i] != 0xFF) SetSpriteInvisibility(i, TRUE); } } static void SetTypeIcons(void) { - switch (sMonSummaryScreenData->currPageIndex) + switch (sMonSummaryScreen->currPageIndex) { case PSS_PAGE_INFO: SetMonTypeIcons(); @@ -3759,8 +3759,8 @@ static void CreateMoveTypeIcons(void) for (i = 3; i < 8; i++) { - if (sMonSummaryScreenData->spriteIds[i] == 0xFF) - sMonSummaryScreenData->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); + if (sMonSummaryScreen->spriteIds[i] == 0xFF) + sMonSummaryScreen->spriteIds[i] = CreateSprite(&sSpriteTemplate_MoveTypes, 0, 0, 2); SetSpriteInvisibility(i, TRUE); } @@ -3768,7 +3768,7 @@ static void CreateMoveTypeIcons(void) static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) { - struct Sprite *sprite = &gSprites[sMonSummaryScreenData->spriteIds[spriteArrayId]]; + struct Sprite *sprite = &gSprites[sMonSummaryScreen->spriteIds[spriteArrayId]]; StartSpriteAnim(sprite, typeId); sprite->oam.paletteNum = sMoveTypeToOamPaletteNum[typeId]; sprite->pos1.x = x + 16; @@ -3778,7 +3778,7 @@ static void SetMoveTypeSpritePosAndType(u8 typeId, u8 x, u8 y, u8 spriteArrayId) static void SetMonTypeIcons(void) { - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; if (summary->isEgg) { SetMoveTypeSpritePosAndType(TYPE_MYSTERY, 120, 48, 3); @@ -3802,7 +3802,7 @@ static void SetMonTypeIcons(void) static void SetMoveTypeIcons(void) { u8 i; - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; for (i = 0; i < MAX_MON_MOVES; i++) { if (summary->moves[i] != MOVE_NONE) @@ -3815,7 +3815,7 @@ static void SetMoveTypeIcons(void) static void SetContestMoveTypeIcons(void) { u8 i; - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; for (i = 0; i < MAX_MON_MOVES; i++) { if (summary->moves[i] != MOVE_NONE) @@ -3827,23 +3827,23 @@ static void SetContestMoveTypeIcons(void) static void SetNewMoveTypeIcon(void) { - if (sMonSummaryScreenData->newMove == MOVE_NONE) + if (sMonSummaryScreen->newMove == MOVE_NONE) { SetSpriteInvisibility(7, TRUE); } else { - if (sMonSummaryScreenData->currPageIndex == 2) - SetMoveTypeSpritePosAndType(gBattleMoves[sMonSummaryScreenData->newMove].type, 85, 96, 7); + if (sMonSummaryScreen->currPageIndex == 2) + SetMoveTypeSpritePosAndType(gBattleMoves[sMonSummaryScreen->newMove].type, 85, 96, 7); else - SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[sMonSummaryScreenData->newMove].contestCategory, 85, 96, 7); + SetMoveTypeSpritePosAndType(NUMBER_OF_MON_TYPES + gContestMoves[sMonSummaryScreen->newMove].contestCategory, 85, 96, 7); } } static void sub_81C4568(u8 a0, u8 a1) { - struct Sprite *sprite1 = &gSprites[sMonSummaryScreenData->spriteIds[a0 + 3]]; - struct Sprite *sprite2 = &gSprites[sMonSummaryScreenData->spriteIds[a1 + 3]]; + struct Sprite *sprite1 = &gSprites[sMonSummaryScreen->spriteIds[a0 + 3]]; + struct Sprite *sprite2 = &gSprites[sMonSummaryScreen->spriteIds[a1 + 3]]; u8 temp = sprite1->animNum; sprite1->animNum = sprite2->animNum; @@ -3862,7 +3862,7 @@ static void sub_81C4568(u8 a0, u8 a1) static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) { const struct CompressedSpritePalette *pal; - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; switch (*a1) { @@ -3871,7 +3871,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) case 0: if (gMain.inBattle) { - if (sub_80688F8(3, sMonSummaryScreenData->curMonIndex)) + if (sub_80688F8(3, sMonSummaryScreen->curMonIndex)) { HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3884,7 +3884,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) { if (gMonSpritesGfxPtr != NULL) { - if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid); } @@ -3895,7 +3895,7 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) } else { - if (sMonSummaryScreenData->monList.mons == gPlayerParty || sMonSummaryScreenData->mode == PSS_MODE_BOX || sMonSummaryScreenData->unk40EF == TRUE) + if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE) { HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid); } @@ -3918,10 +3918,10 @@ static u8 CreatePokemonSprite(struct Pokemon *mon, s16 *a1) static void PlayMonCry(void) { - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; if (!summary->isEgg) { - if (ShouldPlayNormalMonCry(&sMonSummaryScreenData->currentMon) == TRUE) + if (ShouldPlayNormalMonCry(&sMonSummaryScreen->currentMon) == TRUE) { PlayCry3(summary->species2, 0, 0); } @@ -3934,7 +3934,7 @@ static void PlayMonCry(void) static u8 sub_81C47B4(struct Pokemon *unused) { - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, 40, 64, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3959,7 +3959,7 @@ static u8 sub_81C47B4(struct Pokemon *unused) static void SpriteCB_Pokemon(struct Sprite *sprite) { - struct PokeSummary *summary = &sMonSummaryScreenData->summary; + struct PokeSummary *summary = &sMonSummaryScreen->summary; if (!gPaletteFade.active && sprite->data[2] != 1) { @@ -3985,7 +3985,7 @@ void SummaryScreen_DestroyUnknownTask(void) static bool32 SummaryScreen_DoesSpriteHaveCallback(void) { - if (gSprites[sMonSummaryScreenData->spriteIds[0]].callback == SpriteCallbackDummy) + if (gSprites[sMonSummaryScreen->spriteIds[0]].callback == SpriteCallbackDummy) { return FALSE; } @@ -4000,11 +4000,11 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops u16 i; u16 paletteIndex; - gSprites[sMonSummaryScreenData->spriteIds[0]].animPaused = TRUE; - gSprites[sMonSummaryScreenData->spriteIds[0]].callback = SpriteCallbackDummy; + gSprites[sMonSummaryScreen->spriteIds[0]].animPaused = TRUE; + gSprites[sMonSummaryScreen->spriteIds[0]].callback = SpriteCallbackDummy; StopPokemonAnimationDelayTask(); - paletteIndex = (gSprites[sMonSummaryScreenData->spriteIds[0]].oam.paletteNum * 16) | 0x100; + paletteIndex = (gSprites[sMonSummaryScreen->spriteIds[0]].oam.paletteNum * 16) | 0x100; for (i = 0; i < 16; i++) { @@ -4016,20 +4016,20 @@ static void CreateMonMarkingsSprite(struct Pokemon *mon) { struct Sprite *sprite = sub_811FF94(30003, 30003, sSummaryMarkingsPalette); - sMonSummaryScreenData->markingsSprite = sprite; + sMonSummaryScreen->markingsSprite = sprite; if (sprite != NULL) { StartSpriteAnim(sprite, GetMonData(mon, MON_DATA_MARKINGS)); - sMonSummaryScreenData->markingsSprite->pos1.x = 60; - sMonSummaryScreenData->markingsSprite->pos1.y = 26; - sMonSummaryScreenData->markingsSprite->oam.priority = 1; + sMonSummaryScreen->markingsSprite->pos1.x = 60; + sMonSummaryScreen->markingsSprite->pos1.y = 26; + sMonSummaryScreen->markingsSprite->oam.priority = 1; } } static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) { - DestroySprite(sMonSummaryScreenData->markingsSprite); + DestroySprite(sMonSummaryScreen->markingsSprite); FreeSpriteTilesByTag(30003); CreateMonMarkingsSprite(mon); } @@ -4039,14 +4039,14 @@ static void CreateCaughtBallSprite(struct Pokemon *mon) u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); LoadBallGfx(ball); - sMonSummaryScreenData->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); - gSprites[sMonSummaryScreenData->spriteIds[1]].callback = SpriteCallbackDummy; - gSprites[sMonSummaryScreenData->spriteIds[1]].oam.priority = 3; + sMonSummaryScreen->spriteIds[1] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); + gSprites[sMonSummaryScreen->spriteIds[1]].callback = SpriteCallbackDummy; + gSprites[sMonSummaryScreen->spriteIds[1]].oam.priority = 3; } static void CreateSetStatusSprite(void) { - u8 *spriteId = &sMonSummaryScreenData->spriteIds[2]; + u8 *spriteId = &sMonSummaryScreen->spriteIds[2]; u8 anim; if (*spriteId == 0xFF) @@ -4054,7 +4054,7 @@ static void CreateSetStatusSprite(void) *spriteId = CreateSprite(&sSpriteTemplate_StatusCondition, 64, 152, 0); } - anim = GetMonAilment(&sMonSummaryScreenData->currentMon); + anim = GetMonAilment(&sMonSummaryScreen->currentMon); if (anim != 0) { @@ -4070,9 +4070,9 @@ static void CreateSetStatusSprite(void) static void sub_81C4AF8(u8 a0) { u8 i; - u8 *spriteIds = &sMonSummaryScreenData->spriteIds[a0]; + u8 *spriteIds = &sMonSummaryScreen->spriteIds[a0]; - if (sMonSummaryScreenData->currPageIndex > 1) + if (sMonSummaryScreen->currPageIndex > 1) { u8 subsprite = 0; if (a0 == 8) @@ -4124,11 +4124,11 @@ static void sub_81C4BE4(struct Sprite *sprite) if (sprite->data[0] == 8) { - sprite->pos2.y = sMonSummaryScreenData->firstMoveIndex * 16; + sprite->pos2.y = sMonSummaryScreen->firstMoveIndex * 16; } else { - sprite->pos2.y = sMonSummaryScreenData->secondMoveIndex * 16; + sprite->pos2.y = sMonSummaryScreen->secondMoveIndex * 16; } } @@ -4144,7 +4144,7 @@ static void sub_81C4C60(u8 a0) static void sub_81C4C84(u8 a0) { u8 i; - u8 *spriteIds = &sMonSummaryScreenData->spriteIds[8]; + u8 *spriteIds = &sMonSummaryScreen->spriteIds[8]; a0 *= 3; for (i = 0; i < 10; i++) @@ -4167,7 +4167,7 @@ static void sub_81C4C84(u8 a0) static void sub_81C4D18(u8 firstSpriteId) { u8 i; - u8 *spriteIds = &sMonSummaryScreenData->spriteIds[firstSpriteId]; + u8 *spriteIds = &sMonSummaryScreen->spriteIds[firstSpriteId]; for (i = 0; i < 10; i++) { -- cgit v1.2.3 From c3feb9871f4d05cd9874dd8fc0c2016eaa072864 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 8 Mar 2019 04:02:05 -0500 Subject: Use PIXEL_FILL macro --- src/menu_specialized.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/menu_specialized.c b/src/menu_specialized.c index bf5d2ec56..8371c7a70 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1581,7 +1581,7 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) for (i = 0; i < 5; i++) { - FillWindowPixelBuffer(i, 0x11); + FillWindowPixelBuffer(i, PIXEL_FILL(1)); } if (!useContextWindow) @@ -1635,7 +1635,7 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) u8 buffer[0x20]; const u8 *labelStr; - FillWindowPixelBuffer(0, 0x11); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); labelStr = gText_MoveRelearnerBattleMoves; offset = GetStringCenterAlignXOffset(1, labelStr, 0x80); AddTextPrinterParameterized(0, 1, labelStr, offset, 1, TEXT_SPEED_FF, NULL); @@ -1913,7 +1913,7 @@ static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) const u8 **temp; MoveRelearnerShowHideHearts(chosenMove); - FillWindowPixelBuffer(1, 0x11); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); labelStr = gText_MoveRelearnerContestMovesTitle; // GCC compiles these as: // add r3, r0, 0 @@ -2076,7 +2076,7 @@ void MoveRelearnerPrintText(u8 *str) { u8 speed; - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(3, PIXEL_FILL(1)); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); AddTextPrinterParameterized2(3, 1, str, speed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, 3); -- cgit v1.2.3 From 8e1537fb57dc7ed17079b30f7a3851132cf462bd Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Mar 2019 08:10:59 -0400 Subject: Document map name popup flag --- src/field_special_scene.c | 4 ++-- src/map_name_popup.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 2b518808b..e059e6ef8 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -301,7 +301,7 @@ void Task_HandlePorthole(u8 taskId) break; case EXIT_PORTHOLE: // exit porthole. FlagClear(FLAG_SPECIAL_FLAG_0x4001); - FlagClear(FLAG_SPECIAL_FLAG_0x4000); + FlagClear(FLAG_HIDE_MAP_NAME_POPUP); SetWarpDestinationToDynamicWarp(0); DoDiveWarp(); DestroyTask(taskId); @@ -338,7 +338,7 @@ void sub_80FB7A4(void) { FlagSet(FLAG_SYS_CRUISE_MODE); FlagSet(FLAG_SPECIAL_FLAG_0x4001); - FlagSet(FLAG_SPECIAL_FLAG_0x4000); + FlagSet(FLAG_HIDE_MAP_NAME_POPUP); SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); sub_80FB59C(); sub_80AF8B8(); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 8936198ae..d95b808e9 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -207,7 +207,7 @@ bool8 sub_80D47D4(void) void ShowMapNamePopup(void) { - if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE) + if (FlagGet(FLAG_HIDE_MAP_NAME_POPUP) != TRUE) { if (!FuncIsActiveTask(Task_MapNamePopUpWindow)) { -- cgit v1.2.3 From 14211fb4953a25ada33b2aa1618b90cb46b211b7 Mon Sep 17 00:00:00 2001 From: garak Date: Thu, 14 Mar 2019 16:19:54 -0400 Subject: fix incbin paths --- src/anim_mon_front_pics.c | 830 +++---- src/data/graphics/pokemon.h | 5562 +++++++++++++++++++++---------------------- 2 files changed, 3196 insertions(+), 3196 deletions(-) (limited to 'src') diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c index ba53ba193..f2480ea20 100644 --- a/src/anim_mon_front_pics.c +++ b/src/anim_mon_front_pics.c @@ -1,424 +1,424 @@ #include "global.h" -const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/circled_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bulbasaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ivysaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venusaur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charmander_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charmeleon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/anim_front_pics/charizard_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/squirtle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wartortle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blastoise_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/caterpie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metapod_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/anim_front_pics/butterfree_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weedle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kakuna_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beedrill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgeotto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pidgeot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rattata_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raticate_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spearow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/fearow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ekans_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/anim_front_pics/arbok_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pikachu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raichu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sandshrew_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sandslash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoran_f_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidorina_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoqueen_front_pic.4bpp.lz"); -const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoran_m_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidorino_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nidoking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clefairy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clefable_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vulpix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ninetales_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jigglypuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wigglytuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zubat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golbat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/oddish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gloom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vileplume_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/anim_front_pics/paras_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/anim_front_pics/parasect_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venonat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/venomoth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/anim_front_pics/diglett_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dugtrio_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meowth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/anim_front_pics/persian_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/anim_front_pics/psyduck_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golduck_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mankey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/anim_front_pics/primeape_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/anim_front_pics/growlithe_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/arcanine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwag_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwhirl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poliwrath_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/abra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kadabra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/anim_front_pics/alakazam_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machop_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machoke_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/machamp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bellsprout_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weepinbell_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/victreebel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tentacool_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tentacruel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/anim_front_pics/geodude_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/graveler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/anim_front_pics/golem_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ponyta_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rapidash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowpoke_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowbro_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magnemite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magneton_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/anim_front_pics/farfetch_d_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/doduo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dodrio_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dewgong_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grimer_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/anim_front_pics/muk_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shellder_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cloyster_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gastly_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/anim_front_pics/haunter_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gengar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/onix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/drowzee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hypno_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/anim_front_pics/krabby_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kingler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/anim_front_pics/voltorb_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electrode_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exeggcute_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exeggutor_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cubone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marowak_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmonlee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmonchan_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lickitung_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/anim_front_pics/koffing_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/anim_front_pics/weezing_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rhyhorn_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rhydon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chansey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tangela_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kangaskhan_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/anim_front_pics/horsea_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seadra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/anim_front_pics/goldeen_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seaking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/staryu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/starmie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mr_mime_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/anim_front_pics/scyther_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jynx_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electabuzz_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magmar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pinsir_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tauros_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magikarp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gyarados_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lapras_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ditto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/anim_front_pics/eevee_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vaporeon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jolteon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flareon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/anim_front_pics/omanyte_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/omastar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kabuto_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kabutops_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aerodactyl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snorlax_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/anim_front_pics/articuno_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zapdos_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/anim_front_pics/moltres_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dratini_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dragonair_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dragonite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mewtwo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mew_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); +const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chikorita_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bayleef_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meganium_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cyndaquil_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/anim_front_pics/quilava_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/anim_front_pics/typhlosion_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/totodile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/anim_front_pics/croconaw_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/anim_front_pics/feraligatr_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sentret_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/anim_front_pics/furret_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hoothoot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/noctowl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ledyba_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ledian_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spinarak_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ariados_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/crobat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chinchou_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lanturn_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pichu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cleffa_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/igglybuff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/togepi_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/togetic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/natu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/xatu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mareep_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flaaffy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ampharos_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bellossom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/azumarill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sudowoodo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/anim_front_pics/politoed_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hoppip_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skiploom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jumpluff_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aipom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sunkern_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sunflora_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/anim_front_pics/yanma_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wooper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/anim_front_pics/quagsire_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/espeon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/umbreon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/murkrow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slowking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/anim_front_pics/misdreavus_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_a_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wobbuffet_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/anim_front_pics/girafarig_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pineco_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/anim_front_pics/forretress_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dunsparce_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gligar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/anim_front_pics/steelix_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snubbull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/granbull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/qwilfish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/anim_front_pics/scizor_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shuckle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/anim_front_pics/heracross_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sneasel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/anim_front_pics/teddiursa_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ursaring_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slugma_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magcargo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swinub_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/piloswine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/anim_front_pics/corsola_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/anim_front_pics/remoraid_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/anim_front_pics/octillery_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/anim_front_pics/delibird_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mantine_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skarmory_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/anim_front_pics/houndour_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/houndoom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kingdra_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/phanpy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/anim_front_pics/donphan_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); +const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/anim_front_a.4bpp.lz"); +const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/anim_front_pics/stantler_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/smeargle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tyrogue_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hitmontop_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/anim_front_pics/smoochum_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/anim_front_pics/elekid_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/anim_front_pics/magby_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/anim_front_pics/miltank_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blissey_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/anim_front_pics/raikou_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/anim_front_pics/entei_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/anim_front_pics/suicune_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/larvitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pupitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tyranitar_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lugia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ho_oh_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/celebi_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/double_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/anim_front_pics/treecko_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grovyle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sceptile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/torchic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/anim_front_pics/combusken_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/anim_front_pics/blaziken_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mudkip_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/anim_front_pics/marshtomp_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swampert_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/anim_front_pics/poochyena_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mightyena_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zigzagoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/linoone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wurmple_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/silcoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beautifly_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cascoon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dustox_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lotad_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lombre_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ludicolo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seedot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nuzleaf_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shiftry_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nincada_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ninjask_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shedinja_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/taillow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swellow_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shroomish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/anim_front_pics/breloom_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spinda_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wingull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/pelipper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/anim_front_pics/surskit_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/anim_front_pics/masquerain_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wailmer_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wailord_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/anim_front_pics/skitty_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/anim_front_pics/delcatty_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kecleon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/anim_front_pics/baltoy_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/anim_front_pics/claydol_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/anim_front_pics/nosepass_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/anim_front_pics/torkoal_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sableye_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/anim_front_pics/barboach_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/anim_front_pics/whiscash_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/anim_front_pics/luvdisc_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/anim_front_pics/corphish_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/crawdaunt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/anim_front_pics/feebas_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/anim_front_pics/milotic_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/anim_front_pics/carvanha_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sharpedo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/anim_front_pics/trapinch_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vibrava_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/flygon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/anim_front_pics/makuhita_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/anim_front_pics/hariyama_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/anim_front_pics/electrike_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/anim_front_pics/manectric_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/numel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/camerupt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spheal_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/sealeo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/anim_front_pics/walrein_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cacnea_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cacturne_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/anim_front_pics/snorunt_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/anim_front_pics/glalie_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lunatone_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/anim_front_pics/solrock_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/anim_front_pics/azurill_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/anim_front_pics/spoink_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/anim_front_pics/grumpig_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/anim_front_pics/plusle_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/anim_front_pics/minun_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/anim_front_pics/mawile_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/anim_front_pics/meditite_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/anim_front_pics/medicham_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swablu_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/anim_front_pics/altaria_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/anim_front_pics/wynaut_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/anim_front_pics/duskull_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/anim_front_pics/dusclops_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/roselia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slakoth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/vigoroth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/anim_front_pics/slaking_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gulpin_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/anim_front_pics/swalot_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/anim_front_pics/tropius_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/anim_front_pics/whismur_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/anim_front_pics/loudred_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/anim_front_pics/exploud_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/anim_front_pics/clamperl_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/anim_front_pics/huntail_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gorebyss_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/anim_front_pics/absol_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shuppet_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/anim_front_pics/banette_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/anim_front_pics/seviper_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/anim_front_pics/zangoose_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/anim_front_pics/relicanth_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aron_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lairon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/anim_front_pics/aggron_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/anim_front_pics/castform_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/anim_front_pics/volbeat_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/anim_front_pics/illumise_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/anim_front_pics/lileep_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/anim_front_pics/cradily_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anim_front_pics/anorith_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/anim_front_pics/armaldo_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/anim_front_pics/ralts_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kirlia_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/anim_front_pics/gardevoir_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/bagon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/shelgon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/anim_front_pics/salamence_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/anim_front_pics/beldum_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metang_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/anim_front_pics/metagross_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/anim_front_pics/regirock_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/anim_front_pics/regice_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/anim_front_pics/registeel_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/anim_front_pics/kyogre_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/anim_front_pics/groudon_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/anim_front_pics/rayquaza_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/anim_front_pics/latias_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/anim_front_pics/latios_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/anim_front_pics/jirachi_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/anim_front_pics/deoxys_front_pic.4bpp.lz"); -const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/anim_front_pics/chimecho_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front.4bpp.lz"); +const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/anim_front_pics/egg_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_b_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_c_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_d_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_e_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_f_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_g_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_h_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_i_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_j_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_k_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_l_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_m_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_n_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_o_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_p_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_q_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_r_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_s_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_t_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_u_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_v_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_w_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_x_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_y_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_z_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_exclamation_mark_front_pic.4bpp.lz"); -const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/anim_front_pics/unown_question_mark_front_pic.4bpp.lz"); +const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/anim_front_b.4bpp.lz"); +const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/anim_front_c.4bpp.lz"); +const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/anim_front_d.4bpp.lz"); +const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/anim_front_e.4bpp.lz"); +const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/anim_front_f.4bpp.lz"); +const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/anim_front_g.4bpp.lz"); +const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/anim_front_h.4bpp.lz"); +const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/anim_front_i.4bpp.lz"); +const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_j.4bpp.lz"); +const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/anim_front_k.4bpp.lz"); +const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/anim_front_l.4bpp.lz"); +const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/anim_front_m.4bpp.lz"); +const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/anim_front_n.4bpp.lz"); +const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/anim_front_o.4bpp.lz"); +const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/anim_front_p.4bpp.lz"); +const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_q.4bpp.lz"); +const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/anim_front_r.4bpp.lz"); +const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/anim_front_s.4bpp.lz"); +const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/anim_front_t.4bpp.lz"); +const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/anim_front_u.4bpp.lz"); +const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/anim_front_v.4bpp.lz"); +const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/anim_front_w.4bpp.lz"); +const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/anim_front_x.4bpp.lz"); +const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/anim_front_y.4bpp.lz"); +const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/anim_front_z.4bpp.lz"); +const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_exclamation_mark.4bpp.lz"); +const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/anim_front_question_mark.4bpp.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 40ebdf9e4..67d1fbd3f 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1,1625 +1,1625 @@ -const u32 gMonStillFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz"); -const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/icons/bulbasaur_icon.4bpp"); -const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/footprints/bulbasaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/palettes/ivysaur_palette.gbapal.lz"); -const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/icons/ivysaur_icon.4bpp"); -const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/footprints/ivysaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/palettes/venusaur_palette.gbapal.lz"); -const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/icons/venusaur_icon.4bpp"); -const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/footprints/venusaur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/palettes/charmander_palette.gbapal.lz"); -const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/icons/charmander_icon.4bpp"); -const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/footprints/charmander_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/palettes/charmeleon_palette.gbapal.lz"); -const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/icons/charmeleon_icon.4bpp"); -const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/footprints/charmeleon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/palettes/charizard_palette.gbapal.lz"); -const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/icons/charizard_icon.4bpp"); -const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/footprints/charizard_footprint.1bpp"); - -const u32 gMonStillFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/palettes/squirtle_palette.gbapal.lz"); -const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/icons/squirtle_icon.4bpp"); -const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/footprints/squirtle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/palettes/wartortle_palette.gbapal.lz"); -const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/icons/wartortle_icon.4bpp"); -const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/footprints/wartortle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/palettes/blastoise_palette.gbapal.lz"); -const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/icons/blastoise_icon.4bpp"); -const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/footprints/blastoise_footprint.1bpp"); - -const u32 gMonStillFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/palettes/caterpie_palette.gbapal.lz"); -const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/icons/caterpie_icon.4bpp"); -const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/footprints/caterpie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/palettes/metapod_palette.gbapal.lz"); -const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/icons/metapod_icon.4bpp"); -const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/footprints/metapod_footprint.1bpp"); - -const u32 gMonStillFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/palettes/butterfree_palette.gbapal.lz"); -const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/icons/butterfree_icon.4bpp"); -const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/footprints/butterfree_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/palettes/weedle_palette.gbapal.lz"); -const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/icons/weedle_icon.4bpp"); -const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/footprints/weedle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/palettes/kakuna_palette.gbapal.lz"); -const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/icons/kakuna_icon.4bpp"); -const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/footprints/kakuna_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/palettes/beedrill_palette.gbapal.lz"); -const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/icons/beedrill_icon.4bpp"); -const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/footprints/beedrill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/palettes/pidgey_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/icons/pidgey_icon.4bpp"); -const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/footprints/pidgey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/icons/pidgeotto_icon.4bpp"); -const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/footprints/pidgeotto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/palettes/pidgeot_palette.gbapal.lz"); -const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/icons/pidgeot_icon.4bpp"); -const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/footprints/pidgeot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/palettes/rattata_palette.gbapal.lz"); -const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/icons/rattata_icon.4bpp"); -const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/footprints/rattata_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/palettes/raticate_palette.gbapal.lz"); -const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/icons/raticate_icon.4bpp"); -const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/footprints/raticate_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/palettes/spearow_palette.gbapal.lz"); -const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/icons/spearow_icon.4bpp"); -const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/footprints/spearow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/palettes/fearow_palette.gbapal.lz"); -const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/icons/fearow_icon.4bpp"); -const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/footprints/fearow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/palettes/ekans_palette.gbapal.lz"); -const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/icons/ekans_icon.4bpp"); -const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/footprints/ekans_footprint.1bpp"); - -const u32 gMonStillFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/palettes/arbok_palette.gbapal.lz"); -const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/icons/arbok_icon.4bpp"); -const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/footprints/arbok_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/palettes/pikachu_palette.gbapal.lz"); -const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/icons/pikachu_icon.4bpp"); -const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/footprints/pikachu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/palettes/raichu_palette.gbapal.lz"); -const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/icons/raichu_icon.4bpp"); -const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/footprints/raichu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/palettes/sandshrew_palette.gbapal.lz"); -const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/icons/sandshrew_icon.4bpp"); -const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/footprints/sandshrew_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/palettes/sandslash_palette.gbapal.lz"); -const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/icons/sandslash_icon.4bpp"); -const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/footprints/sandslash_footprint.1bpp"); - -const u32 gMonStillFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz"); -const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz"); -const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz"); -const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/icons/nidoran_f_icon.4bpp"); -const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_f_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/palettes/nidorina_palette.gbapal.lz"); -const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/icons/nidorina_icon.4bpp"); -const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/footprints/nidorina_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz"); -const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/icons/nidoqueen_icon.4bpp"); -const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/footprints/nidoqueen_footprint.1bpp"); - -const u32 gMonStillFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz"); -const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz"); -const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz"); -const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/icons/nidoran_m_icon.4bpp"); -const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/footprints/nidoran_m_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/palettes/nidorino_palette.gbapal.lz"); -const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/icons/nidorino_icon.4bpp"); -const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/footprints/nidorino_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/palettes/nidoking_palette.gbapal.lz"); -const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/icons/nidoking_icon.4bpp"); -const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/footprints/nidoking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/palettes/clefairy_palette.gbapal.lz"); -const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/icons/clefairy_icon.4bpp"); -const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/footprints/clefairy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/palettes/clefable_palette.gbapal.lz"); -const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/icons/clefable_icon.4bpp"); -const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/footprints/clefable_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/palettes/vulpix_palette.gbapal.lz"); -const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/icons/vulpix_icon.4bpp"); -const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/footprints/vulpix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/palettes/ninetales_palette.gbapal.lz"); -const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/icons/ninetales_icon.4bpp"); -const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/footprints/ninetales_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz"); -const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/icons/jigglypuff_icon.4bpp"); -const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/footprints/jigglypuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz"); -const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/icons/wigglytuff_icon.4bpp"); -const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/footprints/wigglytuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/palettes/zubat_palette.gbapal.lz"); -const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/icons/zubat_icon.4bpp"); -const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/footprints/zubat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/palettes/golbat_palette.gbapal.lz"); -const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/icons/golbat_icon.4bpp"); -const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/footprints/golbat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/palettes/oddish_palette.gbapal.lz"); -const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/icons/oddish_icon.4bpp"); -const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/footprints/oddish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/palettes/gloom_palette.gbapal.lz"); -const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/icons/gloom_icon.4bpp"); -const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/footprints/gloom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/palettes/vileplume_palette.gbapal.lz"); -const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/icons/vileplume_icon.4bpp"); -const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/footprints/vileplume_footprint.1bpp"); - -const u32 gMonStillFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/palettes/paras_palette.gbapal.lz"); -const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/back_pics/paras_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/icons/paras_icon.4bpp"); -const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/footprints/paras_footprint.1bpp"); - -const u32 gMonStillFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/palettes/parasect_palette.gbapal.lz"); -const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/icons/parasect_icon.4bpp"); -const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/footprints/parasect_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/palettes/venonat_palette.gbapal.lz"); -const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/icons/venonat_icon.4bpp"); -const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/footprints/venonat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/palettes/venomoth_palette.gbapal.lz"); -const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/icons/venomoth_icon.4bpp"); -const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/footprints/venomoth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/palettes/diglett_palette.gbapal.lz"); -const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/icons/diglett_icon.4bpp"); -const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/footprints/diglett_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/palettes/dugtrio_palette.gbapal.lz"); -const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/icons/dugtrio_icon.4bpp"); -const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/footprints/dugtrio_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/palettes/meowth_palette.gbapal.lz"); -const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/icons/meowth_icon.4bpp"); -const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/footprints/meowth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/palettes/persian_palette.gbapal.lz"); -const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/back_pics/persian_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/icons/persian_icon.4bpp"); -const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/footprints/persian_footprint.1bpp"); - -const u32 gMonStillFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/palettes/psyduck_palette.gbapal.lz"); -const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/icons/psyduck_icon.4bpp"); -const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/footprints/psyduck_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/palettes/golduck_palette.gbapal.lz"); -const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/icons/golduck_icon.4bpp"); -const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/footprints/golduck_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/palettes/mankey_palette.gbapal.lz"); -const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/icons/mankey_icon.4bpp"); -const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/footprints/mankey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/palettes/primeape_palette.gbapal.lz"); -const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/icons/primeape_icon.4bpp"); -const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/footprints/primeape_footprint.1bpp"); - -const u32 gMonStillFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/palettes/growlithe_palette.gbapal.lz"); -const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/icons/growlithe_icon.4bpp"); -const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/footprints/growlithe_footprint.1bpp"); - -const u32 gMonStillFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/palettes/arcanine_palette.gbapal.lz"); -const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/icons/arcanine_icon.4bpp"); -const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/footprints/arcanine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/palettes/poliwag_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/icons/poliwag_icon.4bpp"); -const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/footprints/poliwag_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/icons/poliwhirl_icon.4bpp"); -const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/footprints/poliwhirl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/palettes/poliwrath_palette.gbapal.lz"); -const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/icons/poliwrath_icon.4bpp"); -const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/footprints/poliwrath_footprint.1bpp"); - -const u32 gMonStillFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/palettes/abra_palette.gbapal.lz"); -const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/back_pics/abra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/icons/abra_icon.4bpp"); -const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/footprints/abra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/palettes/kadabra_palette.gbapal.lz"); -const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/icons/kadabra_icon.4bpp"); -const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/footprints/kadabra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/palettes/alakazam_palette.gbapal.lz"); -const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/icons/alakazam_icon.4bpp"); -const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/footprints/alakazam_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/palettes/machop_palette.gbapal.lz"); -const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/back_pics/machop_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/icons/machop_icon.4bpp"); -const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/footprints/machop_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/palettes/machoke_palette.gbapal.lz"); -const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/icons/machoke_icon.4bpp"); -const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/footprints/machoke_footprint.1bpp"); - -const u32 gMonStillFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/palettes/machamp_palette.gbapal.lz"); -const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/icons/machamp_icon.4bpp"); -const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/footprints/machamp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/palettes/bellsprout_palette.gbapal.lz"); -const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/icons/bellsprout_icon.4bpp"); -const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/footprints/bellsprout_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/palettes/weepinbell_palette.gbapal.lz"); -const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/icons/weepinbell_icon.4bpp"); -const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/footprints/weepinbell_footprint.1bpp"); - -const u32 gMonStillFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/palettes/victreebel_palette.gbapal.lz"); -const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/icons/victreebel_icon.4bpp"); -const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/footprints/victreebel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/palettes/tentacool_palette.gbapal.lz"); -const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/icons/tentacool_icon.4bpp"); -const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/footprints/tentacool_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/palettes/tentacruel_palette.gbapal.lz"); -const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/icons/tentacruel_icon.4bpp"); -const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/footprints/tentacruel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/palettes/geodude_palette.gbapal.lz"); -const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/icons/geodude_icon.4bpp"); -const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/footprints/geodude_footprint.1bpp"); - -const u32 gMonStillFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/palettes/graveler_palette.gbapal.lz"); -const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/icons/graveler_icon.4bpp"); -const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/footprints/graveler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/palettes/golem_palette.gbapal.lz"); -const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/back_pics/golem_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/icons/golem_icon.4bpp"); -const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/footprints/golem_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/palettes/ponyta_palette.gbapal.lz"); -const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/icons/ponyta_icon.4bpp"); -const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/footprints/ponyta_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/palettes/rapidash_palette.gbapal.lz"); -const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/icons/rapidash_icon.4bpp"); -const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/footprints/rapidash_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/palettes/slowpoke_palette.gbapal.lz"); -const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/icons/slowpoke_icon.4bpp"); -const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/footprints/slowpoke_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/palettes/slowbro_palette.gbapal.lz"); -const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/icons/slowbro_icon.4bpp"); -const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/footprints/slowbro_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/palettes/magnemite_palette.gbapal.lz"); -const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/icons/magnemite_icon.4bpp"); -const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/footprints/magnemite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/palettes/magneton_palette.gbapal.lz"); -const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/icons/magneton_icon.4bpp"); -const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/footprints/magneton_footprint.1bpp"); - -const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz"); -const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/icons/farfetch_d_icon.4bpp"); -const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/footprints/farfetch_d_footprint.1bpp"); - -const u32 gMonStillFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/palettes/doduo_palette.gbapal.lz"); -const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/icons/doduo_icon.4bpp"); -const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/footprints/doduo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/palettes/dodrio_palette.gbapal.lz"); -const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/icons/dodrio_icon.4bpp"); -const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/footprints/dodrio_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/palettes/seel_palette.gbapal.lz"); -const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/back_pics/seel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/icons/seel_icon.4bpp"); -const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/footprints/seel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/palettes/dewgong_palette.gbapal.lz"); -const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/icons/dewgong_icon.4bpp"); -const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/footprints/dewgong_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/palettes/grimer_palette.gbapal.lz"); -const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/icons/grimer_icon.4bpp"); -const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/footprints/grimer_footprint.1bpp"); - -const u32 gMonStillFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/palettes/muk_palette.gbapal.lz"); -const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/back_pics/muk_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/icons/muk_icon.4bpp"); -const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/footprints/muk_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/palettes/shellder_palette.gbapal.lz"); -const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/icons/shellder_icon.4bpp"); -const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/footprints/shellder_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/palettes/cloyster_palette.gbapal.lz"); -const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/icons/cloyster_icon.4bpp"); -const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/footprints/cloyster_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/palettes/gastly_palette.gbapal.lz"); -const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/icons/gastly_icon.4bpp"); -const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/footprints/gastly_footprint.1bpp"); - -const u32 gMonStillFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/palettes/haunter_palette.gbapal.lz"); -const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/icons/haunter_icon.4bpp"); -const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/footprints/haunter_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/palettes/gengar_palette.gbapal.lz"); -const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/icons/gengar_icon.4bpp"); -const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/footprints/gengar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/palettes/onix_palette.gbapal.lz"); -const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/back_pics/onix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/icons/onix_icon.4bpp"); -const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/footprints/onix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/palettes/drowzee_palette.gbapal.lz"); -const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/icons/drowzee_icon.4bpp"); -const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/footprints/drowzee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/palettes/hypno_palette.gbapal.lz"); -const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/icons/hypno_icon.4bpp"); -const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/footprints/hypno_footprint.1bpp"); - -const u32 gMonStillFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/palettes/krabby_palette.gbapal.lz"); -const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/icons/krabby_icon.4bpp"); -const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/footprints/krabby_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/palettes/kingler_palette.gbapal.lz"); -const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/icons/kingler_icon.4bpp"); -const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/footprints/kingler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/palettes/voltorb_palette.gbapal.lz"); -const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/icons/voltorb_icon.4bpp"); -const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/footprints/voltorb_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/palettes/electrode_palette.gbapal.lz"); -const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/icons/electrode_icon.4bpp"); -const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/footprints/electrode_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/palettes/exeggcute_palette.gbapal.lz"); -const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/icons/exeggcute_icon.4bpp"); -const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/footprints/exeggcute_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/palettes/exeggutor_palette.gbapal.lz"); -const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/icons/exeggutor_icon.4bpp"); -const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/footprints/exeggutor_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/palettes/cubone_palette.gbapal.lz"); -const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/icons/cubone_icon.4bpp"); -const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/footprints/cubone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/palettes/marowak_palette.gbapal.lz"); -const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/icons/marowak_icon.4bpp"); -const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/footprints/marowak_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/icons/hitmonlee_icon.4bpp"); -const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/footprints/hitmonlee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/icons/hitmonchan_icon.4bpp"); -const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/footprints/hitmonchan_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/palettes/lickitung_palette.gbapal.lz"); -const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/icons/lickitung_icon.4bpp"); -const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/footprints/lickitung_footprint.1bpp"); - -const u32 gMonStillFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/palettes/koffing_palette.gbapal.lz"); -const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/icons/koffing_icon.4bpp"); -const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/footprints/koffing_footprint.1bpp"); - -const u32 gMonStillFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/palettes/weezing_palette.gbapal.lz"); -const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/icons/weezing_icon.4bpp"); -const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/footprints/weezing_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz"); -const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/icons/rhyhorn_icon.4bpp"); -const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/footprints/rhyhorn_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/palettes/rhydon_palette.gbapal.lz"); -const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/icons/rhydon_icon.4bpp"); -const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/footprints/rhydon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/palettes/chansey_palette.gbapal.lz"); -const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/icons/chansey_icon.4bpp"); -const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/footprints/chansey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/palettes/tangela_palette.gbapal.lz"); -const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/icons/tangela_icon.4bpp"); -const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/footprints/tangela_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz"); -const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/icons/kangaskhan_icon.4bpp"); -const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/footprints/kangaskhan_footprint.1bpp"); - -const u32 gMonStillFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/palettes/horsea_palette.gbapal.lz"); -const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/icons/horsea_icon.4bpp"); -const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/footprints/horsea_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/palettes/seadra_palette.gbapal.lz"); -const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/icons/seadra_icon.4bpp"); -const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/footprints/seadra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/palettes/goldeen_palette.gbapal.lz"); -const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/icons/goldeen_icon.4bpp"); -const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/footprints/goldeen_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/palettes/seaking_palette.gbapal.lz"); -const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/icons/seaking_icon.4bpp"); -const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/footprints/seaking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/palettes/staryu_palette.gbapal.lz"); -const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/icons/staryu_icon.4bpp"); -const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/footprints/staryu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/palettes/starmie_palette.gbapal.lz"); -const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/icons/starmie_icon.4bpp"); -const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/footprints/starmie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/palettes/mr_mime_palette.gbapal.lz"); -const u32 gMonBackPic_Mrmime[] = INCBIN_U32("graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/icons/mr_mime_icon.4bpp"); -const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/footprints/mr_mime_footprint.1bpp"); - -const u32 gMonStillFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/palettes/scyther_palette.gbapal.lz"); -const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/icons/scyther_icon.4bpp"); -const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/footprints/scyther_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/palettes/jynx_palette.gbapal.lz"); -const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/icons/jynx_icon.4bpp"); -const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/footprints/jynx_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/palettes/electabuzz_palette.gbapal.lz"); -const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/icons/electabuzz_icon.4bpp"); -const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/footprints/electabuzz_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/palettes/magmar_palette.gbapal.lz"); -const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/icons/magmar_icon.4bpp"); -const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/footprints/magmar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/palettes/pinsir_palette.gbapal.lz"); -const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/icons/pinsir_icon.4bpp"); -const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/footprints/pinsir_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/palettes/tauros_palette.gbapal.lz"); -const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/icons/tauros_icon.4bpp"); -const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/footprints/tauros_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/palettes/magikarp_palette.gbapal.lz"); -const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/icons/magikarp_icon.4bpp"); -const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/footprints/magikarp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/palettes/gyarados_palette.gbapal.lz"); -const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/icons/gyarados_icon.4bpp"); -const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/footprints/gyarados_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/palettes/lapras_palette.gbapal.lz"); -const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/icons/lapras_icon.4bpp"); -const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/footprints/lapras_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/palettes/ditto_palette.gbapal.lz"); -const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/icons/ditto_icon.4bpp"); -const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/footprints/ditto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/palettes/eevee_palette.gbapal.lz"); -const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/icons/eevee_icon.4bpp"); -const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/footprints/eevee_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/palettes/vaporeon_palette.gbapal.lz"); -const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/icons/vaporeon_icon.4bpp"); -const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/footprints/vaporeon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/palettes/jolteon_palette.gbapal.lz"); -const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/icons/jolteon_icon.4bpp"); -const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/footprints/jolteon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/palettes/flareon_palette.gbapal.lz"); -const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/icons/flareon_icon.4bpp"); -const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/footprints/flareon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/palettes/porygon_palette.gbapal.lz"); -const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/icons/porygon_icon.4bpp"); -const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/footprints/porygon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/palettes/omanyte_palette.gbapal.lz"); -const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/icons/omanyte_icon.4bpp"); -const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/footprints/omanyte_footprint.1bpp"); - -const u32 gMonStillFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/palettes/omastar_palette.gbapal.lz"); -const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/icons/omastar_icon.4bpp"); -const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/footprints/omastar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/palettes/kabuto_palette.gbapal.lz"); -const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/icons/kabuto_icon.4bpp"); -const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/footprints/kabuto_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/palettes/kabutops_palette.gbapal.lz"); -const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/icons/kabutops_icon.4bpp"); -const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/footprints/kabutops_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz"); -const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/icons/aerodactyl_icon.4bpp"); -const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/footprints/aerodactyl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/palettes/snorlax_palette.gbapal.lz"); -const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/icons/snorlax_icon.4bpp"); -const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/footprints/snorlax_footprint.1bpp"); - -const u32 gMonStillFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/palettes/articuno_palette.gbapal.lz"); -const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/icons/articuno_icon.4bpp"); -const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/footprints/articuno_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/palettes/zapdos_palette.gbapal.lz"); -const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/icons/zapdos_icon.4bpp"); -const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/footprints/zapdos_footprint.1bpp"); - -const u32 gMonStillFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/palettes/moltres_palette.gbapal.lz"); -const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/icons/moltres_icon.4bpp"); -const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/footprints/moltres_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/palettes/dratini_palette.gbapal.lz"); -const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/icons/dratini_icon.4bpp"); -const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/footprints/dratini_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/palettes/dragonair_palette.gbapal.lz"); -const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/icons/dragonair_icon.4bpp"); -const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/footprints/dragonair_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/palettes/dragonite_palette.gbapal.lz"); -const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/icons/dragonite_icon.4bpp"); -const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/footprints/dragonite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/palettes/mewtwo_palette.gbapal.lz"); -const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/icons/mewtwo_icon.4bpp"); -const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/footprints/mewtwo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/palettes/mew_palette.gbapal.lz"); -const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/back_pics/mew_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/icons/mew_icon.4bpp"); -const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/footprints/mew_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/palettes/chikorita_palette.gbapal.lz"); -const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/icons/chikorita_icon.4bpp"); -const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/footprints/chikorita_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/palettes/bayleef_palette.gbapal.lz"); -const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/icons/bayleef_icon.4bpp"); -const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/footprints/bayleef_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/palettes/meganium_palette.gbapal.lz"); -const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/icons/meganium_icon.4bpp"); -const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/footprints/meganium_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz"); -const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/icons/cyndaquil_icon.4bpp"); -const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/footprints/cyndaquil_footprint.1bpp"); - -const u32 gMonStillFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/palettes/quilava_palette.gbapal.lz"); -const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/icons/quilava_icon.4bpp"); -const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/footprints/quilava_footprint.1bpp"); - -const u32 gMonStillFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/palettes/typhlosion_palette.gbapal.lz"); -const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/icons/typhlosion_icon.4bpp"); -const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/footprints/typhlosion_footprint.1bpp"); - -const u32 gMonStillFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/palettes/totodile_palette.gbapal.lz"); -const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/icons/totodile_icon.4bpp"); -const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/footprints/totodile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/palettes/croconaw_palette.gbapal.lz"); -const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/icons/croconaw_icon.4bpp"); -const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/footprints/croconaw_footprint.1bpp"); - -const u32 gMonStillFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/palettes/feraligatr_palette.gbapal.lz"); -const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/icons/feraligatr_icon.4bpp"); -const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/footprints/feraligatr_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/palettes/sentret_palette.gbapal.lz"); -const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/icons/sentret_icon.4bpp"); -const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/footprints/sentret_footprint.1bpp"); - -const u32 gMonStillFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/palettes/furret_palette.gbapal.lz"); -const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/back_pics/furret_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/icons/furret_icon.4bpp"); -const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/footprints/furret_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/palettes/hoothoot_palette.gbapal.lz"); -const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/icons/hoothoot_icon.4bpp"); -const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/footprints/hoothoot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/palettes/noctowl_palette.gbapal.lz"); -const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/icons/noctowl_icon.4bpp"); -const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/footprints/noctowl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/palettes/ledyba_palette.gbapal.lz"); -const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/icons/ledyba_icon.4bpp"); -const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/footprints/ledyba_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/palettes/ledian_palette.gbapal.lz"); -const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/icons/ledian_icon.4bpp"); -const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/footprints/ledian_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/palettes/spinarak_palette.gbapal.lz"); -const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/icons/spinarak_icon.4bpp"); -const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/footprints/spinarak_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/palettes/ariados_palette.gbapal.lz"); -const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/icons/ariados_icon.4bpp"); -const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/footprints/ariados_footprint.1bpp"); - -const u32 gMonStillFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/palettes/crobat_palette.gbapal.lz"); -const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/icons/crobat_icon.4bpp"); -const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/footprints/crobat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/palettes/chinchou_palette.gbapal.lz"); -const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/icons/chinchou_icon.4bpp"); -const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/footprints/chinchou_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/palettes/lanturn_palette.gbapal.lz"); -const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/icons/lanturn_icon.4bpp"); -const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/footprints/lanturn_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/palettes/pichu_palette.gbapal.lz"); -const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/icons/pichu_icon.4bpp"); -const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/footprints/pichu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/palettes/cleffa_palette.gbapal.lz"); -const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/icons/cleffa_icon.4bpp"); -const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/footprints/cleffa_footprint.1bpp"); - -const u32 gMonStillFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/palettes/igglybuff_palette.gbapal.lz"); -const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/icons/igglybuff_icon.4bpp"); -const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/footprints/igglybuff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/palettes/togepi_palette.gbapal.lz"); -const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/icons/togepi_icon.4bpp"); -const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/footprints/togepi_footprint.1bpp"); - -const u32 gMonStillFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/palettes/togetic_palette.gbapal.lz"); -const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/icons/togetic_icon.4bpp"); -const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/footprints/togetic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/palettes/natu_palette.gbapal.lz"); -const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/back_pics/natu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/icons/natu_icon.4bpp"); -const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/footprints/natu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/palettes/xatu_palette.gbapal.lz"); -const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/icons/xatu_icon.4bpp"); -const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/footprints/xatu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/palettes/mareep_palette.gbapal.lz"); -const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/icons/mareep_icon.4bpp"); -const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/footprints/mareep_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/palettes/flaaffy_palette.gbapal.lz"); -const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/icons/flaaffy_icon.4bpp"); -const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/footprints/flaaffy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/palettes/ampharos_palette.gbapal.lz"); -const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/icons/ampharos_icon.4bpp"); -const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/footprints/ampharos_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/palettes/bellossom_palette.gbapal.lz"); -const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/icons/bellossom_icon.4bpp"); -const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/footprints/bellossom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/palettes/marill_palette.gbapal.lz"); -const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/back_pics/marill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/icons/marill_icon.4bpp"); -const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/footprints/marill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/palettes/azumarill_palette.gbapal.lz"); -const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/icons/azumarill_icon.4bpp"); -const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/footprints/azumarill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz"); -const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/icons/sudowoodo_icon.4bpp"); -const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/footprints/sudowoodo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/palettes/politoed_palette.gbapal.lz"); -const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/icons/politoed_icon.4bpp"); -const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/footprints/politoed_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/palettes/hoppip_palette.gbapal.lz"); -const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/icons/hoppip_icon.4bpp"); -const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/footprints/hoppip_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/palettes/skiploom_palette.gbapal.lz"); -const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/icons/skiploom_icon.4bpp"); -const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/footprints/skiploom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/palettes/jumpluff_palette.gbapal.lz"); -const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/icons/jumpluff_icon.4bpp"); -const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/footprints/jumpluff_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/palettes/aipom_palette.gbapal.lz"); -const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/icons/aipom_icon.4bpp"); -const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/footprints/aipom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/palettes/sunkern_palette.gbapal.lz"); -const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/icons/sunkern_icon.4bpp"); -const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/footprints/sunkern_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/palettes/sunflora_palette.gbapal.lz"); -const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/icons/sunflora_icon.4bpp"); -const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/footprints/sunflora_footprint.1bpp"); - -const u32 gMonStillFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/palettes/yanma_palette.gbapal.lz"); -const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/icons/yanma_icon.4bpp"); -const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/footprints/yanma_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/palettes/wooper_palette.gbapal.lz"); -const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/icons/wooper_icon.4bpp"); -const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/footprints/wooper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/palettes/quagsire_palette.gbapal.lz"); -const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/icons/quagsire_icon.4bpp"); -const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/footprints/quagsire_footprint.1bpp"); - -const u32 gMonStillFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/palettes/espeon_palette.gbapal.lz"); -const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/icons/espeon_icon.4bpp"); -const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/footprints/espeon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/palettes/umbreon_palette.gbapal.lz"); -const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/icons/umbreon_icon.4bpp"); -const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/footprints/umbreon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/palettes/murkrow_palette.gbapal.lz"); -const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/icons/murkrow_icon.4bpp"); -const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/footprints/murkrow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/palettes/slowking_palette.gbapal.lz"); -const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/icons/slowking_icon.4bpp"); -const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/footprints/slowking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/palettes/misdreavus_palette.gbapal.lz"); -const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/icons/misdreavus_icon.4bpp"); -const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/footprints/misdreavus_footprint.1bpp"); - -const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/palettes/unown_palette.gbapal.lz"); -const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz"); -const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/icons/unown_a_icon.4bpp"); -const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/footprints/unown_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz"); -const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/icons/wobbuffet_icon.4bpp"); -const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/footprints/wobbuffet_footprint.1bpp"); - -const u32 gMonStillFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/palettes/girafarig_palette.gbapal.lz"); -const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/icons/girafarig_icon.4bpp"); -const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/footprints/girafarig_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/palettes/pineco_palette.gbapal.lz"); -const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/icons/pineco_icon.4bpp"); -const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/footprints/pineco_footprint.1bpp"); - -const u32 gMonStillFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/palettes/forretress_palette.gbapal.lz"); -const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/icons/forretress_icon.4bpp"); -const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/footprints/forretress_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/palettes/dunsparce_palette.gbapal.lz"); -const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/icons/dunsparce_icon.4bpp"); -const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/footprints/dunsparce_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/palettes/gligar_palette.gbapal.lz"); -const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/icons/gligar_icon.4bpp"); -const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/footprints/gligar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/palettes/steelix_palette.gbapal.lz"); -const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/icons/steelix_icon.4bpp"); -const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/footprints/steelix_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/palettes/snubbull_palette.gbapal.lz"); -const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/icons/snubbull_icon.4bpp"); -const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/footprints/snubbull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/palettes/granbull_palette.gbapal.lz"); -const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/icons/granbull_icon.4bpp"); -const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/footprints/granbull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/palettes/qwilfish_palette.gbapal.lz"); -const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/icons/qwilfish_icon.4bpp"); -const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/footprints/qwilfish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/palettes/scizor_palette.gbapal.lz"); -const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/icons/scizor_icon.4bpp"); -const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/footprints/scizor_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/palettes/shuckle_palette.gbapal.lz"); -const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/icons/shuckle_icon.4bpp"); -const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/footprints/shuckle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/palettes/heracross_palette.gbapal.lz"); -const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/icons/heracross_icon.4bpp"); -const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/footprints/heracross_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/palettes/sneasel_palette.gbapal.lz"); -const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/icons/sneasel_icon.4bpp"); -const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/footprints/sneasel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/palettes/teddiursa_palette.gbapal.lz"); -const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/icons/teddiursa_icon.4bpp"); -const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/footprints/teddiursa_footprint.1bpp"); -const u32 gMonStillFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/palettes/ursaring_palette.gbapal.lz"); -const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/icons/ursaring_icon.4bpp"); -const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/footprints/ursaring_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/palettes/slugma_palette.gbapal.lz"); -const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/icons/slugma_icon.4bpp"); -const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/footprints/slugma_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/palettes/magcargo_palette.gbapal.lz"); -const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/icons/magcargo_icon.4bpp"); -const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/footprints/magcargo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/palettes/swinub_palette.gbapal.lz"); -const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/icons/swinub_icon.4bpp"); -const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/footprints/swinub_footprint.1bpp"); - -const u32 gMonStillFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/palettes/piloswine_palette.gbapal.lz"); -const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/icons/piloswine_icon.4bpp"); -const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/footprints/piloswine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/palettes/corsola_palette.gbapal.lz"); -const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/icons/corsola_icon.4bpp"); -const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/footprints/corsola_footprint.1bpp"); - -const u32 gMonStillFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/palettes/remoraid_palette.gbapal.lz"); -const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/icons/remoraid_icon.4bpp"); -const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/footprints/remoraid_footprint.1bpp"); - -const u32 gMonStillFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/palettes/octillery_palette.gbapal.lz"); -const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/icons/octillery_icon.4bpp"); -const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/footprints/octillery_footprint.1bpp"); - -const u32 gMonStillFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/palettes/delibird_palette.gbapal.lz"); -const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/icons/delibird_icon.4bpp"); -const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/footprints/delibird_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/palettes/mantine_palette.gbapal.lz"); -const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/icons/mantine_icon.4bpp"); -const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/footprints/mantine_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/palettes/skarmory_palette.gbapal.lz"); -const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/icons/skarmory_icon.4bpp"); -const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/footprints/skarmory_footprint.1bpp"); - -const u32 gMonStillFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/palettes/houndour_palette.gbapal.lz"); -const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/icons/houndour_icon.4bpp"); -const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/footprints/houndour_footprint.1bpp"); - -const u32 gMonStillFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/palettes/houndoom_palette.gbapal.lz"); -const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/icons/houndoom_icon.4bpp"); -const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/footprints/houndoom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/palettes/kingdra_palette.gbapal.lz"); -const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/icons/kingdra_icon.4bpp"); -const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/footprints/kingdra_footprint.1bpp"); - -const u32 gMonStillFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/palettes/phanpy_palette.gbapal.lz"); -const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/icons/phanpy_icon.4bpp"); -const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/footprints/phanpy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/palettes/donphan_palette.gbapal.lz"); -const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/icons/donphan_icon.4bpp"); -const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/footprints/donphan_footprint.1bpp"); +const u32 gMonStillFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/front.4bpp.lz"); +const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); +const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); +const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); +const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/front.4bpp.lz"); +const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); +const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); +const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); +const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/front.4bpp.lz"); +const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); +const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); +const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); +const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); +const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/front.4bpp.lz"); +const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz"); +const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); +const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); +const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); +const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/front.4bpp.lz"); +const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); +const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); +const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); +const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); +const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/front.4bpp.lz"); +const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); +const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); +const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); +const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); +const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); + +const u32 gMonStillFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/front.4bpp.lz"); +const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz"); +const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); +const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); +const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); +const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/front.4bpp.lz"); +const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); +const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); +const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); +const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); +const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/front.4bpp.lz"); +const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); +const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); +const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); +const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); +const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); + +const u32 gMonStillFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/front.4bpp.lz"); +const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz"); +const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); +const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); +const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); +const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/front.4bpp.lz"); +const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); +const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); +const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); +const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); +const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); + +const u32 gMonStillFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/front.4bpp.lz"); +const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); +const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); +const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); +const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); +const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/front.4bpp.lz"); +const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz"); +const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); +const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); +const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); +const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/front.4bpp.lz"); +const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); +const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); +const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); +const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); +const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/front.4bpp.lz"); +const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); +const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); +const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); +const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); +const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/front.4bpp.lz"); +const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); +const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/front.4bpp.lz"); +const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); +const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/front.4bpp.lz"); +const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); +const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); +const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); +const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); +const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/front.4bpp.lz"); +const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz"); +const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); +const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); +const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); +const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/front.4bpp.lz"); +const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz"); +const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); +const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); +const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); +const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/front.4bpp.lz"); +const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz"); +const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); +const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); +const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); +const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/front.4bpp.lz"); +const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); +const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); +const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); +const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); +const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/front.4bpp.lz"); +const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz"); +const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); +const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); +const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); +const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); + +const u32 gMonStillFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/front.4bpp.lz"); +const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); +const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); +const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); +const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); +const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/front.4bpp.lz"); +const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz"); +const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); +const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); +const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); +const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/front.4bpp.lz"); +const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); +const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); +const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); +const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); +const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/front.4bpp.lz"); +const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz"); +const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); +const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); +const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); +const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/front.4bpp.lz"); +const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); +const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); +const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); +const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); +const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); + +const u32 gMonStillFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/front.4bpp.lz"); +const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz"); +const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); +const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); +const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); +const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/front.4bpp.lz"); +const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); +const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); +const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); +const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/front.4bpp.lz"); +const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); +const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); +const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); +const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); + +const u32 gMonStillFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/front.4bpp.lz"); +const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); +const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); +const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); +const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); +const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/front.4bpp.lz"); +const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); +const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); +const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); +const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/front.4bpp.lz"); +const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); +const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); +const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); +const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); +const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/front.4bpp.lz"); +const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz"); +const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); +const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); +const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); +const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/front.4bpp.lz"); +const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); +const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); +const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); +const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); +const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/front.4bpp.lz"); +const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz"); +const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); +const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); +const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); +const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/front.4bpp.lz"); +const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); +const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); +const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); +const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); +const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/front.4bpp.lz"); +const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz"); +const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); +const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); +const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/front.4bpp.lz"); +const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); +const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); +const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); +const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/front.4bpp.lz"); +const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz"); +const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); +const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); +const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); +const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/front.4bpp.lz"); +const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz"); +const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); +const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); +const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); +const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/front.4bpp.lz"); +const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz"); +const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); +const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); +const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); +const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/front.4bpp.lz"); +const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); +const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); +const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); +const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); +const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/front.4bpp.lz"); +const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz"); +const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); +const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); +const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); +const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); + +const u32 gMonStillFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/front.4bpp.lz"); +const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz"); +const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); +const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); +const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); +const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); + +const u32 gMonStillFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/front.4bpp.lz"); +const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); +const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); +const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); +const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); +const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/front.4bpp.lz"); +const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz"); +const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); +const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); +const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); +const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/front.4bpp.lz"); +const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); +const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); +const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); +const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); +const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/front.4bpp.lz"); +const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz"); +const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); +const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); +const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); +const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/front.4bpp.lz"); +const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); +const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); +const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); +const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); +const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/front.4bpp.lz"); +const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz"); +const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); +const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); +const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); +const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/front.4bpp.lz"); +const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); +const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); +const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); +const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); +const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); + +const u32 gMonStillFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/front.4bpp.lz"); +const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz"); +const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); +const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); +const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); +const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/front.4bpp.lz"); +const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); +const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); +const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); +const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); +const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/front.4bpp.lz"); +const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz"); +const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); +const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); +const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); +const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/front.4bpp.lz"); +const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); +const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); +const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); +const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); +const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); + +const u32 gMonStillFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/front.4bpp.lz"); +const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz"); +const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); +const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); +const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); +const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); + +const u32 gMonStillFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/front.4bpp.lz"); +const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); +const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); +const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); +const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); +const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/front.4bpp.lz"); +const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); +const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/front.4bpp.lz"); +const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); +const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/front.4bpp.lz"); +const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); +const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); +const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); +const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); +const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); + +const u32 gMonStillFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/front.4bpp.lz"); +const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz"); +const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); +const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); +const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); +const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/front.4bpp.lz"); +const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); +const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); +const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); +const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); +const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/front.4bpp.lz"); +const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz"); +const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); +const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); +const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); +const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/front.4bpp.lz"); +const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz"); +const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); +const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); +const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); +const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/front.4bpp.lz"); +const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); +const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); +const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); +const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); +const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); + +const u32 gMonStillFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/front.4bpp.lz"); +const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); +const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); +const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); +const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); +const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/front.4bpp.lz"); +const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz"); +const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); +const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); +const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); +const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/front.4bpp.lz"); +const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); +const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); +const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); +const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); +const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); + +const u32 gMonStillFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/front.4bpp.lz"); +const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); +const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); +const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); +const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); +const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/front.4bpp.lz"); +const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz"); +const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); +const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); +const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); +const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/front.4bpp.lz"); +const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); +const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); +const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); +const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); +const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/front.4bpp.lz"); +const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz"); +const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); +const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); +const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); +const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); + +const u32 gMonStillFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/front.4bpp.lz"); +const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); +const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); +const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); +const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); +const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/front.4bpp.lz"); +const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); +const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); +const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); +const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); +const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/front.4bpp.lz"); +const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz"); +const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); +const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); +const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); +const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/front.4bpp.lz"); +const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); +const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); +const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); +const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); +const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/front.4bpp.lz"); +const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz"); +const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); +const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); +const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/front.4bpp.lz"); +const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); +const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); +const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); +const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/front.4bpp.lz"); +const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz"); +const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); +const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); +const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); +const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/front.4bpp.lz"); +const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); +const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); +const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); +const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); +const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); + +const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/front.4bpp.lz"); +const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/normal.gbapal.lz"); +const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/back.4bpp.lz"); +const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/shiny.gbapal.lz"); +const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/icon.4bpp"); +const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/footprint.1bpp"); + +const u32 gMonStillFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/front.4bpp.lz"); +const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); +const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); +const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); +const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); +const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/front.4bpp.lz"); +const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz"); +const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); +const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); +const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); +const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/front.4bpp.lz"); +const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz"); +const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); +const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); +const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); +const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/front.4bpp.lz"); +const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); +const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); +const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); +const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); +const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/front.4bpp.lz"); +const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz"); +const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); +const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); +const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); +const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); + +const u32 gMonStillFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/front.4bpp.lz"); +const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); +const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); +const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); +const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); +const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/front.4bpp.lz"); +const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz"); +const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); +const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); +const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); +const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/front.4bpp.lz"); +const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); +const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); +const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); +const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); +const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/front.4bpp.lz"); +const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz"); +const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); +const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); +const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); +const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); + +const u32 gMonStillFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/front.4bpp.lz"); +const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); +const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); +const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); +const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); +const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/front.4bpp.lz"); +const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); +const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); +const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); +const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); +const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/front.4bpp.lz"); +const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz"); +const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); +const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); +const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); +const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/front.4bpp.lz"); +const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz"); +const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); +const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); +const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); +const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/front.4bpp.lz"); +const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); +const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); +const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); +const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); +const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); + +const u32 gMonStillFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/front.4bpp.lz"); +const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz"); +const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); +const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); +const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); +const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/front.4bpp.lz"); +const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); +const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); +const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); +const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); +const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/front.4bpp.lz"); +const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz"); +const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); +const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); +const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); +const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/front.4bpp.lz"); +const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); +const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); +const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); +const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); +const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/front.4bpp.lz"); +const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz"); +const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); +const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); +const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); +const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/front.4bpp.lz"); +const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); +const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); +const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); +const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); +const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/front.4bpp.lz"); +const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz"); +const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); +const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); +const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); +const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/front.4bpp.lz"); +const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); +const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); +const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); +const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); +const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/front.4bpp.lz"); +const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); +const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/front.4bpp.lz"); +const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); +const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/front.4bpp.lz"); +const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz"); +const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); +const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); +const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); +const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); + +const u32 gMonStillFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/front.4bpp.lz"); +const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz"); +const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); +const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); +const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); +const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); + +const u32 gMonStillFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/front.4bpp.lz"); +const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); +const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); +const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); +const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); +const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/front.4bpp.lz"); +const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz"); +const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); +const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); +const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); +const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/front.4bpp.lz"); +const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz"); +const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); +const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); +const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); +const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/front.4bpp.lz"); +const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz"); +const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); +const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); +const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); +const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/front.4bpp.lz"); +const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz"); +const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); +const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); +const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); +const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/front.4bpp.lz"); +const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz"); +const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); +const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); +const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); +const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); + +const u32 gMonStillFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/front.4bpp.lz"); +const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz"); +const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); +const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); +const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); +const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/front.4bpp.lz"); +const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); +const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); +const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); +const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); +const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/front.4bpp.lz"); +const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz"); +const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); +const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); +const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); +const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/front.4bpp.lz"); +const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz"); +const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); +const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); +const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); +const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/front.4bpp.lz"); +const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz"); +const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); +const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); +const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); +const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/front.4bpp.lz"); +const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); +const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); +const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); +const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); +const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/front.4bpp.lz"); +const u32 gMonPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz"); +const u32 gMonBackPic_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); +const u32 gMonShinyPalette_Mrmime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); +const u8 gMonIcon_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); +const u8 gMonFootprint_Mrmime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); + +const u32 gMonStillFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/front.4bpp.lz"); +const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz"); +const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); +const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); +const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); +const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/front.4bpp.lz"); +const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz"); +const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); +const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); +const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); +const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/front.4bpp.lz"); +const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz"); +const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); +const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); +const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); +const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/front.4bpp.lz"); +const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz"); +const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); +const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); +const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); +const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/front.4bpp.lz"); +const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz"); +const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); +const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); +const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); +const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/front.4bpp.lz"); +const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz"); +const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); +const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); +const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); +const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/front.4bpp.lz"); +const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz"); +const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); +const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); +const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); +const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/front.4bpp.lz"); +const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz"); +const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); +const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); +const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); +const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/front.4bpp.lz"); +const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz"); +const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); +const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); +const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); +const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/front.4bpp.lz"); +const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz"); +const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); +const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); +const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); +const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/front.4bpp.lz"); +const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz"); +const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); +const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); +const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); +const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/front.4bpp.lz"); +const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); +const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); +const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); +const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); +const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/front.4bpp.lz"); +const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); +const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); +const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); +const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); +const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/front.4bpp.lz"); +const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); +const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); +const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); +const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); +const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/front.4bpp.lz"); +const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz"); +const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); +const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); +const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); +const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/front.4bpp.lz"); +const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz"); +const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); +const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); +const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); +const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); + +const u32 gMonStillFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/front.4bpp.lz"); +const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); +const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); +const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); +const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); +const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/front.4bpp.lz"); +const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz"); +const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); +const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); +const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); +const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/front.4bpp.lz"); +const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); +const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); +const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); +const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); +const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/front.4bpp.lz"); +const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz"); +const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); +const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); +const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); +const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/front.4bpp.lz"); +const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz"); +const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); +const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); +const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); +const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); + +const u32 gMonStillFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/front.4bpp.lz"); +const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz"); +const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); +const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); +const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); +const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/front.4bpp.lz"); +const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz"); +const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); +const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); +const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); +const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); + +const u32 gMonStillFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/front.4bpp.lz"); +const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz"); +const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); +const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); +const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); +const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/front.4bpp.lz"); +const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz"); +const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); +const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); +const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); +const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/front.4bpp.lz"); +const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); +const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); +const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); +const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); +const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/front.4bpp.lz"); +const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); +const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); +const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); +const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); +const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/front.4bpp.lz"); +const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz"); +const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); +const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); +const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); +const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/front.4bpp.lz"); +const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz"); +const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); +const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); +const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); +const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/front.4bpp.lz"); +const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz"); +const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); +const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); +const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); +const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/front.4bpp.lz"); +const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); +const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); +const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); +const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); +const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/front.4bpp.lz"); +const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); +const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); +const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); +const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); +const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/front.4bpp.lz"); +const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz"); +const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); +const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); +const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); +const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); + +const u32 gMonStillFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/front.4bpp.lz"); +const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); +const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); +const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); +const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); +const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); + +const u32 gMonStillFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/front.4bpp.lz"); +const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); +const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); +const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); +const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); +const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); + +const u32 gMonStillFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/front.4bpp.lz"); +const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz"); +const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); +const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); +const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); +const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/front.4bpp.lz"); +const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); +const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); +const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); +const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); +const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); + +const u32 gMonStillFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/front.4bpp.lz"); +const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); +const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); +const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); +const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); +const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/front.4bpp.lz"); +const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz"); +const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); +const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); +const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); +const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); + +const u32 gMonStillFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/front.4bpp.lz"); +const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); +const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); +const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); +const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); +const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/front.4bpp.lz"); +const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz"); +const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); +const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); +const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); +const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/front.4bpp.lz"); +const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); +const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); +const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); +const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); +const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/front.4bpp.lz"); +const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz"); +const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); +const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); +const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); +const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/front.4bpp.lz"); +const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz"); +const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); +const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); +const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); +const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/front.4bpp.lz"); +const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz"); +const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); +const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); +const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); +const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/front.4bpp.lz"); +const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); +const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); +const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); +const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); +const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); + +const u32 gMonStillFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/front.4bpp.lz"); +const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz"); +const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); +const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); +const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); +const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/front.4bpp.lz"); +const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz"); +const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); +const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); +const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); +const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/front.4bpp.lz"); +const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); +const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); +const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); +const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); +const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/front.4bpp.lz"); +const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz"); +const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); +const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); +const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); +const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/front.4bpp.lz"); +const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz"); +const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); +const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); +const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); +const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); + +const u32 gMonStillFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/front.4bpp.lz"); +const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz"); +const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); +const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); +const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); +const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/front.4bpp.lz"); +const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz"); +const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); +const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); +const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); +const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); + +const u32 gMonStillFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/front.4bpp.lz"); +const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); +const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); +const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); +const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); +const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/front.4bpp.lz"); +const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz"); +const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); +const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); +const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); +const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/front.4bpp.lz"); +const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); +const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); +const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); +const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); +const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/front.4bpp.lz"); +const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz"); +const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); +const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); +const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); +const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/front.4bpp.lz"); +const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); +const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); +const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); +const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); +const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/front.4bpp.lz"); +const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); +const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); +const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); +const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); +const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/front.4bpp.lz"); +const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz"); +const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); +const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); +const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); +const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/front.4bpp.lz"); +const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz"); +const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); +const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); +const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); +const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/front.4bpp.lz"); +const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); +const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); +const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); +const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); +const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/front.4bpp.lz"); +const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz"); +const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); +const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); +const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/front.4bpp.lz"); +const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz"); +const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); +const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); +const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); +const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/front.4bpp.lz"); +const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz"); +const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); +const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); +const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); +const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/front.4bpp.lz"); +const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); +const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); +const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); +const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); +const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/front.4bpp.lz"); +const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); +const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); +const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); +const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); +const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/front.4bpp.lz"); +const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz"); +const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); +const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); +const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); +const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/front.4bpp.lz"); +const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz"); +const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); +const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); +const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); +const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/front.4bpp.lz"); +const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); +const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); +const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); +const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); +const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); + +const u32 gMonStillFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/front.4bpp.lz"); +const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz"); +const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); +const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); +const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); +const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/front.4bpp.lz"); +const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz"); +const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); +const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); +const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); +const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/front.4bpp.lz"); +const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz"); +const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); +const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); +const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); +const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); + +const u32 gMonStillFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/front.4bpp.lz"); +const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz"); +const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); +const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); +const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); +const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/front.4bpp.lz"); +const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); +const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); +const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); +const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); +const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/front.4bpp.lz"); +const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz"); +const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); +const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); +const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); +const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/front.4bpp.lz"); +const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz"); +const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); +const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); +const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); +const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/front.4bpp.lz"); +const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz"); +const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); +const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); +const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); +const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); + +const u32 gMonStillFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/front_a.4bpp.lz"); +const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); +const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/back_a.4bpp.lz"); +const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); +const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/icon_a.4bpp"); +const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/front.4bpp.lz"); +const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz"); +const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); +const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); +const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); +const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); + +const u32 gMonStillFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/front.4bpp.lz"); +const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz"); +const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); +const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); +const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); +const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/front.4bpp.lz"); +const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz"); +const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); +const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); +const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); +const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); + +const u32 gMonStillFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/front.4bpp.lz"); +const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); +const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); +const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); +const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); +const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/front.4bpp.lz"); +const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz"); +const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); +const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); +const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); +const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/front.4bpp.lz"); +const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz"); +const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); +const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); +const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); +const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/front.4bpp.lz"); +const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz"); +const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); +const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); +const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); +const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/front.4bpp.lz"); +const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz"); +const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); +const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); +const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); +const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/front.4bpp.lz"); +const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); +const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); +const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); +const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); +const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/front.4bpp.lz"); +const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz"); +const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); +const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); +const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); +const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/front.4bpp.lz"); +const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz"); +const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); +const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); +const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); +const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/front.4bpp.lz"); +const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz"); +const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); +const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); +const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); +const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/front.4bpp.lz"); +const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz"); +const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); +const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); +const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); +const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/front.4bpp.lz"); +const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz"); +const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); +const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); +const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); +const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/front.4bpp.lz"); +const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz"); +const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); +const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); +const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); +const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); +const u32 gMonStillFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/front.4bpp.lz"); +const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); +const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); +const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); +const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); +const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/front.4bpp.lz"); +const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz"); +const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); +const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); +const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); +const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/front.4bpp.lz"); +const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); +const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); +const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); +const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); +const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/front.4bpp.lz"); +const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz"); +const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); +const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); +const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); +const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); + +const u32 gMonStillFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/front.4bpp.lz"); +const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); +const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); +const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); +const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); +const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/front.4bpp.lz"); +const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz"); +const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); +const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); +const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); +const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); + +const u32 gMonStillFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/front.4bpp.lz"); +const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz"); +const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); +const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); +const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); +const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); + +const u32 gMonStillFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/front.4bpp.lz"); +const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); +const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); +const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); +const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); +const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); + +const u32 gMonStillFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/front.4bpp.lz"); +const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz"); +const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); +const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); +const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); +const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/front.4bpp.lz"); +const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz"); +const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); +const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); +const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); +const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/front.4bpp.lz"); +const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz"); +const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); +const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); +const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); +const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); + +const u32 gMonStillFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/front.4bpp.lz"); +const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz"); +const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); +const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); +const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); +const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); + +const u32 gMonStillFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/front.4bpp.lz"); +const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); +const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); +const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); +const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); +const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/front.4bpp.lz"); +const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz"); +const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); +const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); +const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); +const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); + +const u32 gMonStillFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/front.4bpp.lz"); +const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz"); +const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); +const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); +const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); +const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/front.4bpp.lz"); +const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); +const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); +const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); +const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); +const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz"); const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_palette.gbapal.lz"); @@ -1628,1196 +1628,1196 @@ const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/po const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/icons/porygon2_icon.4bpp"); const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/footprints/porygon2_footprint.1bpp"); -const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/palettes/stantler_palette.gbapal.lz"); -const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/icons/stantler_icon.4bpp"); -const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/footprints/stantler_footprint.1bpp"); - -const u32 gMonStillFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/palettes/smeargle_palette.gbapal.lz"); -const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/icons/smeargle_icon.4bpp"); -const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/footprints/smeargle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/palettes/tyrogue_palette.gbapal.lz"); -const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/icons/tyrogue_icon.4bpp"); -const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/footprints/tyrogue_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/palettes/hitmontop_palette.gbapal.lz"); -const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/icons/hitmontop_icon.4bpp"); -const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/footprints/hitmontop_footprint.1bpp"); - -const u32 gMonStillFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/palettes/smoochum_palette.gbapal.lz"); -const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/icons/smoochum_icon.4bpp"); -const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/footprints/smoochum_footprint.1bpp"); - -const u32 gMonStillFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/palettes/elekid_palette.gbapal.lz"); -const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/icons/elekid_icon.4bpp"); -const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/footprints/elekid_footprint.1bpp"); - -const u32 gMonStillFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/palettes/magby_palette.gbapal.lz"); -const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/back_pics/magby_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/icons/magby_icon.4bpp"); -const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/footprints/magby_footprint.1bpp"); - -const u32 gMonStillFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/palettes/miltank_palette.gbapal.lz"); -const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/icons/miltank_icon.4bpp"); -const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/footprints/miltank_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/palettes/blissey_palette.gbapal.lz"); -const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/icons/blissey_icon.4bpp"); -const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/footprints/blissey_footprint.1bpp"); - -const u32 gMonStillFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/palettes/raikou_palette.gbapal.lz"); -const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/icons/raikou_icon.4bpp"); -const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/footprints/raikou_footprint.1bpp"); - -const u32 gMonStillFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/palettes/entei_palette.gbapal.lz"); -const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/back_pics/entei_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/icons/entei_icon.4bpp"); -const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/footprints/entei_footprint.1bpp"); - -const u32 gMonStillFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/palettes/suicune_palette.gbapal.lz"); -const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/icons/suicune_icon.4bpp"); -const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/footprints/suicune_footprint.1bpp"); - -const u32 gMonStillFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/palettes/larvitar_palette.gbapal.lz"); -const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/icons/larvitar_icon.4bpp"); -const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/footprints/larvitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/palettes/pupitar_palette.gbapal.lz"); -const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/icons/pupitar_icon.4bpp"); -const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/footprints/pupitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/palettes/tyranitar_palette.gbapal.lz"); -const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/icons/tyranitar_icon.4bpp"); -const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/footprints/tyranitar_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/palettes/lugia_palette.gbapal.lz"); -const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/icons/lugia_icon.4bpp"); -const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/footprints/lugia_footprint.1bpp"); - -const u32 gMonStillFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz"); -const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/palettes/ho_oh_palette.gbapal.lz"); -const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz"); -const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/icons/ho_oh_icon.4bpp"); -const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/footprints/ho_oh_footprint.1bpp"); - -const u32 gMonStillFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/palettes/celebi_palette.gbapal.lz"); -const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/icons/celebi_icon.4bpp"); -const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/footprints/celebi_footprint.1bpp"); - -const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz"); -const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz"); - -const u32 gMonStillFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/palettes/treecko_palette.gbapal.lz"); -const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/icons/treecko_icon.4bpp"); -const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/footprints/treecko_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/palettes/grovyle_palette.gbapal.lz"); -const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/icons/grovyle_icon.4bpp"); -const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/footprints/grovyle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/palettes/sceptile_palette.gbapal.lz"); -const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/icons/sceptile_icon.4bpp"); -const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/footprints/sceptile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/palettes/torchic_palette.gbapal.lz"); -const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/icons/torchic_icon.4bpp"); -const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/footprints/torchic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/palettes/combusken_palette.gbapal.lz"); -const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/icons/combusken_icon.4bpp"); -const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/footprints/combusken_footprint.1bpp"); - -const u32 gMonStillFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/palettes/blaziken_palette.gbapal.lz"); -const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/icons/blaziken_icon.4bpp"); -const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/footprints/blaziken_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/palettes/mudkip_palette.gbapal.lz"); -const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/icons/mudkip_icon.4bpp"); -const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/footprints/mudkip_footprint.1bpp"); - -const u32 gMonStillFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/palettes/marshtomp_palette.gbapal.lz"); -const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/icons/marshtomp_icon.4bpp"); -const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/footprints/marshtomp_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/palettes/swampert_palette.gbapal.lz"); -const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/icons/swampert_icon.4bpp"); -const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/footprints/swampert_footprint.1bpp"); - -const u32 gMonStillFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/palettes/poochyena_palette.gbapal.lz"); -const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/icons/poochyena_icon.4bpp"); -const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/footprints/poochyena_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/palettes/mightyena_palette.gbapal.lz"); -const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/icons/mightyena_icon.4bpp"); -const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/footprints/mightyena_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz"); -const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/icons/zigzagoon_icon.4bpp"); -const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/footprints/zigzagoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/palettes/linoone_palette.gbapal.lz"); -const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/icons/linoone_icon.4bpp"); -const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/footprints/linoone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/palettes/wurmple_palette.gbapal.lz"); -const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/icons/wurmple_icon.4bpp"); -const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/footprints/wurmple_footprint.1bpp"); - -const u32 gMonStillFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/palettes/silcoon_palette.gbapal.lz"); -const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/icons/silcoon_icon.4bpp"); -const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/footprints/silcoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/palettes/beautifly_palette.gbapal.lz"); -const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/icons/beautifly_icon.4bpp"); -const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/footprints/beautifly_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/palettes/cascoon_palette.gbapal.lz"); -const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/icons/cascoon_icon.4bpp"); -const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/footprints/cascoon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/palettes/dustox_palette.gbapal.lz"); -const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/icons/dustox_icon.4bpp"); -const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/footprints/dustox_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/palettes/lotad_palette.gbapal.lz"); -const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/icons/lotad_icon.4bpp"); -const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/footprints/lotad_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/palettes/lombre_palette.gbapal.lz"); -const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/icons/lombre_icon.4bpp"); -const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/footprints/lombre_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/palettes/ludicolo_palette.gbapal.lz"); -const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/icons/ludicolo_icon.4bpp"); -const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/footprints/ludicolo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/palettes/seedot_palette.gbapal.lz"); -const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/icons/seedot_icon.4bpp"); -const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/footprints/seedot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz"); -const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/icons/nuzleaf_icon.4bpp"); -const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/footprints/nuzleaf_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/palettes/shiftry_palette.gbapal.lz"); -const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/icons/shiftry_icon.4bpp"); -const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/footprints/shiftry_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/palettes/nincada_palette.gbapal.lz"); -const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/icons/nincada_icon.4bpp"); -const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/footprints/nincada_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/palettes/ninjask_palette.gbapal.lz"); -const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/icons/ninjask_icon.4bpp"); -const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/footprints/ninjask_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/palettes/shedinja_palette.gbapal.lz"); -const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/icons/shedinja_icon.4bpp"); -const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/footprints/shedinja_footprint.1bpp"); - -const u32 gMonStillFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/palettes/taillow_palette.gbapal.lz"); -const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/icons/taillow_icon.4bpp"); -const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/footprints/taillow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/palettes/swellow_palette.gbapal.lz"); -const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/icons/swellow_icon.4bpp"); -const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/footprints/swellow_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/palettes/shroomish_palette.gbapal.lz"); -const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/icons/shroomish_icon.4bpp"); -const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/footprints/shroomish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/palettes/breloom_palette.gbapal.lz"); -const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/icons/breloom_icon.4bpp"); -const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/footprints/breloom_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/palettes/spinda_palette.gbapal.lz"); -const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/icons/spinda_icon.4bpp"); -const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/footprints/spinda_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/palettes/wingull_palette.gbapal.lz"); -const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/icons/wingull_icon.4bpp"); -const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/footprints/wingull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/palettes/pelipper_palette.gbapal.lz"); -const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/icons/pelipper_icon.4bpp"); -const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/footprints/pelipper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/palettes/surskit_palette.gbapal.lz"); -const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/icons/surskit_icon.4bpp"); -const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/footprints/surskit_footprint.1bpp"); - -const u32 gMonStillFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/palettes/masquerain_palette.gbapal.lz"); -const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/icons/masquerain_icon.4bpp"); -const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/footprints/masquerain_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/palettes/wailmer_palette.gbapal.lz"); -const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/icons/wailmer_icon.4bpp"); -const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/footprints/wailmer_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/palettes/wailord_palette.gbapal.lz"); -const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/icons/wailord_icon.4bpp"); -const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/footprints/wailord_footprint.1bpp"); - -const u32 gMonStillFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/palettes/skitty_palette.gbapal.lz"); -const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/icons/skitty_icon.4bpp"); -const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/footprints/skitty_footprint.1bpp"); - -const u32 gMonStillFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/palettes/delcatty_palette.gbapal.lz"); -const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/icons/delcatty_icon.4bpp"); -const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/footprints/delcatty_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/palettes/kecleon_palette.gbapal.lz"); -const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/icons/kecleon_icon.4bpp"); -const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/footprints/kecleon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/palettes/baltoy_palette.gbapal.lz"); -const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/icons/baltoy_icon.4bpp"); -const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/footprints/baltoy_footprint.1bpp"); - -const u32 gMonStillFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/palettes/claydol_palette.gbapal.lz"); -const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/icons/claydol_icon.4bpp"); -const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/footprints/claydol_footprint.1bpp"); - -const u32 gMonStillFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/palettes/nosepass_palette.gbapal.lz"); -const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/icons/nosepass_icon.4bpp"); -const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/footprints/nosepass_footprint.1bpp"); - -const u32 gMonStillFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/palettes/torkoal_palette.gbapal.lz"); -const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/icons/torkoal_icon.4bpp"); -const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/footprints/torkoal_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/palettes/sableye_palette.gbapal.lz"); -const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/icons/sableye_icon.4bpp"); -const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/footprints/sableye_footprint.1bpp"); - -const u32 gMonStillFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/palettes/barboach_palette.gbapal.lz"); -const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/icons/barboach_icon.4bpp"); -const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/footprints/barboach_footprint.1bpp"); - -const u32 gMonStillFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/palettes/whiscash_palette.gbapal.lz"); -const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/icons/whiscash_icon.4bpp"); -const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/footprints/whiscash_footprint.1bpp"); - -const u32 gMonStillFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/palettes/luvdisc_palette.gbapal.lz"); -const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/icons/luvdisc_icon.4bpp"); -const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/footprints/luvdisc_footprint.1bpp"); - -const u32 gMonStillFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/palettes/corphish_palette.gbapal.lz"); -const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/icons/corphish_icon.4bpp"); -const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/footprints/corphish_footprint.1bpp"); - -const u32 gMonStillFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz"); -const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/icons/crawdaunt_icon.4bpp"); -const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/footprints/crawdaunt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/palettes/feebas_palette.gbapal.lz"); -const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/icons/feebas_icon.4bpp"); -const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/footprints/feebas_footprint.1bpp"); - -const u32 gMonStillFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/palettes/milotic_palette.gbapal.lz"); -const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/icons/milotic_icon.4bpp"); -const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/footprints/milotic_footprint.1bpp"); - -const u32 gMonStillFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/palettes/carvanha_palette.gbapal.lz"); -const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/icons/carvanha_icon.4bpp"); -const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/footprints/carvanha_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/palettes/sharpedo_palette.gbapal.lz"); -const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/icons/sharpedo_icon.4bpp"); -const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/footprints/sharpedo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/palettes/trapinch_palette.gbapal.lz"); -const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/icons/trapinch_icon.4bpp"); -const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/footprints/trapinch_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/palettes/vibrava_palette.gbapal.lz"); -const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/icons/vibrava_icon.4bpp"); -const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/footprints/vibrava_footprint.1bpp"); - -const u32 gMonStillFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/palettes/flygon_palette.gbapal.lz"); -const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/icons/flygon_icon.4bpp"); -const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/footprints/flygon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/palettes/makuhita_palette.gbapal.lz"); -const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/icons/makuhita_icon.4bpp"); -const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/footprints/makuhita_footprint.1bpp"); - -const u32 gMonStillFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/palettes/hariyama_palette.gbapal.lz"); -const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/icons/hariyama_icon.4bpp"); -const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/footprints/hariyama_footprint.1bpp"); - -const u32 gMonStillFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/palettes/electrike_palette.gbapal.lz"); -const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/icons/electrike_icon.4bpp"); -const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/footprints/electrike_footprint.1bpp"); - -const u32 gMonStillFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/palettes/manectric_palette.gbapal.lz"); -const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/icons/manectric_icon.4bpp"); -const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/footprints/manectric_footprint.1bpp"); - -const u32 gMonStillFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/palettes/numel_palette.gbapal.lz"); -const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/back_pics/numel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/icons/numel_icon.4bpp"); -const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/footprints/numel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/palettes/camerupt_palette.gbapal.lz"); -const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/icons/camerupt_icon.4bpp"); -const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/footprints/camerupt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/palettes/spheal_palette.gbapal.lz"); -const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/icons/spheal_icon.4bpp"); -const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/footprints/spheal_footprint.1bpp"); - -const u32 gMonStillFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/palettes/sealeo_palette.gbapal.lz"); -const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/icons/sealeo_icon.4bpp"); -const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/footprints/sealeo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/palettes/walrein_palette.gbapal.lz"); -const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/icons/walrein_icon.4bpp"); -const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/footprints/walrein_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/palettes/cacnea_palette.gbapal.lz"); -const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/icons/cacnea_icon.4bpp"); -const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/footprints/cacnea_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/palettes/cacturne_palette.gbapal.lz"); -const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/icons/cacturne_icon.4bpp"); -const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/footprints/cacturne_footprint.1bpp"); - -const u32 gMonStillFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/palettes/snorunt_palette.gbapal.lz"); -const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/icons/snorunt_icon.4bpp"); -const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/footprints/snorunt_footprint.1bpp"); - -const u32 gMonStillFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/palettes/glalie_palette.gbapal.lz"); -const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/icons/glalie_icon.4bpp"); -const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/footprints/glalie_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/palettes/lunatone_palette.gbapal.lz"); -const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/icons/lunatone_icon.4bpp"); -const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/footprints/lunatone_footprint.1bpp"); - -const u32 gMonStillFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/palettes/solrock_palette.gbapal.lz"); -const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/icons/solrock_icon.4bpp"); -const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/footprints/solrock_footprint.1bpp"); - -const u32 gMonStillFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/palettes/azurill_palette.gbapal.lz"); -const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/icons/azurill_icon.4bpp"); -const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/footprints/azurill_footprint.1bpp"); - -const u32 gMonStillFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/palettes/spoink_palette.gbapal.lz"); -const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/icons/spoink_icon.4bpp"); -const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/footprints/spoink_footprint.1bpp"); - -const u32 gMonStillFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/palettes/grumpig_palette.gbapal.lz"); -const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/icons/grumpig_icon.4bpp"); -const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/footprints/grumpig_footprint.1bpp"); - -const u32 gMonStillFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/palettes/plusle_palette.gbapal.lz"); -const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/icons/plusle_icon.4bpp"); -const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/footprints/plusle_footprint.1bpp"); - -const u32 gMonStillFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/palettes/minun_palette.gbapal.lz"); -const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/back_pics/minun_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/icons/minun_icon.4bpp"); -const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/footprints/minun_footprint.1bpp"); - -const u32 gMonStillFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/palettes/mawile_palette.gbapal.lz"); -const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/icons/mawile_icon.4bpp"); -const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/footprints/mawile_footprint.1bpp"); - -const u32 gMonStillFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/palettes/meditite_palette.gbapal.lz"); -const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/icons/meditite_icon.4bpp"); -const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/footprints/meditite_footprint.1bpp"); - -const u32 gMonStillFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/palettes/medicham_palette.gbapal.lz"); -const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/icons/medicham_icon.4bpp"); -const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/footprints/medicham_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/palettes/swablu_palette.gbapal.lz"); -const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/icons/swablu_icon.4bpp"); -const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/footprints/swablu_footprint.1bpp"); - -const u32 gMonStillFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/palettes/altaria_palette.gbapal.lz"); -const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/icons/altaria_icon.4bpp"); -const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/footprints/altaria_footprint.1bpp"); - -const u32 gMonStillFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/palettes/wynaut_palette.gbapal.lz"); -const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/icons/wynaut_icon.4bpp"); -const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/footprints/wynaut_footprint.1bpp"); - -const u32 gMonStillFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/palettes/duskull_palette.gbapal.lz"); -const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/icons/duskull_icon.4bpp"); -const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/footprints/duskull_footprint.1bpp"); - -const u32 gMonStillFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/palettes/dusclops_palette.gbapal.lz"); -const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/icons/dusclops_icon.4bpp"); -const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/footprints/dusclops_footprint.1bpp"); - -const u32 gMonStillFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/palettes/roselia_palette.gbapal.lz"); -const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/icons/roselia_icon.4bpp"); -const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/footprints/roselia_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/palettes/slakoth_palette.gbapal.lz"); -const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/icons/slakoth_icon.4bpp"); -const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/footprints/slakoth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/palettes/vigoroth_palette.gbapal.lz"); -const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/icons/vigoroth_icon.4bpp"); -const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/footprints/vigoroth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/palettes/slaking_palette.gbapal.lz"); -const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/icons/slaking_icon.4bpp"); -const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/footprints/slaking_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/palettes/gulpin_palette.gbapal.lz"); -const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/icons/gulpin_icon.4bpp"); -const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/footprints/gulpin_footprint.1bpp"); - -const u32 gMonStillFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/palettes/swalot_palette.gbapal.lz"); -const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/icons/swalot_icon.4bpp"); -const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/footprints/swalot_footprint.1bpp"); - -const u32 gMonStillFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/palettes/tropius_palette.gbapal.lz"); -const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/icons/tropius_icon.4bpp"); -const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/footprints/tropius_footprint.1bpp"); - -const u32 gMonStillFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/palettes/whismur_palette.gbapal.lz"); -const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/icons/whismur_icon.4bpp"); -const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/footprints/whismur_footprint.1bpp"); - -const u32 gMonStillFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/palettes/loudred_palette.gbapal.lz"); -const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/icons/loudred_icon.4bpp"); -const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/footprints/loudred_footprint.1bpp"); - -const u32 gMonStillFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/palettes/exploud_palette.gbapal.lz"); -const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/icons/exploud_icon.4bpp"); -const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/footprints/exploud_footprint.1bpp"); - -const u32 gMonStillFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/palettes/clamperl_palette.gbapal.lz"); -const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/icons/clamperl_icon.4bpp"); -const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/footprints/clamperl_footprint.1bpp"); - -const u32 gMonStillFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/palettes/huntail_palette.gbapal.lz"); -const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/icons/huntail_icon.4bpp"); -const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/footprints/huntail_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/palettes/gorebyss_palette.gbapal.lz"); -const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/icons/gorebyss_icon.4bpp"); -const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/footprints/gorebyss_footprint.1bpp"); - -const u32 gMonStillFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/palettes/absol_palette.gbapal.lz"); -const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/back_pics/absol_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/icons/absol_icon.4bpp"); -const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/footprints/absol_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/palettes/shuppet_palette.gbapal.lz"); -const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/icons/shuppet_icon.4bpp"); -const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/footprints/shuppet_footprint.1bpp"); - -const u32 gMonStillFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/palettes/banette_palette.gbapal.lz"); -const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/back_pics/banette_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/icons/banette_icon.4bpp"); -const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/footprints/banette_footprint.1bpp"); - -const u32 gMonStillFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/palettes/seviper_palette.gbapal.lz"); -const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/icons/seviper_icon.4bpp"); -const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/footprints/seviper_footprint.1bpp"); - -const u32 gMonStillFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/palettes/zangoose_palette.gbapal.lz"); -const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/icons/zangoose_icon.4bpp"); -const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/footprints/zangoose_footprint.1bpp"); - -const u32 gMonStillFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/palettes/relicanth_palette.gbapal.lz"); -const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/icons/relicanth_icon.4bpp"); -const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/footprints/relicanth_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/palettes/aron_palette.gbapal.lz"); -const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/back_pics/aron_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/icons/aron_icon.4bpp"); -const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/footprints/aron_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/palettes/lairon_palette.gbapal.lz"); -const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/icons/lairon_icon.4bpp"); -const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/footprints/lairon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/palettes/aggron_palette.gbapal.lz"); -const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/icons/aggron_icon.4bpp"); -const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/footprints/aggron_footprint.1bpp"); - -const u32 gMonStillFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Castform[] = INCBIN_U32("graphics/pokemon/palettes/castform_palette.gbapal.lz"); -const u32 gMonBackPic_Castform[] = INCBIN_U32("graphics/pokemon/back_pics/castform_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Castform[] = INCBIN_U32("graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/icons/castform_icon.4bpp"); -const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/footprints/castform_footprint.1bpp"); - -const u32 gMonStillFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/palettes/volbeat_palette.gbapal.lz"); -const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/icons/volbeat_icon.4bpp"); -const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/footprints/volbeat_footprint.1bpp"); - -const u32 gMonStillFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/palettes/illumise_palette.gbapal.lz"); -const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/icons/illumise_icon.4bpp"); -const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/footprints/illumise_footprint.1bpp"); - -const u32 gMonStillFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/palettes/lileep_palette.gbapal.lz"); -const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/icons/lileep_icon.4bpp"); -const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/footprints/lileep_footprint.1bpp"); - -const u32 gMonStillFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/palettes/cradily_palette.gbapal.lz"); -const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/icons/cradily_icon.4bpp"); -const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/footprints/cradily_footprint.1bpp"); - -const u32 gMonStillFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/palettes/anorith_palette.gbapal.lz"); -const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/icons/anorith_icon.4bpp"); -const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/footprints/anorith_footprint.1bpp"); - -const u32 gMonStillFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/palettes/armaldo_palette.gbapal.lz"); -const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/icons/armaldo_icon.4bpp"); -const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/footprints/armaldo_footprint.1bpp"); - -const u32 gMonStillFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/palettes/ralts_palette.gbapal.lz"); -const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/icons/ralts_icon.4bpp"); -const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/footprints/ralts_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/palettes/kirlia_palette.gbapal.lz"); -const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/icons/kirlia_icon.4bpp"); -const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/footprints/kirlia_footprint.1bpp"); - -const u32 gMonStillFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/palettes/gardevoir_palette.gbapal.lz"); -const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/icons/gardevoir_icon.4bpp"); -const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/footprints/gardevoir_footprint.1bpp"); - -const u32 gMonStillFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/palettes/bagon_palette.gbapal.lz"); -const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/icons/bagon_icon.4bpp"); -const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/footprints/bagon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/palettes/shelgon_palette.gbapal.lz"); -const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/icons/shelgon_icon.4bpp"); -const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/footprints/shelgon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/palettes/salamence_palette.gbapal.lz"); -const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/icons/salamence_icon.4bpp"); -const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/footprints/salamence_footprint.1bpp"); - -const u32 gMonStillFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/palettes/beldum_palette.gbapal.lz"); -const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/icons/beldum_icon.4bpp"); -const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/footprints/beldum_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/palettes/metang_palette.gbapal.lz"); -const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/back_pics/metang_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/icons/metang_icon.4bpp"); -const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/footprints/metang_footprint.1bpp"); - -const u32 gMonStillFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/palettes/metagross_palette.gbapal.lz"); -const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/icons/metagross_icon.4bpp"); -const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/footprints/metagross_footprint.1bpp"); - -const u32 gMonStillFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/palettes/regirock_palette.gbapal.lz"); -const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/icons/regirock_icon.4bpp"); -const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/footprints/regirock_footprint.1bpp"); - -const u32 gMonStillFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/palettes/regice_palette.gbapal.lz"); -const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/back_pics/regice_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/icons/regice_icon.4bpp"); -const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/footprints/regice_footprint.1bpp"); - -const u32 gMonStillFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/palettes/registeel_palette.gbapal.lz"); -const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/icons/registeel_icon.4bpp"); -const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/footprints/registeel_footprint.1bpp"); - -const u32 gMonStillFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/palettes/kyogre_palette.gbapal.lz"); -const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/icons/kyogre_icon.4bpp"); -const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/footprints/kyogre_footprint.1bpp"); - -const u32 gMonStillFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/palettes/groudon_palette.gbapal.lz"); -const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/icons/groudon_icon.4bpp"); -const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/footprints/groudon_footprint.1bpp"); - -const u32 gMonStillFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/palettes/rayquaza_palette.gbapal.lz"); -const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/icons/rayquaza_icon.4bpp"); -const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/footprints/rayquaza_footprint.1bpp"); - -const u32 gMonStillFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/palettes/latias_palette.gbapal.lz"); -const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/back_pics/latias_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/icons/latias_icon.4bpp"); -const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/footprints/latias_footprint.1bpp"); - -const u32 gMonStillFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/palettes/latios_palette.gbapal.lz"); -const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/back_pics/latios_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/icons/latios_icon.4bpp"); -const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/footprints/latios_footprint.1bpp"); - -const u32 gMonStillFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/palettes/jirachi_palette.gbapal.lz"); -const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/icons/jirachi_icon.4bpp"); -const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/footprints/jirachi_footprint.1bpp"); - -const u32 gMonStillFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/palettes/deoxys_palette.gbapal.lz"); -const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/icons/deoxys_icon.4bpp"); -const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/icons/deoxys_speed_icon.4bpp"); +const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/front.4bpp.lz"); +const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); +const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); +const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); +const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); +const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); + +const u32 gMonStillFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/front.4bpp.lz"); +const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz"); +const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); +const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); +const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); +const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/front.4bpp.lz"); +const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz"); +const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); +const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); +const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); +const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/front.4bpp.lz"); +const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz"); +const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); +const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); +const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); +const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); + +const u32 gMonStillFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/front.4bpp.lz"); +const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz"); +const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); +const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); +const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); +const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); + +const u32 gMonStillFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/front.4bpp.lz"); +const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz"); +const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); +const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); +const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); +const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); + +const u32 gMonStillFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/front.4bpp.lz"); +const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz"); +const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); +const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); +const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); +const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); + +const u32 gMonStillFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/front.4bpp.lz"); +const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz"); +const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); +const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); +const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); +const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/front.4bpp.lz"); +const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz"); +const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); +const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); +const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); +const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); + +const u32 gMonStillFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/front.4bpp.lz"); +const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz"); +const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); +const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); +const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); +const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); + +const u32 gMonStillFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/front.4bpp.lz"); +const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz"); +const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); +const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); +const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); +const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); + +const u32 gMonStillFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/front.4bpp.lz"); +const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz"); +const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); +const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); +const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); +const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); + +const u32 gMonStillFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/front.4bpp.lz"); +const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz"); +const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); +const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); +const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/front.4bpp.lz"); +const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); +const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); +const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); +const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/front.4bpp.lz"); +const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); +const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); +const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); +const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); +const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/front.4bpp.lz"); +const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz"); +const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); +const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); +const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); +const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); + +const u32 gMonStillFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/front.4bpp.lz"); +const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz"); +const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); +const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); +const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); +const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); + +const u32 gMonStillFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/front.4bpp.lz"); +const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz"); +const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); +const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); +const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); +const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); + +const u32 gMonStillFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/front.4bpp.lz"); +const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/normal.gbapal.lz"); +const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/back.4bpp.lz"); +const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/double_question_mark/shiny.gbapal.lz"); + +const u32 gMonStillFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/front.4bpp.lz"); +const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); +const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); +const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); +const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); +const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/front.4bpp.lz"); +const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); +const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); +const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); +const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); +const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/front.4bpp.lz"); +const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); +const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); +const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); +const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); +const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/front.4bpp.lz"); +const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz"); +const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); +const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); +const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); +const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/front.4bpp.lz"); +const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz"); +const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); +const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); +const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); +const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); + +const u32 gMonStillFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/front.4bpp.lz"); +const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz"); +const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); +const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); +const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); +const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/front.4bpp.lz"); +const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz"); +const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); +const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); +const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); +const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); + +const u32 gMonStillFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/front.4bpp.lz"); +const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); +const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); +const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); +const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); +const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/front.4bpp.lz"); +const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); +const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); +const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); +const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); +const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); + +const u32 gMonStillFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/front.4bpp.lz"); +const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz"); +const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); +const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); +const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); +const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/front.4bpp.lz"); +const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); +const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); +const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); +const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); +const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/front.4bpp.lz"); +const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz"); +const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); +const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); +const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/front.4bpp.lz"); +const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); +const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); +const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); +const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); +const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/front.4bpp.lz"); +const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz"); +const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); +const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); +const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); +const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); + +const u32 gMonStillFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/front.4bpp.lz"); +const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); +const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); +const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); +const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/front.4bpp.lz"); +const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); +const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); +const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); +const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); +const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/front.4bpp.lz"); +const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz"); +const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); +const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); +const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); +const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/front.4bpp.lz"); +const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); +const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); +const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); +const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); +const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/front.4bpp.lz"); +const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz"); +const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); +const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); +const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); +const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/front.4bpp.lz"); +const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); +const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); +const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); +const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); +const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/front.4bpp.lz"); +const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); +const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); +const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); +const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); +const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/front.4bpp.lz"); +const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz"); +const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); +const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); +const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); +const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/front.4bpp.lz"); +const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); +const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); +const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); +const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); +const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/front.4bpp.lz"); +const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz"); +const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); +const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); +const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); +const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/front.4bpp.lz"); +const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz"); +const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); +const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); +const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); +const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/front.4bpp.lz"); +const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); +const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); +const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); +const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); +const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/front.4bpp.lz"); +const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); +const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); +const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); +const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); +const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); + +const u32 gMonStillFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/front.4bpp.lz"); +const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz"); +const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); +const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); +const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); +const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/front.4bpp.lz"); +const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); +const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); +const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); +const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); +const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/front.4bpp.lz"); +const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz"); +const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); +const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); +const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); +const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/front.4bpp.lz"); +const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); +const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); +const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); +const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); +const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/front.4bpp.lz"); +const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/normal.gbapal.lz"); +const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz"); +const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz"); +const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp"); +const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/front.4bpp.lz"); +const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz"); +const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); +const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); +const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); +const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/front.4bpp.lz"); +const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); +const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); +const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); +const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); +const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/front.4bpp.lz"); +const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz"); +const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); +const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); +const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); +const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); + +const u32 gMonStillFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/front.4bpp.lz"); +const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); +const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); +const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); +const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); +const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/front.4bpp.lz"); +const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz"); +const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); +const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); +const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); +const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/front.4bpp.lz"); +const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); +const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); +const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); +const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); +const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); + +const u32 gMonStillFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/front.4bpp.lz"); +const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz"); +const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); +const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); +const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); +const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); + +const u32 gMonStillFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/front.4bpp.lz"); +const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); +const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); +const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); +const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); +const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/front.4bpp.lz"); +const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz"); +const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); +const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); +const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); +const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/front.4bpp.lz"); +const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz"); +const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); +const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); +const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); +const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); + +const u32 gMonStillFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/front.4bpp.lz"); +const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); +const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); +const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); +const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); +const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); + +const u32 gMonStillFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/front.4bpp.lz"); +const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz"); +const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); +const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); +const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); +const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); + +const u32 gMonStillFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/front.4bpp.lz"); +const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz"); +const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); +const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); +const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); +const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/front.4bpp.lz"); +const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz"); +const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); +const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); +const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); +const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); + +const u32 gMonStillFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/front.4bpp.lz"); +const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz"); +const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); +const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); +const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); +const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); + +const u32 gMonStillFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/front.4bpp.lz"); +const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); +const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); +const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); +const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); +const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); + +const u32 gMonStillFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/front.4bpp.lz"); +const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz"); +const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); +const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); +const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); +const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); + +const u32 gMonStillFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/front.4bpp.lz"); +const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz"); +const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); +const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); +const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); +const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); + +const u32 gMonStillFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/front.4bpp.lz"); +const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); +const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); +const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); +const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); +const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/front.4bpp.lz"); +const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz"); +const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); +const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); +const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); +const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); + +const u32 gMonStillFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/front.4bpp.lz"); +const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); +const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); +const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); +const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); +const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); + +const u32 gMonStillFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/front.4bpp.lz"); +const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz"); +const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); +const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); +const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); +const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/front.4bpp.lz"); +const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); +const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); +const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); +const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/front.4bpp.lz"); +const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz"); +const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); +const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); +const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); +const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/front.4bpp.lz"); +const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); +const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); +const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); +const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); +const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); + +const u32 gMonStillFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/front.4bpp.lz"); +const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); +const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); +const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); +const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); +const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/front.4bpp.lz"); +const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz"); +const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); +const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); +const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); +const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); + +const u32 gMonStillFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/front.4bpp.lz"); +const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); +const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); +const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); +const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); +const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); + +const u32 gMonStillFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/front.4bpp.lz"); +const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz"); +const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); +const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); +const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); +const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); + +const u32 gMonStillFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/front.4bpp.lz"); +const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); +const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); +const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); +const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); +const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); + +const u32 gMonStillFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/front.4bpp.lz"); +const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz"); +const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); +const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); +const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); +const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/front.4bpp.lz"); +const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz"); +const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); +const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); +const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); +const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/front.4bpp.lz"); +const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz"); +const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); +const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); +const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); +const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); + +const u32 gMonStillFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/front.4bpp.lz"); +const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); +const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); +const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); +const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); +const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/front.4bpp.lz"); +const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); +const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); +const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); +const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); +const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/front.4bpp.lz"); +const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz"); +const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); +const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); +const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); +const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/front.4bpp.lz"); +const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); +const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); +const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); +const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); +const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); + +const u32 gMonStillFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/front.4bpp.lz"); +const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz"); +const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); +const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); +const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); +const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); + +const u32 gMonStillFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/front.4bpp.lz"); +const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); +const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); +const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); +const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); +const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/front.4bpp.lz"); +const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz"); +const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); +const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); +const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); +const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); + +const u32 gMonStillFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/front.4bpp.lz"); +const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz"); +const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); +const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); +const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); +const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); + +const u32 gMonStillFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/front.4bpp.lz"); +const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz"); +const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); +const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); +const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); +const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); + +const u32 gMonStillFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/front.4bpp.lz"); +const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz"); +const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); +const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); +const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); +const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); + +const u32 gMonStillFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/front.4bpp.lz"); +const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); +const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); +const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); +const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); +const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); + +const u32 gMonStillFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/front.4bpp.lz"); +const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz"); +const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); +const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); +const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); +const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); + +const u32 gMonStillFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/front.4bpp.lz"); +const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz"); +const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); +const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); +const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); +const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); + +const u32 gMonStillFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/front.4bpp.lz"); +const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz"); +const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); +const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); +const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); +const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); + +const u32 gMonStillFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/front.4bpp.lz"); +const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz"); +const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); +const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); +const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); +const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); + +const u32 gMonStillFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/front.4bpp.lz"); +const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz"); +const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); +const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); +const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); +const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/front.4bpp.lz"); +const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz"); +const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); +const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); +const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); +const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); + +const u32 gMonStillFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/front.4bpp.lz"); +const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); +const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); +const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); +const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); +const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); + +const u32 gMonStillFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/front.4bpp.lz"); +const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz"); +const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); +const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); +const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); +const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); + +const u32 gMonStillFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/front.4bpp.lz"); +const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz"); +const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); +const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); +const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); +const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); + +const u32 gMonStillFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/front.4bpp.lz"); +const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); +const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); +const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); +const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); +const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); + +const u32 gMonStillFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/front.4bpp.lz"); +const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz"); +const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); +const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); +const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); +const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/front.4bpp.lz"); +const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz"); +const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); +const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); +const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); +const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/front.4bpp.lz"); +const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); +const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); +const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); +const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); +const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/front.4bpp.lz"); +const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); +const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); +const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); +const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); +const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/front.4bpp.lz"); +const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz"); +const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); +const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); +const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); +const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); + +const u32 gMonStillFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/front.4bpp.lz"); +const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz"); +const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); +const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); +const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); +const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); + +const u32 gMonStillFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/front.4bpp.lz"); +const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz"); +const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); +const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); +const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); +const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); + +const u32 gMonStillFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/front.4bpp.lz"); +const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz"); +const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); +const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); +const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); +const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); + +const u32 gMonStillFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/front.4bpp.lz"); +const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); +const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); +const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); +const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); +const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); + +const u32 gMonStillFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/front.4bpp.lz"); +const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); +const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); +const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); +const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); +const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); + +const u32 gMonStillFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/front.4bpp.lz"); +const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz"); +const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); +const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); +const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); +const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); + +const u32 gMonStillFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/front.4bpp.lz"); +const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); +const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); +const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); +const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); +const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/front.4bpp.lz"); +const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); +const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); +const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); +const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); +const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); + +const u32 gMonStillFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/front.4bpp.lz"); +const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz"); +const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); +const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); +const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); +const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/front.4bpp.lz"); +const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz"); +const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); +const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); +const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); +const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); + +const u32 gMonStillFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/front.4bpp.lz"); +const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); +const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); +const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); +const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); +const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); + +const u32 gMonStillFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/front.4bpp.lz"); +const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz"); +const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); +const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); +const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); +const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); + +const u32 gMonStillFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/front.4bpp.lz"); +const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz"); +const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); +const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); +const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); +const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); + +const u32 gMonStillFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/front.4bpp.lz"); +const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz"); +const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); +const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); +const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); +const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/front.4bpp.lz"); +const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz"); +const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); +const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); +const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); +const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/front.4bpp.lz"); +const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); +const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); +const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); +const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); +const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/front.4bpp.lz"); +const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); +const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); +const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); +const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); +const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); + +const u32 gMonStillFrontPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/front.4bpp.lz"); +const u32 gMonPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/normal.gbapal.lz"); +const u32 gMonBackPic_Castform[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz"); +const u32 gMonShinyPalette_Castform[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz"); +const u8 gMonIcon_Castform[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp"); +const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp"); + +const u32 gMonStillFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/front.4bpp.lz"); +const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz"); +const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); +const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); +const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); +const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); + +const u32 gMonStillFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/front.4bpp.lz"); +const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); +const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); +const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); +const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); +const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); + +const u32 gMonStillFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/front.4bpp.lz"); +const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz"); +const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); +const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); +const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); +const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); + +const u32 gMonStillFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/front.4bpp.lz"); +const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); +const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); +const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); +const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); +const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); + +const u32 gMonStillFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/front.4bpp.lz"); +const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz"); +const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); +const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); +const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); +const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); + +const u32 gMonStillFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/front.4bpp.lz"); +const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); +const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); +const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); +const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); +const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); + +const u32 gMonStillFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/front.4bpp.lz"); +const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz"); +const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); +const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); +const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); +const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/front.4bpp.lz"); +const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); +const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); +const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); +const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); +const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); + +const u32 gMonStillFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/front.4bpp.lz"); +const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); +const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); +const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); +const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); +const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); + +const u32 gMonStillFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/front.4bpp.lz"); +const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz"); +const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); +const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); +const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); +const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/front.4bpp.lz"); +const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); +const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); +const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); +const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); +const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/front.4bpp.lz"); +const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); +const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); +const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); +const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); +const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); + +const u32 gMonStillFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/front.4bpp.lz"); +const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz"); +const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); +const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); +const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); +const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/front.4bpp.lz"); +const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); +const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); +const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); +const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); +const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); + +const u32 gMonStillFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/front.4bpp.lz"); +const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); +const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); +const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); +const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); +const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); + +const u32 gMonStillFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/front.4bpp.lz"); +const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz"); +const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); +const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); +const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); +const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); + +const u32 gMonStillFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/front.4bpp.lz"); +const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz"); +const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); +const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); +const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); +const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); + +const u32 gMonStillFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/front.4bpp.lz"); +const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz"); +const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); +const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); +const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); +const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); + +const u32 gMonStillFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/front.4bpp.lz"); +const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz"); +const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); +const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); +const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); +const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); + +const u32 gMonStillFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/front.4bpp.lz"); +const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz"); +const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); +const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); +const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); +const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); + +const u32 gMonStillFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/front.4bpp.lz"); +const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz"); +const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); +const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); +const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); +const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); + +const u32 gMonStillFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/front.4bpp.lz"); +const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz"); +const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); +const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); +const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); +const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); + +const u32 gMonStillFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/front.4bpp.lz"); +const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz"); +const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); +const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); +const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); +const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); + +const u32 gMonStillFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/front.4bpp.lz"); +const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz"); +const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); +const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); +const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); +const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); + +const u32 gMonStillFrontPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/front.4bpp.lz"); +const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz"); +const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); +const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); +const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); +const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys_speed/icon.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); asm(".space 0x6800"); const u16 gUnknown_D437F8[] = INCBIN_U16("graphics/unknown/unknown_D437F8.bin"); -const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/footprints/deoxys_footprint.1bpp"); +const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); -const u32 gMonStillFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/palettes/chimecho_palette.gbapal.lz"); -const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/icons/chimecho_icon.4bpp"); -const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/footprints/chimecho_footprint.1bpp"); +const u32 gMonStillFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/front.4bpp.lz"); +const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz"); +const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); +const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); +const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); +const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); -const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/palettes/egg_palette.gbapal.lz"); +const u32 gMonStillFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/front.4bpp.lz"); +const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); -const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/icons/unown_B_icon.4bpp"); +const u32 gMonStillFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/front_b.4bpp.lz"); +const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/back_b.4bpp.lz"); +const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/icon_b.4bpp"); -const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/icons/unown_C_icon.4bpp"); +const u32 gMonStillFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/front_c.4bpp.lz"); +const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/back_c.4bpp.lz"); +const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/icon_c.4bpp"); -const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/icons/unown_D_icon.4bpp"); +const u32 gMonStillFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/front_d.4bpp.lz"); +const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/back_d.4bpp.lz"); +const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/icon_d.4bpp"); -const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/icons/unown_E_icon.4bpp"); +const u32 gMonStillFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/front_e.4bpp.lz"); +const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/back_e.4bpp.lz"); +const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/icon_e.4bpp"); -const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/icons/unown_F_icon.4bpp"); +const u32 gMonStillFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/front_f.4bpp.lz"); +const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/back_f.4bpp.lz"); +const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/icon_f.4bpp"); -const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/icons/unown_G_icon.4bpp"); +const u32 gMonStillFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/front_g.4bpp.lz"); +const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/back_g.4bpp.lz"); +const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/icon_g.4bpp"); -const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/icons/unown_H_icon.4bpp"); +const u32 gMonStillFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/front_h.4bpp.lz"); +const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/back_h.4bpp.lz"); +const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/icon_h.4bpp"); -const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/icons/unown_I_icon.4bpp"); +const u32 gMonStillFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/front_i.4bpp.lz"); +const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/back_i.4bpp.lz"); +const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/icon_i.4bpp"); -const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/icons/unown_J_icon.4bpp"); +const u32 gMonStillFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/front_j.4bpp.lz"); +const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/back_j.4bpp.lz"); +const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/icon_j.4bpp"); -const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/icons/unown_K_icon.4bpp"); +const u32 gMonStillFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/front_k.4bpp.lz"); +const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/back_k.4bpp.lz"); +const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/icon_k.4bpp"); -const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/icons/unown_L_icon.4bpp"); +const u32 gMonStillFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/front_l.4bpp.lz"); +const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/back_l.4bpp.lz"); +const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/icon_l.4bpp"); -const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/icons/unown_M_icon.4bpp"); +const u32 gMonStillFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/front_m.4bpp.lz"); +const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/back_m.4bpp.lz"); +const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/icon_m.4bpp"); -const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/icons/unown_N_icon.4bpp"); +const u32 gMonStillFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/front_n.4bpp.lz"); +const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/back_n.4bpp.lz"); +const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/icon_n.4bpp"); -const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/icons/unown_O_icon.4bpp"); +const u32 gMonStillFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/front_o.4bpp.lz"); +const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/back_o.4bpp.lz"); +const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/icon_o.4bpp"); -const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/icons/unown_P_icon.4bpp"); +const u32 gMonStillFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/front_p.4bpp.lz"); +const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/back_p.4bpp.lz"); +const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/icon_p.4bpp"); -const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/icons/unown_Q_icon.4bpp"); +const u32 gMonStillFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/front_q.4bpp.lz"); +const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/back_q.4bpp.lz"); +const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/icon_q.4bpp"); -const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/icons/unown_R_icon.4bpp"); +const u32 gMonStillFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/front_r.4bpp.lz"); +const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/back_r.4bpp.lz"); +const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/icon_r.4bpp"); -const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/icons/unown_S_icon.4bpp"); +const u32 gMonStillFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/front_s.4bpp.lz"); +const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/back_s.4bpp.lz"); +const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/icon_s.4bpp"); -const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/icons/unown_T_icon.4bpp"); +const u32 gMonStillFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/front_t.4bpp.lz"); +const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/back_t.4bpp.lz"); +const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/icon_t.4bpp"); -const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/icons/unown_U_icon.4bpp"); +const u32 gMonStillFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/front_u.4bpp.lz"); +const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/back_u.4bpp.lz"); +const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/icon_u.4bpp"); -const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/icons/unown_V_icon.4bpp"); +const u32 gMonStillFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/front_v.4bpp.lz"); +const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/back_v.4bpp.lz"); +const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/icon_v.4bpp"); -const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/icons/unown_W_icon.4bpp"); +const u32 gMonStillFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/front_w.4bpp.lz"); +const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/back_w.4bpp.lz"); +const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/icon_w.4bpp"); -const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/icons/unown_X_icon.4bpp"); - -const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/icons/unown_Y_icon.4bpp"); +const u32 gMonStillFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/front_x.4bpp.lz"); +const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/back_x.4bpp.lz"); +const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/icon_x.4bpp"); + +const u32 gMonStillFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/front_y.4bpp.lz"); +const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/back_y.4bpp.lz"); +const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/icon_y.4bpp"); -const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/icons/unown_Z_icon.4bpp"); +const u32 gMonStillFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/front_z.4bpp.lz"); +const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/back_z.4bpp.lz"); +const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/icon_z.4bpp"); -const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp"); +const u32 gMonStillFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/front_exclamation_mark.4bpp.lz"); +const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/back_exclamation_mark.4bpp.lz"); +const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/icon_exclamation_mark.4bpp"); -const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz"); -const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/icons/unown_question_mark_icon.4bpp"); +const u32 gMonStillFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/front_question_mark.4bpp.lz"); +const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/back_question_mark.4bpp.lz"); +const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/icon_question_mark.4bpp"); -- cgit v1.2.3 From d0115db5656944bcb4f44323bbd01b9a30780abc Mon Sep 17 00:00:00 2001 From: garak Date: Thu, 14 Mar 2019 19:09:56 -0400 Subject: move pokemon graphics to mon-specific directories --- src/anim_mon_front_pics.c | 2 +- src/data/graphics/pokemon.h | 14 +++++++------- src/egg_hatch.c | 2 +- src/graphics.c | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c index f2480ea20..b566b7760 100644 --- a/src/anim_mon_front_pics.c +++ b/src/anim_mon_front_pics.c @@ -235,7 +235,7 @@ const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_f const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/anim_front_pics/porygon2_front_pic.4bpp.lz"); +const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 67d1fbd3f..07415949d 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1621,12 +1621,12 @@ const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shin const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); -const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz"); -const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_palette.gbapal.lz"); -const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz"); -const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz"); -const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/icons/porygon2_icon.4bpp"); -const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/footprints/porygon2_footprint.1bpp"); +const u32 gMonStillFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/front.4bpp.lz"); +const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz"); +const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); +const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); +const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); +const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); const u32 gMonStillFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/front.4bpp.lz"); const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); @@ -2695,7 +2695,7 @@ const u32 gMonPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbap const u32 gMonBackPic_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); const u32 gMonShinyPalette_Deoxys[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); const u8 gMonIcon_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); -const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys_speed/icon.4bpp"); +const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/icon_speed.4bpp"); const u8 gMonIcon_DeoxysSpeedWide[] = INCBIN_U8("graphics/unused/deoxys_speed_icon_wide.4bpp"); asm(".space 0x6800"); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index a9b6001ec..68728f818 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -75,7 +75,7 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 static IWRAM_DATA struct EggHatchData *sEggHatchData; // rom data -static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/palettes/egg_palette.gbapal"); +static const u16 sEggPalette[] = INCBIN_U16("graphics/pokemon/egg/normal.gbapal"); static const u8 sEggHatchTiles[] = INCBIN_U8("graphics/misc/egg_hatch.4bpp"); static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); diff --git a/src/graphics.c b/src/graphics.c index a3b9eb913..c243c64a5 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -4,10 +4,10 @@ const u32 gBattleTextboxTiles[] = INCBIN_U32("graphics/battle_interface/textbox. const u32 gBattleTextboxPalette[] = INCBIN_U32("graphics/battle_interface/textbox.gbapal.lz"); const u32 gBattleTextboxTilemap[] = INCBIN_U32("graphics/battle_interface/textbox_map.bin.lz"); -const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/front_pics/circled_question_mark_still_front_pic.4bpp.lz"); -const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/back_pics/circled_question_mark_back_pic.4bpp.lz"); -const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/circled_question_mark_palette.gbapal.lz"); -const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/palettes/circled_question_mark_shiny_palette.gbapal.lz"); +const u32 gMonStillFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/front.4bpp.lz"); +const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/back.4bpp.lz"); +const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/normal.gbapal.lz"); +const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/shiny.gbapal.lz"); const u32 gUnusedGfx_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.4bpp.lz"); // japanese table and bunch of stuff const u32 gUnusedTimemap_OldCharmap[] = INCBIN_U32("graphics/unused/old_charmap.bin.lz"); @@ -953,8 +953,8 @@ const u32 gUnknownPal_C2F9E0[] = INCBIN_U32("graphics/unknown/unknown_C2F9E0.gba #include "data/graphics/pokemon.h" #include "data/graphics/trainers.h" -const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/icons/question_mark_icon.4bpp"); -const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/footprints/question_mark_footprint.1bpp"); +const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); +const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); const u32 gUnknown_08D778F0[] = INCBIN_U32("graphics/battle_transitions/vs_frame.4bpp.lz"); const u32 gUnknown_08D779D8[] = INCBIN_U32("graphics/battle_transitions/vs_frame.bin.lz"); @@ -1064,7 +1064,7 @@ const u32 gEnemyMonShadow_Gfx[] = INCBIN_U32("graphics/battle_interface/enemy_mo const u32 gBattleInterface_BallStatusBarGfx[] = INCBIN_U32("graphics/battle_interface/ball_status_bar.4bpp.lz"); -const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/icons/egg_icon.4bpp"); +const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); const u32 gBattleAnimBackgroundImage_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.4bpp.lz"); const u32 gBattleAnimBackgroundPalette_02[] = INCBIN_U32("graphics/battle_anims/backgrounds/02.gbapal.lz"); -- cgit v1.2.3 From 61344a4fee6500cd61a0bc2c2d3346db361134c4 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Mar 2019 22:56:53 -0400 Subject: Document the water droplet data. --- src/intro.c | 12 ++++++------ src/title_screen.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/intro.c b/src/intro.c index 23457f370..84127cf64 100644 --- a/src/intro.c +++ b/src/intro.c @@ -2427,7 +2427,7 @@ static void Task_IntroWaterDrops_1(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0x40; gTasks[taskId].data[0]++; @@ -2439,11 +2439,11 @@ static void Task_IntroWaterDrops_1(u8 taskId) gTasks[taskId].data[1]--; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } @@ -2470,7 +2470,7 @@ static void Task_IntroWaterDrops_2(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[0]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[0]); SetGpuReg(REG_OFFSET_BLDY, 0); gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -2482,11 +2482,11 @@ static void Task_IntroWaterDrops_2(u8 taskId) gTasks[taskId].data[1]++; tmp = gTasks[taskId].data[1] / 2; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[tmp]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[tmp]); } else { - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[31]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[31]); gTasks[taskId].data[1] = 0x10; gTasks[taskId].data[0]++; } diff --git a/src/title_screen.c b/src/title_screen.c index ca34f90f8..23b0772bd 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,7 +64,22 @@ static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_scre static const u32 sTitleScreenLogoShineGfx[] = INCBIN_U32("graphics/title_screen/logo_shine.4bpp.lz"); static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clouds.4bpp.lz"); -const u16 gIntroWaterDropData[] = +// This is BLDALPHA data. It's equivalent to: +// +// BLDALPHA_BLEND(0, 16) +// BLDALPHA_BLEND(1, 16) +// ... +// BLDALPHA_BLEND(14, 16) +// BLDALPHA_BLEND(15, 16) +// BLDALPHA_BLEND(16, 15) +// BLDALPHA_BLEND(16, 14) +// ... +// BLDALPHA_BLEND(16, 1) +// BLDALPHA_BLEND(16, 0) +// BLDALPHA_BLEND(16, 0) +// BLDALPHA_BLEND(16, 0) +// ... (repeated until array has 32 entries) +const u16 gIntroWaterDropAlphaBlend[] = { 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, @@ -324,7 +339,7 @@ static void SpriteCB_VersionBannerLeft(struct Sprite *sprite) sprite->pos1.y++; if (sprite->data[0] != 0) sprite->data[0]--; - SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropData[sprite->data[0]]); + SetGpuReg(REG_OFFSET_BLDALPHA, gIntroWaterDropAlphaBlend[sprite->data[0]]); } } -- cgit v1.2.3 From 703554c4df08d8650dc9bb8bae72eb022783a617 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 13 Mar 2019 01:26:55 -0400 Subject: Ranges are magic --- src/title_screen.c | 56 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index 23b0772bd..80d5464fa 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -64,31 +64,41 @@ static const u32 sTitleScreenRayquazaTilemap[] = INCBIN_U32("graphics/title_scre static const u32 sTitleScreenLogoShineGfx[] = INCBIN_U32("graphics/title_screen/logo_shine.4bpp.lz"); static const u32 sTitleScreenCloudsGfx[] = INCBIN_U32("graphics/title_screen/clouds.4bpp.lz"); -// This is BLDALPHA data. It's equivalent to: -// -// BLDALPHA_BLEND(0, 16) -// BLDALPHA_BLEND(1, 16) -// ... -// BLDALPHA_BLEND(14, 16) -// BLDALPHA_BLEND(15, 16) -// BLDALPHA_BLEND(16, 15) -// BLDALPHA_BLEND(16, 14) -// ... -// BLDALPHA_BLEND(16, 1) -// BLDALPHA_BLEND(16, 0) -// BLDALPHA_BLEND(16, 0) -// BLDALPHA_BLEND(16, 0) -// ... (repeated until array has 32 entries) const u16 gIntroWaterDropAlphaBlend[] = { - 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710, - 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10, - 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008, - 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + BLDALPHA_BLEND(16, 0), + BLDALPHA_BLEND(16, 1), + BLDALPHA_BLEND(16, 2), + BLDALPHA_BLEND(16, 3), + BLDALPHA_BLEND(16, 4), + BLDALPHA_BLEND(16, 5), + BLDALPHA_BLEND(16, 6), + BLDALPHA_BLEND(16, 7), + BLDALPHA_BLEND(16, 8), + BLDALPHA_BLEND(16, 9), + BLDALPHA_BLEND(16, 10), + BLDALPHA_BLEND(16, 11), + BLDALPHA_BLEND(16, 12), + BLDALPHA_BLEND(16, 13), + BLDALPHA_BLEND(16, 14), + BLDALPHA_BLEND(16, 15), + BLDALPHA_BLEND(15, 16), + BLDALPHA_BLEND(14, 16), + BLDALPHA_BLEND(13, 16), + BLDALPHA_BLEND(12, 16), + BLDALPHA_BLEND(11, 16), + BLDALPHA_BLEND(10, 16), + BLDALPHA_BLEND(9, 16), + BLDALPHA_BLEND(8, 16), + BLDALPHA_BLEND(7, 16), + BLDALPHA_BLEND(6, 16), + BLDALPHA_BLEND(5, 16), + BLDALPHA_BLEND(4, 16), + BLDALPHA_BLEND(3, 16), + BLDALPHA_BLEND(2, 16), + BLDALPHA_BLEND(1, 16), + BLDALPHA_BLEND(0, 16), + [32 ... 63] = BLDALPHA_BLEND(0, 16) }; static const struct OamData sVersionBannerLeftOamData = -- cgit v1.2.3 From 291df27dcbc9b1d1ea4bdf2f7363d58409fbd81d Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 12 Mar 2019 02:21:00 -0400 Subject: Use new MUS_NONE constant in sound.c --- src/sound.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/sound.c b/src/sound.c index ebb4fad75..16f024858 100644 --- a/src/sound.c +++ b/src/sound.c @@ -264,7 +264,7 @@ void FadeInNewBGM(u16 songNum, u8 speed) { if (gDisableMusic) songNum = 0; - if (songNum == 0xFFFF) + if (songNum == MUS_NONE) songNum = 0; m4aSongNumStart(songNum); m4aMPlayImmInit(&gMPlayInfo_BGM); @@ -561,7 +561,7 @@ void PlayBGM(u16 songNum) { if (gDisableMusic) songNum = 0; - if (songNum == 0xFFFF) + if (songNum == MUS_NONE) songNum = 0; m4aSongNumStart(songNum); } -- cgit v1.2.3 From 9848f84b9ec2d5950cb5dc4600b7651486ff986a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 03:12:15 -0400 Subject: Use constants for Oam .shape and .size fields Also some general formatting fixes for constants. --- src/battle_anim.c | 288 +++++++++++++++---------------- src/battle_arena.c | 4 +- src/battle_bg.c | 8 +- src/battle_dome.c | 16 +- src/battle_factory_screen.c | 16 +- src/battle_interface.c | 16 +- src/battle_main.c | 8 +- src/battle_pyramid_bag.c | 4 +- src/battle_script_commands.c | 4 +- src/battle_transition.c | 4 +- src/berry_blender.c | 20 +-- src/cable_car.c | 9 +- src/contest_painting.c | 4 +- src/credits.c | 4 +- src/data/field_event_obj/base_oam.h | 32 ++-- src/decoration.c | 4 +- src/easy_chat.c | 24 +-- src/egg_hatch.c | 8 +- src/evolution_graphics.c | 4 +- src/field_effect.c | 144 +++++++++++----- src/field_weather_effect.c | 28 +-- src/fldeff_cut.c | 4 +- src/fldeff_misc.c | 8 +- src/hall_of_fame.c | 4 +- src/intro.c | 48 +++--- src/intro_credits_graphics.c | 159 +++++++++++------ src/item_icon.c | 4 +- src/item_menu_icons.c | 20 +-- src/link_rfu.c | 3 +- src/list_menu.c | 40 ++--- src/menu_helpers.c | 4 +- src/mirage_tower.c | 12 +- src/mon_markings.c | 12 +- src/money.c | 4 +- src/naming_screen.c | 12 +- src/party_menu.c | 16 +- src/pokeball.c | 4 +- src/pokeblock.c | 4 +- src/pokeblock_feed.c | 4 +- src/pokedex.c | 24 +-- src/pokedex_area_screen.c | 46 +++-- src/pokedex_cry_screen.c | 27 ++- src/pokemon.c | 4 +- src/pokemon_icon.c | 4 +- src/pokemon_storage_system.c | 35 ++-- src/pokemon_summary_screen.c | 12 +- src/rayquaza_scene.c | 32 ++-- src/region_map.c | 211 +++++++++++++++------- src/reset_rtc_screen.c | 4 +- src/rotating_gate.c | 8 +- src/roulette.c | 290 +++++++++++++++++++------------ src/save_failed_screen.c | 26 +-- src/sprite.c | 30 ++-- src/starter_choose.c | 40 +++-- src/title_screen.c | 49 ++++-- src/trade.c | 336 ++++++++++++++++++++++-------------- src/trainer_pokemon_sprites.c | 9 +- src/trainer_see.c | 19 +- src/unk_transition.c | 13 +- src/wallclock.c | 80 +++++++-- 60 files changed, 1398 insertions(+), 912 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index f1cff1de2..31ff11ee8 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -119,8 +119,8 @@ const struct OamData gUnknown_08524904 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -129,8 +129,8 @@ const struct OamData gUnknown_0852490C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -138,8 +138,8 @@ const struct OamData gUnknown_08524914 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -147,8 +147,8 @@ const struct OamData gUnknown_0852491C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -156,8 +156,8 @@ const struct OamData gUnknown_08524924 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -165,8 +165,8 @@ const struct OamData gUnknown_0852492C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -174,8 +174,8 @@ const struct OamData gUnknown_08524934 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -183,8 +183,8 @@ const struct OamData gUnknown_0852493C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -192,8 +192,8 @@ const struct OamData gUnknown_08524944 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -201,8 +201,8 @@ const struct OamData gUnknown_0852494C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -210,8 +210,8 @@ const struct OamData gUnknown_08524954 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -219,8 +219,8 @@ const struct OamData gUnknown_0852495C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -228,8 +228,8 @@ const struct OamData gUnknown_08524964 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -237,8 +237,8 @@ const struct OamData gUnknown_0852496C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -246,8 +246,8 @@ const struct OamData gUnknown_08524974 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -255,8 +255,8 @@ const struct OamData gUnknown_0852497C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -264,8 +264,8 @@ const struct OamData gUnknown_08524984 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -273,8 +273,8 @@ const struct OamData gUnknown_0852498C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -282,8 +282,8 @@ const struct OamData gUnknown_08524994 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -291,8 +291,8 @@ const struct OamData gUnknown_0852499C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -300,8 +300,8 @@ const struct OamData gUnknown_085249A4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -309,8 +309,8 @@ const struct OamData gUnknown_085249AC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -318,8 +318,8 @@ const struct OamData gUnknown_085249B4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -327,8 +327,8 @@ const struct OamData gUnknown_085249BC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -336,8 +336,8 @@ const struct OamData gUnknown_085249C4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -345,8 +345,8 @@ const struct OamData gUnknown_085249CC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -354,8 +354,8 @@ const struct OamData gUnknown_085249D4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -363,8 +363,8 @@ const struct OamData gUnknown_085249DC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -372,8 +372,8 @@ const struct OamData gUnknown_085249E4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -381,8 +381,8 @@ const struct OamData gUnknown_085249EC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -390,8 +390,8 @@ const struct OamData gUnknown_085249F4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -399,8 +399,8 @@ const struct OamData gUnknown_085249FC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -408,8 +408,8 @@ const struct OamData gUnknown_08524A04 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -417,8 +417,8 @@ const struct OamData gUnknown_08524A0C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -426,8 +426,8 @@ const struct OamData gUnknown_08524A14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -435,8 +435,8 @@ const struct OamData gUnknown_08524A1C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -444,8 +444,8 @@ const struct OamData gUnknown_08524A24 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -453,8 +453,8 @@ const struct OamData gUnknown_08524A2C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -462,8 +462,8 @@ const struct OamData gUnknown_08524A34 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -471,8 +471,8 @@ const struct OamData gUnknown_08524A3C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -480,8 +480,8 @@ const struct OamData gUnknown_08524A44 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -489,8 +489,8 @@ const struct OamData gUnknown_08524A4C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -498,8 +498,8 @@ const struct OamData gUnknown_08524A54 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -507,8 +507,8 @@ const struct OamData gUnknown_08524A5C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -516,8 +516,8 @@ const struct OamData gUnknown_08524A64 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -525,8 +525,8 @@ const struct OamData gUnknown_08524A6C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -534,8 +534,8 @@ const struct OamData gUnknown_08524A74 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -543,8 +543,8 @@ const struct OamData gUnknown_08524A7C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -552,8 +552,8 @@ const struct OamData gUnknown_08524A84 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -561,8 +561,8 @@ const struct OamData gUnknown_08524A8C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -570,8 +570,8 @@ const struct OamData gUnknown_08524A94 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -579,8 +579,8 @@ const struct OamData gUnknown_08524A9C = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -588,8 +588,8 @@ const struct OamData gUnknown_08524AA4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -597,8 +597,8 @@ const struct OamData gUnknown_08524AAC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -606,8 +606,8 @@ const struct OamData gUnknown_08524AB4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -615,8 +615,8 @@ const struct OamData gUnknown_08524ABC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -624,8 +624,8 @@ const struct OamData gUnknown_08524AC4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -633,8 +633,8 @@ const struct OamData gUnknown_08524ACC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -642,8 +642,8 @@ const struct OamData gUnknown_08524AD4 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -651,8 +651,8 @@ const struct OamData gUnknown_08524ADC = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; @@ -660,8 +660,8 @@ const struct OamData gUnknown_08524AE4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2, }; @@ -669,8 +669,8 @@ const struct OamData gUnknown_08524AEC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -678,8 +678,8 @@ const struct OamData gUnknown_08524AF4 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -687,8 +687,8 @@ const struct OamData gUnknown_08524AFC = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; @@ -696,8 +696,8 @@ const struct OamData gUnknown_08524B04 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2, }; @@ -705,8 +705,8 @@ const struct OamData gUnknown_08524B0C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2, }; @@ -714,8 +714,8 @@ const struct OamData gUnknown_08524B14 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -723,8 +723,8 @@ const struct OamData gUnknown_08524B1C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2, }; @@ -732,8 +732,8 @@ const struct OamData gUnknown_08524B24 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2, }; @@ -741,8 +741,8 @@ const struct OamData gUnknown_08524B2C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 1, + .shape = SPRITE_SHAPE(8x32), + .size = SPRITE_SIZE(8x32), .priority = 2, }; @@ -750,8 +750,8 @@ const struct OamData gUnknown_08524B34 = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; @@ -759,8 +759,8 @@ const struct OamData gUnknown_08524B3C = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_BLEND, - .shape = ST_OAM_V_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(32x64), + .size = SPRITE_SIZE(32x64), .priority = 2, }; diff --git a/src/battle_arena.c b/src/battle_arena.c index 8146f5b38..f785fa7c3 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -406,10 +406,10 @@ static const struct OamData sJudgementIconOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 15, diff --git a/src/battle_bg.c b/src/battle_bg.c index 9ca0f8b84..524f73abf 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -42,10 +42,10 @@ static const struct OamData gUnknown_0831A988 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -59,10 +59,10 @@ static const struct OamData gUnknown_0831A990 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 64, .priority = 0, .paletteNum = 0, diff --git a/src/battle_dome.c b/src/battle_dome.c index f86faeffb..1b7953180 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -872,10 +872,10 @@ static const struct OamData gUnknown_0860CF70 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -889,10 +889,10 @@ static const struct OamData gUnknown_0860CF78 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 1, @@ -906,10 +906,10 @@ static const struct OamData gUnknown_0860CF80 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 2, @@ -923,10 +923,10 @@ static const struct OamData gUnknown_0860CF88 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(8x16), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x16), .tileNum = 0, .priority = 0, .paletteNum = 2, diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 85c0b2808..367c1401f 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -385,10 +385,10 @@ static const struct OamData gUnknown_0861047C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -402,10 +402,10 @@ static const struct OamData gUnknown_08610484 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -419,10 +419,10 @@ static const struct OamData gUnknown_0861048C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -436,10 +436,10 @@ static const struct OamData gUnknown_08610494 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/battle_interface.c b/src/battle_interface.c index f2916012e..a8651f6cf 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -207,10 +207,10 @@ static const struct OamData sUnknown_0832C138 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -279,10 +279,10 @@ static const struct OamData sOamData_Healthbar = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -446,10 +446,10 @@ static const struct OamData sUnknown_0832C354 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -463,10 +463,10 @@ static const struct OamData sOamData_StatusSummaryBalls = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/battle_main.c b/src/battle_main.c index 2b0c5980e..0f593fef6 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -296,10 +296,10 @@ const struct OamData gOamData_831ACA8 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -313,10 +313,10 @@ const struct OamData gOamData_831ACB0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 2, diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 2e13ea08b..3b8cac14f 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -282,10 +282,10 @@ static const struct OamData gOamData_861F378 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ac9fb3073..025d694e4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -733,10 +733,10 @@ static const struct OamData sOamData_MonIconOnLvlUpBox = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/battle_transition.c b/src/battle_transition.c index 786d5e869..df6180d19 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -763,10 +763,10 @@ static const struct OamData gOamData_85C8E80 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/berry_blender.c b/src/berry_blender.c index 450bcae42..c792b9b40 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -404,10 +404,10 @@ static const struct OamData sOamData_8216314 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -547,10 +547,10 @@ static const struct OamData sOamData_821640C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -616,10 +616,10 @@ static const struct OamData sOamData_8216474 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -703,10 +703,10 @@ static const struct OamData sOamData_8216514 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -761,10 +761,10 @@ static const struct OamData sOamData_8216560 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/cable_car.c b/src/cable_car.c index 420bdd30f..ab7b5726a 100755 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -153,19 +153,22 @@ const struct SpritePalette gUnknown_085CDB74[] = { const struct OamData gOamData_85CDB84 = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2 }; const struct OamData gOamData_85CDB8C = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2 }; const struct OamData gOamData_85CDB94 = { .affineMode = ST_OAM_AFFINE_DOUBLE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2 }; diff --git a/src/contest_painting.c b/src/contest_painting.c index 931deb01b..29f3c871d 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -154,10 +154,10 @@ const struct OamData gUnknown_085B0830 = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 1, .bpp = ST_OAM_8BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/credits.c b/src/credits.c index 4483e3160..1e96514b1 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1056,10 +1056,10 @@ static const struct OamData gUnknown_085E703C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/data/field_event_obj/base_oam.h b/src/data/field_event_obj/base_oam.h index 543382d43..af961f492 100755 --- a/src/data/field_event_obj/base_oam.h +++ b/src/data/field_event_obj/base_oam.h @@ -1,47 +1,47 @@ const struct OamData gEventObjectBaseOam_8x8 = { - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x8 = { - .shape = 1, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x16 = { - .shape = 0, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2 }; const struct OamData gEventObjectBaseOam_32x8 = { - .shape = 1, - .size = 1, + .shape = SPRITE_SHAPE(32x8), + .size = SPRITE_SIZE(32x8), .priority = 2 }; const struct OamData gEventObjectBaseOam_64x32 = { - .shape = 1, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_16x32 = { - .shape = 2, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_32x32 = { - .shape = 0, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2 }; const struct OamData gEventObjectBaseOam_64x64 = { - .shape = 0, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2 }; diff --git a/src/decoration.c b/src/decoration.c index 0712b5d32..47e3ae18c 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -392,7 +392,9 @@ const struct SpritePalette gUnknown_085A73E0 = { }; const struct OamData Unknown_085A73E8 = { - .size = 1, .priority = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1 }; const union AnimCmd Unknown_085A73F0[] = { diff --git a/src/easy_chat.c b/src/easy_chat.c index b03058eb9..4cc8b9c5b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -772,10 +772,10 @@ static const struct OamData sOamData_8597D10 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -798,10 +798,10 @@ static const struct OamData sUnknown_08597D30 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -851,10 +851,10 @@ static const struct OamData sUnknown_08597D80 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -913,10 +913,10 @@ static const struct OamData sUnknown_08597DE8 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -939,10 +939,10 @@ static const struct OamData sUnknown_08597E08 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -955,10 +955,10 @@ static const struct OamData gUnknown_08597E10 = { .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 68728f818..00b67a5d9 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -86,10 +86,10 @@ static const struct OamData sOamData_EggHatch = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -166,10 +166,10 @@ static const struct OamData sOamData_EggShard = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 2, .paletteNum = 0, diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index bfd46978c..e36d47c2b 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -53,10 +53,10 @@ static const struct OamData sOamData_EvoSparkle = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/field_effect.c b/src/field_effect.c index ee9dcb987..825efc380 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -270,7 +270,8 @@ const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp") const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp"); const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp"); -bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { +bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = +{ FieldEffectCmd_loadtiles, FieldEffectCmd_loadfadedpal, FieldEffectCmd_loadpal, @@ -281,25 +282,48 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = { FieldEffectCmd_loadfadedpal_callnative, }; -const struct OamData gNewGameBirchOamAttributes = {.size = 3}; -const struct OamData gOamData_855C218 = {.size = 0}; -const struct OamData gOamData_855C220 = {.size = 1}; +const struct OamData gNewGameBirchOamAttributes = +{ + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) +}; -const struct SpriteFrameImage gNewGameBirchPicTable[] = { +const struct OamData gOamData_855C218 = +{ + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8) +}; + +const struct OamData gOamData_855C220 = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) +}; + +const struct SpriteFrameImage gNewGameBirchPicTable[] = +{ obj_frame_tiles(gNewGameBirchPic) }; -const struct SpritePalette gNewGameBirchObjectPaletteInfo = {.data = gNewGameBirchPalette, .tag = 0x1006}; -const union AnimCmd gNewGameBirchImageAnim[] = { +const struct SpritePalette gNewGameBirchObjectPaletteInfo = +{ + .data = gNewGameBirchPalette, + .tag = 0x1006 +}; + +const union AnimCmd gNewGameBirchImageAnim[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_END }; -const union AnimCmd *const gNewGameBirchImageAnimTable[] = { +const union AnimCmd *const gNewGameBirchImageAnimTable[] = +{ gNewGameBirchImageAnim }; -const struct SpriteTemplate gNewGameBirchObjectTemplate = { +const struct SpriteTemplate gNewGameBirchObjectTemplate = +{ .tileTag = 0xFFFF, .paletteTag = 4102, .oam = &gNewGameBirchOamAttributes, @@ -309,31 +333,47 @@ const struct SpriteTemplate gNewGameBirchObjectTemplate = { .callback = SpriteCallbackDummy }; -const struct SpritePalette gFieldEffectObjectPaletteInfo4 = {.data = gFieldEffectObjectPalette4, .tag = 0x1007}; -const struct SpritePalette gFieldEffectObjectPaletteInfo5 = {.data = gFieldEffectObjectPalette5, .tag = 0x1010}; -const struct OamData gOamData_855C26C = { - .shape = 1, - .size = 2 +const struct SpritePalette gFieldEffectObjectPaletteInfo4 = +{ + .data = gFieldEffectObjectPalette4, + .tag = 0x1007 +}; + +const struct SpritePalette gFieldEffectObjectPaletteInfo5 = +{ + .data = gFieldEffectObjectPalette5, + .tag = 0x1010 +}; + +const struct OamData gOamData_855C26C = +{ + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16) }; -const struct SpriteFrameImage gSpriteImageTable_855C274[] = { +const struct SpriteFrameImage gSpriteImageTable_855C274[] = +{ obj_frame_tiles(gSpriteImage_855A970) }; -const struct SpriteFrameImage gSpriteImageTable_855C27C[] = { +const struct SpriteFrameImage gSpriteImageTable_855C27C[] = +{ obj_frame_tiles(gSpriteImage_855A9B0), obj_frame_tiles(gSpriteImage_855AA70) }; -const struct SpriteFrameImage gSpriteImageTable_855C28C[] = { +const struct SpriteFrameImage gSpriteImageTable_855C28C[] = +{ obj_frame_tiles(gSpriteImage_855AB30) }; -const struct SpriteFrameImage gSpriteImageTable_855C294[] = { +const struct SpriteFrameImage gSpriteImageTable_855C294[] = +{ {.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here }; -const struct Subsprite gSubspriteTable_855C29C[] = { +const struct Subsprite gSubspriteTable_855C29C[] = +{ {.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0}, {.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0}, {.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0}, @@ -342,7 +382,8 @@ const struct Subsprite gSubspriteTable_855C29C[] = { const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C); -const struct Subsprite gSubspriteTable_855C2B4[] = { +const struct Subsprite gSubspriteTable_855C2B4[] = +{ {.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1}, {.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1}, {.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1}, @@ -351,12 +392,14 @@ const struct Subsprite gSubspriteTable_855C2B4[] = { const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4); -const union AnimCmd gSpriteAnim_855C2CC[] = { +const union AnimCmd gSpriteAnim_855C2CC[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 1), ANIMCMD_JUMP(0) }; -const union AnimCmd gSpriteAnim_855C2D4[] = { +const union AnimCmd gSpriteAnim_855C2D4[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 16), ANIMCMD_FRAME(.imageValue = 1, .duration = 16), ANIMCMD_FRAME(.imageValue = 0, .duration = 16), @@ -368,16 +411,19 @@ const union AnimCmd gSpriteAnim_855C2D4[] = { ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_855C2F8[] = { +const union AnimCmd *const gSpriteAnimTable_855C2F8[] = +{ gSpriteAnim_855C2CC, gSpriteAnim_855C2D4 }; -const union AnimCmd *const gSpriteAnimTable_855C300[] = { +const union AnimCmd *const gSpriteAnimTable_855C300[] = +{ gSpriteAnim_855C2CC }; -const struct SpriteTemplate gSpriteTemplate_855C304 = { +const struct SpriteTemplate gSpriteTemplate_855C304 = +{ .tileTag = 0xFFFF, .paletteTag = 4103, .oam = &gOamData_855C218, @@ -387,7 +433,8 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = { .callback = SpriteCB_PokeballGlow }; -const struct SpriteTemplate gSpriteTemplate_855C31C = { +const struct SpriteTemplate gSpriteTemplate_855C31C = +{ .tileTag = 0xFFFF, .paletteTag = 4100, .oam = &gOamData_855C220, @@ -397,7 +444,8 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = { .callback = SpriteCB_PokecenterMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C334 = { +const struct SpriteTemplate gSpriteTemplate_855C334 = +{ .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C220, @@ -407,7 +455,8 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = { .callback = SpriteCB_HallOfFameMonitor }; -const struct SpriteTemplate gSpriteTemplate_855C34C = { +const struct SpriteTemplate gSpriteTemplate_855C34C = +{ .tileTag = 0xFFFF, .paletteTag = 4112, .oam = &gOamData_855C26C, @@ -417,21 +466,24 @@ const struct SpriteTemplate gSpriteTemplate_855C34C = { .callback = SpriteCB_HallOfFameMonitor }; -void (*const gUnknown_0855C364[])(struct Task *) = { +void (*const gUnknown_0855C364[])(struct Task *) = +{ PokecenterHealEffect_0, PokecenterHealEffect_1, PokecenterHealEffect_2, PokecenterHealEffect_3 }; -void (*const gUnknown_0855C374[])(struct Task *) = { +void (*const gUnknown_0855C374[])(struct Task *) = +{ HallOfFameRecordEffect_0, HallOfFameRecordEffect_1, HallOfFameRecordEffect_2, HallOfFameRecordEffect_3 }; -void (*const gUnknown_0855C384[])(struct Sprite *) = { +void (*const gUnknown_0855C384[])(struct Sprite *) = +{ PokeballGlowEffect_0, PokeballGlowEffect_1, PokeballGlowEffect_2, @@ -442,7 +494,8 @@ void (*const gUnknown_0855C384[])(struct Sprite *) = { PokeballGlowEffect_7 }; -const struct Coords16 gUnknown_0855C3A4[] = { +const struct Coords16 gUnknown_0855C3A4[] = +{ {.x = 0, .y = 0}, {.x = 6, .y = 0}, {.x = 0, .y = 4}, @@ -455,7 +508,8 @@ const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0}; const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0}; const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0}; -bool8 (*const gUnknown_0855C3C8[])(struct Task *) = { +bool8 (*const gUnknown_0855C3C8[])(struct Task *) = +{ sub_80B6BCC, sub_80B6C74, sub_80B6C90, @@ -465,7 +519,8 @@ bool8 (*const gUnknown_0855C3C8[])(struct Task *) = { sub_80B6E18, }; -bool8 (*const gUnknown_0855C3E4[])(struct Task *) = { +bool8 (*const gUnknown_0855C3E4[])(struct Task *) = +{ sub_80B6EC0, sub_80B6EE0, sub_80B6F50, @@ -474,7 +529,8 @@ bool8 (*const gUnknown_0855C3E4[])(struct Task *) = { sub_80B6FA8, }; -bool8 (*const gUnknown_0855C3FC[])(struct Task *) = { +bool8 (*const gUnknown_0855C3FC[])(struct Task *) = +{ sub_80B7114, sub_80B7190, sub_80B71D0, @@ -484,7 +540,8 @@ bool8 (*const gUnknown_0855C3FC[])(struct Task *) = { sub_80B72F4, }; -bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = { +bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = +{ sub_80B73D0, waterfall_1_do_anim_probably, waterfall_2_wait_anim_finish_probably, @@ -492,13 +549,15 @@ bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = { sub_80B7478, }; -bool8 (*const gUnknown_0855C42C[])(struct Task *) = { +bool8 (*const gUnknown_0855C42C[])(struct Task *) = +{ dive_1_lock, dive_2_unknown, dive_3_unknown, }; -bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B764C, sub_80B7684, sub_80B76B8, @@ -507,14 +566,16 @@ bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct S sub_80B7814, }; -bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B78EC, sub_80B791C, sub_80B7968, sub_80B79BC, }; -bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) = { +bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) = +{ sub_80B7AE8, sub_80B7B18, sub_80B7B94, @@ -522,7 +583,8 @@ bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct S sub_80B7BF4, }; -void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = { +void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = +{ EscapeRopeFieldEffect_Step0, EscapeRopeFieldEffect_Step1, }; diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index be8fdc6cb..6ec83f1a0 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -48,10 +48,10 @@ static const struct OamData gOamData_839A9DC = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 3, .paletteNum = 0, @@ -577,10 +577,10 @@ static const struct OamData gOamData_839AA68 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 1, .paletteNum = 2, @@ -648,10 +648,10 @@ static const struct OamData gOamData_839AAD4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -704,10 +704,10 @@ static const struct OamData gOamData_839AB2C = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -1517,10 +1517,10 @@ const struct OamData gOamData_839ABB8 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 15, @@ -1754,10 +1754,10 @@ const struct OamData gOamData_839ABF0 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -1953,10 +1953,10 @@ const struct OamData gOamData_839AC1C = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index a715608c5..b1f4a6368 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -132,10 +132,10 @@ static const struct OamData sOamData_CutGrass = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 1, .priority = 1, .paletteNum = 1, diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index d4d6075f3..5d1920aac 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -93,8 +93,8 @@ static const struct OamData gOamData_858E4D8 = .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -246,8 +246,8 @@ static const struct OamData gOamData_858E658 = .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 2c31dba01..8eba90d96 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -178,10 +178,10 @@ static const struct OamData sOamData_85E53FC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/intro.c b/src/intro.c index 84127cf64..e97fbedb0 100644 --- a/src/intro.c +++ b/src/intro.c @@ -145,10 +145,10 @@ static const struct OamData gUnknown_085E4A94 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -214,10 +214,10 @@ static const struct OamData gUnknown_085E4B28 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -251,10 +251,10 @@ static const struct OamData gUnknown_085E4B58 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -307,10 +307,10 @@ static const struct OamData gUnknown_085E4BBC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -356,10 +356,10 @@ static const struct OamData gUnknown_085E4C14 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -441,10 +441,10 @@ static const struct OamData gUnknown_085E4CF0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -481,10 +481,10 @@ static const struct OamData gUnknown_085E4D2C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -572,10 +572,10 @@ static const struct OamData gUnknown_085E4DD4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -588,10 +588,10 @@ static const struct OamData gUnknown_085E4DDC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -604,10 +604,10 @@ static const struct OamData gUnknown_085E4DE4 = .objMode = 1, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(32x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(32x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -804,10 +804,10 @@ static const struct OamData gUnknown_085E4FB0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -857,10 +857,10 @@ static const struct OamData gUnknown_085E501C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index b98708324..29ee2067f 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -57,43 +57,51 @@ static void nullsub_65(struct Sprite *sprite); static void sub_817B7C4(struct Sprite *sprite); static void nullsub_66(struct Sprite *sprite); -static const struct SpriteTemplate gUnknown_085F504C = { +static const struct SpriteTemplate gUnknown_085F504C = +{ 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C }; -static const struct CompressedSpriteSheet gUnknown_085F5064[] = { +static const struct CompressedSpriteSheet gUnknown_085F5064[] = +{ { gUnknown_085F16A8, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F5074[] = { +static const union AnimCmd gUnknown_085F5074[] = +{ ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F507C[] = { +static const union AnimCmd gUnknown_085F507C[] = +{ ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5084[] = { +static const union AnimCmd gUnknown_085F5084[] = +{ ANIMCMD_FRAME(20, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F508C[] = { +static const union AnimCmd gUnknown_085F508C[] = +{ ANIMCMD_FRAME(22, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5094[] = { +static const union AnimCmd *const gUnknown_085F5094[] = +{ gUnknown_085F5074, gUnknown_085F507C, gUnknown_085F5084, gUnknown_085F508C }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = +{ { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, @@ -105,33 +113,39 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, }; -static const struct CompressedSpriteSheet gUnknown_085F50EC[] = { +static const struct CompressedSpriteSheet gUnknown_085F50EC[] = +{ { gIntro2TreeTiles, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F50FC[] = { +static const union AnimCmd gUnknown_085F50FC[] = +{ ANIMCMD_FRAME( 0, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F5104[] = { +static const union AnimCmd gUnknown_085F5104[] = +{ ANIMCMD_FRAME(16, 30), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F510C[] = { +static const union AnimCmd gUnknown_085F510C[] = +{ ANIMCMD_FRAME(24, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5114[] = { +static const union AnimCmd *const gUnknown_085F5114[] = +{ gUnknown_085F50FC, gUnknown_085F5104, gUnknown_085F510C }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = +{ { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, @@ -146,21 +160,25 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, }; -static const struct CompressedSpriteSheet gUnknown_085F5180[] = { +static const struct CompressedSpriteSheet gUnknown_085F5180[] = +{ { gIntro2NightTiles, 0x400, 2000 }, { NULL } }; -static const union AnimCmd gUnknown_085F5190[] = { +static const union AnimCmd gUnknown_085F5190[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5198[] = { +static const union AnimCmd *const gUnknown_085F5198[] = +{ gUnknown_085F5190 }; -static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { +static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = +{ { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, @@ -169,11 +187,16 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, }; -static const struct OamData gOamData_85F51CC = { - .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +static const struct OamData gOamData_85F51CC = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1 }; -static const union AnimCmd gUnknown_085F51D4[] = { +static const union AnimCmd gUnknown_085F51D4[] = +{ ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 64, 8), ANIMCMD_FRAME(128, 8), @@ -181,23 +204,31 @@ static const union AnimCmd gUnknown_085F51D4[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F51E8[] = { +static const union AnimCmd *const gUnknown_085F51E8[] = +{ gUnknown_085F51D4 }; -static const struct SpriteTemplate gUnknown_085F51EC = { +static const struct SpriteTemplate gUnknown_085F51EC = +{ 1002, 1002, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 }; -static const struct SpriteTemplate gUnknown_085F5204 = { +static const struct SpriteTemplate gUnknown_085F5204 = +{ 1003, 1003, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 }; -static const struct OamData gUnknown_085F521C = { - .y = 160, .shape = ST_OAM_H_RECTANGLE, .size = 3, .priority = 1 +static const struct OamData gUnknown_085F521C = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), + .priority = 1 }; -static const union AnimCmd gUnknown_085F5224[] = { +static const union AnimCmd gUnknown_085F5224[] = +{ ANIMCMD_FRAME( 0, 8), ANIMCMD_FRAME( 32, 8), ANIMCMD_FRAME( 64, 8), @@ -205,71 +236,89 @@ static const union AnimCmd gUnknown_085F5224[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_085F5238[] = { +static const union AnimCmd *const gUnknown_085F5238[] = +{ gUnknown_085F5224 }; -static const struct SpriteTemplate gUnknown_085F523C = { +static const struct SpriteTemplate gUnknown_085F523C = +{ 1001, 1002, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 }; -static const struct SpriteTemplate gUnknown_085F5254 = { +static const struct SpriteTemplate gUnknown_085F5254 = +{ 1001, 1003, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 }; -static const struct OamData gUnknown_085F526C = { - .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +static const struct OamData gUnknown_085F526C = +{ + .y = 160, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 1 }; -static const union AnimCmd gUnknown_085F5274[] = { +static const union AnimCmd gUnknown_085F5274[] = +{ ANIMCMD_FRAME( 0, 16), ANIMCMD_END }; -static const union AnimCmd gUnknown_085F527C[] = { +static const union AnimCmd gUnknown_085F527C[] = +{ ANIMCMD_FRAME( 64, 16), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085F5284[] = { +static const union AnimCmd *const gUnknown_085F5284[] = +{ gUnknown_085F5274, gUnknown_085F527C }; -static const struct SpriteTemplate gUnknown_085F528C = { +static const struct SpriteTemplate gUnknown_085F528C = +{ 1004, 1004, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 }; -static const struct SpriteTemplate gUnknown_085F52A4 = { +static const struct SpriteTemplate gUnknown_085F52A4 = +{ 1005, 1005, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 }; -const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = +{ { gIntro2BrendanNoTurnGfx, 0x2000, 1002 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = +{ { gIntro2MayNoTurnGfx, 0x2000, 1003 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = +{ { gIntro2BicycleTiles, 0x1000, 1001 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F52EC[] = { +static const struct CompressedSpriteSheet gUnknown_085F52EC[] = +{ { gIntro2FlygonGfx, 0x1000, 1004 }, { NULL } }; -const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { +const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = +{ { gIntro2FlygonGfx, 0x1000, 1005 }, { NULL } }; -const struct SpritePalette gIntroBikeAndFlygonPalette[] = { +const struct SpritePalette gIntroBikeAndFlygonPalette[] = +{ { gIntro2BrendanNoTurnPal, 1002 }, { gIntro2BrendanNoTurnPal, 1003 }, { gIntro2FlygonPal, 1004 }, @@ -277,32 +326,38 @@ const struct SpritePalette gIntroBikeAndFlygonPalette[] = { { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5334[] = { +const struct CompressedSpriteSheet gUnknown_085F5334[] = +{ { gIntro2BrendanTiles, 0x3800, 1002 }, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5344[] = { +const struct CompressedSpriteSheet gUnknown_085F5344[] = +{ { gIntro2MayTiles, 0x3800, 1003 }, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F5354[] = { +const struct CompressedSpriteSheet gUnknown_085F5354[] = +{ { gIntro2BicycleTiles, 0x1000, 1001 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F5364[] = { +static const struct CompressedSpriteSheet gUnknown_085F5364[] = +{ { gIntro2LatiosTiles, 0x1000, 1004 }, { NULL } }; -static const struct CompressedSpriteSheet gUnknown_085F5374[] = { +static const struct CompressedSpriteSheet gUnknown_085F5374[] = +{ { gIntro2LatiasTiles, 0x1000, 1005 }, { NULL } }; -const struct SpritePalette gUnknown_085F5384[] = { +const struct SpritePalette gUnknown_085F5384[] = +{ { gIntro2BrendanPalette, 1002 }, { gIntro2MayPalette, 1003 }, { gIntro2LatiosPalette, 1004 }, @@ -310,12 +365,14 @@ const struct SpritePalette gUnknown_085F5384[] = { { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F53AC[] = { +const struct CompressedSpriteSheet gUnknown_085F53AC[] = +{ { gIntro2BrendanTiles, 0x2000, 1002}, { NULL } }; -const struct CompressedSpriteSheet gUnknown_085F53BC[] = { +const struct CompressedSpriteSheet gUnknown_085F53BC[] = +{ { gIntro2MayTiles, 0x2000, 1003}, { NULL } }; diff --git a/src/item_icon.c b/src/item_icon.c index e9379dbba..7bf1a29ca 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -20,10 +20,10 @@ static const struct OamData sOamData_ItemIcon = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 2, diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 669195b33..83ed3abfe 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -36,10 +36,10 @@ static const struct OamData sOamData_857FAA4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -146,10 +146,10 @@ static const struct OamData sOamData_857FB64 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 4, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -217,10 +217,10 @@ static const struct OamData sOamData_857FBC8 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 7, @@ -234,10 +234,10 @@ static const struct OamData sOamData_857FBD0 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 7, @@ -374,10 +374,10 @@ static const struct OamData sOamData_857FDFC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/link_rfu.c b/src/link_rfu.c index d80ff2ae9..a557397f0 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -155,7 +155,8 @@ const u8 sWireless_RSEtoASCIITable[] = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 }; const struct OamData sWirelessStatusIndicatorOamData = { - .size = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) }; static const union AnimCmd sWirelessStatusIndicatorAnim0[] = { // 3 bars diff --git a/src/list_menu.c b/src/list_menu.c index 51d7dcb15..a5786754c 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -129,10 +129,10 @@ static const struct OamData sOamData_ScrollArrowIndicator = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -186,8 +186,8 @@ static const struct Subsprite sSubsprite_RedOutline1 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 0, .priority = 0, }; @@ -196,8 +196,8 @@ static const struct Subsprite sSubsprite_RedOutline2 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 1, .priority = 0, }; @@ -206,8 +206,8 @@ static const struct Subsprite sSubsprite_RedOutline3 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 2, .priority = 0, }; @@ -216,8 +216,8 @@ static const struct Subsprite sSubsprite_RedOutline4 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 3, .priority = 0, }; @@ -226,8 +226,8 @@ static const struct Subsprite sSubsprite_RedOutline5 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 4, .priority = 0, }; @@ -236,8 +236,8 @@ static const struct Subsprite sSubsprite_RedOutline6 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 5, .priority = 0, }; @@ -246,8 +246,8 @@ static const struct Subsprite sSubsprite_RedOutline7 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 6, .priority = 0, }; @@ -256,8 +256,8 @@ static const struct Subsprite sSubsprite_RedOutline8 = { .x = 0, .y = 0, - .shape = 0, - .size = 0, + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .tileOffset = 7, .priority = 0, }; @@ -269,10 +269,10 @@ static const struct OamData sOamData_RedArrowCursor = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 3fb5ca40d..b5745d812 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -37,10 +37,10 @@ static const struct OamData sOamData_859F4E8 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 4f5834db1..898180df4 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -142,10 +142,10 @@ static const struct OamData gOamData_8617DF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 3, @@ -192,10 +192,10 @@ static const struct OamData sCeilingCrumble2OamData = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -230,10 +230,10 @@ static const struct OamData sCeilingCrumble1OamData = .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/mon_markings.c b/src/mon_markings.c index 48f0f5ecb..f8b128045 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -30,10 +30,10 @@ static const struct OamData gUnknown_0859EE7C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -47,10 +47,10 @@ static const struct OamData gUnknown_0859EE84 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -156,10 +156,10 @@ static const struct OamData gUnknown_0859EF1C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/money.c b/src/money.c index 4ff8086ea..7b95a75ab 100644 --- a/src/money.c +++ b/src/money.c @@ -24,10 +24,10 @@ static const struct OamData sOamData_MoneyLabel = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/naming_screen.c b/src/naming_screen.c index 22bbb84d7..75b7c8566 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1910,10 +1910,10 @@ const struct OamData gOamData_858BFEC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1927,10 +1927,10 @@ const struct OamData gOamData_858BFF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1944,10 +1944,10 @@ const struct OamData gOamData_858BFFC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/party_menu.c b/src/party_menu.c index ec35fc068..bedd0ce57 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -1175,10 +1175,10 @@ static const struct OamData gOamData_83765EC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -1231,10 +1231,10 @@ static const struct OamData sOamData_8615ED8 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -1287,10 +1287,10 @@ static const struct OamData sOamData_8615F20 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -1366,10 +1366,10 @@ static const struct OamData sOamData_8615F90 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokeball.c b/src/pokeball.c index d4605ccd8..793609ec2 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -99,10 +99,10 @@ static const struct OamData sBallOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 2, .paletteNum = 0, diff --git a/src/pokeblock.c b/src/pokeblock.c index 2682754aa..ee18d0251 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -222,10 +222,10 @@ static const struct OamData sOamData_PokeblockCase = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index da803f454..59ba1b4dc 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -463,10 +463,10 @@ static const struct OamData sThrownPokeblockOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokedex.c b/src/pokedex.c index 4bf8dff6d..cceb50ba1 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -248,10 +248,10 @@ static const struct OamData sOamData_855CFE4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -265,10 +265,10 @@ static const struct OamData sOamData_855CFEC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -282,10 +282,10 @@ static const struct OamData sOamData_855CFF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -299,10 +299,10 @@ static const struct OamData sOamData_855CFFC = .objMode = 2, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -316,10 +316,10 @@ static const struct OamData sOamData_855D004 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -333,10 +333,10 @@ static const struct OamData sOamData_855D00C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(8x16), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x16), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index eeea3c210..00fe9ab82 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -83,14 +83,21 @@ static const u32 sAreaGlow_Gfx[] = INCBIN_U32("graphics/pokedex/area_glow.4bpp.l static const u16 sSpeciesHiddenFromAreaScreen[] = { SPECIES_WYNAUT }; -static const u16 sMovingRegionMapSections[3] = { MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_TERRA_CAVE }; +static const u16 sMovingRegionMapSections[3] = +{ + MAPSEC_MARINE_CAVE, + MAPSEC_UNDERWATER_MARINE_CAVE, + MAPSEC_TERRA_CAVE +}; -static const u16 sFeebasData[][3] = { +static const u16 sFeebasData[][3] = +{ {SPECIES_FEEBAS, MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119)}, {NUM_SPECIES} }; -static const u16 sLandmarkData[][2] = { +static const u16 sLandmarkData[][2] = +{ {MAPSEC_SKY_PILLAR, FLAG_LANDMARK_SKY_PILLAR}, {MAPSEC_SEAFLOOR_CAVERN, FLAG_LANDMARK_SEAFLOOR_CAVERN}, {MAPSEC_ALTERING_CAVE_2, FLAG_LANDMARK_ALTERING_CAVE}, @@ -100,7 +107,8 @@ static const u16 sLandmarkData[][2] = { {MAPSEC_NONE} }; -static const u8 sAreaGlowTilemapMapping[] = { +static const u8 sAreaGlowTilemapMapping[] = +{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x11, 0x20, 0x02, 0x03, 0x27, 0x2d, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, 0x21, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x2a, 0x2e, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, @@ -119,7 +127,8 @@ static const u8 sAreaGlowTilemapMapping[] = { 0x1f, 0x22, 0x25, 0x03, 0x28, 0x2d, 0x2c, 0x07, 0x2b, 0x2e, 0x2f, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, }; -static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { +static const struct UnkStruct_1C4D70 sUnknown_085B4018 = +{ .bg = 3, .unk2 = 0, .unk10 = 0, @@ -127,21 +136,26 @@ static const struct UnkStruct_1C4D70 sUnknown_085B4018 = { }; static const u8 sAreaMarkerTiles[]; -static const struct SpriteSheet sAreaMarkerSpriteSheet = { +static const struct SpriteSheet sAreaMarkerSpriteSheet = +{ sAreaMarkerTiles, 0x80, 2 }; static const u16 sAreaMarkerPalette[]; -static const struct SpritePalette sAreaMarkerSpritePalette = { +static const struct SpritePalette sAreaMarkerSpritePalette = +{ sAreaMarkerPalette, 2 }; -static const struct OamData sAreaMarkerOamData = { - .size = 1, +static const struct OamData sAreaMarkerOamData = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1 }; -static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { +static const struct SpriteTemplate sAreaMarkerSpriteTemplate = +{ 2, 2, &sAreaMarkerOamData, @@ -154,16 +168,20 @@ static const struct SpriteTemplate sAreaMarkerSpriteTemplate = { static const u16 sAreaMarkerPalette[] = INCBIN_U16("graphics/pokedex/area_marker.gbapal"); static const u8 sAreaMarkerTiles[] = INCBIN_U8("graphics/pokedex/area_marker.4bpp"); -static const struct SpritePalette sAreaUnknownSpritePalette = { +static const struct SpritePalette sAreaUnknownSpritePalette = +{ gPokedexAreaScreenAreaUnknown_Pal, 3 }; -static const struct OamData sAreaUnknownOamData = { - .size = 2, +static const struct OamData sAreaUnknownOamData = +{ + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1 }; -static const struct SpriteTemplate sAreaUnknownSpriteTemplate = { +static const struct SpriteTemplate sAreaUnknownSpriteTemplate = +{ 3, 3, &sAreaUnknownOamData, diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index c385141d5..8ca0c8d6e 100755 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -54,7 +54,8 @@ const u16 gUnknown_085B8378[] = INCBIN_U16("graphics/pokedex/cry_meter_map.bin") const u16 gUnknown_085B8418[] = INCBIN_U16("graphics/pokedex/cry_meter.gbapal"); const u8 gUnknown_085B8438[] = INCBIN_U8("graphics/pokedex/cry_meter.4bpp.lz"); -const u16 gUnknown_085B8770[][72] = { +const u16 gUnknown_085B8770[][72] = +{ { 0x0000, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C, 0x0400, 0x0404, 0x0408, 0x040C, 0x0410, 0x0414, 0x0418, 0x041C, @@ -142,7 +143,8 @@ const u16 gUnknown_085B8BF0[] = INCBIN_U16("graphics/pokedex/85B8C10.gbapal"); const u8 gUnknown_085B8C10[] = INCBIN_U8("graphics/pokedex/85B8C10.4bpp"); const u8 gUnknown_085B8C30[] = {0xF0, 0x0F}; -const u8 gUnknown_085B8C32[][16] = { +const u8 gUnknown_085B8C32[][16] = +{ { 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F @@ -152,23 +154,28 @@ const u8 gUnknown_085B8C32[][16] = { } }; -const union AnimCmd gSpriteAnim_85B8C54[] = { +const union AnimCmd gSpriteAnim_85B8C54[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = { +const union AnimCmd *const gSpriteAnimTable_85B8C5C[] = +{ gSpriteAnim_85B8C54 }; -const struct OamData gOamData_85B8C60 = { +const struct OamData gOamData_85B8C60 = +{ .y = 160, .affineMode = ST_OAM_AFFINE_NORMAL, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1 }; -const struct SpriteTemplate gUnknown_085B8C68 = { +const struct SpriteTemplate gUnknown_085B8C68 = +{ 0x2000, 0x2000, &gOamData_85B8C60, @@ -178,12 +185,14 @@ const struct SpriteTemplate gUnknown_085B8C68 = { sub_814596C }; -const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = { +const struct SpriteSheet gCryMeterNeedleSpriteSheets[] = +{ {CryMeterNeedleTiles, 0x800, 0x2000}, {} }; -const struct SpritePalette gCryMeterNeedleSpritePalettes[] = { +const struct SpritePalette gCryMeterNeedleSpritePalettes[] = +{ {CryMeterNeedlePalette, 0x2000}, {} }; diff --git a/src/pokemon.c b/src/pokemon.c index a984abbb9..1ee9c4cff 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2462,10 +2462,10 @@ static const struct OamData sOamData_8329F20 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index ecb8f4950..4ff182a0e 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -931,10 +931,10 @@ const struct OamData sMonIconOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c5d40877b..30f5af14c 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -969,10 +969,10 @@ static const struct OamData sOamData_857286C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -986,10 +986,10 @@ static const struct OamData sOamData_8572874 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1062,10 +1062,10 @@ static const struct OamData sOamData_85728EC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -1467,8 +1467,8 @@ static const struct SpriteSheet gUnknown_0857B080 = {gPCGfx_Arrow, 0x80, 6}; static const struct OamData gOamData_83BB298 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2 }; @@ -1503,7 +1503,8 @@ static const struct SpriteTemplate gSpriteTemplate_857B0A8 = static const struct OamData gOamData_83BB2D0 = { - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 2 }; @@ -2004,7 +2005,7 @@ static void sub_80C7958(u8 curBox) u8 spriteId; struct SpriteTemplate template; struct OamData oamData = {}; - oamData.size = 3; + oamData.size = SPRITE_SIZE(64x64); oamData.paletteNum = 1; template = (struct SpriteTemplate){ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy @@ -2017,8 +2018,8 @@ static void sub_80C7958(u8 curBox) spriteId = CreateSprite(&template, 160, 96, 0); gUnknown_02039D04->unk_0000 = gSprites + spriteId; - oamData.shape = ST_OAM_V_RECTANGLE; - oamData.size = 1; + oamData.shape = SPRITE_SHAPE(8x32); + oamData.size = SPRITE_SIZE(8x32); template.tileTag = gUnknown_02039D04->unk_0240 + 1; template.anims = sSpriteAnimTable_8571710; for (i = 0; i < 4; i++) @@ -8490,12 +8491,14 @@ static void sub_80CFC14(void) static const struct OamData sOamData_857BA0C = { - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, }; static const struct OamData sOamData_857BA14 = { - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, }; @@ -9358,10 +9361,10 @@ static const struct OamData sOamData_857BBA4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3bbc832a0..3a5b06d45 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -710,10 +710,10 @@ static const struct OamData sOamData_MoveTypes = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -886,10 +886,10 @@ static const struct OamData gOamData_861CFF4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -975,10 +975,10 @@ static const struct OamData sOamData_StatusCondition = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 3, .paletteNum = 0, diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c index 00a73a0a2..e2497a8dc 100644 --- a/src/rayquaza_scene.c +++ b/src/rayquaza_scene.c @@ -105,10 +105,10 @@ static const struct OamData sOamData_862A6BC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -122,10 +122,10 @@ static const struct OamData sOamData_862A6C4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -139,10 +139,10 @@ static const struct OamData sOamData_862A6CC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -156,10 +156,10 @@ static const struct OamData sOamData_862A6D4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x16), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -173,10 +173,10 @@ static const struct OamData sOamData_862A6DC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(16x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(16x8), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -190,10 +190,10 @@ static const struct OamData sOamData_862A6E4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 2, + .shape = SPRITE_SHAPE(16x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(16x32), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -207,10 +207,10 @@ static const struct OamData sOamData_862A6EC = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 2, .paletteNum = 0, @@ -224,10 +224,10 @@ static const struct OamData sOamData_862A6F4 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 2, .paletteNum = 0, diff --git a/src/region_map.c b/src/region_map.c index 8dadc78a7..a8b3fc3b2 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -106,7 +106,8 @@ static const u8 sRegionMap_MapSectionLayout[] = INCBIN_U8("graphics/pokenav/regi #include "data/region_map/region_map_entries.h" -static const u16 sRegionMap_SpecialPlaceLocations[][2] = { +static const u16 sRegionMap_SpecialPlaceLocations[][2] = +{ {MAPSEC_UNDERWATER_TERRA_CAVE, MAPSEC_ROUTE_105}, {MAPSEC_UNDERWATER_124, MAPSEC_ROUTE_124}, {MAPSEC_UNDERWATER_UNK1, MAPSEC_ROUTE_129}, @@ -133,13 +134,15 @@ static const u16 sRegionMap_SpecialPlaceLocations[][2] = { {MAPSEC_NONE, MAPSEC_NONE} }; -static const u16 sRegionMap_MarineCaveMapSecIds[] = { +static const u16 sRegionMap_MarineCaveMapSecIds[] = +{ MAPSEC_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE, MAPSEC_UNDERWATER_MARINE_CAVE }; -static const u16 sTerraCaveMapSectionIds[] = { +static const u16 sTerraCaveMapSectionIds[] = +{ MAPSEC_ROUTE_114, MAPSEC_ROUTE_114, MAPSEC_ROUTE_115, @@ -158,7 +161,8 @@ static const u16 sTerraCaveMapSectionIds[] = { MAPSEC_ROUTE_129 }; -static const struct UCoords16 sTerraCaveLocationCoords[] = { +static const struct UCoords16 sTerraCaveLocationCoords[] = +{ {0x00, 0x0a}, {0x00, 0x0c}, {0x18, 0x03}, @@ -169,21 +173,27 @@ static const struct UCoords16 sTerraCaveLocationCoords[] = { {0x18, 0x0a} }; -static const u8 sRegionMap_MapSecAquaHideoutOld[] = { +static const u8 sRegionMap_MapSecAquaHideoutOld[] = +{ MAPSEC_AQUA_HIDEOUT_OLD }; -static const struct OamData sRegionMapCursorOam = { - .size = 1, .priority = 1 +static const struct OamData sRegionMapCursorOam = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1 }; -static const union AnimCmd sRegionMapCursorAnim1[] = { +static const union AnimCmd sRegionMapCursorAnim1[] = +{ ANIMCMD_FRAME(0, 20), ANIMCMD_FRAME(4, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd sRegionMapCursorAnim2[] = { +static const union AnimCmd sRegionMapCursorAnim2[] = +{ ANIMCMD_FRAME( 0, 10), ANIMCMD_FRAME(16, 10), ANIMCMD_FRAME(32, 10), @@ -191,37 +201,49 @@ static const union AnimCmd sRegionMapCursorAnim2[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sRegionMapCursorAnimTable[] = { +static const union AnimCmd *const sRegionMapCursorAnimTable[] = +{ sRegionMapCursorAnim1, sRegionMapCursorAnim2 }; -static const struct SpritePalette sRegionMapCursorSpritePalette = { sRegionMapCursorPal, 0 }; +static const struct SpritePalette sRegionMapCursorSpritePalette = +{ + .data = sRegionMapCursorPal, + .tag = 0 +}; -static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = { - 0, - 0, - &sRegionMapCursorOam, - sRegionMapCursorAnimTable, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallback_CursorFull +static const struct SpriteTemplate sRegionMapCursorSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &sRegionMapCursorOam, + .anims = sRegionMapCursorAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallback_CursorFull }; -static const struct OamData sRegionMapPlayerIconOam = { - .size = 1, .priority = 2 +static const struct OamData sRegionMapPlayerIconOam = +{ + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 2 }; -static const union AnimCmd sRegionMapPlayerIconAnim1[] = { +static const union AnimCmd sRegionMapPlayerIconAnim1[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = { +static const union AnimCmd *const sRegionMapPlayerIconAnimTable[] = +{ sRegionMapPlayerIconAnim1 }; -static const u8 sRegionMapEventSectionIds[] = { +static const u8 sRegionMapEventSectionIds[] = +{ MAPSEC_BIRTH_ISLAND_2, MAPSEC_FARAWAY_ISLAND, MAPSEC_NAVEL_ROCK2 @@ -237,7 +259,8 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic static const u32 sUnknown_085A1D68[] = INCBIN_U32("graphics/pokenav/fly_target_icons.4bpp.lz"); -static const u8 sMapHealLocations[][3] = { +static const u8 sMapHealLocations[][3] = +{ {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, @@ -290,83 +313,154 @@ static const u8 sMapHealLocations[][3] = { {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} }; -static const u8 *const gUnknown_085A1ED4[] = { +static const u8 *const gUnknown_085A1ED4[] = +{ gText_PokemonLeague, gText_PokemonCenter }; -static const struct { +static const struct +{ const u8 *const *name; u16 mapSecId; u16 flag; -} gUnknown_085A1EDC[] = { +} +gUnknown_085A1EDC[] = +{ gUnknown_085A1ED4, MAPSEC_EVER_GRANDE_CITY, FLAG_LANDMARK_POKEMON_LEAGUE }; -static const struct BgTemplate gUnknown_085A1EE4[] = { - { .bg = 0, .charBaseIndex = 0, .mapBaseIndex = 31, .screenSize = 0, .paletteMode = 0, .priority = 0 }, - { .bg = 1, .charBaseIndex = 3, .mapBaseIndex = 30, .screenSize = 0, .paletteMode = 0, .priority = 1 }, - { .bg = 2, .charBaseIndex = 2, .mapBaseIndex = 28, .screenSize = 2, .paletteMode = 1, .priority = 2 } +static const struct BgTemplate gUnknown_085A1EE4[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0 + }, + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 28, + .screenSize = 2, + .paletteMode = 1, + .priority = 2 + } }; -static const struct WindowTemplate gUnknown_085A1EF0[] = { - { 0, 17, 17, 12, 2, 15, 0x01 }, - { 0, 17, 15, 12, 4, 15, 0x19 }, - { 0, 1, 18, 14, 2, 15, 0x49 }, +static const struct WindowTemplate gUnknown_085A1EF0[] = +{ + { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 17, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x01 + }, + { + .bg = 0, + .tilemapLeft = 17, + .tilemapTop = 15, + .width = 12, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x19 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 18, + .width = 14, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x49 + }, DUMMY_WIN_TEMPLATE }; -static const struct SpritePalette gUnknown_085A1F10 = { - Unknown_085A1D48, 2 +static const struct SpritePalette gUnknown_085A1F10 = +{ + .data = Unknown_085A1D48, + .tag = 2 }; -static const u16 sUnknown_085A1F18[][2] = { - {FLAG_LANDMARK_BATTLE_FRONTIER, MAPSEC_BATTLE_FRONTIER}, - {-1, MAPSEC_NONE} +static const u16 sUnknown_085A1F18[][2] = +{ + { + FLAG_LANDMARK_BATTLE_FRONTIER, + MAPSEC_BATTLE_FRONTIER + }, + { + -1, + MAPSEC_NONE + } }; -static const struct OamData gOamData_085A1F20 = { +static const struct OamData gOamData_085A1F20 = +{ + .shape = SPRITE_SHAPE(8x8), + .size = SPRITE_SIZE(8x8), .priority = 2 }; -static const union AnimCmd gUnknown_085A1F28[] = { +static const union AnimCmd gUnknown_085A1F28[] = +{ ANIMCMD_FRAME( 0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F30[] = { +static const union AnimCmd gUnknown_085A1F30[] = +{ ANIMCMD_FRAME( 1, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F38[] = { +static const union AnimCmd gUnknown_085A1F38[] = +{ ANIMCMD_FRAME( 3, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F40[] = { +static const union AnimCmd gUnknown_085A1F40[] = +{ ANIMCMD_FRAME( 5, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F48[] = { +static const union AnimCmd gUnknown_085A1F48[] = +{ ANIMCMD_FRAME( 6, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F50[] = { +static const union AnimCmd gUnknown_085A1F50[] = +{ ANIMCMD_FRAME( 8, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_085A1F58[] = { +static const union AnimCmd gUnknown_085A1F58[] = +{ ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_085A1F60[] = { +static const union AnimCmd *const gUnknown_085A1F60[] = +{ gUnknown_085A1F28, gUnknown_085A1F30, gUnknown_085A1F38, @@ -376,14 +470,15 @@ static const union AnimCmd *const gUnknown_085A1F60[] = { gUnknown_085A1F58 }; -static const struct SpriteTemplate gUnknown_085A1F7C = { - 2, - 2, - &gOamData_085A1F20, - gUnknown_085A1F60, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy +static const struct SpriteTemplate gUnknown_085A1F7C = +{ + .tileTag = 2, + .paletteTag = 2, + .oam = &gOamData_085A1F20, + .anims = gUnknown_085A1F60, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; // .text diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index ce9f5b98b..6ee757607 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -108,10 +108,10 @@ static const struct OamData sOamData_08510464 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(8x8), .x = 0, .matrixNum = 0, - .size = 0, + .size = SPRITE_SIZE(8x8), .tileNum = 0, .priority = 0, .paletteNum = 0, diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 3513f092e..44d291dc4 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -236,10 +236,10 @@ static const struct OamData sOamData_RotatingGateLarge = .objMode = 0, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 2, .paletteNum = 2, @@ -253,10 +253,10 @@ static const struct OamData sOamData_RotatingGateRegular = .objMode = 0, .mosaic = 0, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 2, .paletteNum = 2, diff --git a/src/roulette.c b/src/roulette.c index 05d5006f0..5c08c99a0 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -2311,18 +2311,18 @@ static const u32 RouletteCursorTiles[] = INCBIN_U32("graphics/roulette/cursor.4b static const struct SpritePalette gUnknown_085B7384[] = { - { RouletteSpritePalette_01, 1 }, - { RouletteSpritePalette_02, 2 }, - { RouletteSpritePalette_03, 3 }, - { RouletteSpritePalette_04, 4 }, - { RouletteSpritePalette_05, 5 }, - { RouletteSpritePalette_06, 6 }, - { RouletteSpritePalette_07, 7 }, - { RouletteSpritePalette_08, 8 }, - { RouletteSpritePalette_09, 9 }, - { RouletteSpritePalette_10, 10 }, - { RouletteSpritePalette_11, 11 }, - { RouletteSpritePalette_12, 12 }, + { .data = RouletteSpritePalette_01, .tag = 1 }, + { .data = RouletteSpritePalette_02, .tag = 2 }, + { .data = RouletteSpritePalette_03, .tag = 3 }, + { .data = RouletteSpritePalette_04, .tag = 4 }, + { .data = RouletteSpritePalette_05, .tag = 5 }, + { .data = RouletteSpritePalette_06, .tag = 6 }, + { .data = RouletteSpritePalette_07, .tag = 7 }, + { .data = RouletteSpritePalette_08, .tag = 8 }, + { .data = RouletteSpritePalette_09, .tag = 9 }, + { .data = RouletteSpritePalette_10, .tag = 10 }, + { .data = RouletteSpritePalette_11, .tag = 11 }, + { .data = RouletteSpritePalette_12, .tag = 12 }, {} }; @@ -2330,8 +2330,8 @@ static const struct OamData gOamData_85B73EC = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, }; @@ -2339,8 +2339,8 @@ static const struct OamData gOamData_85B73F4 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, }; @@ -2349,35 +2349,41 @@ static const struct OamData gOamData_85B73FC = .y = 60, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 2, }; -static const union AnimCmd gSpriteAnim_85B7404[] = { +static const union AnimCmd gSpriteAnim_85B7404[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B740C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B740C[] = +{ gSpriteAnim_85B7404 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = +{ AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = +{ gSpriteAffineAnim_85B7410 }; -static const struct CompressedSpriteSheet gUnknown_085B741C = { +static const struct CompressedSpriteSheet gUnknown_085B741C = +{ .data = RoulettePokeIcons2Tiles, .size = 0xC00, .tag = 0 }; -static const union AnimCmd gSpriteAnim_85B7420[] = { +static const union AnimCmd gSpriteAnim_85B7420[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(32, 0), ANIMCMD_FRAME(64, 0), @@ -2393,67 +2399,82 @@ static const union AnimCmd gSpriteAnim_85B7420[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7458[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7458[] = +{ &gSpriteAnim_85B7420[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B745C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B745C[] = +{ &gSpriteAnim_85B7420[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7460[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7460[] = +{ &gSpriteAnim_85B7420[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7464[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7464[] = +{ &gSpriteAnim_85B7420[3] }; -static const union AnimCmd *const gSpriteAnimTable_85B7468[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7468[] = +{ &gSpriteAnim_85B7420[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B746C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B746C[] = +{ &gSpriteAnim_85B7420[5] }; -static const union AnimCmd *const gSpriteAnimTable_85B7470[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7470[] = +{ &gSpriteAnim_85B7420[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B7474[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7474[] = +{ &gSpriteAnim_85B7420[7] }; -static const union AnimCmd *const gSpriteAnimTable_85B7478[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7478[] = +{ &gSpriteAnim_85B7420[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B747C[] = { +static const union AnimCmd *const gSpriteAnimTable_85B747C[] = +{ &gSpriteAnim_85B7420[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B7480[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7480[] = +{ &gSpriteAnim_85B7420[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B7484[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7484[] = +{ &gSpriteAnim_85B7420[11] }; -static const struct CompressedSpriteSheet gUnknown_085B7488 = { +static const struct CompressedSpriteSheet gUnknown_085B7488 = +{ .data = gRouletteHeadersTiles, .size = 0x1600, .tag = 4 }; -static const struct CompressedSpriteSheet gUnknown_085B7490 = { +static const struct CompressedSpriteSheet gUnknown_085B7490 = +{ .data = RoulettePokeIconsTiles, .size = 0x400, .tag = 5 }; -static const union AnimCmd gSpriteAnim_85B7498[] = { +static const union AnimCmd gSpriteAnim_85B7498[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(16, 0), ANIMCMD_FRAME(32, 0), @@ -2468,7 +2489,8 @@ static const union AnimCmd gSpriteAnim_85B7498[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B74C8[] = { +static const union AnimCmd gSpriteAnim_85B74C8[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(4, 0), ANIMCMD_FRAME(8, 0), @@ -2476,47 +2498,58 @@ static const union AnimCmd gSpriteAnim_85B74C8[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = +{ &gSpriteAnim_85B7498[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = +{ &gSpriteAnim_85B7498[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = +{ &gSpriteAnim_85B7498[4] }; -static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = +{ &gSpriteAnim_85B7498[6] }; -static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = +{ &gSpriteAnim_85B7498[8] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = +{ &gSpriteAnim_85B7498[9] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = +{ &gSpriteAnim_85B7498[10] }; -static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = +{ &gSpriteAnim_85B74C8[0] }; -static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = +{ &gSpriteAnim_85B74C8[1] }; -static const union AnimCmd *const gSpriteAnimTable_85B7500[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7500[] = +{ &gSpriteAnim_85B74C8[2] }; -static const union AnimCmd *const gSpriteAnimTable_85B7504[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7504[] = +{ &gSpriteAnim_85B74C8[3] }; @@ -2747,8 +2780,8 @@ static const struct OamData gOamData_85B7730 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 3, + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1, }; @@ -2756,8 +2789,8 @@ static const struct OamData gOamData_85B7738 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_V_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(8x16), + .size = SPRITE_SIZE(8x16), .priority = 1, }; @@ -2765,8 +2798,8 @@ static const struct OamData gOamData_85B7740 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 1, }; @@ -2774,8 +2807,8 @@ static const struct OamData gOamData_85B7748 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 0, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), .priority = 1, }; @@ -2809,7 +2842,8 @@ static const struct CompressedSpriteSheet gUnknown_085B7750[] = {} }; -static const union AnimCmd gSpriteAnim_85B7780[] = { +static const union AnimCmd gSpriteAnim_85B7780[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), ANIMCMD_FRAME(4, 0), @@ -2824,11 +2858,13 @@ static const union AnimCmd gSpriteAnim_85B7780[] = { //ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = +{ gSpriteAnim_85B7780 }; -static const union AnimCmd gSpriteAnim_85B77AC[] = { +static const union AnimCmd gSpriteAnim_85B77AC[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(8, 0), ANIMCMD_FRAME(16, 0), @@ -2837,11 +2873,13 @@ static const union AnimCmd gSpriteAnim_85B77AC[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = +{ gSpriteAnim_85B77AC }; -static const union AnimCmd gSpriteAnim_85B77C8[] = { +static const union AnimCmd gSpriteAnim_85B77C8[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(2, 0), ANIMCMD_FRAME(4, 0), @@ -2850,7 +2888,8 @@ static const union AnimCmd gSpriteAnim_85B77C8[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = +{ gSpriteAnim_85B77C8 }; @@ -2913,8 +2952,8 @@ static const struct OamData gOamData_85B785C = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -2924,7 +2963,8 @@ static const struct CompressedSpriteSheet gUnknown_085B7864 = { .tag = 12 }; -static const union AnimCmd gSpriteAnim_85B786C[] = { +static const union AnimCmd gSpriteAnim_85B786C[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(8, 5), @@ -2932,7 +2972,8 @@ static const union AnimCmd gSpriteAnim_85B786C[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7880[] = { +static const union AnimCmd gSpriteAnim_85B7880[] = +{ ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), ANIMCMD_FRAME(8, 10), @@ -2940,7 +2981,8 @@ static const union AnimCmd gSpriteAnim_85B7880[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B7894[] = { +static const union AnimCmd gSpriteAnim_85B7894[] = +{ ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(4, 15), ANIMCMD_FRAME(8, 15), @@ -2948,7 +2990,8 @@ static const union AnimCmd gSpriteAnim_85B7894[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B78A8[] = { +static const union AnimCmd gSpriteAnim_85B78A8[] = +{ ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(8, 5), ANIMCMD_FRAME(4, 5), @@ -2956,7 +2999,8 @@ static const union AnimCmd gSpriteAnim_85B78A8[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78BC[] = { +static const union AnimCmd gSpriteAnim_85B78BC[] = +{ ANIMCMD_FRAME(4, 2), ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(4, 4), @@ -2965,7 +3009,8 @@ static const union AnimCmd gSpriteAnim_85B78BC[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78D4[] = { +static const union AnimCmd gSpriteAnim_85B78D4[] = +{ ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(8, 5), @@ -2973,12 +3018,14 @@ static const union AnimCmd gSpriteAnim_85B78D4[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78E8[] = { +static const union AnimCmd gSpriteAnim_85B78E8[] = +{ ANIMCMD_FRAME(12, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B78F0[] = { +static const union AnimCmd gSpriteAnim_85B78F0[] = +{ ANIMCMD_FRAME(8, 2), ANIMCMD_FRAME(4, 5), ANIMCMD_FRAME(0, 5), @@ -2986,7 +3033,8 @@ static const union AnimCmd gSpriteAnim_85B78F0[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7904[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7904[] = +{ gSpriteAnim_85B786C, gSpriteAnim_85B7880, gSpriteAnim_85B7894, @@ -3014,12 +3062,13 @@ static const struct OamData gOamData_85B7940 = .y = 81, .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7948 = { +static const struct CompressedSpriteSheet gUnknown_085B7948 = +{ .data = gRouletteCenter_Gfx, .size = 0x800, .tag = 6 @@ -3040,8 +3089,8 @@ static const struct OamData gOamData_85B7968 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; @@ -3049,18 +3098,20 @@ static const struct OamData gOamData_85B7970 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7978 = { +static const struct CompressedSpriteSheet gUnknown_085B7978 = +{ .data = gUnknown_085B67FC, .size = 0xE00, .tag = 13 }; -static const union AnimCmd gSpriteAnim_85B7980[] = { +static const union AnimCmd gSpriteAnim_85B7980[] = +{ ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -3070,45 +3121,53 @@ static const union AnimCmd gSpriteAnim_85B7980[] = { ANIMCMD_JUMP(2) }; -static const union AnimCmd gSpriteAnim_85B799C[] = { +static const union AnimCmd gSpriteAnim_85B799C[] = +{ ANIMCMD_FRAME(80, 10), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79A4[] = { +static const union AnimCmd gSpriteAnim_85B79A4[] = +{ ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B79AC[] = { +static const union AnimCmd gSpriteAnim_85B79AC[] = +{ ANIMCMD_FRAME(80, 20), ANIMCMD_FRAME(96, 20), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79B8[] = { +static const union AnimCmd gSpriteAnim_85B79B8[] = +{ ANIMCMD_FRAME(80, 20, .hFlip = TRUE), ANIMCMD_FRAME(96, 20, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79C4[] = { +static const union AnimCmd gSpriteAnim_85B79C4[] = +{ ANIMCMD_FRAME(80, 10), ANIMCMD_FRAME(96, 10), ANIMCMD_JUMP(0) }; -static const union AnimCmd gSpriteAnim_85B79D0[] = { +static const union AnimCmd gSpriteAnim_85B79D0[] = +{ ANIMCMD_FRAME(80, 10, .hFlip = TRUE), ANIMCMD_FRAME(96, 10, .hFlip = TRUE), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = { +static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = +{ gSpriteAnim_85B7980 }; -static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = { +static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = +{ gSpriteAnim_85B799C, gSpriteAnim_85B79A4, gSpriteAnim_85B79AC, @@ -3143,8 +3202,8 @@ static const struct OamData gOamData_85B7A28 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 2, }; @@ -3152,8 +3211,8 @@ static const struct OamData gOamData_85B7A30 = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; @@ -3161,24 +3220,27 @@ static const struct OamData gOamData_85B7A38 = { .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 2, }; -static const struct CompressedSpriteSheet gUnknown_085B7A40 = { +static const struct CompressedSpriteSheet gUnknown_085B7A40 = +{ .data = gUnknown_085B7290, .size = 0x180, .tag = 14 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = +{ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 60), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = +{ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-2, 0x0, 0, 15), AFFINEANIMCMD_FRAME(-1, -2, 0, 15), @@ -3186,38 +3248,46 @@ static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = +{ gSpriteAffineAnim_85B7A48 }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = +{ gSpriteAffineAnim_85B7A60 }; -static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = { +static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = +{ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = +{ gSpriteAffineAnim_85B7A90 }; -static const union AnimCmd gSpriteAnim_85B7AA4[] = { +static const union AnimCmd gSpriteAnim_85B7AA4[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_85B7AAC[] = { +static const union AnimCmd gSpriteAnim_85B7AAC[] = +{ ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = +{ gSpriteAnim_85B7AA4 }; -static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = { +static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = +{ gSpriteAnim_85B7AAC }; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 08f193890..415907585 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -47,19 +47,19 @@ EWRAM_DATA u8 gSaveFailedUnused2[4] = {0}; static const struct OamData sClockOamData = { - 160, // Y - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0 + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 }; static const struct BgTemplate gUnknown_085EFD88[3] = diff --git a/src/sprite.c b/src/sprite.c index 4087dd8c4..d2ea7889c 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -91,21 +91,21 @@ typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); -#define DUMMY_OAM_DATA \ -{ \ - 160, /* Y (off-screen) */ \ - 0, \ - 0, \ - 0, \ - 0, \ - 0, \ - 304, /* X */ \ - 0, \ - 0, \ - 0, \ - 3, /* lowest priority */ \ - 0, \ - 0 \ +#define DUMMY_OAM_DATA \ +{ \ + .y = 160, \ + .affineMode = 0, \ + .objMode = 0, \ + .mosaic = 0, \ + .bpp = 0, \ + .shape = SPRITE_SHAPE(8x8), \ + .x = 304, \ + .matrixNum = 0, \ + .size = SPRITE_SIZE(8x8), \ + .tileNum = 0, \ + .priority = 3, /* lowest priority */ \ + .paletteNum = 0, \ + .affineParam = 0 \ } #define ANIM_END 0xFFFF diff --git a/src/starter_choose.c b/src/starter_choose.c index 4ed53539f..c3d636175 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -170,10 +170,10 @@ static const struct OamData gOamData_85B1E10 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -187,10 +187,10 @@ static const struct OamData gOamData_85B1E18 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(32x32), .x = 0, .matrixNum = 0, - .size = 2, + .size = SPRITE_SIZE(32x32), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -204,10 +204,10 @@ static const struct OamData gOamData_85B1E20 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -296,21 +296,35 @@ static const union AffineAnimCmd * const gSpriteAffineAnimTable_85B1ED4[] = {gSp static const struct CompressedSpriteSheet gUnknown_085B1ED8[] = { - gUnknown_085B18AC, 0x0800, 0x1000, - NULL, + { + .data = gUnknown_085B18AC, + .size = 0x0800, + .tag = 0x1000 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085B1EE8[] = { - gUnknown_085B1BCC, 0x0800, 0x1001, - NULL, + { + .data = gUnknown_085B1BCC, + .size = 0x0800, + .tag = 0x1001 + }, + {} }; static const struct SpritePalette gUnknown_085B1EF8[] = { - gBirchBallarrow_Pal, 0x1000, - gBirchCircle_Pal, 0x1001, - NULL, + { + .data = gBirchBallarrow_Pal, + .tag = 0x1000 + }, + { + .data = gBirchCircle_Pal, + .tag = 0x1001 + }, + {}, }; static const struct SpriteTemplate sSpriteTemplate_Hand = diff --git a/src/title_screen.c b/src/title_screen.c index 80d5464fa..b9ef53000 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -23,9 +23,7 @@ #include "constants/rgb.h" #include "constants/songs.h" -#define VERSION_BANNER_SHAPE 1 #define VERSION_BANNER_RIGHT_TILEOFFSET 64 -#define VERSION_BANNER_BYTES 0x1000 #define VERSION_BANNER_LEFT_X 98 #define VERSION_BANNER_RIGHT_X 162 #define VERSION_BANNER_Y 2 @@ -108,10 +106,10 @@ static const struct OamData sVersionBannerLeftOamData = .objMode = 0, .mosaic = 0, .bpp = 1, - .shape = VERSION_BANNER_SHAPE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -125,10 +123,10 @@ static const struct OamData sVersionBannerRightOamData = .objMode = 0, .mosaic = 0, .bpp = 1, - .shape = VERSION_BANNER_SHAPE, + .shape = SPRITE_SHAPE(64x32), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x32), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -181,8 +179,12 @@ static const struct SpriteTemplate sVersionBannerRightSpriteTemplate = static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] = { - {gTitleScreenEmeraldVersionGfx, VERSION_BANNER_BYTES, 1000}, - {NULL}, + { + .data = gTitleScreenEmeraldVersionGfx, + .size = 0x1000, + .tag = 1000 + }, + {}, }; static const struct OamData sOamData_CopyrightBanner = @@ -192,10 +194,10 @@ static const struct OamData sOamData_CopyrightBanner = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 1, + .shape = SPRITE_SHAPE(32x8), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(32x8), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -280,14 +282,21 @@ static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate = static const struct CompressedSpriteSheet sSpriteSheet_PressStart[] = { - {gTitleScreenPressStartGfx, 0x520, 1001}, - {NULL}, + { + .data = gTitleScreenPressStartGfx, + .size = 0x520, + .tag = 1001 + }, + {}, }; static const struct SpritePalette sSpritePalette_PressStart[] = { - {gTitleScreenPressStartPal, 1001}, - {NULL}, + { + .data = gTitleScreenPressStartPal, + .tag = 1001 + }, + {}, }; static const struct OamData sPokemonLogoShineOamData = @@ -297,10 +306,10 @@ static const struct OamData sPokemonLogoShineOamData = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -331,8 +340,12 @@ static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate = static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = { - {sTitleScreenLogoShineGfx, 0x800, 1002}, - {NULL}, + { + .data = sTitleScreenLogoShineGfx, + .size = 0x800, + .tag = 1002 + }, + {}, }; // code diff --git a/src/trade.c b/src/trade.c index 9a9828f34..be6768fe3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -256,72 +256,89 @@ static const u8 gText_YourOnlyPkmnForBattle[] = _("That's your only\nPOKéMON fo static const u8 gText_WaitingForYourFriend[] = _("{COLOR DARK_GREY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GREY}Waiting for your friend\nto finish…"); static const u8 gText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); -static const struct OamData gOamData_832DC14 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 2, +static const struct OamData gOamData_832DC14 = +{ + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .priority = 1 }; -static const struct OamData gOamData_832DC1C = { - .shape = ST_OAM_H_RECTANGLE, - .size = 3, +static const struct OamData gOamData_832DC1C = +{ + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_832DC24[] = { +static const union AnimCmd gSpriteAnim_832DC24[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC2C[] = { +static const union AnimCmd gSpriteAnim_832DC2C[] = +{ ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC34[] = { +static const union AnimCmd *const gSpriteAnimTable_832DC34[] = +{ gSpriteAnim_832DC24, gSpriteAnim_832DC2C }; -static const struct SpriteSheet gUnknown_0832DC3C = { - gUnknown_08DDC6E4, 0x800, 300 +static const struct SpriteSheet gUnknown_0832DC3C = +{ + .data = gUnknown_08DDC6E4, + .size = 0x800, + .tag = 300 }; -static const struct SpritePalette gUnknown_0832DC44 = { - gUnknown_08DDB444, 2345 +static const struct SpritePalette gUnknown_0832DC44 = +{ + .data = gUnknown_08DDB444, + .tag = 2345 }; -static const union AnimCmd gSpriteAnim_832DC4C[] = { +static const union AnimCmd gSpriteAnim_832DC4C[] = +{ ANIMCMD_FRAME(0, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC54[] = { +static const union AnimCmd gSpriteAnim_832DC54[] = +{ ANIMCMD_FRAME(8, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC5C[] = { +static const union AnimCmd gSpriteAnim_832DC5C[] = +{ ANIMCMD_FRAME(16, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC64[] = { +static const union AnimCmd gSpriteAnim_832DC64[] = +{ ANIMCMD_FRAME(24, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC6C[] = { +static const union AnimCmd gSpriteAnim_832DC6C[] = +{ ANIMCMD_FRAME(32, 5), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_832DC74[] = { +static const union AnimCmd gSpriteAnim_832DC74[] = +{ ANIMCMD_FRAME(40, 5), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = { +static const union AnimCmd *const gSpriteAnimTable_832DC7C[] = +{ gSpriteAnim_832DC4C, gSpriteAnim_832DC54, gSpriteAnim_832DC5C, @@ -355,7 +372,8 @@ static const struct SpriteTemplate gSpriteTemplate_832DCAC = static const u16 TradeScreenTextPalette[] = INCBIN_U16("graphics/trade/text.gbapal"); static const struct SpritePalette gSpritePalette_TradeScreenText = { - TradeScreenTextPalette, 4925 + .data = TradeScreenTextPalette, + .tag = 4925 }; // This is used to determine the next mon to select when the D-Pad is @@ -367,7 +385,6 @@ static const struct SpritePalette gSpritePalette_TradeScreenText = // 2 3 8 9 // 4 5 10 11 // 12 - static const u8 gTradeNextSelectedMonTable[][4][6] = { { @@ -471,7 +488,8 @@ static const u8 gTradeMonSpriteCoords[][2] = {23, 18} // CANCEL }; -static const u8 gTradeLevelDisplayCoords[][6][2] = { +static const u8 gTradeLevelDisplayCoords[][6][2] = +{ { // Your party {5, 4}, @@ -492,7 +510,8 @@ static const u8 gTradeLevelDisplayCoords[][6][2] = { } }; -static const u8 gTradeMonBoxCoords[][6][2] = { +static const u8 gTradeMonBoxCoords[][6][2] = +{ { // Your party {1, 3}, @@ -513,7 +532,8 @@ static const u8 gTradeMonBoxCoords[][6][2] = { } }; -static const u8 sUnref_0832DE6E[] = { +static const u8 sUnref_0832DE6E[] = +{ 0x00, 0x0e, 0x0f, 0x1d, 0x03, 0x05, @@ -544,7 +564,8 @@ static const u8 *const gUnknown_0832DE94[] = gJPText_832DB2E }; -static const struct MenuAction gUnknown_0832DEAC[] = { +static const struct MenuAction gUnknown_0832DEAC[] = +{ {gText_Summary4, sub_807A000}, {gText_Trade3, sub_807A024} }; @@ -817,12 +838,15 @@ static const u16 gUnknown_08337EA0[] = INCBIN_U16("graphics/trade/black.gbapal") static const u32 gUnknown_08337EC0[] = INCBIN_U32("graphics/trade/wireless_signal.4bpp.lz"); static const u32 gUnknown_08338550[] = INCBIN_U32("graphics/trade/wireless_signal.bin.lz"); -static const struct OamData gOamData_8338C44 = { +static const struct OamData gOamData_8338C44 = +{ .affineMode = 1, - .size = 1 + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16) }; -static const union AnimCmd gSpriteAnim_8338C4C[] = { +static const union AnimCmd gSpriteAnim_8338C4C[] = +{ ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), ANIMCMD_FRAME( 8, 3), @@ -840,7 +864,8 @@ static const union AnimCmd gSpriteAnim_8338C4C[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338C88[] = { +static const union AnimCmd gSpriteAnim_8338C88[] = +{ ANIMCMD_FRAME( 0, 3), ANIMCMD_FRAME( 4, 3), ANIMCMD_FRAME( 8, 3), @@ -858,171 +883,213 @@ static const union AnimCmd gSpriteAnim_8338C88[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338C88[] = { +static const union AnimCmd *const gSpriteAnimTable_8338C88[] = +{ gSpriteAnim_8338C4C, gSpriteAnim_8338C88 }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CCC[] = +{ AFFINEANIMCMD_FRAME(0, 0, 0, 1), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CDC[] = +{ AFFINEANIMCMD_FRAME(-8, 0, 0, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338CEC[] = +{ AFFINEANIMCMD_FRAME(0x60, 0x100, 0, 0), AFFINEANIMCMD_FRAME( 0, 0, 0, 5), AFFINEANIMCMD_FRAME( 8, 0, 0, 20), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D0C[] = +{ gSpriteAffineAnim_8338CCC, gSpriteAffineAnim_8338CDC, gSpriteAffineAnim_8338CEC }; -static const struct SpriteSheet gUnknown_08338D18 = { - gTradeBallTiles, 0x600, 5557 +static const struct SpriteSheet gUnknown_08338D18 = +{ + .data = gTradeBallTiles, + .size = 0x600, + .tag = 5557 }; -static const struct SpritePalette gUnknown_08338D20 = { - gTradeBallPalette, 5558 +static const struct SpritePalette gUnknown_08338D20 = +{ + .data = gTradeBallPalette, + .tag = 5558 }; -static const struct SpriteTemplate gSpriteTemplate_8338D28 = { - 5557, - 5558, - &gOamData_8338C44, - gSpriteAnimTable_8338C88, - NULL, - gSpriteAffineAnimTable_8338D0C, - sub_807E55C +static const struct SpriteTemplate gSpriteTemplate_8338D28 = +{ + .tileTag = 5557, + .paletteTag = 5558, + .oam = &gOamData_8338C44, + .anims = gSpriteAnimTable_8338C88, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8338D0C, + .callback = sub_807E55C }; -static const struct OamData gOamData_8338D40 = { +static const struct OamData gOamData_8338D40 = +{ .affineMode = 1, .objMode = 1, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338D48[] = { +static const union AnimCmd gSpriteAnim_8338D48[] = +{ ANIMCMD_FRAME(0, 5, .hFlip = TRUE, .vFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338D50[] = { +static const union AnimCmd *const gSpriteAnimTable_8338D50[] = +{ gSpriteAnim_8338D48 }; -static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338D54[] = +{ AFFINEANIMCMD_FRAME(-10, -10, 0, 5), AFFINEANIMCMD_FRAME(10, 10, 0, 5), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338D6C[] = +{ gSpriteAffineAnim_8338D54 }; -static const struct SpriteSheet gUnknown_08338D70 = { - gTradeGlow1Tiles, 0x200, 5550 +static const struct SpriteSheet gUnknown_08338D70 = +{ + .data = gTradeGlow1Tiles, + .size = 0x200, + .tag = 5550 }; -static const struct SpritePalette gUnknown_08338D78 = { - gUnknown_08330940, 5551 +static const struct SpritePalette gUnknown_08338D78 = +{ + .data = gUnknown_08330940, + .tag = 5551 }; -static const struct SpritePalette gUnknown_08338D80 = { - gUnknown_083308E0, 5555 +static const struct SpritePalette gUnknown_08338D80 = +{ + .data = gUnknown_083308E0, + .tag = 5555 }; -static const struct SpriteTemplate gUnknown_08338D88 = { - 5550, - 5551, - &gOamData_8338D40, - gSpriteAnimTable_8338D50, - NULL, - gSpriteAffineAnimTable_8338D6C, - sub_807AA28 +static const struct SpriteTemplate gUnknown_08338D88 = +{ + .tileTag = 5550, + .paletteTag = 5551, + .oam = &gOamData_8338D40, + .anims = gSpriteAnimTable_8338D50, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_8338D6C, + .callback = sub_807AA28 }; -static const struct OamData gOamData_8338DA0 = { - .shape = ST_OAM_V_RECTANGLE, - .size = 2, +static const struct OamData gOamData_8338DA0 = +{ + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DA8[] = { +static const union AnimCmd gSpriteAnim_8338DA8[] = +{ ANIMCMD_FRAME(0, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338DB0[] = { +static const union AnimCmd gSpriteAnim_8338DB0[] = +{ ANIMCMD_FRAME(8, 5, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = { +static const union AnimCmd *const gSpriteAnimTable_8338DB8[] = +{ gSpriteAnim_8338DA8, gSpriteAnim_8338DB0 }; -static const struct SpriteSheet gUnknown_08338DC0 = { - gTradeGlow2Tiles, 0x300, 5552 +static const struct SpriteSheet gUnknown_08338DC0 = +{ + .data = gTradeGlow2Tiles, + .size = 0x300, + .tag = 5552 }; -static const struct SpriteTemplate gSpriteTemplate_8338DC8 = { - 5552, - 5551, - &gOamData_8338DA0, - gSpriteAnimTable_8338DB8, - NULL, - gDummySpriteAffineAnimTable, - sub_807AA7C +static const struct SpriteTemplate gSpriteTemplate_8338DC8 = +{ + .tileTag = 5552, + .paletteTag = 5551, + .oam = &gOamData_8338DA0, + .anims = gSpriteAnimTable_8338DB8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AA7C }; -static const struct OamData gOamData_8338DE0 = { - .shape = ST_OAM_V_RECTANGLE, - .size = 2, +static const struct OamData gOamData_8338DE0 = +{ + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338DE8[] = { +static const union AnimCmd gSpriteAnim_8338DE8[] = +{ ANIMCMD_FRAME(0, 10), ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = { +static const union AnimCmd *const gSpriteAnimTable_8338DF0[] = +{ gSpriteAnim_8338DE8 }; -static const struct SpriteSheet gUnknown_08338DF4 = { - gTradeCableEndTiles, 0x100, 5554 +static const struct SpriteSheet gUnknown_08338DF4 = +{ + .data = gTradeCableEndTiles, + .size = 0x100, + .tag = 5554 }; -static const struct SpriteTemplate gSpriteTemplate_8338DFC = { - 5554, - 5555, - &gOamData_8338DE0, - gSpriteAnimTable_8338DF0, - NULL, - gDummySpriteAffineAnimTable, - sub_807AABC +static const struct SpriteTemplate gSpriteTemplate_8338DFC = +{ + .tileTag = 5554, + .paletteTag = 5555, + .oam = &gOamData_8338DE0, + .anims = gSpriteAnimTable_8338DF0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AABC }; -static const struct OamData gOamData_8338E14 = { - .shape = ST_OAM_H_RECTANGLE, - .size = 3, +static const struct OamData gOamData_8338E14 = +{ + .shape = SPRITE_SHAPE(64x32), + .size = SPRITE_SIZE(64x32), .priority = 1 }; -static const union AnimCmd gSpriteAnim_8338E1C[] = { +static const union AnimCmd gSpriteAnim_8338E1C[] = +{ ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -1034,7 +1101,8 @@ static const union AnimCmd gSpriteAnim_8338E1C[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnim_8338E40[] = { +static const union AnimCmd gSpriteAnim_8338E40[] = +{ ANIMCMD_FRAME( 0, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 2, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 2, .vFlip = TRUE, .hFlip = TRUE), @@ -1046,50 +1114,60 @@ static const union AnimCmd gSpriteAnim_8338E40[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_8338E64[] = { +static const union AnimCmd *const gSpriteAnimTable_8338E64[] = +{ gSpriteAnim_8338E1C }; -static const union AnimCmd *const gSpriteAnimTable_8338E68[] = { +static const union AnimCmd *const gSpriteAnimTable_8338E68[] = +{ gSpriteAnim_8338E40 }; -static const struct SpriteSheet gUnknown_08338E6C = { - gTradeGBAScreenTiles, 0x1000, 5556 +static const struct SpriteSheet gUnknown_08338E6C = +{ + .data = gTradeGBAScreenTiles, + .size = 0x1000, + .tag = 5556 }; -static const struct SpriteTemplate gSpriteTemplate_8338E74 = { - 5556, - 5555, - &gOamData_8338E14, - gSpriteAnimTable_8338E64, - NULL, - gDummySpriteAffineAnimTable, - sub_807AB04 +static const struct SpriteTemplate gSpriteTemplate_8338E74 = +{ + .tileTag = 5556, + .paletteTag = 5555, + .oam = &gOamData_8338E14, + .anims = gSpriteAnimTable_8338E64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AB04 }; -static const struct SpriteTemplate gSpriteTemplate_8338E8C = { - 5556, - 5555, - &gOamData_8338E14, - gSpriteAnimTable_8338E68, - NULL, - gDummySpriteAffineAnimTable, - sub_807AB04 +static const struct SpriteTemplate gSpriteTemplate_8338E8C = +{ + .tileTag = 5556, + .paletteTag = 5555, + .oam = &gOamData_8338E14, + .anims = gSpriteAnimTable_8338E68, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807AB04 }; static const u16 gUnknown_08338EA4[] = INCBIN_U16("graphics/trade/unknown_338EA4.gbapal"); -static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = { +static const union AffineAnimCmd gSpriteAffineAnim_8338EBC[] = +{ AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = { +static const union AffineAnimCmd *const gSpriteAffineAnimTable_8338ECC[] = +{ gSpriteAffineAnim_8338EBC }; -static const struct InGameTrade gIngameTrades[] = { +static const struct InGameTrade gIngameTrades[] = +{ { _("DOTS"), SPECIES_SEEDOT, 5, 4, 5, 4, 4, 4, @@ -1131,7 +1209,8 @@ static const struct InGameTrade gIngameTrades[] = { } }; -static const u16 gIngameTradeMail[][10] = { +static const u16 gIngameTradeMail[][10] = +{ { EC_WORD_BE, EC_WORD_NICE, @@ -1233,7 +1312,8 @@ static const struct BgTemplate gUnknown_08339014[] = }, }; -static const s8 gTradeBallVerticalVelocityTable[] = { +static const s8 gTradeBallVerticalVelocityTable[] = +{ 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 2, 2, diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index d57685423..8172f09e6 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -43,13 +43,18 @@ static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; // .rodata static const struct PicData sDummyPicData = {}; + static const struct OamData gUnknown_0860B064 = { - .size = 3 + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) }; + static const struct OamData gUnknown_0860B06C = { - .affineMode = 1, .size = 3 + .affineMode = 1, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) }; // .text diff --git a/src/trainer_see.c b/src/trainer_see.c index 16ea88a45..9925aa6bc 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -100,10 +100,10 @@ static const struct OamData sOamData_Icons = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(16x16), .x = 0, .matrixNum = 0, - .size = 1, + .size = SPRITE_SIZE(16x16), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -112,13 +112,22 @@ static const struct OamData sOamData_Icons = static const struct SpriteFrameImage sSpriteImageTable_ExclamationQuestionMark[] = { - {sEmotion_ExclamationMarkGfx, 0x80}, - {sEmotion_QuestionMarkGfx, 0x80} + { + .data = sEmotion_ExclamationMarkGfx, + .size = 0x80 + }, + { + .data = sEmotion_QuestionMarkGfx, + .size = 0x80 + } }; static const struct SpriteFrameImage sSpriteImageTable_HeartIcon[] = { - {sEmotion_HeartGfx, 0x80} + { + .data = sEmotion_HeartGfx, + .size = 0x80 + } }; static const union AnimCmd sSpriteAnim_Icons1[] = diff --git a/src/unk_transition.c b/src/unk_transition.c index d56998b5b..99479c866 100644 --- a/src/unk_transition.c +++ b/src/unk_transition.c @@ -40,7 +40,7 @@ static const u32 gUnknown_0862AF30[] = INCBIN_U32("graphics/battle_transitions/f static const u32 gUnknown_0862B0DC[] = INCBIN_U32("graphics/battle_transitions/frontier_transition_circles.4bpp.lz"); static const u16 gUnknown_0862B53C[] = INCBIN_U16("graphics/battle_transitions/frontier_transition.gbapal"); -// Unused Empty data. Feel free to delete. +// Unused Empty data. static const u8 sFiller[0x1C0] = {0}; static const struct OamData sOamData_862B71C = @@ -50,10 +50,10 @@ static const struct OamData sOamData_862B71C = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 1, .paletteNum = 0, @@ -62,12 +62,15 @@ static const struct OamData sOamData_862B71C = static const struct CompressedSpriteSheet sUnknown_0862B724 = { - gUnknown_0862B0DC, 0x1800, 11920 + .data = gUnknown_0862B0DC, + .size = 0x1800, + .tag = 11920 }; static const struct SpritePalette sUnknown_0862B72C = { - gUnknown_0862B53C, 11920 + .data = gUnknown_0862B53C, + .tag = 11920 }; static const union AnimCmd sSpriteAnim_862B734[] = diff --git a/src/wallclock.c b/src/wallclock.c index d3bbcf7a2..810abb1d1 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -93,6 +93,7 @@ static const struct WindowTemplate gUnknown_085B21DC[] = }, DUMMY_WIN_TEMPLATE }; + static const struct WindowTemplate gUnknown_085B21F4 = { .bg = 0, @@ -103,7 +104,9 @@ static const struct WindowTemplate gUnknown_085B21F4 = .paletteNum = 14, .baseBlock = 572 }; -static const struct BgTemplate gUnknown_085B21FC[] = { + +static const struct BgTemplate gUnknown_085B21FC[] = +{ { .bg = 0, .charBaseIndex = 2, @@ -123,34 +126,57 @@ static const struct BgTemplate gUnknown_085B21FC[] = { .priority = 2 } }; -static const struct CompressedSpriteSheet gUnknown_085B2208 = { + +static const struct CompressedSpriteSheet gUnknown_085B2208 = +{ sUnknown_085B1F58, 0x2000, TAG_GFX_WALL_CLOCK_HAND }; -static const u32 filler_85B2210[2] = {}; -static const struct SpritePalette gUnknown_085B2218[] = { - { gWallclockMale_Pal, TAG_PAL_WALL_CLOCK_HAND }, - { gWallclockFemale_Pal, 0x1001 }, + +static const u8 filler_85B2210[8] = {0}; + +static const struct SpritePalette gUnknown_085B2218[] = +{ + { + .data = gWallclockMale_Pal, + .tag = TAG_PAL_WALL_CLOCK_HAND + }, + { + .data = gWallclockFemale_Pal, + .tag = 0x1001 + }, {} }; -static const struct OamData Unknown_085B2230 = { + +static const struct OamData Unknown_085B2230 = +{ .y = 160, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1, }; -static const union AnimCmd Unknown_085B2238[] = { + +static const union AnimCmd Unknown_085B2238[] = +{ ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; -static const union AnimCmd Unknown_085B2240[] = { + +static const union AnimCmd Unknown_085B2240[] = +{ ANIMCMD_FRAME(64, 30), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085B2248[] = { + +static const union AnimCmd *const gUnknown_085B2248[] = +{ Unknown_085B2238 }; -static const union AnimCmd *const gUnknown_085B224C[] = { + +static const union AnimCmd *const gUnknown_085B224C[] = +{ Unknown_085B2240 }; + static const struct SpriteTemplate gUnknown_085B2250 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -161,6 +187,7 @@ static const struct SpriteTemplate gUnknown_085B2250 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_MinuteHand, }; + static const struct SpriteTemplate gUnknown_085B2268 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -171,25 +198,37 @@ static const struct SpriteTemplate gUnknown_085B2268 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_HourHand, }; -static const struct OamData Unknown_085B2280 = { + +static const struct OamData Unknown_085B2280 = +{ .y = 160, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 3, }; -static const union AnimCmd Unknown_085B2288[] = { + +static const union AnimCmd Unknown_085B2288[] = +{ ANIMCMD_FRAME(132, 30), ANIMCMD_END, }; -static const union AnimCmd Unknown_085B2290[] = { + +static const union AnimCmd Unknown_085B2290[] = +{ ANIMCMD_FRAME(128, 30), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_085B2298[] = { + +static const union AnimCmd *const gUnknown_085B2298[] = +{ Unknown_085B2288 }; -static const union AnimCmd *const gUnknown_085B229C[] = { + +static const union AnimCmd *const gUnknown_085B229C[] = +{ Unknown_085B2290 }; + static const struct SpriteTemplate gUnknown_085B22A0 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -200,6 +239,7 @@ static const struct SpriteTemplate gUnknown_085B22A0 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_AMIndicator }; + static const struct SpriteTemplate gUnknown_085B22B8 = { .tileTag = TAG_GFX_WALL_CLOCK_HAND, @@ -210,7 +250,9 @@ static const struct SpriteTemplate gUnknown_085B22B8 = .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_PMIndicator }; -static const s8 sClockHandCoords[][2] = { + +static const s8 sClockHandCoords[][2] = +{ { 0x00, -0x18}, { 0x01, -0x19}, { 0x01, -0x19}, -- cgit v1.2.3 From eeb329909c7caab645445849a2f75257a3c72be5 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 03:21:23 -0400 Subject: Fix anonymous struct --- src/region_map.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/region_map.c b/src/region_map.c index a8b3fc3b2..25b47479d 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -36,6 +36,13 @@ // Static type declarations +struct FlagControlledFlyDest +{ + const u8 *const *name; + u16 mapSecId; + u16 flag; +}; + // Static RAM declarations static EWRAM_DATA struct RegionMap *gRegionMap = NULL; @@ -319,17 +326,13 @@ static const u8 *const gUnknown_085A1ED4[] = gText_PokemonCenter }; -static const struct +static const struct FlagControlledFlyDest gUnknown_085A1EDC[] = { - const u8 *const *name; - u16 mapSecId; - u16 flag; -} -gUnknown_085A1EDC[] = -{ - gUnknown_085A1ED4, - MAPSEC_EVER_GRANDE_CITY, - FLAG_LANDMARK_POKEMON_LEAGUE + { + .name = gUnknown_085A1ED4, + .mapSecId = MAPSEC_EVER_GRANDE_CITY, + .flag = FLAG_LANDMARK_POKEMON_LEAGUE + } }; static const struct BgTemplate gUnknown_085A1EE4[] = @@ -1774,7 +1777,7 @@ static void sub_8124904(void) if (sFlyMap->regionMap.iconDrawType > MAPSECTYPE_NONE && sFlyMap->regionMap.iconDrawType <= MAPSECTYPE_BATTLE_FRONTIER) { flag = FALSE; - for (i = 0; i < 1; i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_085A1EDC); i++) { if (sFlyMap->regionMap.mapSecId == gUnknown_085A1EDC[i].mapSecId) { -- cgit v1.2.3 From a029254faa152ae652eb35f6b9e1e80ddc33463a Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 04:15:44 -0400 Subject: Apply new macros to intro graphics struct --- src/intro_credits_graphics.c | 270 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 243 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 29ee2067f..7ac11e1e0 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -102,15 +102,87 @@ static const union AnimCmd *const gUnknown_085F5094[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = { - { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, - { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, - { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, - { 1, ST_OAM_SQUARE, 1, 56, 40, 101, 0x800 }, - { 2, ST_OAM_H_RECTANGLE, 0, 100, 44, 102, 0x400 }, - { 2, ST_OAM_H_RECTANGLE, 0, 152, 44, 102, 0x400 }, - { 3, ST_OAM_H_RECTANGLE, 0, 8, 46, 103, 0x100 }, - { 3, ST_OAM_H_RECTANGLE, 0, 56, 46, 103, 0x100 }, - { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 72, + .y = 32, + .subpriority = 100, + .xOff = 0xc00 + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 158, + .y = 32, + .subpriority = 100, + .xOff = 0xc00 + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .x = 192, + .y = 40, + .subpriority = 101, + .xOff = 0x800 + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .x = 56, + .y = 40, + .subpriority = 101, + .xOff = 0x800 + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 100, + .y = 44, + .subpriority = 102, + .xOff = 0x400 + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 152, + .y = 44, + .subpriority = 102, + .xOff = 0x400 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 8, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 56, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, + { + .animNum = 3, + .shape = SPRITE_SHAPE(16x8), + .size = SPRITE_SIZE(16x8), + .x = 240, + .y = 46, + .subpriority = 103, + .xOff = 0x100 + }, }; static const struct CompressedSpriteSheet gUnknown_085F50EC[] = @@ -146,18 +218,114 @@ static const union AnimCmd *const gUnknown_085F5114[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = { - { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, - { 0, ST_OAM_SQUARE, 2, 208, 88, 100, 0x2000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 40, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 104, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 168, 88, 101, 0x1000 }, - { 1, ST_OAM_V_RECTANGLE, 2, 232, 88, 101, 0x1000 }, - { 2, ST_OAM_V_RECTANGLE, 2, 56, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 120, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 184, 88, 102, 0x800 }, - { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 16, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 80, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 144, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 208, + .y = 88, + .subpriority = 100, + .xOff = 0x2000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 40, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 104, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 168, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 1, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 232, + .y = 88, + .subpriority = 101, + .xOff = 0x1000, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 56, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 120, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 184, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + }, + { + .animNum = 2, + .shape = SPRITE_SHAPE(16x32), + .size = SPRITE_SIZE(16x32), + .x = 248, + .y = 88, + .subpriority = 102, + .xOff = 0x800, + } }; static const struct CompressedSpriteSheet gUnknown_085F5180[] = @@ -179,12 +347,60 @@ static const union AnimCmd *const gUnknown_085F5198[] = static const struct IntroCreditsSpriteMetadata gUnknown_085F519C[] = { - { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 184, 88, 100, 0x1000 }, - { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 24, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 64, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 104, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 144, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 184, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + }, + { + .animNum = 0, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .x = 224, + .y = 88, + .subpriority = 100, + .xOff = 0x1000, + } }; static const struct OamData gOamData_85F51CC = -- cgit v1.2.3 From 691392fd5ddbeae70e1daa9eee48085189667c39 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 11 Mar 2019 04:28:43 -0400 Subject: Clean up intro_credits_graphics constants --- src/intro_credits_graphics.c | 196 ++++++++++++++++++++++++++++++++----------- 1 file changed, 149 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/intro_credits_graphics.c b/src/intro_credits_graphics.c index 7ac11e1e0..059c1079e 100644 --- a/src/intro_credits_graphics.c +++ b/src/intro_credits_graphics.c @@ -59,13 +59,23 @@ static void nullsub_66(struct Sprite *sprite); static const struct SpriteTemplate gUnknown_085F504C = { - 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_817B62C + .tileTag = 2000, + .paletteTag = 0xFFFF, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B62C }; static const struct CompressedSpriteSheet gUnknown_085F5064[] = { - { gUnknown_085F16A8, 0x400, 2000 }, - { NULL } + { + .data = gUnknown_085F16A8, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F5074[] = @@ -187,8 +197,12 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F50A4[] = static const struct CompressedSpriteSheet gUnknown_085F50EC[] = { - { gIntro2TreeTiles, 0x400, 2000 }, - { NULL } + { + .data = gIntro2TreeTiles, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F50FC[] = @@ -330,8 +344,12 @@ static const struct IntroCreditsSpriteMetadata gUnknown_085F5120[] = static const struct CompressedSpriteSheet gUnknown_085F5180[] = { - { gIntro2NightTiles, 0x400, 2000 }, - { NULL } + { + .data = gIntro2NightTiles, + .size = 0x400, + .tag = 2000 + }, + {} }; static const union AnimCmd gUnknown_085F5190[] = @@ -427,12 +445,24 @@ static const union AnimCmd *const gUnknown_085F51E8[] = static const struct SpriteTemplate gUnknown_085F51EC = { - 1002, 1002, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .tileTag = 1002, + .paletteTag = 1002, + .oam = &gOamData_85F51CC, + .anims = gUnknown_085F51E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_65 }; static const struct SpriteTemplate gUnknown_085F5204 = { - 1003, 1003, &gOamData_85F51CC, gUnknown_085F51E8, NULL, gDummySpriteAffineAnimTable, nullsub_65 + .tileTag = 1003, + .paletteTag = 1003, + .oam = &gOamData_85F51CC, + .anims = gUnknown_085F51E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_65 }; static const struct OamData gUnknown_085F521C = @@ -459,12 +489,24 @@ static const union AnimCmd *const gUnknown_085F5238[] = static const struct SpriteTemplate gUnknown_085F523C = { - 1001, 1002, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .tileTag = 1001, + .paletteTag = 1002, + .oam = &gUnknown_085F521C, + .anims = gUnknown_085F5238, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B7C4 }; static const struct SpriteTemplate gUnknown_085F5254 = { - 1001, 1003, &gUnknown_085F521C, gUnknown_085F5238, NULL, gDummySpriteAffineAnimTable, sub_817B7C4 + .tileTag = 1001, + .paletteTag = 1003, + .oam = &gUnknown_085F521C, + .anims = gUnknown_085F5238, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_817B7C4 }; static const struct OamData gUnknown_085F526C = @@ -495,102 +537,162 @@ static const union AnimCmd *const gUnknown_085F5284[] = static const struct SpriteTemplate gUnknown_085F528C = { - 1004, 1004, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .tileTag = 1004, + .paletteTag = 1004, + .oam = &gUnknown_085F526C, + .anims = gUnknown_085F5284, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_66 }; static const struct SpriteTemplate gUnknown_085F52A4 = { - 1005, 1005, &gUnknown_085F526C, gUnknown_085F5284, NULL, gDummySpriteAffineAnimTable, nullsub_66 + .tileTag = 1005, + .paletteTag = 1005, + .oam = &gUnknown_085F526C, + .anims = gUnknown_085F5284, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_66 }; const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { - { gIntro2BrendanNoTurnGfx, 0x2000, 1002 }, - { NULL } + { + .data = gIntro2BrendanNoTurnGfx, + .size = 0x2000, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { - { gIntro2MayNoTurnGfx, 0x2000, 1003 }, - { NULL } + { + .data = gIntro2MayNoTurnGfx, + .size = 0x2000, + .tag = 1003 + }, + {} }; const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { - { gIntro2BicycleTiles, 0x1000, 1001 }, - { NULL } + { + .data = gIntro2BicycleTiles, + .size = 0x1000, + .tag = 1001 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F52EC[] = { - { gIntro2FlygonGfx, 0x1000, 1004 }, - { NULL } + { + .data = gIntro2FlygonGfx, + .size = 0x1000, + .tag = 1004 + }, + {} }; const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[] = { - { gIntro2FlygonGfx, 0x1000, 1005 }, - { NULL } + { + .data = gIntro2FlygonGfx, + .size = 0x1000, + .tag = 1005 + }, + {} }; const struct SpritePalette gIntroBikeAndFlygonPalette[] = { - { gIntro2BrendanNoTurnPal, 1002 }, - { gIntro2BrendanNoTurnPal, 1003 }, - { gIntro2FlygonPal, 1004 }, - { gIntro2FlygonPal, 1005 }, - { NULL } + { .data = gIntro2BrendanNoTurnPal, .tag = 1002 }, + { .data = gIntro2BrendanNoTurnPal, .tag = 1003 }, + { .data = gIntro2FlygonPal, .tag = 1004 }, + { .data = gIntro2FlygonPal, .tag = 1005 }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5334[] = { - { gIntro2BrendanTiles, 0x3800, 1002 }, - { NULL } + { + .data = gIntro2BrendanTiles, + .size = 0x3800, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5344[] = { - { gIntro2MayTiles, 0x3800, 1003 }, - { NULL } + { + .data = gIntro2MayTiles, + .size = 0x3800, + .tag = 1003 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F5354[] = { - { gIntro2BicycleTiles, 0x1000, 1001 }, - { NULL } + { + .data = gIntro2BicycleTiles, + .size = 0x1000, + .tag = 1001 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F5364[] = { - { gIntro2LatiosTiles, 0x1000, 1004 }, - { NULL } + { + .data = gIntro2LatiosTiles, + .size = 0x1000, + .tag = 1004 + }, + {} }; static const struct CompressedSpriteSheet gUnknown_085F5374[] = { - { gIntro2LatiasTiles, 0x1000, 1005 }, - { NULL } + { + .data = gIntro2LatiasTiles, + .size = 0x1000, + .tag = 1005 + }, + {} }; const struct SpritePalette gUnknown_085F5384[] = { - { gIntro2BrendanPalette, 1002 }, - { gIntro2MayPalette, 1003 }, - { gIntro2LatiosPalette, 1004 }, - { gIntro2LatiasPalette, 1005 }, - { NULL } + { .data = gIntro2BrendanPalette, .tag = 1002 }, + { .data = gIntro2MayPalette, .tag = 1003 }, + { .data = gIntro2LatiosPalette, .tag = 1004 }, + { .data = gIntro2LatiasPalette, .tag = 1005 }, + {} }; const struct CompressedSpriteSheet gUnknown_085F53AC[] = { - { gIntro2BrendanTiles, 0x2000, 1002}, - { NULL } + { + .data = gIntro2BrendanTiles, + .size = 0x2000, + .tag = 1002 + }, + {} }; const struct CompressedSpriteSheet gUnknown_085F53BC[] = { - { gIntro2MayTiles, 0x2000, 1003}, - { NULL } + { + .data = gIntro2MayTiles, + .size = 0x2000, + .tag = 1003 + }, + {} }; EWRAM_DATA u16 gUnknown_0203BD24 = 0; -- cgit v1.2.3 From 4ae8a52473a0e4842cf140bf0c59f0276125a896 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 17 Mar 2019 16:19:42 -0500 Subject: Finish decompiling contest_painting_effects.c --- src/contest_painting_effects.c | 701 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 646 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/contest_painting_effects.c b/src/contest_painting_effects.c index 142ad7bc9..a791df65c 100644 --- a/src/contest_painting_effects.c +++ b/src/contest_painting_effects.c @@ -3,6 +3,13 @@ #include "contest_painting.h" #include "constants/rgb.h" +struct Unk8125954 +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; + // IWRAM common u8 gUnknown_03006164; u16 (*gUnknown_03006168)[][32]; @@ -12,32 +19,46 @@ u8 gUnknown_03006174; u8 gUnknown_03006178; u8 gUnknown_0300617C; u8 gUnknown_03006180; -u16 gUnknown_03006184; +u16 *gUnknown_03006184; u16 gUnknown_03006188; -// this file's functions -void sub_8125230(void); -void sub_81252E8(void); -void sub_81254E0(void); -void sub_8125630(void); -void sub_8125448(void); -void sub_81257F8(void); -void sub_81258A0(void); -void sub_81256C8(void); -void sub_8125250(void); -void sub_81253A4(u8); -void sub_81250B8(u8); -void sub_8125170(u8); -void sub_8125954(u16); -u16 ConvertColorToGrayscale(u16*); -u16 sub_8125E18(u16*, u16*, u16*); -u16 ConvertCoolColor(u16*, u8); -u16 ConvertToBlackOrWhite(u16*); -u16 sub_8125C98(u16*, u16*); -u16 InvertColor(u16*); -u16 sub_8125F38(u16*, u16*, u16*); -u16 sub_8125CF4(u16*, u16*); -u16 GetCoolColorFromPersonality(u8); +static void sub_8125230(void); +static void sub_81252E8(void); +static void sub_81254E0(void); +static void sub_8125630(void); +static void sub_8125448(void); +static void sub_81257F8(void); +static void sub_81258A0(void); +static void sub_81256C8(void); +static void sub_8125250(void); +static void sub_81253A4(u8); +static void sub_81250B8(u8); +static void sub_8125170(u8); +static void sub_8125954(u16); +static u16 ConvertColorToGrayscale(u16*); +static u16 sub_8125E18(u16*, u16*, u16*); +static u16 ConvertCoolColor(u16*, u8); +static u16 ConvertToBlackOrWhite(u16*); +static u16 sub_8125C98(u16*, u16*); +static u16 InvertColor(u16*); +static u16 sub_8125F38(u16*, u16*, u16*); +static u16 sub_8125CF4(u16*, u16*); +static u16 GetCoolColorFromPersonality(u8); +static void sub_81263A4(bool8); +static void sub_8126270(void); +static void sub_8126714(void); +static void sub_8126370(void); +static void sub_8126664(void); +static void sub_8126334(void); +static void sub_81265B4(void); +static void sub_8126318(void); +static void sub_81264FC(void); +static u16 sub_81267C4(u16*); +static u16 sub_8126908(u16*); +static u16 sub_812693C(u16*); +static u16 sub_8126838(u16*); + +extern const u8 gUnknown_085A1F94[][3]; void sub_8124F2C(struct Unk030061A0 *info) { @@ -104,7 +125,7 @@ void sub_8124F2C(struct Unk030061A0 *info) } } -void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. +static void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. { u8 i, j; @@ -127,7 +148,7 @@ void sub_81250B8(u8 a0) // it changes palette someway somehow... .__. } } -void sub_8125170(u8 a0) +static void sub_8125170(u8 a0) { u8 i, j; @@ -149,14 +170,14 @@ void sub_8125170(u8 a0) } } -void sub_8125230(void) +static void sub_8125230(void) { u32 i; for (i = 0; i < 3200; i++) sub_8125954(i); } -void sub_8125250(void) +static void sub_8125250(void) { u8 i, j; @@ -174,7 +195,7 @@ void sub_8125250(void) } } -void sub_81252E8(void) +static void sub_81252E8(void) { u8 i, j; @@ -200,7 +221,7 @@ void sub_81252E8(void) } } -void sub_81253A4(u8 arg0) +static void sub_81253A4(u8 arg0) { u8 i, j; @@ -218,7 +239,7 @@ void sub_81253A4(u8 arg0) } } -void sub_8125448(void) +static void sub_8125448(void) { u8 i, j; @@ -236,7 +257,7 @@ void sub_8125448(void) } } -void sub_81254E0(void) +static void sub_81254E0(void) { u8 i, j; u16 *palette; @@ -270,7 +291,7 @@ void sub_81254E0(void) } } -void sub_8125630(void) +static void sub_8125630(void) { u8 i, j; @@ -288,7 +309,7 @@ void sub_8125630(void) } } -void sub_81256C8(void) +static void sub_81256C8(void) { u8 i, j; u16 *palette; @@ -349,7 +370,7 @@ void sub_81256C8(void) } } -void sub_81257F8(void) +static void sub_81257F8(void) { u8 i, j; @@ -369,7 +390,7 @@ void sub_81257F8(void) } } -void sub_81258A0(void) +static void sub_81258A0(void) { u8 i, j; @@ -389,16 +410,7 @@ void sub_81258A0(void) } } -struct Unk8125954 -{ - u8 unk0; - u8 unk1; - u16 unk2; -}; - -extern const u8 gUnknown_085A1F94[][3]; - -void sub_8125954(u16 arg0) +static void sub_8125954(u16 arg0) { u8 i; u8 r5, r9; @@ -487,7 +499,7 @@ void sub_8125954(u16 arg0) } } -u16 ConvertColorToGrayscale(u16 *color) +static u16 ConvertColorToGrayscale(u16 *color) { s32 clr = *color; s32 r = clr & 0x1F; @@ -499,7 +511,7 @@ u16 ConvertColorToGrayscale(u16 *color) // The dark colors are the colored edges of the Cool painting effect. // Everything else is white. -u16 ConvertCoolColor(u16 *color, u8 personality) +static u16 ConvertCoolColor(u16 *color, u8 personality) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -513,7 +525,7 @@ u16 ConvertCoolColor(u16 *color, u8 personality) // Based on the given value, which comes from the first 8 bits of // the mon's personality value, return a color. -u16 GetCoolColorFromPersonality(u8 personality) +static u16 GetCoolColorFromPersonality(u8 personality) { u16 red = 0; u16 green = 0; @@ -564,7 +576,7 @@ u16 GetCoolColorFromPersonality(u8 personality) return RGB2(red, green, blue); } -u16 ConvertToBlackOrWhite(u16 *color) +static u16 ConvertToBlackOrWhite(u16 *color) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -576,7 +588,7 @@ u16 ConvertToBlackOrWhite(u16 *color) return RGB_WHITE; } -u16 sub_8125C98(u16 *colorA, u16 *colorB) +static u16 sub_8125C98(u16 *colorA, u16 *colorB) { if (*colorA) { @@ -591,7 +603,7 @@ u16 sub_8125C98(u16 *colorA, u16 *colorB) return RGB_BLACK; } -u16 InvertColor(u16 *color) +static u16 InvertColor(u16 *color) { u16 red = *color & 0x1F; u16 green = (*color >> 5) & 0x1F; @@ -604,7 +616,7 @@ u16 InvertColor(u16 *color) return RGB2(red, green, blue); } -u16 sub_8125CF4(u16 *a0, u16 *a1) +static u16 sub_8125CF4(u16 *a0, u16 *a1) { u16 sp0[2][3]; u16 spC[3]; @@ -660,7 +672,7 @@ u16 sub_8125CF4(u16 *a0, u16 *a1) return RGB2(r, g, b); } -u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) +static u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) { u16 red, green, blue; u16 avg0, avg1, avg2; @@ -704,7 +716,7 @@ u16 sub_8125E18(u16 * a0, u16 * a1, u16 * a2) return RGB2(red, green, blue); } -u16 sub_8125F38(u16 *a0, u16 *a1, u16 *a2) +static u16 sub_8125F38(u16 *a0, u16 *a1, u16 *a2) { u16 red, green, blue; u16 avg0, avg1, avg2; @@ -772,3 +784,582 @@ void sub_8126058(struct Unk030061A0 *arg0) } } */ + +NAKED +void sub_8126058(struct Unk030061A0 *arg0) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0xC\n\ + ldrb r1, [r0, 0x1D]\n\ + lsrs r5, r1, 3\n\ + ldrb r1, [r0, 0x1E]\n\ + lsrs r1, 3\n\ + str r1, [sp, 0x8]\n\ + ldr r1, [r0, 0x4]\n\ + str r1, [sp]\n\ + ldr r2, [r0, 0x10]\n\ + str r2, [sp, 0x4]\n\ + ldrh r0, [r0, 0x16]\n\ + cmp r0, 0x2\n\ + bne _08126108\n\ + movs r1, 0\n\ + ldr r0, [sp, 0x8]\n\ + cmp r1, r0\n\ + bcc _08126086\n\ + b _08126194\n\ +_08126086:\n\ + movs r0, 0\n\ + adds r2, r1, 0x1\n\ + mov r10, r2\n\ + cmp r0, r5\n\ + bcs _081260FA\n\ + adds r2, r1, 0\n\ + muls r2, r5\n\ + mov r9, r2\n\ + lsls r1, 3\n\ + mov r8, r1\n\ +_0812609A:\n\ + movs r4, 0\n\ + lsls r6, r0, 4\n\ + adds r7, r0, 0x1\n\ + add r0, r9\n\ + lsls r0, 6\n\ + ldr r1, [sp, 0x4]\n\ + adds r1, r0\n\ + mov r12, r1\n\ +_081260AA:\n\ + lsls r0, r4, 3\n\ + mov r2, r12\n\ + adds r3, r2, r0\n\ + mov r1, r8\n\ + adds r0, r1, r4\n\ + lsls r0, 3\n\ + muls r0, r5\n\ + lsls r0, 1\n\ + ldr r2, [sp]\n\ + adds r0, r2, r0\n\ + adds r2, r0, r6\n\ + ldrh r0, [r2, 0x2]\n\ + lsls r0, 8\n\ + ldrh r1, [r2]\n\ + orrs r0, r1\n\ + strh r0, [r3]\n\ + ldrh r0, [r2, 0x6]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0x4]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x2]\n\ + ldrh r0, [r2, 0xA]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0x8]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x4]\n\ + ldrh r0, [r2, 0xE]\n\ + lsls r0, 8\n\ + ldrh r1, [r2, 0xC]\n\ + orrs r0, r1\n\ + strh r0, [r3, 0x6]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x7\n\ + bls _081260AA\n\ + lsls r0, r7, 16\n\ + lsrs r0, 16\n\ + cmp r0, r5\n\ + bcc _0812609A\n\ +_081260FA:\n\ + mov r1, r10\n\ + lsls r0, r1, 16\n\ + lsrs r1, r0, 16\n\ + ldr r2, [sp, 0x8]\n\ + cmp r1, r2\n\ + bcc _08126086\n\ + b _08126194\n\ +_08126108:\n\ + movs r1, 0\n\ + ldr r0, [sp, 0x8]\n\ + cmp r1, r0\n\ + bcs _08126194\n\ +_08126110:\n\ + movs r0, 0\n\ + adds r2, r1, 0x1\n\ + mov r10, r2\n\ + cmp r0, r5\n\ + bcs _08126188\n\ + adds r2, r1, 0\n\ + muls r2, r5\n\ + mov r9, r2\n\ + lsls r1, 3\n\ + mov r8, r1\n\ +_08126124:\n\ + movs r4, 0\n\ + lsls r6, r0, 4\n\ + adds r7, r0, 0x1\n\ + add r0, r9\n\ + lsls r0, 5\n\ + ldr r1, [sp, 0x4]\n\ + adds r1, r0\n\ + mov r12, r1\n\ +_08126134:\n\ + lsls r0, r4, 2\n\ + mov r2, r12\n\ + adds r3, r2, r0\n\ + mov r1, r8\n\ + adds r0, r1, r4\n\ + lsls r0, 3\n\ + muls r0, r5\n\ + lsls r0, 1\n\ + ldr r2, [sp]\n\ + adds r0, r2, r0\n\ + adds r2, r0, r6\n\ + ldrh r1, [r2, 0x2]\n\ + lsls r1, 4\n\ + ldrh r0, [r2]\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0x4]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0x6]\n\ + lsls r0, 12\n\ + orrs r1, r0\n\ + strh r1, [r3]\n\ + ldrh r1, [r2, 0xA]\n\ + lsls r1, 4\n\ + ldrh r0, [r2, 0x8]\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0xC]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrh r0, [r2, 0xE]\n\ + lsls r0, 12\n\ + orrs r1, r0\n\ + strh r1, [r3, 0x2]\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x7\n\ + bls _08126134\n\ + lsls r0, r7, 16\n\ + lsrs r0, 16\n\ + cmp r0, r5\n\ + bcc _08126124\n\ +_08126188:\n\ + mov r1, r10\n\ + lsls r0, r1, 16\n\ + lsrs r1, r0, 16\n\ + ldr r2, [sp, 0x8]\n\ + cmp r1, r2\n\ + bcc _08126110\n\ +_08126194:\n\ + add sp, 0xC\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0"); +} + +void sub_81261A4(struct Unk030061A0 *arg0) +{ + gUnknown_03006188 = arg0->var_18 * 16; + gUnknown_03006184 = &arg0->var_8[gUnknown_03006188]; + gUnknown_03006168 = arg0->var_4; + gUnknown_03006164 = arg0->var_19; + gUnknown_03006178 = arg0->var_1A; + gUnknown_03006174 = arg0->var_1B; + gUnknown_0300616C = arg0->var_1C; + gUnknown_03006180 = arg0->var_1D; + gUnknown_03006170 = arg0->var_1E; + + switch (arg0->var_14) + { + case 0: + sub_81263A4(FALSE); + break; + case 1: + sub_81263A4(TRUE); + break; + case 2: + sub_8126270(); + sub_8126714(); + break; + case 3: + sub_8126370(); + sub_8126664(); + break; + case 4: + sub_8126334(); + sub_81265B4(); + break; + case 5: + sub_8126318(); + sub_81264FC(); + break; + } +} + +static void sub_8126270(void) +{ + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(6, 6, 6); + gUnknown_03006184[2] = RGB2(29, 29, 29); + gUnknown_03006184[3] = RGB2(11, 11, 11); + gUnknown_03006184[4] = RGB2(29, 6, 6); + gUnknown_03006184[5] = RGB2(6, 29, 6); + gUnknown_03006184[6] = RGB2(6, 6, 29); + gUnknown_03006184[7] = RGB2(29, 29, 6); + gUnknown_03006184[8] = RGB2(29, 6, 29); + gUnknown_03006184[9] = RGB2(6, 29, 29); + gUnknown_03006184[10] = RGB2(29, 11, 6); + gUnknown_03006184[11] = RGB2(11, 29, 6); + gUnknown_03006184[12] = RGB2(6, 11, 29); + gUnknown_03006184[13] = RGB2(29, 6, 11); + gUnknown_03006184[14] = RGB2(6, 29, 11); + gUnknown_03006184[15] = RGB2(11, 6, 29); +} + +static void sub_8126318(void) +{ + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(0, 0, 0); + gUnknown_03006184[2] = RGB2(31, 31, 31); +} + +static void sub_8126334(void) +{ + u8 i; + + gUnknown_03006184[0] = RGB2(0, 0, 0); + gUnknown_03006184[1] = RGB2(0, 0, 0); + for (i = 0; i < 14; i++) + gUnknown_03006184[i + 2] = RGB2(2 * (i + 2), 2 * (i + 2), 2 * (i + 2)); +} + +static void sub_8126370(void) +{ + u8 i; + + gUnknown_03006184[0] = RGB2(0, 0, 0); + for (i = 0; i < 32; i++) + gUnknown_03006184[i + 1] = RGB2(i, i, i); +} + +static void sub_81263A4(bool8 arg0) +{ + u8 i, j; + u16 maxIndex; + + maxIndex = 0xDF; + if (!arg0) + maxIndex = 0xFF; + + for (j = 0; j < maxIndex; j++) + gUnknown_03006184[j] = 0; + + gUnknown_03006184[maxIndex] = RGB2(15, 15, 15); + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + { + *pal = gUnknown_03006188; + } + else + { + u16 color = sub_81267C4(pal); + u8 curIndex = 1; + if (curIndex < maxIndex) + { + if (gUnknown_03006184[curIndex] == RGB_BLACK) + { + gUnknown_03006184[curIndex] = color; + *pal = gUnknown_03006188 + curIndex; + } + else + { + while (curIndex < maxIndex) + { + if (gUnknown_03006184[curIndex] == RGB_BLACK) + { + gUnknown_03006184[curIndex] = color; + *pal = gUnknown_03006188 + curIndex; + break; + } + + if (gUnknown_03006184[curIndex] == color) + { + *pal = gUnknown_03006188 + curIndex; + break; + } + + curIndex++; + } + } + } + + if (curIndex == maxIndex) + { + curIndex = maxIndex; + *pal = curIndex; + } + } + } + } +} + +static void sub_81264FC(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + { + *pal = gUnknown_03006188; + } + else + { + if (ConvertToBlackOrWhite(pal) == RGB_BLACK) + *pal = gUnknown_03006188 + 1; + else + *pal = gUnknown_03006188 + 2; + } + } + } +} + +static void sub_81265B4(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_8126908(pal) + gUnknown_03006188; + } + } +} + +static void sub_8126664(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_812693C(pal) + gUnknown_03006188; + } + } +} + +static void sub_8126714(void) +{ + u8 i, j; + + for (i = 0; i < gUnknown_0300616C; i++) + { + u16* var2 = &(*gUnknown_03006168)[0][(gUnknown_03006178 + i) * gUnknown_03006180]; + u16* pal = &var2[gUnknown_03006164]; + for (j = 0; j < gUnknown_03006174; j++, pal++) + { + if (*pal & 0x8000) + *pal = gUnknown_03006188; + else + *pal = sub_8126838(pal) + gUnknown_03006188; + } + } +} + +static u16 sub_81267C4(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + + if (red & 3) + red = (red & 0x1C) + 4; + if (green & 3) + green = (green & 0x1C) + 4; + if (blue & 3) + blue = (blue & 0x1C) + 4; + + if (red < 6) + red = 6; + if (red > 30) + red = 30; + + if (green < 6) + green = 6; + if (green > 30) + green = 30; + + if (blue < 6) + blue = 6; + if (blue > 30) + blue = 30; + + return RGB2(red, green, blue); +} + +static u16 sub_8126838(u16* color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + + if (red < 12 && green < 11 && blue < 11) + return 1; + + if (red > 19 && green > 19 && blue > 19) + return 2; + + if (red > 19) + { + if (green > 19) + { + if (blue > 14) + return 2; + else + return 7; + } + else if (blue > 19) + { + if (green > 14) + return 2; + else + return 8; + } + } + + if (green > 19 && blue > 19) + { + if (red > 14) + return 2; + else + return 9; + } + + if (red > 19) + { + if (green > 11) + { + if (blue > 11) + { + if (green < blue) + return 8; + else + return 7; + } + else + { + return 10; + } + } + else if (blue > 11) + { + return 13; + } + else + { + return 4; + } + } + + if (green > 19) + { + if (red > 11) + { + if (blue > 11) + { + if (red < blue) + return 9; + else + return 7; + } + else + { + return 11; + } + } + else + { + if (blue > 11) + return 14; + else + return 5; + } + } + + if (blue > 19) + { + if (red > 11) + { + if (green > 11) + { + if (red < green) + return 9; + else + return 8; + } + } + else if (green > 11) + { + return 12; + } + + if (blue > 11) + return 15; + else + return 6; + } + + return 3; +} + +static u16 sub_8126908(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + u16 average = ((red + green + blue) / 3) & 0x1E; + if (average == 0) + return 1; + else + return average / 2; +} + +static u16 sub_812693C(u16 *color) +{ + u16 red = *color & 0x1F; + u16 green = (*color >> 5) & 0x1F; + u16 blue = (*color >> 10) & 0x1F; + u16 average = (red + green + blue) / 3; + return average + 1; +} -- cgit v1.2.3 From 7118462b9f58e4b9756c41fe1d464be70e9ac2b4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 21 Mar 2019 18:15:47 -0500 Subject: Decompile ereader.c up to faraway island code --- src/ereader.c | 564 ++++++++++++++++++++++++++++++++++++++++++++ src/event_object_movement.c | 2 +- src/trainer_hill.c | 3 +- 3 files changed, 566 insertions(+), 3 deletions(-) create mode 100755 src/ereader.c (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c new file mode 100755 index 000000000..053f82381 --- /dev/null +++ b/src/ereader.c @@ -0,0 +1,564 @@ +#include "global.h" +#include "alloc.h" +#include "event_object_movement.h" +#include "link.h" +#include "save.h" +#include "util.h" + +struct Unk81D38FC +{ + u8 unk0[0x270]; + int checksum; +}; + +struct Unknown030012C8 +{ + u8 unk0[8]; + u32 *unk8; + int unkC; + int unk10; + int unk14; +}; + +void sub_81D41A0(void); +static void sub_81D4170(void); +int sub_81D3D70(u8, u32, u32*, u32*); +void sub_81D41F4(void); +static u16 sub_81D3EE8(u8); +static void sub_81D413C(void); +static void sub_81D414C(void); +static void sub_81D3F1C(u32, u32*, u32*); +static void sub_81D3F68(void); + +extern struct Unknown030012C8 gUnknown_030012C8; +extern u16 gUnknown_030012E0; +extern u16 gUnknown_030012E2; +extern u16 gUnknown_030012E4; +extern u16 gUnknown_030012E6; +extern u32 gUnknown_030012E8; +extern u16 gUnknown_030012EC; +extern u16 gUnknown_030012EE; +extern u16 gUnknown_030012F0; +extern u16 gUnknown_030012F2; +extern u16 gUnknown_030012F4; + +extern const u8 gUnknown_08625B6C[]; + +static u8 sub_81D38D4(void) +{ + return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; +} + +static bool32 sub_81D38FC(struct Unk81D38FC *arg0) +{ + int checksum = CalcByteArraySum(arg0->unk0, 0x270); + if (checksum != arg0->checksum) + return FALSE; + + return TRUE; +} + +bool8 sub_81D3920(u8 *buffer) +{ + u32 i; + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + for (i = 0; i < var0; i++) + { + struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); + if (!sub_81D38FC(var1)) + return FALSE; + } + + checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D396C(u8 *buffer) +{ + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + checksum = CalcByteArraySum(buffer + 8, 0xEE0); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) +{ + int i; + const u8 *ereaderVals; + + memset(buffer2, 0, 0x1000); + buffer2[0] = arg0->unk0[0]; + buffer2[1] = sub_81D38D4(); + buffer2[2] = (arg0->unk0[0] + 1) / 2; + + for (i = 0; i < arg0->unk0[0]; i++) + { + if (!(i & 1)) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[8] = var1[8]; + memcpy(&var0[0x29C], &var1[0x154], 0x124); + var0 += 0xC; + var1 += 0xC; + memcpy(var0, var1, 0x148); + } + else + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[9] = var1[8]; + memcpy(&var0[0x154], &var1[0xC], 0x148); + } + } + + if (i & 1) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + var0 += 0x154; + + ereaderVals = gUnknown_08625B6C; + memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); + } + + ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); + if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) + return FALSE; + + return TRUE; +} + +bool32 sub_81D3AB0(struct Unk81D38FC *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3998(arg0, var0); + Free(var0); + return result; +} + +static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) +{ + if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + return FALSE; + + memcpy(arg0, arg1, 0xEE8); + if (!sub_81D396C(arg0)) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3B0C(u8 *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3AD8(arg0, var0); + Free(var0); + return result; +} + +bool32 sub_81D3B34(void) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3B0C(var0); + Free(var0); + return result; +} + +static int unref_sub_81D3B54(int arg0, u32 *arg1) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(1, arg0, arg1, NULL); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static int unref_sub_81D3BE8(u32 *arg0) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(0, 0, NULL, arg0); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static void sub_81D3C7C(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_SIOCNT = 0; + REG_TM3CNT_H = 0; + REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; +} + +static void sub_81D3CBC(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; + REG_IME = 0; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + + if (!gUnknown_030012C8.unk0[1]) + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +static void sub_81D3D34(void) +{ + REG_RCNT = 0; + REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; + REG_SIOCNT |= SIO_MULTI_SD; + gShouldAdvanceLinkState = 0; + gUnknown_030012E6 = 0; + gUnknown_030012E8 = 0; +} + +int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) +{ + switch (gUnknown_030012C8.unk0[1]) + { + case 0: + sub_81D3CBC(); + gUnknown_030012C8.unk0[2] = 1; + gUnknown_030012C8.unk0[1] = 1; + break; + case 1: + if (sub_81D3EE8(arg0)) + sub_81D413C(); + + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 2: + sub_81D3D34(); + sub_81D3F1C(arg1, arg2, arg3); + gUnknown_030012C8.unk0[1] = 3; + // fall through + case 3: + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + else + { + gUnknown_030012E6++; + gUnknown_030012E8++; + if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + + if (gUnknown_030012C8.unk0[2] != 2) + { + if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + else + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + } + } + break; + case 4: + sub_81D3CBC(); + gUnknown_030012C8.unk0[1] = 5; + break; + case 5: + if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) + sub_81D413C(); + + if (++gUnknown_030012E6 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 6: + if (gUnknown_030012C8.unk0[2]) + { + sub_81D3C7C(); + gUnknown_030012C8.unk0[2] = 0; + } + break; + } + + return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); +} + +static u16 sub_81D3EE8(u8 arg0) +{ + u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); + if (terminal == SIO_MULTI_SD && arg0) + { + gUnknown_030012C8.unk0[0] = 1; + return 1; + } + else + { + gUnknown_030012C8.unk0[0] = 0; + return 0; + } +} + +static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) +{ + if (gUnknown_030012C8.unk0[0]) + { + REG_SIOCNT |= SIO_38400_BPS; + gUnknown_030012C8.unk8 = arg1; + REG_SIODATA32 = arg0; + gUnknown_030012C8.unk10 = arg0 / 4 + 1; + sub_81D3F68(); + } + else + { + REG_SIOCNT = REG_SIOCNT; + gUnknown_030012C8.unk8 = arg2; + } +} + +static void sub_81D3F68(void) +{ + REG_TM3CNT_L = 0xFDA7; + REG_TM3CNT_H = TIMER_INTR_ENABLE; + REG_IME = 0; + REG_IE |= INTR_FLAG_TIMER3; + REG_IME = 1; +} + +void sub_81D3F9C(void) +{ + sub_81D414C(); + sub_81D413C(); +} + +void sub_81D3FAC(void) +{ + u16 i, playerCount, k; + u32 value; + u16 var0; + u16 recvBuffer[4]; + + switch (gUnknown_030012C8.unk0[1]) + { + case 1: + REG_SIOMLT_SEND = 0xCCD0; // Handshake id + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + for (i = 0, playerCount = 0, k = 0; i < 4; i++) + { + if (recvBuffer[i] == 0xCCD0) + playerCount++; + else if (recvBuffer[i] != 0xFFFF) + k++; + } + + if (playerCount == 2 && k == 0) + gUnknown_030012C8.unk0[1] = 2; + break; + case 3: + value = REG_SIODATA32; + if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) + gUnknown_030012C8.unk10 = value / 4 + 1; + + if (gUnknown_030012C8.unk0[0] == 1) + { + if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) + { + REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + } + else + { + REG_SIODATA32 = gUnknown_030012C8.unk14; + } + } + else + { + if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) + { + gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; + gUnknown_030012C8.unk14 += value; + } + else if (gUnknown_030012C8.unkC) + { + if (gUnknown_030012C8.unk14 == value) + gUnknown_030012C8.unk0[3] = 1; + else + gUnknown_030012C8.unk0[3] = 2; + } + + gUnknown_030012E8 = 0; + } + + if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) + { + if (gUnknown_030012C8.unk0[0]) + REG_TM3CNT_H |= TIMER_ENABLE; + else + sub_81D413C(); + } + else + { + gUnknown_030012C8.unk0[1] = 4; + gUnknown_030012E6 = 0; + } + break; + case 5: + if (!gUnknown_030012C8.unk0[0]) + REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; + + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + var0 = recvBuffer[1] - 1; + if (var0 < 2) + { + if (gUnknown_030012C8.unk0[0] == 1) + gUnknown_030012C8.unk0[3] = recvBuffer[1]; + + gUnknown_030012C8.unk0[1] = 6; + } + break; + } +} + +static void sub_81D413C(void) +{ + REG_SIOCNT |= SIO_ENABLE; +} + +static void sub_81D414C(void) +{ + REG_TM3CNT_H &= ~TIMER_ENABLE; + REG_TM3CNT_L = 0xFDA7; +} + +static void sub_81D4170(void) +{ + int keysMask = REG_KEYINPUT ^ KEYS_MASK; + gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; + gUnknown_030012E0 = keysMask; +} + +void sub_81D41A0(void) +{ + gUnknown_030012EC = REG_IME; + gUnknown_030012EE = REG_IE; + gUnknown_030012F0 = REG_TM3CNT_H; + gUnknown_030012F2 = REG_SIOCNT; + gUnknown_030012F4 = REG_RCNT; +} + +void sub_81D41F4(void) +{ + REG_IME = gUnknown_030012EC; + REG_IE = gUnknown_030012EE; + REG_TM3CNT_H = gUnknown_030012F0; + REG_SIOCNT = gUnknown_030012F2; + REG_RCNT = gUnknown_030012F4; +} + +void sub_81D4238(void) +{ + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +u8 sub_81D4258(void) +{ + u8 eventObjectId; + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + return eventObjectId; +} diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ba62db10d..8ebdd883f 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -3,6 +3,7 @@ #include "battle_pyramid.h" #include "berry.h" #include "decoration.h" +#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" @@ -15,7 +16,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" -#include "pokenav.h" #include "random.h" #include "sprite.h" #include "task.h" diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 43b29e26e..7bb1b997a 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -3,6 +3,7 @@ #include "battle.h" #include "battle_tower.h" #include "battle_setup.h" +#include "ereader.h" #include "event_data.h" #include "event_scripts.h" #include "fieldmap.h" @@ -32,8 +33,6 @@ #include "constants/easy_chat.h" #include "constants/trainer_hill.h" -extern bool32 sub_81D3B34(void); - #define HILL_TAG_NORMAL 0 #define HILL_TAG_VARIETY 1 #define HILL_TAG_UNIQUE 2 -- cgit v1.2.3 From f4f666f5af6586203692427860a474fe020abd42 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Mar 2019 13:36:06 -0500 Subject: Finish decompiling ereader.c --- src/ereader.c | 881 +++++++++++++++++++++++++++++++++++++++++++++ src/field_control_avatar.c | 4 +- src/fldeff_cut.c | 3 +- 3 files changed, 884 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c index 053f82381..9941994ed 100755 --- a/src/ereader.c +++ b/src/ereader.c @@ -1,9 +1,26 @@ #include "global.h" #include "alloc.h" +#include "decompress.h" +#include "event_data.h" #include "event_object_movement.h" +#include "field_weather.h" +#include "fieldmap.h" #include "link.h" +#include "main.h" +#include "metatile_behavior.h" +#include "rom_8011DC0.h" #include "save.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "strings.h" #include "util.h" +#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/maps.h" +#include "constants/metatile_behaviors.h" +#include "constants/songs.h" +#include "constants/vars.h" struct Unk81D38FC { @@ -20,6 +37,29 @@ struct Unknown030012C8 int unk14; }; +struct Unk03006370 +{ + u16 unk0; + u32 unk4; + u32 *unk8; +}; + +struct Unk81D5014 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 *unk10; +}; + void sub_81D41A0(void); static void sub_81D4170(void); int sub_81D3D70(u8, u32, u32*, u32*); @@ -29,6 +69,14 @@ static void sub_81D413C(void); static void sub_81D414C(void); static void sub_81D3F1C(u32, u32*, u32*); static void sub_81D3F68(void); +bool8 sub_81D4834(s16, s16); +static bool8 sub_81D4C14(struct EventObject*, u8); +static u8 sub_81D4C9C(struct EventObject*, u8); +static u8 sub_81D4C58(struct EventObject*, u8); +static u8 sub_81D4CE0(struct EventObject*, u8); +static u8 sub_81D4D24(u8); +static u8 sub_81D4890(u8); +void sub_81D5084(u8); extern struct Unknown030012C8 gUnknown_030012C8; extern u16 gUnknown_030012E0; @@ -41,8 +89,19 @@ extern u16 gUnknown_030012EE; extern u16 gUnknown_030012F0; extern u16 gUnknown_030012F2; extern u16 gUnknown_030012F4; +extern s16 gUnknown_030012F8; +extern s16 gUnknown_030012FA; +extern u8 gUnknown_030012FC[4]; +extern u8 gUnknown_0203CF50; +extern struct Unk03006370 gUnknown_03006370; extern const u8 gUnknown_08625B6C[]; +extern const u8 gUnknown_089A3470[]; +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; +extern const s16 gFarawayIslandRockCoords[4][2]; + +extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; static u8 sub_81D38D4(void) { @@ -562,3 +621,825 @@ u8 sub_81D4258(void) TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); return eventObjectId; } + +u32 sub_81D427C(void) +{ + u8 i; + int skip; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; + gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x + && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) + { + return DIR_NONE; + } + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) + mew->invisible = 0; + else + mew->invisible = 1; + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) + return DIR_NONE; + + for (i = 0; i < ARRAY_COUNT(gFarawayIslandRockCoords); i++) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gFarawayIslandRockCoords[i][0]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < gFarawayIslandRockCoords[i][1]) + { + if (mew->currentCoords.y <= gFarawayIslandRockCoords[i][1]) + skip = 1; + } + else + { + if (mew->currentCoords.y >= gFarawayIslandRockCoords[i][1]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012F8 > 0) + { + if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + else if (gUnknown_030012F8 < 0) + { + if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + } + + if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (gUnknown_030012FA > 0) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + else + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + } + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gFarawayIslandRockCoords[i][1]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < gFarawayIslandRockCoords[i][0]) + { + if (mew->currentCoords.x <= gFarawayIslandRockCoords[i][0]) + skip = 1; + } + else + { + if (mew->currentCoords.x >= gFarawayIslandRockCoords[i][0]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012FA > 0) + { + if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + else if (gUnknown_030012FA < 0) + { + if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + } + + if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (gUnknown_030012F8 > 0) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + else + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + } + } + } + + if (sub_81D4C14(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_NORTH; + } + + if (sub_81D4C9C(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_SOUTH; + } + + if (sub_81D4C58(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_EAST; + } + + if (sub_81D4CE0(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_WEST; + } + + if (gUnknown_030012FA == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (gUnknown_030012F8 == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + return sub_81D4890(DIR_NONE); +} + +bool8 sub_81D4834(s16 x, s16 y) +{ + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x + && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) + { + return FALSE; + } + + return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); +} + +static u8 sub_81D4890(u8 ignoredDir) +{ + u8 i; + u8 count = 0; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + { + gUnknown_030012FC[count] = DIR_NORTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + { + gUnknown_030012FC[count] = DIR_EAST; + count++; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + { + gUnknown_030012FC[count] = DIR_SOUTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + { + gUnknown_030012FC[count] = DIR_WEST; + count++; + } + + if (count > 1) + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; + else + return gUnknown_030012FC[0]; +} + +void UpdateFarawayIslandStepCounter(void) +{ + u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + steps++; + if (steps >= 9999) + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); + else + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); + } +} + +bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) + return TRUE; + } + + return FALSE; +} + +bool8 IsMewPlayingHideAndSeek(void) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) + return TRUE; + } + + return FALSE; +} + +bool8 sub_81D4A58(struct EventObject *eventObject) +{ + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF + && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) + return TRUE; + + return FALSE; +} + +void sub_81D4A90(void) +{ + s16 x; + s16 y; + u8 spriteId; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + mew->invisible = 0; + if (gSpecialVar_0x8004 == 1) + { + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + gSprites[mew->spriteId].subpriority = 1; + } + else + { + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + if (gSpecialVar_Facing != DIR_NORTH) + gSprites[mew->spriteId].subpriority = 1; + + LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + + x = mew->currentCoords.x; + y = mew->currentCoords.y; + sub_80930E0(&x, &y, 8, 8); + gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (gUnknown_0203CF50 != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; + sprite->coordOffsetEnabled = 1; + sprite->oam.priority = 2; + sprite->callback = SpriteCallbackDummy; + } + } +} + +void sub_81D4BEC(void) +{ + if (gUnknown_0203CF50 != MAX_SPRITES) + DestroySprite(&gSprites[gUnknown_0203CF50]); +} + +static bool8 sub_81D4C14(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + { + gUnknown_030012FC[index] = DIR_NORTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C58(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_EAST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C9C(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + { + gUnknown_030012FC[index] = DIR_SOUTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4CE0(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_WEST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4D24(u8 mod) +{ + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; +} + +void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + gIntrTable[1] = sub_81D3FAC; + gIntrTable[2] = sub_81D3F9C; + sub_81D41A0(); + sub_81D4238(); + REG_IE |= INTR_FLAG_VCOUNT; + REG_IME = backupIME; + arg0->unk0 = 0; + arg0->unk4 = arg1; + arg0->unk8 = arg2; +} + +void sub_81D4DB8(struct Unk03006370 *arg0) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + sub_81D4238(); + sub_81D41F4(); + RestoreSerialTimer3IntrHandlers(); + REG_IME = backupIME; +} + +u8 sub_81D4DE8(struct Unk03006370 *arg0) +{ + u8 var0 = 0; + arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); + if ((arg0->unk0 & 0x13) == 0x10) + var0 = 1; + + if (arg0->unk0 & 0x8) + var0 = 2; + + if (arg0->unk0 & 0x4) + var0 = 3; + + gShouldAdvanceLinkState = 0; + return var0; +} + +void sub_81D4E30(void) +{ + memset(gDecompressionBuffer, 0, 0x2000); + gLinkType = 0x5503; + OpenLink(); + SetSuppressLinkErrorMessage(TRUE); +} + +bool32 sub_81D4E60(void) +{ + volatile u16 backupIME; + u16 sp4[4]; + + backupIME = REG_IME; + REG_IME = 0; + *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; + REG_IME = backupIME; + if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 + && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) + { + return TRUE; + } + + return FALSE; +} + +bool32 sub_81D4EC0(void) +{ + if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) + return TRUE; + + return FALSE; +} + +u32 sub_81D4EE4(u8 *arg0, u16 *arg1) +{ + u8 var0; + + var0 = *arg0 - 3; + if (var0 < 3 && HasLinkErrorOccurred()) + { + *arg0 = 0; + return 3; + } + + switch (*arg0) + { + case 0: + if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) + { + *arg0 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 1: + if (++(*arg1) > 5) + { + *arg1 = 0; + *arg0 = 2; + } + break; + case 2: + if (GetLinkPlayerCount_2() == 2) + { + PlaySE(SE_PINPON); + CheckShouldAdvanceLinkState(); + *arg1 = 0; + *arg0 = 3; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 3: + if (++(*arg1) > 30) + { + *arg0 = 0; + return 5; + } + + if (IsLinkConnectionEstablished()) + { + if (gReceivedRemoteLinkPlayers) + { + if (IsLinkPlayerDataExchangeComplete()) + { + *arg0 = 0; + return 2; + } + else + { + *arg0 = 4; + } + } + else + { + *arg0 = 3; + } + } + break; + case 4: + sub_800ABF4(0); + *arg0 = 5; + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + *arg0 = 0; + return 4; + } + break; + default: + return 0; + } + + return 0; +} + +void sub_81D5014(void) +{ + int value; + struct Unk81D5014 *data; + u8 taskId = CreateTask(sub_81D5084, 0); + data = (struct Unk81D5014 *)gTasks[taskId].data; + data->unk8 = 0; + data->unk9 = 0; + data->unkA = 0; + data->unkB = 0; + data->unkC = 0; + data->unkD = 0; + data->unk0 = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->unkE = 0; + data->unk10 = AllocZeroed(0x40); +} + +void sub_81D505C(u16 *arg0) +{ + *arg0 = 0; +} + +bool32 sub_81D5064(u16 *arg0, u16 arg1) +{ + if (++(*arg0) > arg1) + { + *arg0 = 0; + return TRUE; + } + + return FALSE; +} + +void sub_81D5084(u8 taskId) +{ + struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; + switch (data->unk8) + { + case 0: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) + data->unk8 = 1; + break; + case 1: + sub_81D4E30(); + sub_81D505C(&data->unk0); + data->unk8 = 2; + break; + case 2: + if (sub_81D5064(&data->unk0, 10)) + data->unk8 = 3; + break; + case 3: + if (!sub_81D4EC0()) + { + CloseLink(); + data->unk8 = 4; + } + else + { + data->unk8 = 13; + } + break; + case 4: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) + { + sub_8018884(gUnknown_085EE014); + sub_81D505C(&data->unk0); + data->unk8 = 5; + } + break; + case 5: + if (sub_81D5064(&data->unk0, 90)) + { + sub_81D4E30(); + data->unk8 = 6; + } + else if (gMain.newKeys & B_BUTTON) + { + sub_81D505C(&data->unk0); + PlaySE(SE_SELECT); + data->unk8 = 23; + } + break; + case 6: + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 23; + } + else if (GetLinkPlayerCount_2() > 1) + { + sub_81D505C(&data->unk0); + CloseLink(); + data->unk8 = 7; + } + else if (sub_81D4E60()) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 8; + } + else if (sub_81D5064(&data->unk0, 10)) + { + CloseLink(); + sub_81D4E30(); + sub_81D505C(&data->unk0); + } + break; + case 7: + if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) + data->unk8 = 4; + break; + case 8: + sub_8018884(gUnknown_085EE097); + // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 + sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); + data->unk8 = 9; + break; + case 9: + data->unkE = sub_81D4DE8(&gUnknown_03006370); + if (data->unkE) + data->unk8 = 10; + break; + case 10: + sub_81D4DB8(&gUnknown_03006370); + if (data->unkE == 3) + { + data->unk8 = 20; + } + else if (data->unkE == 1) + { + sub_81D505C(&data->unk0); + sub_8018884(gUnknown_085EE120); + data->unk8 = 11; + } + else + { + data->unk8 = 0; + } + break; + case 11: + if (sub_81D5064(&data->unk0, 840)) + data->unk8 = 12; + break; + case 12: + sub_81D4E30(); + sub_8018884(gUnknown_085EE0DC); + data->unk8 = 13; + break; + case 13: + switch (sub_81D4EE4(&data->unk9, &data->unk0)) + { + case 0: + break; + case 2: + sub_8018884(gUnknown_085EE097); + data->unk8 = 14; + break; + case 1: + PlaySE(SE_SELECT); + CloseLink(); + data->unk8 = 23; + break; + case 5: + CloseLink(); + data->unk8 = 21; + break; + case 3: + case 4: + CloseLink(); + data->unk8 = 20; + break; + } + break; + case 14: + if (HasLinkErrorOccurred()) + { + CloseLink(); + data->unk8 = 20; + } + else if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + data->unk8 = 15; + } + break; + case 15: + data->unkE = sub_81D3920(gDecompressionBuffer); + sub_800ABF4(data->unkE); + data->unk8 = 16; + break; + case 16: + if (!gReceivedRemoteLinkPlayers) + { + if (data->unkE == 1) + data->unk8 = 17; + else + data->unk8 = 20; + } + break; + case 17: + if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) + { + sub_8018884(gUnknown_085EE0FA); + sub_81D505C(&data->unk0); + data->unk8 = 18; + } + else + { + data->unk8 = 22; + } + break; + case 18: + if (sub_81D5064(&data->unk0, 120)) + { + sub_8018884(gUnknown_085EE107); + PlayFanfare(MUS_FANFA4); + data->unk8 = 19; + } + break; + case 19: + if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) + data->unk8 = 26; + break; + case 23: + if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) + data->unk8 = 26; + break; + case 20: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) + data->unk8 = 0; + break; + case 21: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) + data->unk8 = 0; + break; + case 22: + if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) + data->unk8 = 0; + break; + case 26: + Free(data->unk10); + DestroyTask(taskId); + SetMainCallback2(sub_80186A4); + break; + } +} diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 680191bb3..b28052ee2 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -3,6 +3,7 @@ #include "bike.h" #include "coord_event_weather.h" #include "daycare.h" +#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" @@ -18,7 +19,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "pokemon.h" -#include "pokenav.h" #include "safari_zone.h" #include "script.h" #include "secret_base.h" @@ -541,7 +541,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) IncrementRematchStepCounter(); UpdateHappinessStepCounter(); - sub_81D4998(); + UpdateFarawayIslandStepCounter(); if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index b1f4a6368..f1a65cf8c 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ereader.h" #include "event_obj_lock.h" #include "event_object_movement.h" #include "field_camera.h" @@ -20,8 +21,6 @@ #include "constants/field_effects.h" #include "constants/songs.h" -extern bool8 IsMewPlayingHideAndSeek(void); - extern struct MapPosition gPlayerFacingPosition; extern const u8 Route103_EventScript_290705[]; -- cgit v1.2.3 From a7d5f032b17bf95d879a856d801731a7ae7f5b9b Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 22 Mar 2019 14:16:26 -0500 Subject: Split into ereader_helpers.c, faraway_island.c, and ereader_screen.c --- src/ereader.c | 1445 ------------------------------------------- src/ereader_helpers.c | 553 +++++++++++++++++ src/ereader_screen.c | 464 ++++++++++++++ src/event_object_movement.c | 2 +- src/faraway_island.c | 445 +++++++++++++ src/field_control_avatar.c | 2 +- src/fldeff_cut.c | 2 +- src/trainer_hill.c | 2 +- 8 files changed, 1466 insertions(+), 1449 deletions(-) delete mode 100755 src/ereader.c create mode 100755 src/ereader_helpers.c create mode 100755 src/ereader_screen.c create mode 100755 src/faraway_island.c (limited to 'src') diff --git a/src/ereader.c b/src/ereader.c deleted file mode 100755 index 9941994ed..000000000 --- a/src/ereader.c +++ /dev/null @@ -1,1445 +0,0 @@ -#include "global.h" -#include "alloc.h" -#include "decompress.h" -#include "event_data.h" -#include "event_object_movement.h" -#include "field_weather.h" -#include "fieldmap.h" -#include "link.h" -#include "main.h" -#include "metatile_behavior.h" -#include "rom_8011DC0.h" -#include "save.h" -#include "sound.h" -#include "sprite.h" -#include "task.h" -#include "strings.h" -#include "util.h" -#include "constants/event_objects.h" -#include "constants/flags.h" -#include "constants/maps.h" -#include "constants/metatile_behaviors.h" -#include "constants/songs.h" -#include "constants/vars.h" - -struct Unk81D38FC -{ - u8 unk0[0x270]; - int checksum; -}; - -struct Unknown030012C8 -{ - u8 unk0[8]; - u32 *unk8; - int unkC; - int unk10; - int unk14; -}; - -struct Unk03006370 -{ - u16 unk0; - u32 unk4; - u32 *unk8; -}; - -struct Unk81D5014 -{ - u16 unk0; - u16 unk2; - u16 unk4; - u16 unk6; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 *unk10; -}; - -void sub_81D41A0(void); -static void sub_81D4170(void); -int sub_81D3D70(u8, u32, u32*, u32*); -void sub_81D41F4(void); -static u16 sub_81D3EE8(u8); -static void sub_81D413C(void); -static void sub_81D414C(void); -static void sub_81D3F1C(u32, u32*, u32*); -static void sub_81D3F68(void); -bool8 sub_81D4834(s16, s16); -static bool8 sub_81D4C14(struct EventObject*, u8); -static u8 sub_81D4C9C(struct EventObject*, u8); -static u8 sub_81D4C58(struct EventObject*, u8); -static u8 sub_81D4CE0(struct EventObject*, u8); -static u8 sub_81D4D24(u8); -static u8 sub_81D4890(u8); -void sub_81D5084(u8); - -extern struct Unknown030012C8 gUnknown_030012C8; -extern u16 gUnknown_030012E0; -extern u16 gUnknown_030012E2; -extern u16 gUnknown_030012E4; -extern u16 gUnknown_030012E6; -extern u32 gUnknown_030012E8; -extern u16 gUnknown_030012EC; -extern u16 gUnknown_030012EE; -extern u16 gUnknown_030012F0; -extern u16 gUnknown_030012F2; -extern u16 gUnknown_030012F4; -extern s16 gUnknown_030012F8; -extern s16 gUnknown_030012FA; -extern u8 gUnknown_030012FC[4]; -extern u8 gUnknown_0203CF50; -extern struct Unk03006370 gUnknown_03006370; - -extern const u8 gUnknown_08625B6C[]; -extern const u8 gUnknown_089A3470[]; -extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; -extern const s16 gFarawayIslandRockCoords[4][2]; - -extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; -extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; - -static u8 sub_81D38D4(void) -{ - return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; -} - -static bool32 sub_81D38FC(struct Unk81D38FC *arg0) -{ - int checksum = CalcByteArraySum(arg0->unk0, 0x270); - if (checksum != arg0->checksum) - return FALSE; - - return TRUE; -} - -bool8 sub_81D3920(u8 *buffer) -{ - u32 i; - u32 checksum; - int var0 = buffer[0]; - if (var0 < 1 || var0 > 8) - return FALSE; - - for (i = 0; i < var0; i++) - { - struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); - if (!sub_81D38FC(var1)) - return FALSE; - } - - checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); - if (checksum != ((int *)buffer)[1]) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D396C(u8 *buffer) -{ - u32 checksum; - int var0 = buffer[0]; - if (var0 < 1 || var0 > 8) - return FALSE; - - checksum = CalcByteArraySum(buffer + 8, 0xEE0); - if (checksum != ((int *)buffer)[1]) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) -{ - int i; - const u8 *ereaderVals; - - memset(buffer2, 0, 0x1000); - buffer2[0] = arg0->unk0[0]; - buffer2[1] = sub_81D38D4(); - buffer2[2] = (arg0->unk0[0] + 1) / 2; - - for (i = 0; i < arg0->unk0[0]; i++) - { - if (!(i & 1)) - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[8] = var1[8]; - memcpy(&var0[0x29C], &var1[0x154], 0x124); - var0 += 0xC; - var1 += 0xC; - memcpy(var0, var1, 0x148); - } - else - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - u8 *var1 = arg0[i].unk0; - var0[9] = var1[8]; - memcpy(&var0[0x154], &var1[0xC], 0x148); - } - } - - if (i & 1) - { - u8 *var0 = &buffer2[(i / 2) * 0x3B8]; - var0 += 0x154; - - ereaderVals = gUnknown_08625B6C; - memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); - } - - ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); - if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) - return FALSE; - - return TRUE; -} - -bool32 sub_81D3AB0(struct Unk81D38FC *arg0) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3998(arg0, var0); - Free(var0); - return result; -} - -static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) -{ - if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) - return FALSE; - - memcpy(arg0, arg1, 0xEE8); - if (!sub_81D396C(arg0)) - return FALSE; - - return TRUE; -} - -static bool32 sub_81D3B0C(u8 *arg0) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3AD8(arg0, var0); - Free(var0); - return result; -} - -bool32 sub_81D3B34(void) -{ - u8 *var0 = AllocZeroed(0x1000); - bool32 result = sub_81D3B0C(var0); - Free(var0); - return result; -} - -static int unref_sub_81D3B54(int arg0, u32 *arg1) -{ - int result; - u16 var0; - int var1; - - sub_81D41A0(); - while (1) - { - sub_81D4170(); - if (gUnknown_030012E2 & 2) - gShouldAdvanceLinkState = 2; - - var1 = sub_81D3D70(1, arg0, arg1, NULL); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) - { - result = 0; - break; - } - - if (gUnknown_030012E4 & 0x8) - { - result = 1; - break; - } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) - { - result = 2; - break; - } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); - } - - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); - sub_81D41F4(); - return result; -} - -static int unref_sub_81D3BE8(u32 *arg0) -{ - int result; - u16 var0; - int var1; - - sub_81D41A0(); - while (1) - { - sub_81D4170(); - if (gUnknown_030012E2 & 2) - gShouldAdvanceLinkState = 2; - - var1 = sub_81D3D70(0, 0, NULL, arg0); - gUnknown_030012E4 = var1; - if ((gUnknown_030012E4 & 0x13) == 0x10) - { - result = 0; - break; - } - - if (gUnknown_030012E4 & 0x8) - { - result = 1; - break; - } - - var0 = gUnknown_030012E4 & 0x4; - if (var0) - { - result = 2; - break; - } - - gShouldAdvanceLinkState = var0; - VBlankIntrWait(); - } - - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); - sub_81D41F4(); - return result; -} - -static void sub_81D3C7C(void) -{ - REG_IME = 0; - REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); - REG_IME = 1; - REG_SIOCNT = 0; - REG_TM3CNT_H = 0; - REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; -} - -static void sub_81D3CBC(void) -{ - REG_IME = 0; - REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); - REG_IME = 1; - REG_RCNT = 0; - REG_SIOCNT = SIO_MULTI_MODE; - REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; - REG_IME = 0; - REG_IE |= INTR_FLAG_SERIAL; - REG_IME = 1; - - if (!gUnknown_030012C8.unk0[1]) - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); -} - -static void sub_81D3D34(void) -{ - REG_RCNT = 0; - REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; - REG_SIOCNT |= SIO_MULTI_SD; - gShouldAdvanceLinkState = 0; - gUnknown_030012E6 = 0; - gUnknown_030012E8 = 0; -} - -int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) -{ - switch (gUnknown_030012C8.unk0[1]) - { - case 0: - sub_81D3CBC(); - gUnknown_030012C8.unk0[2] = 1; - gUnknown_030012C8.unk0[1] = 1; - break; - case 1: - if (sub_81D3EE8(arg0)) - sub_81D413C(); - - if (gShouldAdvanceLinkState == 2) - { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; - } - break; - case 2: - sub_81D3D34(); - sub_81D3F1C(arg1, arg2, arg3); - gUnknown_030012C8.unk0[1] = 3; - // fall through - case 3: - if (gShouldAdvanceLinkState == 2) - { - gUnknown_030012C8.unk0[4] = 2; - gUnknown_030012C8.unk0[1] = 6; - } - else - { - gUnknown_030012E6++; - gUnknown_030012E8++; - if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) - { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; - } - - if (gUnknown_030012C8.unk0[2] != 2) - { - if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) - { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; - } - else - { - sub_81D413C(); - gUnknown_030012C8.unk0[2] = 2; - } - } - } - break; - case 4: - sub_81D3CBC(); - gUnknown_030012C8.unk0[1] = 5; - break; - case 5: - if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) - sub_81D413C(); - - if (++gUnknown_030012E6 > 60) - { - gUnknown_030012C8.unk0[4] = 1; - gUnknown_030012C8.unk0[1] = 6; - } - break; - case 6: - if (gUnknown_030012C8.unk0[2]) - { - sub_81D3C7C(); - gUnknown_030012C8.unk0[2] = 0; - } - break; - } - - return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); -} - -static u16 sub_81D3EE8(u8 arg0) -{ - u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); - if (terminal == SIO_MULTI_SD && arg0) - { - gUnknown_030012C8.unk0[0] = 1; - return 1; - } - else - { - gUnknown_030012C8.unk0[0] = 0; - return 0; - } -} - -static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) -{ - if (gUnknown_030012C8.unk0[0]) - { - REG_SIOCNT |= SIO_38400_BPS; - gUnknown_030012C8.unk8 = arg1; - REG_SIODATA32 = arg0; - gUnknown_030012C8.unk10 = arg0 / 4 + 1; - sub_81D3F68(); - } - else - { - REG_SIOCNT = REG_SIOCNT; - gUnknown_030012C8.unk8 = arg2; - } -} - -static void sub_81D3F68(void) -{ - REG_TM3CNT_L = 0xFDA7; - REG_TM3CNT_H = TIMER_INTR_ENABLE; - REG_IME = 0; - REG_IE |= INTR_FLAG_TIMER3; - REG_IME = 1; -} - -void sub_81D3F9C(void) -{ - sub_81D414C(); - sub_81D413C(); -} - -void sub_81D3FAC(void) -{ - u16 i, playerCount, k; - u32 value; - u16 var0; - u16 recvBuffer[4]; - - switch (gUnknown_030012C8.unk0[1]) - { - case 1: - REG_SIOMLT_SEND = 0xCCD0; // Handshake id - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - for (i = 0, playerCount = 0, k = 0; i < 4; i++) - { - if (recvBuffer[i] == 0xCCD0) - playerCount++; - else if (recvBuffer[i] != 0xFFFF) - k++; - } - - if (playerCount == 2 && k == 0) - gUnknown_030012C8.unk0[1] = 2; - break; - case 3: - value = REG_SIODATA32; - if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) - gUnknown_030012C8.unk10 = value / 4 + 1; - - if (gUnknown_030012C8.unk0[0] == 1) - { - if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) - { - REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; - gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; - } - else - { - REG_SIODATA32 = gUnknown_030012C8.unk14; - } - } - else - { - if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) - { - gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; - gUnknown_030012C8.unk14 += value; - } - else if (gUnknown_030012C8.unkC) - { - if (gUnknown_030012C8.unk14 == value) - gUnknown_030012C8.unk0[3] = 1; - else - gUnknown_030012C8.unk0[3] = 2; - } - - gUnknown_030012E8 = 0; - } - - if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) - { - if (gUnknown_030012C8.unk0[0]) - REG_TM3CNT_H |= TIMER_ENABLE; - else - sub_81D413C(); - } - else - { - gUnknown_030012C8.unk0[1] = 4; - gUnknown_030012E6 = 0; - } - break; - case 5: - if (!gUnknown_030012C8.unk0[0]) - REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; - - *(u64 *)recvBuffer = REG_SIOMLT_RECV; - var0 = recvBuffer[1] - 1; - if (var0 < 2) - { - if (gUnknown_030012C8.unk0[0] == 1) - gUnknown_030012C8.unk0[3] = recvBuffer[1]; - - gUnknown_030012C8.unk0[1] = 6; - } - break; - } -} - -static void sub_81D413C(void) -{ - REG_SIOCNT |= SIO_ENABLE; -} - -static void sub_81D414C(void) -{ - REG_TM3CNT_H &= ~TIMER_ENABLE; - REG_TM3CNT_L = 0xFDA7; -} - -static void sub_81D4170(void) -{ - int keysMask = REG_KEYINPUT ^ KEYS_MASK; - gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; - gUnknown_030012E0 = keysMask; -} - -void sub_81D41A0(void) -{ - gUnknown_030012EC = REG_IME; - gUnknown_030012EE = REG_IE; - gUnknown_030012F0 = REG_TM3CNT_H; - gUnknown_030012F2 = REG_SIOCNT; - gUnknown_030012F4 = REG_RCNT; -} - -void sub_81D41F4(void) -{ - REG_IME = gUnknown_030012EC; - REG_IE = gUnknown_030012EE; - REG_TM3CNT_H = gUnknown_030012F0; - REG_SIOCNT = gUnknown_030012F2; - REG_RCNT = gUnknown_030012F4; -} - -void sub_81D4238(void) -{ - CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); -} - -u8 sub_81D4258(void) -{ - u8 eventObjectId; - TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); - return eventObjectId; -} - -u32 sub_81D427C(void) -{ - u8 i; - int skip; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; - gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; - - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x - && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) - { - return DIR_NONE; - } - - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) - mew->invisible = 0; - else - mew->invisible = 1; - - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) - return DIR_NONE; - - for (i = 0; i < ARRAY_COUNT(gFarawayIslandRockCoords); i++) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gFarawayIslandRockCoords[i][0]) - { - skip = 0; - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < gFarawayIslandRockCoords[i][1]) - { - if (mew->currentCoords.y <= gFarawayIslandRockCoords[i][1]) - skip = 1; - } - else - { - if (mew->currentCoords.y >= gFarawayIslandRockCoords[i][1]) - skip = 1; - } - - if (!skip) - { - if (gUnknown_030012F8 > 0) - { - if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - } - else if (gUnknown_030012F8 < 0) - { - if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - } - - if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) - { - if (gUnknown_030012FA > 0) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - else - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - } - } - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gFarawayIslandRockCoords[i][1]) - { - skip = 0; - if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < gFarawayIslandRockCoords[i][0]) - { - if (mew->currentCoords.x <= gFarawayIslandRockCoords[i][0]) - skip = 1; - } - else - { - if (mew->currentCoords.x >= gFarawayIslandRockCoords[i][0]) - skip = 1; - } - - if (!skip) - { - if (gUnknown_030012FA > 0) - { - if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - } - else if (gUnknown_030012FA < 0) - { - if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - } - - if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) - { - if (gUnknown_030012F8 > 0) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - else - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - } - } - } - } - - if (sub_81D4C14(mew, 0)) - { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); - else - return DIR_NORTH; - } - - if (sub_81D4C9C(mew, 0)) - { - if (sub_81D4C58(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4CE0(mew, 1)) - return sub_81D4D24(2); - else - return DIR_SOUTH; - } - - if (sub_81D4C58(mew, 0)) - { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); - else - return DIR_EAST; - } - - if (sub_81D4CE0(mew, 0)) - { - if (sub_81D4C14(mew, 1)) - return sub_81D4D24(2); - else if (sub_81D4C9C(mew, 1)) - return sub_81D4D24(2); - else - return DIR_WEST; - } - - if (gUnknown_030012FA == 0) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) - { - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - return DIR_NORTH; - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - return DIR_SOUTH; - } - - if (gUnknown_030012F8 == 0) - { - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) - { - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) - { - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - } - - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - return DIR_EAST; - - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - return DIR_WEST; - } - - return sub_81D4890(DIR_NONE); -} - -bool8 sub_81D4834(s16 x, s16 y) -{ - if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x - && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) - { - return FALSE; - } - - return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); -} - -static u8 sub_81D4890(u8 ignoredDir) -{ - u8 i; - u8 count = 0; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) - gUnknown_030012FC[i] = DIR_NONE; - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) - { - gUnknown_030012FC[count] = DIR_NORTH; - count++; - } - - if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) - { - gUnknown_030012FC[count] = DIR_EAST; - count++; - } - - if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) - { - gUnknown_030012FC[count] = DIR_SOUTH; - count++; - } - - if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) - { - gUnknown_030012FC[count] = DIR_WEST; - count++; - } - - if (count > 1) - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; - else - return gUnknown_030012FC[0]; -} - -void UpdateFarawayIslandStepCounter(void) -{ - u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - steps++; - if (steps >= 9999) - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); - else - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); - } -} - -bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) -{ - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) - return TRUE; - } - - return FALSE; -} - -bool8 IsMewPlayingHideAndSeek(void) -{ - if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) - && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) - { - if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) - return TRUE; - } - - return FALSE; -} - -bool8 sub_81D4A58(struct EventObject *eventObject) -{ - if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF - && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) - return TRUE; - - return FALSE; -} - -void sub_81D4A90(void) -{ - s16 x; - s16 y; - u8 spriteId; - struct EventObject *mew = &gEventObjects[sub_81D4258()]; - - mew->invisible = 0; - if (gSpecialVar_0x8004 == 1) - { - mew->fixedPriority = 1; - gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - gSprites[mew->spriteId].subpriority = 1; - } - else - { - VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); - mew->fixedPriority = 1; - gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; - if (gSpecialVar_Facing != DIR_NORTH) - gSprites[mew->spriteId].subpriority = 1; - - LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); - UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); - - x = mew->currentCoords.x; - y = mew->currentCoords.y; - sub_80930E0(&x, &y, 8, 8); - gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); - if (gUnknown_0203CF50 != MAX_SPRITES) - { - struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; - sprite->coordOffsetEnabled = 1; - sprite->oam.priority = 2; - sprite->callback = SpriteCallbackDummy; - } - } -} - -void sub_81D4BEC(void) -{ - if (gUnknown_0203CF50 != MAX_SPRITES) - DestroySprite(&gSprites[gUnknown_0203CF50]); -} - -static bool8 sub_81D4C14(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) - { - gUnknown_030012FC[index] = DIR_NORTH; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4C58(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) - { - gUnknown_030012FC[index] = DIR_EAST; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4C9C(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) - { - gUnknown_030012FC[index] = DIR_SOUTH; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4CE0(struct EventObject *mew, u8 index) -{ - if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) - { - gUnknown_030012FC[index] = DIR_WEST; - return TRUE; - } - - return FALSE; -} - -static u8 sub_81D4D24(u8 mod) -{ - return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; -} - -void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) -{ - volatile u16 backupIME = REG_IME; - REG_IME = 0; - gIntrTable[1] = sub_81D3FAC; - gIntrTable[2] = sub_81D3F9C; - sub_81D41A0(); - sub_81D4238(); - REG_IE |= INTR_FLAG_VCOUNT; - REG_IME = backupIME; - arg0->unk0 = 0; - arg0->unk4 = arg1; - arg0->unk8 = arg2; -} - -void sub_81D4DB8(struct Unk03006370 *arg0) -{ - volatile u16 backupIME = REG_IME; - REG_IME = 0; - sub_81D4238(); - sub_81D41F4(); - RestoreSerialTimer3IntrHandlers(); - REG_IME = backupIME; -} - -u8 sub_81D4DE8(struct Unk03006370 *arg0) -{ - u8 var0 = 0; - arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); - if ((arg0->unk0 & 0x13) == 0x10) - var0 = 1; - - if (arg0->unk0 & 0x8) - var0 = 2; - - if (arg0->unk0 & 0x4) - var0 = 3; - - gShouldAdvanceLinkState = 0; - return var0; -} - -void sub_81D4E30(void) -{ - memset(gDecompressionBuffer, 0, 0x2000); - gLinkType = 0x5503; - OpenLink(); - SetSuppressLinkErrorMessage(TRUE); -} - -bool32 sub_81D4E60(void) -{ - volatile u16 backupIME; - u16 sp4[4]; - - backupIME = REG_IME; - REG_IME = 0; - *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; - REG_IME = backupIME; - if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 - && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) - { - return TRUE; - } - - return FALSE; -} - -bool32 sub_81D4EC0(void) -{ - if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) - return TRUE; - - return FALSE; -} - -u32 sub_81D4EE4(u8 *arg0, u16 *arg1) -{ - u8 var0; - - var0 = *arg0 - 3; - if (var0 < 3 && HasLinkErrorOccurred()) - { - *arg0 = 0; - return 3; - } - - switch (*arg0) - { - case 0: - if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) - { - *arg0 = 1; - } - else if (gMain.newKeys & B_BUTTON) - { - *arg0 = 0; - return 1; - } - break; - case 1: - if (++(*arg1) > 5) - { - *arg1 = 0; - *arg0 = 2; - } - break; - case 2: - if (GetLinkPlayerCount_2() == 2) - { - PlaySE(SE_PINPON); - CheckShouldAdvanceLinkState(); - *arg1 = 0; - *arg0 = 3; - } - else if (gMain.newKeys & B_BUTTON) - { - *arg0 = 0; - return 1; - } - break; - case 3: - if (++(*arg1) > 30) - { - *arg0 = 0; - return 5; - } - - if (IsLinkConnectionEstablished()) - { - if (gReceivedRemoteLinkPlayers) - { - if (IsLinkPlayerDataExchangeComplete()) - { - *arg0 = 0; - return 2; - } - else - { - *arg0 = 4; - } - } - else - { - *arg0 = 3; - } - } - break; - case 4: - sub_800ABF4(0); - *arg0 = 5; - break; - case 5: - if (!gReceivedRemoteLinkPlayers) - { - *arg0 = 0; - return 4; - } - break; - default: - return 0; - } - - return 0; -} - -void sub_81D5014(void) -{ - int value; - struct Unk81D5014 *data; - u8 taskId = CreateTask(sub_81D5084, 0); - data = (struct Unk81D5014 *)gTasks[taskId].data; - data->unk8 = 0; - data->unk9 = 0; - data->unkA = 0; - data->unkB = 0; - data->unkC = 0; - data->unkD = 0; - data->unk0 = 0; - data->unk2 = 0; - data->unk4 = 0; - data->unk6 = 0; - data->unkE = 0; - data->unk10 = AllocZeroed(0x40); -} - -void sub_81D505C(u16 *arg0) -{ - *arg0 = 0; -} - -bool32 sub_81D5064(u16 *arg0, u16 arg1) -{ - if (++(*arg0) > arg1) - { - *arg0 = 0; - return TRUE; - } - - return FALSE; -} - -void sub_81D5084(u8 taskId) -{ - struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; - switch (data->unk8) - { - case 0: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) - data->unk8 = 1; - break; - case 1: - sub_81D4E30(); - sub_81D505C(&data->unk0); - data->unk8 = 2; - break; - case 2: - if (sub_81D5064(&data->unk0, 10)) - data->unk8 = 3; - break; - case 3: - if (!sub_81D4EC0()) - { - CloseLink(); - data->unk8 = 4; - } - else - { - data->unk8 = 13; - } - break; - case 4: - if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) - { - sub_8018884(gUnknown_085EE014); - sub_81D505C(&data->unk0); - data->unk8 = 5; - } - break; - case 5: - if (sub_81D5064(&data->unk0, 90)) - { - sub_81D4E30(); - data->unk8 = 6; - } - else if (gMain.newKeys & B_BUTTON) - { - sub_81D505C(&data->unk0); - PlaySE(SE_SELECT); - data->unk8 = 23; - } - break; - case 6: - if (gMain.newKeys & B_BUTTON) - { - PlaySE(SE_SELECT); - CloseLink(); - sub_81D505C(&data->unk0); - data->unk8 = 23; - } - else if (GetLinkPlayerCount_2() > 1) - { - sub_81D505C(&data->unk0); - CloseLink(); - data->unk8 = 7; - } - else if (sub_81D4E60()) - { - PlaySE(SE_SELECT); - CloseLink(); - sub_81D505C(&data->unk0); - data->unk8 = 8; - } - else if (sub_81D5064(&data->unk0, 10)) - { - CloseLink(); - sub_81D4E30(); - sub_81D505C(&data->unk0); - } - break; - case 7: - if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) - data->unk8 = 4; - break; - case 8: - sub_8018884(gUnknown_085EE097); - // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 - sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); - data->unk8 = 9; - break; - case 9: - data->unkE = sub_81D4DE8(&gUnknown_03006370); - if (data->unkE) - data->unk8 = 10; - break; - case 10: - sub_81D4DB8(&gUnknown_03006370); - if (data->unkE == 3) - { - data->unk8 = 20; - } - else if (data->unkE == 1) - { - sub_81D505C(&data->unk0); - sub_8018884(gUnknown_085EE120); - data->unk8 = 11; - } - else - { - data->unk8 = 0; - } - break; - case 11: - if (sub_81D5064(&data->unk0, 840)) - data->unk8 = 12; - break; - case 12: - sub_81D4E30(); - sub_8018884(gUnknown_085EE0DC); - data->unk8 = 13; - break; - case 13: - switch (sub_81D4EE4(&data->unk9, &data->unk0)) - { - case 0: - break; - case 2: - sub_8018884(gUnknown_085EE097); - data->unk8 = 14; - break; - case 1: - PlaySE(SE_SELECT); - CloseLink(); - data->unk8 = 23; - break; - case 5: - CloseLink(); - data->unk8 = 21; - break; - case 3: - case 4: - CloseLink(); - data->unk8 = 20; - break; - } - break; - case 14: - if (HasLinkErrorOccurred()) - { - CloseLink(); - data->unk8 = 20; - } - else if (GetBlockReceivedStatus()) - { - ResetBlockReceivedFlags(); - data->unk8 = 15; - } - break; - case 15: - data->unkE = sub_81D3920(gDecompressionBuffer); - sub_800ABF4(data->unkE); - data->unk8 = 16; - break; - case 16: - if (!gReceivedRemoteLinkPlayers) - { - if (data->unkE == 1) - data->unk8 = 17; - else - data->unk8 = 20; - } - break; - case 17: - if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) - { - sub_8018884(gUnknown_085EE0FA); - sub_81D505C(&data->unk0); - data->unk8 = 18; - } - else - { - data->unk8 = 22; - } - break; - case 18: - if (sub_81D5064(&data->unk0, 120)) - { - sub_8018884(gUnknown_085EE107); - PlayFanfare(MUS_FANFA4); - data->unk8 = 19; - } - break; - case 19: - if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) - data->unk8 = 26; - break; - case 23: - if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) - data->unk8 = 26; - break; - case 20: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) - data->unk8 = 0; - break; - case 21: - if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) - data->unk8 = 0; - break; - case 22: - if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) - data->unk8 = 0; - break; - case 26: - Free(data->unk10); - DestroyTask(taskId); - SetMainCallback2(sub_80186A4); - break; - } -} diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c new file mode 100755 index 000000000..6c92b676f --- /dev/null +++ b/src/ereader_helpers.c @@ -0,0 +1,553 @@ +#include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "ereader_helpers.h" +#include "link.h" +#include "main.h" +#include "rom_8011DC0.h" +#include "save.h" +#include "sprite.h" +#include "task.h" +#include "util.h" + +struct Unknown030012C8 +{ + u8 unk0[8]; + u32 *unk8; + int unkC; + int unk10; + int unk14; +}; + +static void sub_81D4170(void); +static u16 sub_81D3EE8(u8); +static void sub_81D413C(void); +static void sub_81D414C(void); +static void sub_81D3F1C(u32, u32*, u32*); +static void sub_81D3F68(void); + +extern struct Unknown030012C8 gUnknown_030012C8; +extern u16 gUnknown_030012E0; +extern u16 gUnknown_030012E2; +extern u16 gUnknown_030012E4; +extern u16 gUnknown_030012E6; +extern u32 gUnknown_030012E8; +extern u16 gUnknown_030012EC; +extern u16 gUnknown_030012EE; +extern u16 gUnknown_030012F0; +extern u16 gUnknown_030012F2; +extern u16 gUnknown_030012F4; + +extern const u8 gUnknown_08625B6C[]; + +static u8 sub_81D38D4(void) +{ + return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; +} + +static bool32 sub_81D38FC(struct Unk81D38FC *arg0) +{ + int checksum = CalcByteArraySum(arg0->unk0, 0x270); + if (checksum != arg0->checksum) + return FALSE; + + return TRUE; +} + +bool8 sub_81D3920(u8 *buffer) +{ + u32 i; + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + for (i = 0; i < var0; i++) + { + struct Unk81D38FC *var1 = (struct Unk81D38FC *)(&buffer[i * (sizeof(struct Unk81D38FC)) + 8]); + if (!sub_81D38FC(var1)) + return FALSE; + } + + checksum = CalcByteArraySum(buffer + 8, var0 * 0x274); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D396C(u8 *buffer) +{ + u32 checksum; + int var0 = buffer[0]; + if (var0 < 1 || var0 > 8) + return FALSE; + + checksum = CalcByteArraySum(buffer + 8, 0xEE0); + if (checksum != ((int *)buffer)[1]) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3998(struct Unk81D38FC *arg0, u8 *buffer2) +{ + int i; + const u8 *ereaderVals; + + memset(buffer2, 0, 0x1000); + buffer2[0] = arg0->unk0[0]; + buffer2[1] = sub_81D38D4(); + buffer2[2] = (arg0->unk0[0] + 1) / 2; + + for (i = 0; i < arg0->unk0[0]; i++) + { + if (!(i & 1)) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[8] = var1[8]; + memcpy(&var0[0x29C], &var1[0x154], 0x124); + var0 += 0xC; + var1 += 0xC; + memcpy(var0, var1, 0x148); + } + else + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + u8 *var1 = arg0[i].unk0; + var0[9] = var1[8]; + memcpy(&var0[0x154], &var1[0xC], 0x148); + } + } + + if (i & 1) + { + u8 *var0 = &buffer2[(i / 2) * 0x3B8]; + var0 += 0x154; + + ereaderVals = gUnknown_08625B6C; + memcpy(var0, &ereaderVals[(i / 2) * 0x148], 0x148); + } + + ((int *)buffer2)[1] = CalcByteArraySum(buffer2 + 8, 0xEE0); + if (sub_8153634(SECTOR_ID_TRAINER_HILL, buffer2) != 1) + return FALSE; + + return TRUE; +} + +bool32 sub_81D3AB0(struct Unk81D38FC *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3998(arg0, var0); + Free(var0); + return result; +} + +static bool32 sub_81D3AD8(u8 *arg0, u8 *arg1) +{ + if (TryCopySpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + return FALSE; + + memcpy(arg0, arg1, 0xEE8); + if (!sub_81D396C(arg0)) + return FALSE; + + return TRUE; +} + +static bool32 sub_81D3B0C(u8 *arg0) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3AD8(arg0, var0); + Free(var0); + return result; +} + +bool32 sub_81D3B34(void) +{ + u8 *var0 = AllocZeroed(0x1000); + bool32 result = sub_81D3B0C(var0); + Free(var0); + return result; +} + +static int unref_sub_81D3B54(int arg0, u32 *arg1) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(1, arg0, arg1, NULL); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static int unref_sub_81D3BE8(u32 *arg0) +{ + int result; + u16 var0; + int var1; + + sub_81D41A0(); + while (1) + { + sub_81D4170(); + if (gUnknown_030012E2 & 2) + gShouldAdvanceLinkState = 2; + + var1 = sub_81D3D70(0, 0, NULL, arg0); + gUnknown_030012E4 = var1; + if ((gUnknown_030012E4 & 0x13) == 0x10) + { + result = 0; + break; + } + + if (gUnknown_030012E4 & 0x8) + { + result = 1; + break; + } + + var0 = gUnknown_030012E4 & 0x4; + if (var0) + { + result = 2; + break; + } + + gShouldAdvanceLinkState = var0; + VBlankIntrWait(); + } + + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); + sub_81D41F4(); + return result; +} + +static void sub_81D3C7C(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_SIOCNT = 0; + REG_TM3CNT_H = 0; + REG_IF = INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL; +} + +static void sub_81D3CBC(void) +{ + REG_IME = 0; + REG_IE &= ~(INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_115200_BPS; + REG_IME = 0; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + + if (!gUnknown_030012C8.unk0[1]) + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} + +static void sub_81D3D34(void) +{ + REG_RCNT = 0; + REG_SIOCNT = SIO_32BIT_MODE | SIO_INTR_ENABLE; + REG_SIOCNT |= SIO_MULTI_SD; + gShouldAdvanceLinkState = 0; + gUnknown_030012E6 = 0; + gUnknown_030012E8 = 0; +} + +int sub_81D3D70(u8 arg0, u32 arg1, u32 *arg2, u32 *arg3) +{ + switch (gUnknown_030012C8.unk0[1]) + { + case 0: + sub_81D3CBC(); + gUnknown_030012C8.unk0[2] = 1; + gUnknown_030012C8.unk0[1] = 1; + break; + case 1: + if (sub_81D3EE8(arg0)) + sub_81D413C(); + + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 2: + sub_81D3D34(); + sub_81D3F1C(arg1, arg2, arg3); + gUnknown_030012C8.unk0[1] = 3; + // fall through + case 3: + if (gShouldAdvanceLinkState == 2) + { + gUnknown_030012C8.unk0[4] = 2; + gUnknown_030012C8.unk0[1] = 6; + } + else + { + gUnknown_030012E6++; + gUnknown_030012E8++; + if (!gUnknown_030012C8.unk0[0] && gUnknown_030012E8 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + + if (gUnknown_030012C8.unk0[2] != 2) + { + if (gUnknown_030012C8.unk0[0] && gUnknown_030012E6 > 2) + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + else + { + sub_81D413C(); + gUnknown_030012C8.unk0[2] = 2; + } + } + } + break; + case 4: + sub_81D3CBC(); + gUnknown_030012C8.unk0[1] = 5; + break; + case 5: + if (gUnknown_030012C8.unk0[0] == 1 && gUnknown_030012E6 > 2) + sub_81D413C(); + + if (++gUnknown_030012E6 > 60) + { + gUnknown_030012C8.unk0[4] = 1; + gUnknown_030012C8.unk0[1] = 6; + } + break; + case 6: + if (gUnknown_030012C8.unk0[2]) + { + sub_81D3C7C(); + gUnknown_030012C8.unk0[2] = 0; + } + break; + } + + return gUnknown_030012C8.unk0[2] | (gUnknown_030012C8.unk0[4] << 2) | (gUnknown_030012C8.unk0[3] << 4); +} + +static u16 sub_81D3EE8(u8 arg0) +{ + u16 terminal = (*(vu32 *)REG_ADDR_SIOCNT) & (SIO_MULTI_SI | SIO_MULTI_SD); + if (terminal == SIO_MULTI_SD && arg0) + { + gUnknown_030012C8.unk0[0] = 1; + return 1; + } + else + { + gUnknown_030012C8.unk0[0] = 0; + return 0; + } +} + +static void sub_81D3F1C(u32 arg0, u32 *arg1, u32 *arg2) +{ + if (gUnknown_030012C8.unk0[0]) + { + REG_SIOCNT |= SIO_38400_BPS; + gUnknown_030012C8.unk8 = arg1; + REG_SIODATA32 = arg0; + gUnknown_030012C8.unk10 = arg0 / 4 + 1; + sub_81D3F68(); + } + else + { + REG_SIOCNT = REG_SIOCNT; + gUnknown_030012C8.unk8 = arg2; + } +} + +static void sub_81D3F68(void) +{ + REG_TM3CNT_L = 0xFDA7; + REG_TM3CNT_H = TIMER_INTR_ENABLE; + REG_IME = 0; + REG_IE |= INTR_FLAG_TIMER3; + REG_IME = 1; +} + +void sub_81D3F9C(void) +{ + sub_81D414C(); + sub_81D413C(); +} + +void sub_81D3FAC(void) +{ + u16 i, playerCount, k; + u32 value; + u16 var0; + u16 recvBuffer[4]; + + switch (gUnknown_030012C8.unk0[1]) + { + case 1: + REG_SIOMLT_SEND = 0xCCD0; // Handshake id + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + for (i = 0, playerCount = 0, k = 0; i < 4; i++) + { + if (recvBuffer[i] == 0xCCD0) + playerCount++; + else if (recvBuffer[i] != 0xFFFF) + k++; + } + + if (playerCount == 2 && k == 0) + gUnknown_030012C8.unk0[1] = 2; + break; + case 3: + value = REG_SIODATA32; + if (!gUnknown_030012C8.unkC && !gUnknown_030012C8.unk0[0]) + gUnknown_030012C8.unk10 = value / 4 + 1; + + if (gUnknown_030012C8.unk0[0] == 1) + { + if (gUnknown_030012C8.unkC < gUnknown_030012C8.unk10) + { + REG_SIODATA32 = gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + gUnknown_030012C8.unk14 += gUnknown_030012C8.unk8[gUnknown_030012C8.unkC]; + } + else + { + REG_SIODATA32 = gUnknown_030012C8.unk14; + } + } + else + { + if (gUnknown_030012C8.unkC > 0 && gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 1) + { + gUnknown_030012C8.unk8[gUnknown_030012C8.unkC - 1] = value; + gUnknown_030012C8.unk14 += value; + } + else if (gUnknown_030012C8.unkC) + { + if (gUnknown_030012C8.unk14 == value) + gUnknown_030012C8.unk0[3] = 1; + else + gUnknown_030012C8.unk0[3] = 2; + } + + gUnknown_030012E8 = 0; + } + + if (++gUnknown_030012C8.unkC < gUnknown_030012C8.unk10 + 2) + { + if (gUnknown_030012C8.unk0[0]) + REG_TM3CNT_H |= TIMER_ENABLE; + else + sub_81D413C(); + } + else + { + gUnknown_030012C8.unk0[1] = 4; + gUnknown_030012E6 = 0; + } + break; + case 5: + if (!gUnknown_030012C8.unk0[0]) + REG_SIOMLT_SEND = gUnknown_030012C8.unk0[3]; + + *(u64 *)recvBuffer = REG_SIOMLT_RECV; + var0 = recvBuffer[1] - 1; + if (var0 < 2) + { + if (gUnknown_030012C8.unk0[0] == 1) + gUnknown_030012C8.unk0[3] = recvBuffer[1]; + + gUnknown_030012C8.unk0[1] = 6; + } + break; + } +} + +static void sub_81D413C(void) +{ + REG_SIOCNT |= SIO_ENABLE; +} + +static void sub_81D414C(void) +{ + REG_TM3CNT_H &= ~TIMER_ENABLE; + REG_TM3CNT_L = 0xFDA7; +} + +static void sub_81D4170(void) +{ + int keysMask = REG_KEYINPUT ^ KEYS_MASK; + gUnknown_030012E2 = keysMask & ~gUnknown_030012E0; + gUnknown_030012E0 = keysMask; +} + +void sub_81D41A0(void) +{ + gUnknown_030012EC = REG_IME; + gUnknown_030012EE = REG_IE; + gUnknown_030012F0 = REG_TM3CNT_H; + gUnknown_030012F2 = REG_SIOCNT; + gUnknown_030012F4 = REG_RCNT; +} + +void sub_81D41F4(void) +{ + REG_IME = gUnknown_030012EC; + REG_IE = gUnknown_030012EE; + REG_TM3CNT_H = gUnknown_030012F0; + REG_SIOCNT = gUnknown_030012F2; + REG_RCNT = gUnknown_030012F4; +} + +void sub_81D4238(void) +{ + CpuFill32(0, &gUnknown_030012C8, sizeof(struct Unknown030012C8)); +} diff --git a/src/ereader_screen.c b/src/ereader_screen.c new file mode 100755 index 000000000..b15c1fd0c --- /dev/null +++ b/src/ereader_screen.c @@ -0,0 +1,464 @@ +#include "global.h" +#include "alloc.h" +#include "decompress.h" +#include "ereader_helpers.h" +#include "link.h" +#include "main.h" +#include "rom_8011DC0.h" +#include "save.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "strings.h" +#include "util.h" +#include "constants/songs.h" + +struct Unk81D5014 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 *unk10; +}; + +struct Unk03006370 +{ + u16 unk0; + u32 unk4; + u32 *unk8; +}; + +static void sub_81D5084(u8); + +extern struct Unk03006370 gUnknown_03006370; + +extern const u8 gUnknown_089A3470[]; +extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; + +static void sub_81D4D50(struct Unk03006370 *arg0, int arg1, u32 *arg2) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + gIntrTable[1] = sub_81D3FAC; + gIntrTable[2] = sub_81D3F9C; + sub_81D41A0(); + sub_81D4238(); + REG_IE |= INTR_FLAG_VCOUNT; + REG_IME = backupIME; + arg0->unk0 = 0; + arg0->unk4 = arg1; + arg0->unk8 = arg2; +} + +static void sub_81D4DB8(struct Unk03006370 *arg0) +{ + volatile u16 backupIME = REG_IME; + REG_IME = 0; + sub_81D4238(); + sub_81D41F4(); + RestoreSerialTimer3IntrHandlers(); + REG_IME = backupIME; +} + +static u8 sub_81D4DE8(struct Unk03006370 *arg0) +{ + u8 var0 = 0; + arg0->unk0 = sub_81D3D70(1, arg0->unk4, arg0->unk8, NULL); + if ((arg0->unk0 & 0x13) == 0x10) + var0 = 1; + + if (arg0->unk0 & 0x8) + var0 = 2; + + if (arg0->unk0 & 0x4) + var0 = 3; + + gShouldAdvanceLinkState = 0; + return var0; +} + +static void sub_81D4E30(void) +{ + memset(gDecompressionBuffer, 0, 0x2000); + gLinkType = 0x5503; + OpenLink(); + SetSuppressLinkErrorMessage(TRUE); +} + +static bool32 sub_81D4E60(void) +{ + volatile u16 backupIME; + u16 sp4[4]; + + backupIME = REG_IME; + REG_IME = 0; + *(u64 *)sp4 = *(u64 *)gLink.tempRecvBuffer; + REG_IME = backupIME; + if (sp4[0] == 0xB9A0 && sp4[1] == 0xCCD0 + && sp4[2] == 0xFFFF && sp4[3] == 0xFFFF) + { + return TRUE; + } + + return FALSE; +} + +static bool32 sub_81D4EC0(void) +{ + if (IsLinkMaster() && GetLinkPlayerCount_2() == 2) + return TRUE; + + return FALSE; +} + +static u32 sub_81D4EE4(u8 *arg0, u16 *arg1) +{ + u8 var0; + + var0 = *arg0 - 3; + if (var0 < 3 && HasLinkErrorOccurred()) + { + *arg0 = 0; + return 3; + } + + switch (*arg0) + { + case 0: + if (IsLinkMaster() && GetLinkPlayerCount_2() > 1) + { + *arg0 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 1: + if (++(*arg1) > 5) + { + *arg1 = 0; + *arg0 = 2; + } + break; + case 2: + if (GetLinkPlayerCount_2() == 2) + { + PlaySE(SE_PINPON); + CheckShouldAdvanceLinkState(); + *arg1 = 0; + *arg0 = 3; + } + else if (gMain.newKeys & B_BUTTON) + { + *arg0 = 0; + return 1; + } + break; + case 3: + if (++(*arg1) > 30) + { + *arg0 = 0; + return 5; + } + + if (IsLinkConnectionEstablished()) + { + if (gReceivedRemoteLinkPlayers) + { + if (IsLinkPlayerDataExchangeComplete()) + { + *arg0 = 0; + return 2; + } + else + { + *arg0 = 4; + } + } + else + { + *arg0 = 3; + } + } + break; + case 4: + sub_800ABF4(0); + *arg0 = 5; + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + { + *arg0 = 0; + return 4; + } + break; + default: + return 0; + } + + return 0; +} + +void sub_81D5014(void) +{ + int value; + struct Unk81D5014 *data; + u8 taskId = CreateTask(sub_81D5084, 0); + data = (struct Unk81D5014 *)gTasks[taskId].data; + data->unk8 = 0; + data->unk9 = 0; + data->unkA = 0; + data->unkB = 0; + data->unkC = 0; + data->unkD = 0; + data->unk0 = 0; + data->unk2 = 0; + data->unk4 = 0; + data->unk6 = 0; + data->unkE = 0; + data->unk10 = AllocZeroed(0x40); +} + +static void sub_81D505C(u16 *arg0) +{ + *arg0 = 0; +} + +static bool32 sub_81D5064(u16 *arg0, u16 arg1) +{ + if (++(*arg0) > arg1) + { + *arg0 = 0; + return TRUE; + } + + return FALSE; +} + +static void sub_81D5084(u8 taskId) +{ + struct Unk81D5014 *data = (struct Unk81D5014 *)gTasks[taskId].data; + switch (data->unk8) + { + case 0: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFD6)) + data->unk8 = 1; + break; + case 1: + sub_81D4E30(); + sub_81D505C(&data->unk0); + data->unk8 = 2; + break; + case 2: + if (sub_81D5064(&data->unk0, 10)) + data->unk8 = 3; + break; + case 3: + if (!sub_81D4EC0()) + { + CloseLink(); + data->unk8 = 4; + } + else + { + data->unk8 = 13; + } + break; + case 4: + if (mevent_0814257C(&data->unk9, gUnknown_085EDFF5)) + { + sub_8018884(gUnknown_085EE014); + sub_81D505C(&data->unk0); + data->unk8 = 5; + } + break; + case 5: + if (sub_81D5064(&data->unk0, 90)) + { + sub_81D4E30(); + data->unk8 = 6; + } + else if (gMain.newKeys & B_BUTTON) + { + sub_81D505C(&data->unk0); + PlaySE(SE_SELECT); + data->unk8 = 23; + } + break; + case 6: + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 23; + } + else if (GetLinkPlayerCount_2() > 1) + { + sub_81D505C(&data->unk0); + CloseLink(); + data->unk8 = 7; + } + else if (sub_81D4E60()) + { + PlaySE(SE_SELECT); + CloseLink(); + sub_81D505C(&data->unk0); + data->unk8 = 8; + } + else if (sub_81D5064(&data->unk0, 10)) + { + CloseLink(); + sub_81D4E30(); + sub_81D505C(&data->unk0); + } + break; + case 7: + if (mevent_0814257C(&data->unk9, gUnknown_085EE05C)) + data->unk8 = 4; + break; + case 8: + sub_8018884(gUnknown_085EE097); + // XXX: This (u32*) cast is discarding the const qualifier from gUnknown_089A3470 + sub_81D4D50(&gUnknown_03006370, gMultiBootProgram_BerryGlitchFix_Start - gUnknown_089A3470, (u32*)gUnknown_089A3470); + data->unk8 = 9; + break; + case 9: + data->unkE = sub_81D4DE8(&gUnknown_03006370); + if (data->unkE) + data->unk8 = 10; + break; + case 10: + sub_81D4DB8(&gUnknown_03006370); + if (data->unkE == 3) + { + data->unk8 = 20; + } + else if (data->unkE == 1) + { + sub_81D505C(&data->unk0); + sub_8018884(gUnknown_085EE120); + data->unk8 = 11; + } + else + { + data->unk8 = 0; + } + break; + case 11: + if (sub_81D5064(&data->unk0, 840)) + data->unk8 = 12; + break; + case 12: + sub_81D4E30(); + sub_8018884(gUnknown_085EE0DC); + data->unk8 = 13; + break; + case 13: + switch (sub_81D4EE4(&data->unk9, &data->unk0)) + { + case 0: + break; + case 2: + sub_8018884(gUnknown_085EE097); + data->unk8 = 14; + break; + case 1: + PlaySE(SE_SELECT); + CloseLink(); + data->unk8 = 23; + break; + case 5: + CloseLink(); + data->unk8 = 21; + break; + case 3: + case 4: + CloseLink(); + data->unk8 = 20; + break; + } + break; + case 14: + if (HasLinkErrorOccurred()) + { + CloseLink(); + data->unk8 = 20; + } + else if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + data->unk8 = 15; + } + break; + case 15: + data->unkE = sub_81D3920(gDecompressionBuffer); + sub_800ABF4(data->unkE); + data->unk8 = 16; + break; + case 16: + if (!gReceivedRemoteLinkPlayers) + { + if (data->unkE == 1) + data->unk8 = 17; + else + data->unk8 = 20; + } + break; + case 17: + if (sub_81D3AB0((struct Unk81D38FC *)&gDecompressionBuffer)) + { + sub_8018884(gUnknown_085EE0FA); + sub_81D505C(&data->unk0); + data->unk8 = 18; + } + else + { + data->unk8 = 22; + } + break; + case 18: + if (sub_81D5064(&data->unk0, 120)) + { + sub_8018884(gUnknown_085EE107); + PlayFanfare(MUS_FANFA4); + data->unk8 = 19; + } + break; + case 19: + if (IsFanfareTaskInactive() && (gMain.newKeys & (A_BUTTON | B_BUTTON))) + data->unk8 = 26; + break; + case 23: + if (mevent_0814257C(&data->unk9,gUnknown_085EE06B)) + data->unk8 = 26; + break; + case 20: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0A3)) + data->unk8 = 0; + break; + case 21: + if (mevent_0814257C(&data->unk9, gUnknown_085EE0BF)) + data->unk8 = 0; + break; + case 22: + if (mevent_0814257C(&data->unk9, gUnknown_085EE12D)) + data->unk8 = 0; + break; + case 26: + Free(data->unk10); + DestroyTask(taskId); + SetMainCallback2(sub_80186A4); + break; + } +} diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 8ebdd883f..30dffd8d7 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -3,10 +3,10 @@ #include "battle_pyramid.h" #include "berry.h" #include "decoration.h" -#include "ereader.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" +#include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" #include "field_effect_helpers.h" diff --git a/src/faraway_island.c b/src/faraway_island.c new file mode 100755 index 000000000..1c8dff14e --- /dev/null +++ b/src/faraway_island.c @@ -0,0 +1,445 @@ +#include "global.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "metatile_behavior.h" +#include "sprite.h" +#include "constants/event_objects.h" +#include "constants/flags.h" +#include "constants/maps.h" +#include "constants/metatile_behaviors.h" +#include "constants/vars.h" + +static u8 sub_81D4890(u8); +static bool8 sub_81D4C14(struct EventObject*, u8); +static u8 sub_81D4C9C(struct EventObject*, u8); +static u8 sub_81D4C58(struct EventObject*, u8); +static u8 sub_81D4CE0(struct EventObject*, u8); +static u8 sub_81D4D24(u8); +static bool8 sub_81D4834(s16, s16); + +extern u8 gUnknown_0203CF50; +extern s16 gUnknown_030012F8; +extern s16 gUnknown_030012FA; +extern u8 gUnknown_030012FC[4]; + +extern const struct SpritePalette gFieldEffectObjectPaletteInfo1; +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; + +static const s16 sFarawayIslandRockCoords[4][2] = +{ + {21, 16}, + {25, 16}, + {16, 17}, + {20, 20}, +}; + +static u8 sub_81D4258(void) +{ + u8 eventObjectId; + TryGetEventObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &eventObjectId); + return eventObjectId; +} + +u32 sub_81D427C(void) +{ + u8 i; + int skip; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + gUnknown_030012F8 = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x - mew->currentCoords.x; + gUnknown_030012FA = gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y - mew->currentCoords.y; + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x + && gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y) + { + return DIR_NONE; + } + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 8 == 0) + mew->invisible = 0; + else + mew->invisible = 1; + + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 9 == 0) + return DIR_NONE; + + for (i = 0; i < ARRAY_COUNT(sFarawayIslandRockCoords); i++) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x == sFarawayIslandRockCoords[i][0]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y < sFarawayIslandRockCoords[i][1]) + { + if (mew->currentCoords.y <= sFarawayIslandRockCoords[i][1]) + skip = 1; + } + else + { + if (mew->currentCoords.y >= sFarawayIslandRockCoords[i][1]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012F8 > 0) + { + if (mew->currentCoords.x + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + else if (gUnknown_030012F8 < 0) + { + if (mew->currentCoords.x - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + } + + if (mew->currentCoords.x == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x) + { + if (gUnknown_030012FA > 0) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + else + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + } + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y == sFarawayIslandRockCoords[i][1]) + { + skip = 0; + if (gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.x < sFarawayIslandRockCoords[i][0]) + { + if (mew->currentCoords.x <= sFarawayIslandRockCoords[i][0]) + skip = 1; + } + else + { + if (mew->currentCoords.x >= sFarawayIslandRockCoords[i][0]) + skip = 1; + } + + if (!skip) + { + if (gUnknown_030012FA > 0) + { + if (mew->currentCoords.y + 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + } + else if (gUnknown_030012FA < 0) + { + if (mew->currentCoords.y - 1 == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + } + + if (mew->currentCoords.y == gEventObjects[gPlayerAvatar.eventObjectId].previousCoords.y) + { + if (gUnknown_030012F8 > 0) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + else + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + } + } + } + } + + if (sub_81D4C14(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_NORTH; + } + + if (sub_81D4C9C(mew, 0)) + { + if (sub_81D4C58(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4CE0(mew, 1)) + return sub_81D4D24(2); + else + return DIR_SOUTH; + } + + if (sub_81D4C58(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_EAST; + } + + if (sub_81D4CE0(mew, 0)) + { + if (sub_81D4C14(mew, 1)) + return sub_81D4D24(2); + else if (sub_81D4C9C(mew, 1)) + return sub_81D4D24(2); + else + return DIR_WEST; + } + + if (gUnknown_030012FA == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y > mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y < mew->currentCoords.y) + { + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + return DIR_NORTH; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + return DIR_SOUTH; + } + + if (gUnknown_030012F8 == 0) + { + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x > mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x < mew->currentCoords.x) + { + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + return DIR_EAST; + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + return DIR_WEST; + } + + return sub_81D4890(DIR_NONE); +} + +static bool8 sub_81D4834(s16 x, s16 y) +{ + if (gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.x == x + && gEventObjects[gPlayerAvatar.eventObjectId].currentCoords.y == y) + { + return FALSE; + } + + return MetatileBehavior_IsPokeGrass(MapGridGetMetatileBehaviorAt(x, y)); +} + +static u8 sub_81D4890(u8 ignoredDir) +{ + u8 i; + u8 count = 0; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + for (i = 0; i < ARRAY_COUNT(gUnknown_030012FC); i++) + gUnknown_030012FC[i] = DIR_NONE; + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1) == TRUE && ignoredDir != DIR_NORTH) + { + gUnknown_030012FC[count] = DIR_NORTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_EAST) + { + gUnknown_030012FC[count] = DIR_EAST; + count++; + } + + if (sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1) == TRUE && ignoredDir != DIR_SOUTH) + { + gUnknown_030012FC[count] = DIR_SOUTH; + count++; + } + + if (sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y) == TRUE && ignoredDir != DIR_WEST) + { + gUnknown_030012FC[count] = DIR_WEST; + count++; + } + + if (count > 1) + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count]; + else + return gUnknown_030012FC[0]; +} + +void UpdateFarawayIslandStepCounter(void) +{ + u16 steps = VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER); + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + steps++; + if (steps >= 9999) + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0); + else + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, steps); + } +} + +bool8 EventObjectIsFarawayIslandMew(struct EventObject *eventObject) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (eventObject->graphicsId == EVENT_OBJ_GFX_MEW) + return TRUE; + } + + return FALSE; +} + +bool8 IsMewPlayingHideAndSeek(void) +{ + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(FARAWAY_ISLAND_INTERIOR) + && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(FARAWAY_ISLAND_INTERIOR)) + { + if (FlagGet(FLAG_CAUGHT_MEW) != TRUE && FlagGet(FLAG_HIDE_MEW) != TRUE) + return TRUE; + } + + return FALSE; +} + +bool8 sub_81D4A58(struct EventObject *eventObject) +{ + if (VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) != 0xFFFF + && VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % 4 == 0) + return TRUE; + + return FALSE; +} + +void sub_81D4A90(void) +{ + s16 x; + s16 y; + u8 spriteId; + struct EventObject *mew = &gEventObjects[sub_81D4258()]; + + mew->invisible = 0; + if (gSpecialVar_0x8004 == 1) + { + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + gSprites[mew->spriteId].subpriority = 1; + } + else + { + VarSet(VAR_FARAWAY_ISLAND_STEP_COUNTER, 0xFFFF); + mew->fixedPriority = 1; + gSprites[mew->spriteId].subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + if (gSpecialVar_Facing != DIR_NORTH) + gSprites[mew->spriteId].subpriority = 1; + + LoadSpritePalette(&gFieldEffectObjectPaletteInfo1); + UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(gFieldEffectObjectPaletteInfo1.tag)); + + x = mew->currentCoords.x; + y = mew->currentCoords.y; + sub_80930E0(&x, &y, 8, 8); + gUnknown_0203CF50 = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, gSprites[mew->spriteId].subpriority - 1); + if (gUnknown_0203CF50 != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[gUnknown_0203CF50]; + sprite->coordOffsetEnabled = 1; + sprite->oam.priority = 2; + sprite->callback = SpriteCallbackDummy; + } + } +} + +void sub_81D4BEC(void) +{ + if (gUnknown_0203CF50 != MAX_SPRITES) + DestroySprite(&gSprites[gUnknown_0203CF50]); +} + +static bool8 sub_81D4C14(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA > 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y - 1)) + { + gUnknown_030012FC[index] = DIR_NORTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C58(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 < 0 && sub_81D4834(mew->currentCoords.x + 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_EAST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4C9C(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012FA < 0 && sub_81D4834(mew->currentCoords.x, mew->currentCoords.y + 1)) + { + gUnknown_030012FC[index] = DIR_SOUTH; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4CE0(struct EventObject *mew, u8 index) +{ + if (gUnknown_030012F8 > 0 && sub_81D4834(mew->currentCoords.x - 1, mew->currentCoords.y)) + { + gUnknown_030012FC[index] = DIR_WEST; + return TRUE; + } + + return FALSE; +} + +static u8 sub_81D4D24(u8 mod) +{ + return gUnknown_030012FC[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % mod]; +} diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index b28052ee2..6735df3a0 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -3,7 +3,7 @@ #include "bike.h" #include "coord_event_weather.h" #include "daycare.h" -#include "ereader.h" +#include "faraway_island.h" #include "event_data.h" #include "event_object_movement.h" #include "event_scripts.h" diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index f1a65cf8c..3da1a9217 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,7 +1,7 @@ #include "global.h" -#include "ereader.h" #include "event_obj_lock.h" #include "event_object_movement.h" +#include "faraway_island.h" #include "field_camera.h" #include "field_effect.h" #include "field_player_avatar.h" diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 7bb1b997a..eafd1eb3d 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -3,7 +3,7 @@ #include "battle.h" #include "battle_tower.h" #include "battle_setup.h" -#include "ereader.h" +#include "ereader_helpers.h" #include "event_data.h" #include "event_scripts.h" #include "fieldmap.h" -- cgit v1.2.3