diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/field_specials.c | 431 |
1 files changed, 411 insertions, 20 deletions
diff --git a/src/field_specials.c b/src/field_specials.c index 5f4795154..b0efd1c35 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -31,6 +31,7 @@ #include "window.h" #include "text_window.h" #include "menu.h" +#include "mevent.h" #include "naming_screen.h" #include "dynamic_placeholder_text_util.h" #include "new_menu_helpers.h" @@ -39,6 +40,7 @@ #include "constants/items.h" #include "constants/map_objects.h" #include "constants/maps.h" +#include "constants/region_map.h" EWRAM_DATA u8 sElevatorCurrentFloorWindowId = 0; EWRAM_DATA u16 sElevatorScroll = 0; @@ -73,25 +75,11 @@ static u16 GetStarterPokemon(u16 starterIdx); static void ChangeBoxPokemonNickname_CB(void); static void ChangePokemonNickname_CB(void); -extern const struct ScrollArrowsTemplate gUnknown_83F5D1C; -extern const u16 sStarterMon[3]; -extern const u8 *const gUnknown_83F5BCC[][12]; -extern const u8 sSlotMachineIndices[22]; -extern const u16 sResortGorgeousDeluxeRewards[6]; -extern const struct WindowTemplate sElevatorCurrentFloorWindowTemplate; -extern const u8 *const sFloorNamePointers[15]; -extern const u16 sElevatorWindowMetatilesGoingUp[3][3]; -extern const u16 sElevatorWindowMetatilesGoingDown[3][3]; -extern const u8 sElevatorAnimationDuration[9]; -extern const u8 sElevatorWindowAnimDuration[9]; -extern u8 *const gUnknown_83F5AF8[3]; -extern const u8 gUnknown_83F5D32[12][3]; -extern const struct { - u16 grp; - u16 num; - u16 unk4; - u16 unk6; -} gUnknown_83F5D58[51]; +static u8 *const gUnknown_83F5AF8[] = { + gStringVar1, + gStringVar2, + gStringVar3 +}; void Special_ShowDiploma(void) { @@ -331,6 +319,56 @@ void Special_BufferEReaderTrainerName5(void) CopyEReaderTrainerName5(gStringVar1); } +static const u8 gUnknown_83F5B04[] = { + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 12, + 2, + 4, + 5, + 1, + 8, + 7, + 11, + 3, + 10, + 9, + 6 +}; + +static const u8 sSlotMachineIndices[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 2, + 3, + 3, + 3, + 4, + 4, + 5 +}; + u8 Special_GetRandomSlotMachine(void) { u16 rval = Random() % NELEMS(sSlotMachineIndices); @@ -594,6 +632,15 @@ void Special_SetVermilionTrashCans(void) } } +static const u16 sResortGorgeousDeluxeRewards[] = { + ITEM_BIG_PEARL, + ITEM_PEARL, + ITEM_STARDUST, + ITEM_STAR_PIECE, + ITEM_NUGGET, + ITEM_RARE_CANDY +}; + void IncrementResortGorgeousStepCounter(void) { u16 var4035 = VarGet(VAR_RESORT_GOREGEOUS_STEP_COUNTER); @@ -660,6 +707,90 @@ bool8 Special_CheckAddCoins(void) return TRUE; } +static const struct WindowTemplate sElevatorCurrentFloorWindowTemplate = { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 1, + .width = 7, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x008 +}; + +static const u8 *const sFloorNamePointers[] = { + gUnknown_8418069, + gUnknown_8418065, + gUnknown_8418061, + gUnknown_841805D, + gUnknown_841803A, + gUnknown_841803D, + gUnknown_8418040, + gUnknown_8418043, + gUnknown_8418046, + gUnknown_8418049, + gUnknown_841804C, + gUnknown_841804F, + gUnknown_8418052, + gUnknown_8418055, + gUnknown_8418059, + gUnknown_841806D +}; + +static const u8 gUnknown_83F5B84[] = { + 26, + 26, + 26, + 26, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 30, + 26, + 26, + 18 +}; + +static const u16 sElevatorWindowMetatilesGoingUp[][3] = { + {0x2e8, 0x2e9, 0x2ea}, + {0x2f0, 0x2f1, 0x2f2}, + {0x2f8, 0x2f9, 0x2fa} +}; + +static const u16 sElevatorWindowMetatilesGoingDown[][3] = { + {0x2e8, 0x2ea, 0x2e9}, + {0x2f0, 0x2f2, 0x2f1}, + {0x2f8, 0x2fa, 0x2f9} +}; + +static const u8 sElevatorAnimationDuration[] = { + 8, + 16, + 24, + 32, + 38, + 46, + 53, + 56, + 57 +}; + +static const u8 sElevatorWindowAnimDuration[] = { + 3, + 6, + 9, + 12, + 15, + 18, + 21, + 24, + 27 +}; + void Special_GetElevatorFloor(void) { u16 floor = 4; @@ -1083,6 +1214,67 @@ void Special_ListMenu(void) } } +static const u8 *const gUnknown_83F5BCC[][12] = { + { + gUnknown_8417FD9, + gUnknown_8417FE6, + gUnknown_8417FF3, + gUnknown_8418000, + gUnknown_841800D, + gUnknown_8418017, + gUnknown_8418022, + gUnknown_841802F, + gOtherText_Exit, + }, { + gUnknown_8418059, + gUnknown_8418055, + gUnknown_8418052, + gUnknown_841804F, + gUnknown_841804C, + gUnknown_8418049, + gUnknown_8418046, + gUnknown_8418043, + gUnknown_8418040, + gUnknown_841803D, + gUnknown_841803A, + gOtherText_Exit, + }, { + gUnknown_841805D, + gUnknown_8418061, + gUnknown_8418069, + gOtherText_Exit, + }, { + gUnknown_8418046, + gUnknown_8418043, + gUnknown_8418040, + gUnknown_841803D, + gUnknown_841803A, + gOtherText_Exit, + }, { + gUnknown_841807D, + gUnknown_841808E, + gUnknown_841809C, + gOtherText_Quit, + }, { + gUnknown_84180A7, + gUnknown_84180BC, + gUnknown_84180D0, + gUnknown_84180E4, + gUnknown_84180FA, + gUnknown_841810D, + gUnknown_841811D, + gUnknown_841812F, + gUnknown_8418142, + gUnknown_8418152, + gUnknown_8418163, + gOtherText_Exit, + }, { + gUnknown_841806D, + gUnknown_841805D, + gOtherText_Exit, + } +}; + static void Task_CreateScriptListMenu(u8 taskId) { struct WindowTemplate template; @@ -1240,7 +1432,12 @@ static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId) static void Task_CreateMenuRemoveScrollIndicatorArrowPair(u8 taskId) { struct Task * task = &gTasks[taskId]; - struct ScrollArrowsTemplate template = gUnknown_83F5D1C; + struct ScrollArrowsTemplate template = { + .firstArrowType = 2, + .secondArrowType = 3, + .tileTag = 2000, + .palTag = 100 + }; if (task->data[0] != task->data[1]) { template.firstX = 4 * task->data[4] + 8 * task->data[2]; @@ -1266,6 +1463,12 @@ void Special_ForcePlayerToStartSurfing(void) SetPlayerAvatarTransitionFlags(8); } +static const u16 sStarterMon[] = { + SPECIES_BULBASAUR, + SPECIES_SQUIRTLE, + SPECIES_CHARMANDER +}; + static u16 GetStarterPokemon(u16 idx) { if (idx >= NELEMS(sStarterMon)) @@ -1511,6 +1714,21 @@ bool8 Special_PlayerPartyContainsSpecies(void) return FALSE; } +static const u8 gUnknown_83F5D32[][3] = { + {MAP_GROUP(VIRIDIAN_CITY_MART), MAP_NUM(VIRIDIAN_CITY_MART), 1}, + {MAP_GROUP(PEWTER_CITY_MART), MAP_NUM(PEWTER_CITY_MART), 3}, + {MAP_GROUP(CERULEAN_CITY_MART), MAP_NUM(CERULEAN_CITY_MART), 1}, + {MAP_GROUP(LAVENDER_TOWN_MART), MAP_NUM(LAVENDER_TOWN_MART), 1}, + {MAP_GROUP(VERMILION_CITY_MART), MAP_NUM(VERMILION_CITY_MART), 1}, + {MAP_GROUP(FUCHSIA_CITY_MART), MAP_NUM(FUCHSIA_CITY_MART), 1}, + {MAP_GROUP(CINNABAR_ISLAND_MART), MAP_NUM(CINNABAR_ISLAND_MART), 1}, + {MAP_GROUP(SAFFRON_CITY_MART), MAP_NUM(SAFFRON_CITY_MART), 1}, + {MAP_GROUP(THREE_ISLAND_MART), MAP_NUM(THREE_ISLAND_MART), 1}, + {MAP_GROUP(FOUR_ISLAND_MART), MAP_NUM(FOUR_ISLAND_MART), 1}, + {MAP_GROUP(SEVEN_ISLAND_MART), MAP_NUM(SEVEN_ISLAND_MART), 1}, + {MAP_GROUP(SIX_ISLAND_MART), MAP_NUM(SIX_ISLAND_MART), 1} +}; + u8 sub_80CC4D4(void) { u8 i; @@ -1527,6 +1745,65 @@ void sub_80CC524(void) sub_8113550(11, NULL); } +static const struct { + u16 grp; + u16 num; + u16 grp2; + u16 num2; +} gUnknown_83F5D58[51] = { + {MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)}, + {MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB), MAP_GROUP(PALLET_TOWN), MAP_NUM(PALLET_TOWN)}, + {MAP_GROUP(VIRIDIAN_CITY_GYM), MAP_NUM(VIRIDIAN_CITY_GYM), MAP_GROUP(VIRIDIAN_CITY), MAP_NUM(VIRIDIAN_CITY)}, + {MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), MAP_GROUP(ROUTE22), MAP_NUM(ROUTE22)}, + {MAP_GROUP(ROUTE22_NORTH_ENTRANCE), MAP_NUM(ROUTE22_NORTH_ENTRANCE), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, + {MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE), MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE)}, + {MAP_GROUP(VIRIDIAN_FOREST), MAP_NUM(VIRIDIAN_FOREST), MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE), MAP_NUM(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE)}, + {MAP_GROUP(PEWTER_CITY_MUSEUM_1F), MAP_NUM(PEWTER_CITY_MUSEUM_1F), MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY)}, + {MAP_GROUP(PEWTER_CITY_GYM), MAP_NUM(PEWTER_CITY_GYM), MAP_GROUP(PEWTER_CITY), MAP_NUM(PEWTER_CITY)}, + {MAP_GROUP(MT_MOON_1F), MAP_NUM(MT_MOON_1F), MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4)}, + {MAP_GROUP(MT_MOON_B1F), MAP_NUM(MT_MOON_B1F), MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4)}, + {MAP_GROUP(CERULEAN_CITY_GYM), MAP_NUM(CERULEAN_CITY_GYM), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)}, + {MAP_GROUP(CERULEAN_CITY_BIKE_SHOP), MAP_NUM(CERULEAN_CITY_BIKE_SHOP), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)}, + {MAP_GROUP(ROUTE25_SEA_COTTAGE), MAP_NUM(ROUTE25_SEA_COTTAGE), MAP_GROUP(ROUTE25), MAP_NUM(ROUTE25)}, + {MAP_GROUP(ROUTE5_POKEMON_DAY_CARE), MAP_NUM(ROUTE5_POKEMON_DAY_CARE), MAP_GROUP(ROUTE5), MAP_NUM(ROUTE5)}, + {MAP_GROUP(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_NORTH_ENTRANCE), MAP_GROUP(ROUTE5), MAP_NUM(ROUTE5)}, + {MAP_GROUP(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_SOUTH_ENTRANCE), MAP_GROUP(ROUTE6), MAP_NUM(ROUTE6)}, + {MAP_GROUP(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_NUM(VERMILION_CITY_POKEMON_FAN_CLUB), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, + {MAP_GROUP(VERMILION_CITY_GYM), MAP_NUM(VERMILION_CITY_GYM), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, + {MAP_GROUP(SSANNE_1F_CORRIDOR), MAP_NUM(SSANNE_1F_CORRIDOR), MAP_GROUP(VERMILION_CITY), MAP_NUM(VERMILION_CITY)}, + {MAP_GROUP(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_NORTH_ENTRANCE), MAP_GROUP(ROUTE2), MAP_NUM(ROUTE2)}, + {MAP_GROUP(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_NUM(DIGLETTS_CAVE_SOUTH_ENTRANCE), MAP_GROUP(ROUTE11), MAP_NUM(ROUTE11)}, + {MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, + {MAP_GROUP(ROCK_TUNNEL_1F), MAP_NUM(ROCK_TUNNEL_1F), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, + {MAP_GROUP(POWER_PLANT), MAP_NUM(POWER_PLANT), MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10)}, + {MAP_GROUP(POKEMON_TOWER_1F), MAP_NUM(POKEMON_TOWER_1F), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, + {MAP_GROUP(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_NUM(LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, + {MAP_GROUP(LAVENDER_TOWN_HOUSE2), MAP_NUM(LAVENDER_TOWN_HOUSE2), MAP_GROUP(LAVENDER_TOWN), MAP_NUM(LAVENDER_TOWN)}, + {MAP_GROUP(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_EAST_ENTRANCE), MAP_GROUP(ROUTE8), MAP_NUM(ROUTE8)}, + {MAP_GROUP(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_NUM(UNDERGROUND_PATH_WEST_ENTRANCE), MAP_GROUP(ROUTE7), MAP_NUM(ROUTE7)}, + {MAP_GROUP(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_NUM(CELADON_CITY_DEPARTMENT_STORE_1F), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, + {MAP_GROUP(CELADON_CITY_CONDOMINIUMS_1F), MAP_NUM(CELADON_CITY_CONDOMINIUMS_1F), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, + {MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, + {MAP_GROUP(CELADON_CITY_GYM), MAP_NUM(CELADON_CITY_GYM), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, + {MAP_GROUP(CELADON_CITY_RESTAURANT), MAP_NUM(CELADON_CITY_RESTAURANT), MAP_GROUP(CELADON_CITY), MAP_NUM(CELADON_CITY)}, + {MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER)}, + {MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), MAP_GROUP(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE), MAP_NUM(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE)}, + {MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, + {MAP_GROUP(FUCHSIA_CITY_BUILDING1), MAP_NUM(FUCHSIA_CITY_BUILDING1), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, + {MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, + {MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, + {MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, + {MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), MAP_GROUP(ROUTE20), MAP_NUM(ROUTE20)}, + {MAP_GROUP(SEAFOAM_ISLANDS_1F), MAP_NUM(SEAFOAM_ISLANDS_1F), MAP_GROUP(ROUTE20), MAP_NUM(ROUTE20)}, + {MAP_GROUP(POKEMON_MANSION_1F), MAP_NUM(POKEMON_MANSION_1F), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, + {MAP_GROUP(CINNABAR_ISLAND_GYM), MAP_NUM(CINNABAR_ISLAND_GYM), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, + {MAP_GROUP(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_NUM(CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE), MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND)}, + {MAP_GROUP(VICTORY_ROAD_1F), MAP_NUM(VICTORY_ROAD_1F), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, + {MAP_GROUP(VICTORY_ROAD_2F), MAP_NUM(VICTORY_ROAD_2F), MAP_GROUP(ROUTE23), MAP_NUM(ROUTE23)}, + {MAP_GROUP(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_NUM(INDIGO_PLATEAU_POKEMON_CENTER_1F), MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR)}, + {MAP_GROUP(CERULEAN_CAVE_1F), MAP_NUM(CERULEAN_CAVE_1F), MAP_GROUP(CERULEAN_CITY), MAP_NUM(CERULEAN_CITY)} +}; + void sub_80CC534(void) { u8 i; @@ -1543,3 +1820,117 @@ void sub_80CC534(void) } } } + +void sub_80CC59C(void) +{ + s16 x, y; + struct { + u8 unk0; + u8 unk1; + } sp0; + u16 r5 = VarGet(VAR_0x404D); + sp0.unk0 = 0; + sp0.unk1 = 0; + if (FlagGet(FLAG_0x808)) + { + if (r5 == 5) + { + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE))) + { + sp0.unk0 = MAPSEC_ROUTE_2; + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE)) + sp0.unk1 = r5; + else + sp0.unk1 = r5 + 1; + sub_8113550(35, (void *)&sp0); + FlagClear(FLAG_0x808); + return; + } + } + else if (r5 == 3) + { + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE22) && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22) || gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE23))) + { + sp0.unk0 = get_mapheader_by_bank_and_number(gUnknown_83F5D58[r5].grp, gUnknown_83F5D58[r5].num)->regionMapSectionId; + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE22)) + sp0.unk1 = r5; + else + sp0.unk1 = r5 + 1; + sub_8113550(35, (void *)&sp0); + FlagClear(FLAG_0x808); + return; + } + } + if (gSaveBlock1Ptr->location.mapGroup == gUnknown_83F5D58[r5].grp2 && gSaveBlock1Ptr->location.mapNum == gUnknown_83F5D58[r5].num2) + { + sp0.unk0 = get_mapheader_by_bank_and_number(gUnknown_83F5D58[r5].grp, gUnknown_83F5D58[r5].num)->regionMapSectionId; + sp0.unk1 = r5; + if (r5 == 22) + { + PlayerGetDestCoords(&x, &y); + if (x != 15 || y != 26) + sp0.unk1++; + } + else if (r5 == 42) + { + PlayerGetDestCoords(&x, &y); + if (x != 67 || y != 15) + sp0.unk1++; + } + sub_8113550(35, (void *)&sp0); + FlagClear(FLAG_0x808); + if (r5 == 35) + { + VarSet(VAR_0x404D, 32); + FlagSet(FLAG_0x808); + } + } + } +} + +extern const char gUnknown_83F5EF0[]; +extern const char gUnknown_83F5F24[]; + +u16 Special_BattleCardAction(void) +{ + switch (gSpecialVar_Result) + { + case 0: + return sub_81445C0(3); + case 1: + return sub_81445C0(4); + case 2: + return sub_81445C0(0); + case 3: + return sub_81445C0(1); + case 4: + return sub_81445C0(2); + default: + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c", 3873); + return 0; + } +} + +const u16 gUnknown_83F5F26[] = { + MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F, + MAP_PEWTER_CITY_POKEMON_CENTER_1F, + MAP_CERULEAN_CITY_POKEMON_CENTER_1F, + MAP_LAVENDER_TOWN_POKEMON_CENTER_1F, + MAP_VERMILION_CITY_POKEMON_CENTER_1F, + MAP_CELADON_CITY_POKEMON_CENTER_1F, + MAP_FUCHSIA_CITY_POKEMON_CENTER_1F, + MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F, + MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F, + MAP_SAFFRON_CITY_POKEMON_CENTER_1F, + MAP_ROUTE4_POKEMON_CENTER_1F, + MAP_ROUTE10_POKEMON_CENTER_1F, + MAP_ONE_ISLAND_POKEMON_CENTER_1F, + MAP_TWO_ISLAND_POKEMON_CENTER_1F, + MAP_THREE_ISLAND_POKEMON_CENTER_1F, + MAP_FOUR_ISLAND_POKEMON_CENTER_1F, + MAP_FIVE_ISLAND_POKEMON_CENTER_1F, + MAP_SEVEN_ISLAND_POKEMON_CENTER_1F, + MAP_SIX_ISLAND_POKEMON_CENTER_1F, + MAP_UNKNOWN_MAP_00_04, + MAP_UNDEFINED +}; |