through sub_80C3878

This commit is contained in:
PikalaxALT
2020-01-07 10:19:21 -05:00
parent d35a54052f
commit 5249e584f7
2 changed files with 126 additions and 515 deletions
-515
View File
@@ -5,521 +5,6 @@
.text
thumb_func_start sub_80C35DC
sub_80C35DC: @ 80C35DC
push {lr}
lsls r0, 24
lsrs r0, 24
subs r0, 0x58
cmp r0, 0x6D
bls _080C35EA
b _080C3870
_080C35EA:
lsls r0, 2
ldr r1, _080C35F4 @ =_080C35F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080C35F4: .4byte _080C35F8
.align 2, 0
_080C35F8:
.4byte _080C37B0
.4byte _080C37B6
.4byte _080C37C0
.4byte _080C37C8
.4byte _080C37D0
.4byte _080C37D8
.4byte _080C37E0
.4byte _080C37E8
.4byte _080C37F0
.4byte _080C37F8
.4byte _080C3800
.4byte _080C3840
.4byte _080C3858
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3808
.4byte _080C3810
.4byte _080C3818
.4byte _080C3820
.4byte _080C3828
.4byte _080C3830
.4byte _080C3836
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C3870
.4byte _080C384C
_080C37B0:
movs r0, 0x89
lsls r0, 4
b _080C385A
_080C37B6:
ldr r0, _080C37BC @ =0x00000891
b _080C385A
.align 2, 0
_080C37BC: .4byte 0x00000891
_080C37C0:
ldr r0, _080C37C4 @ =0x00000892
b _080C385A
.align 2, 0
_080C37C4: .4byte 0x00000892
_080C37C8:
ldr r0, _080C37CC @ =0x00000893
b _080C385A
.align 2, 0
_080C37CC: .4byte 0x00000893
_080C37D0:
ldr r0, _080C37D4 @ =0x00000894
b _080C385A
.align 2, 0
_080C37D4: .4byte 0x00000894
_080C37D8:
ldr r0, _080C37DC @ =0x00000895
b _080C385A
.align 2, 0
_080C37DC: .4byte 0x00000895
_080C37E0:
ldr r0, _080C37E4 @ =0x00000896
b _080C385A
.align 2, 0
_080C37E4: .4byte 0x00000896
_080C37E8:
ldr r0, _080C37EC @ =0x00000897
b _080C385A
.align 2, 0
_080C37EC: .4byte 0x00000897
_080C37F0:
ldr r0, _080C37F4 @ =0x00000898
b _080C385A
.align 2, 0
_080C37F4: .4byte 0x00000898
_080C37F8:
ldr r0, _080C37FC @ =0x00000899
b _080C385A
.align 2, 0
_080C37FC: .4byte 0x00000899
_080C3800:
ldr r0, _080C3804 @ =0x0000089a
b _080C385A
.align 2, 0
_080C3804: .4byte 0x0000089a
_080C3808:
ldr r0, _080C380C @ =0x0000089b
b _080C385A
.align 2, 0
_080C380C: .4byte 0x0000089b
_080C3810:
ldr r0, _080C3814 @ =0x0000089c
b _080C385A
.align 2, 0
_080C3814: .4byte 0x0000089c
_080C3818:
ldr r0, _080C381C @ =0x0000089d
b _080C385A
.align 2, 0
_080C381C: .4byte 0x0000089d
_080C3820:
ldr r0, _080C3824 @ =0x0000089e
b _080C385A
.align 2, 0
_080C3824: .4byte 0x0000089e
_080C3828:
ldr r0, _080C382C @ =0x0000089f
b _080C385A
.align 2, 0
_080C382C: .4byte 0x0000089f
_080C3830:
movs r0, 0x8A
lsls r0, 4
b _080C385A
_080C3836:
ldr r0, _080C383C @ =0x000008a1
b _080C385A
.align 2, 0
_080C383C: .4byte 0x000008a1
_080C3840:
movs r0, 0x3
bl sub_80C0E04
lsls r0, 24
cmp r0, 0
bne _080C3850
_080C384C:
movs r0, 0
b _080C3872
_080C3850:
ldr r0, _080C3854 @ =0x000008a2
b _080C385A
.align 2, 0
_080C3854: .4byte 0x000008a2
_080C3858:
ldr r0, _080C386C @ =0x000008a3
_080C385A:
bl FlagGet
lsls r0, 24
movs r1, 0x3
cmp r0, 0
beq _080C3868
movs r1, 0x2
_080C3868:
adds r0, r1, 0
b _080C3872
.align 2, 0
_080C386C: .4byte 0x000008a3
_080C3870:
movs r0, 0x1
_080C3872:
pop {r1}
bx r1
thumb_func_end sub_80C35DC
thumb_func_start sub_80C3878
sub_80C3878: @ 80C3878
push {lr}
lsls r0, 24
lsrs r0, 24
subs r0, 0x7E
cmp r0, 0x47
bls _080C3886
b _080C3AC0
_080C3886:
lsls r0, 2
ldr r1, _080C3890 @ =_080C3894
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080C3890: .4byte _080C3894
.align 2, 0
_080C3894:
.4byte _080C39B8
.4byte _080C39C0
.4byte _080C39C8
.4byte _080C39D0
.4byte _080C39D8
.4byte _080C39E0
.4byte _080C39E8
.4byte _080C39F0
.4byte _080C39F8
.4byte _080C3A00
.4byte _080C3A08
.4byte _080C3A10
.4byte _080C3A18
.4byte _080C3A1E
.4byte _080C3A28
.4byte _080C3A30
.4byte _080C3A38
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3A40
.4byte _080C3A48
.4byte _080C3A50
.4byte _080C3A58
.4byte _080C3A60
.4byte _080C3A68
.4byte _080C3A70
.4byte _080C3A78
.4byte _080C3A80
.4byte _080C3A88
.4byte _080C3A90
.4byte _080C3A98
.4byte _080C3A9E
.4byte _080C3AA8
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C3AC0
.4byte _080C39B4
_080C39B4:
movs r0, 0
b _080C3AC2
_080C39B8:
ldr r0, _080C39BC @ =0x000008a4
b _080C3AAA
.align 2, 0
_080C39BC: .4byte 0x000008a4
_080C39C0:
ldr r0, _080C39C4 @ =0x000008a5
b _080C3AAA
.align 2, 0
_080C39C4: .4byte 0x000008a5
_080C39C8:
ldr r0, _080C39CC @ =0x000008a6
b _080C3AAA
.align 2, 0
_080C39CC: .4byte 0x000008a6
_080C39D0:
ldr r0, _080C39D4 @ =0x000008a7
b _080C3AAA
.align 2, 0
_080C39D4: .4byte 0x000008a7
_080C39D8:
ldr r0, _080C39DC @ =0x000008a8
b _080C3AAA
.align 2, 0
_080C39DC: .4byte 0x000008a8
_080C39E0:
ldr r0, _080C39E4 @ =0x000008a9
b _080C3AAA
.align 2, 0
_080C39E4: .4byte 0x000008a9
_080C39E8:
ldr r0, _080C39EC @ =0x000008aa
b _080C3AAA
.align 2, 0
_080C39EC: .4byte 0x000008aa
_080C39F0:
ldr r0, _080C39F4 @ =0x000008ab
b _080C3AAA
.align 2, 0
_080C39F4: .4byte 0x000008ab
_080C39F8:
ldr r0, _080C39FC @ =0x000008ac
b _080C3AAA
.align 2, 0
_080C39FC: .4byte 0x000008ac
_080C3A00:
ldr r0, _080C3A04 @ =0x000008ad
b _080C3AAA
.align 2, 0
_080C3A04: .4byte 0x000008ad
_080C3A08:
ldr r0, _080C3A0C @ =0x000008ae
b _080C3AAA
.align 2, 0
_080C3A0C: .4byte 0x000008ae
_080C3A10:
ldr r0, _080C3A14 @ =0x000008af
b _080C3AAA
.align 2, 0
_080C3A14: .4byte 0x000008af
_080C3A18:
movs r0, 0x8B
lsls r0, 4
b _080C3AAA
_080C3A1E:
ldr r0, _080C3A24 @ =0x000008b1
b _080C3AAA
.align 2, 0
_080C3A24: .4byte 0x000008b1
_080C3A28:
ldr r0, _080C3A2C @ =0x000008b2
b _080C3AAA
.align 2, 0
_080C3A2C: .4byte 0x000008b2
_080C3A30:
ldr r0, _080C3A34 @ =0x000008b3
b _080C3AAA
.align 2, 0
_080C3A34: .4byte 0x000008b3
_080C3A38:
ldr r0, _080C3A3C @ =0x000008b4
b _080C3AAA
.align 2, 0
_080C3A3C: .4byte 0x000008b4
_080C3A40:
ldr r0, _080C3A44 @ =0x000008b5
b _080C3AAA
.align 2, 0
_080C3A44: .4byte 0x000008b5
_080C3A48:
ldr r0, _080C3A4C @ =0x000008b6
b _080C3AAA
.align 2, 0
_080C3A4C: .4byte 0x000008b6
_080C3A50:
ldr r0, _080C3A54 @ =0x000008b7
b _080C3AAA
.align 2, 0
_080C3A54: .4byte 0x000008b7
_080C3A58:
ldr r0, _080C3A5C @ =0x000008b8
b _080C3AAA
.align 2, 0
_080C3A5C: .4byte 0x000008b8
_080C3A60:
ldr r0, _080C3A64 @ =0x000008b9
b _080C3AAA
.align 2, 0
_080C3A64: .4byte 0x000008b9
_080C3A68:
ldr r0, _080C3A6C @ =0x000008ba
b _080C3AAA
.align 2, 0
_080C3A6C: .4byte 0x000008ba
_080C3A70:
ldr r0, _080C3A74 @ =0x000008bb
b _080C3AAA
.align 2, 0
_080C3A74: .4byte 0x000008bb
_080C3A78:
ldr r0, _080C3A7C @ =0x000008bc
b _080C3AAA
.align 2, 0
_080C3A7C: .4byte 0x000008bc
_080C3A80:
ldr r0, _080C3A84 @ =0x000008bd
b _080C3AAA
.align 2, 0
_080C3A84: .4byte 0x000008bd
_080C3A88:
ldr r0, _080C3A8C @ =0x000008be
b _080C3AAA
.align 2, 0
_080C3A8C: .4byte 0x000008be
_080C3A90:
ldr r0, _080C3A94 @ =0x000008bf
b _080C3AAA
.align 2, 0
_080C3A94: .4byte 0x000008bf
_080C3A98:
movs r0, 0x8C
lsls r0, 4
b _080C3AAA
_080C3A9E:
ldr r0, _080C3AA4 @ =0x000008c1
b _080C3AAA
.align 2, 0
_080C3AA4: .4byte 0x000008c1
_080C3AA8:
ldr r0, _080C3ABC @ =0x000008c2
_080C3AAA:
bl FlagGet
lsls r0, 24
movs r1, 0x3
cmp r0, 0
beq _080C3AB8
movs r1, 0x2
_080C3AB8:
adds r0, r1, 0
b _080C3AC2
.align 2, 0
_080C3ABC: .4byte 0x000008c2
_080C3AC0:
movs r0, 0x1
_080C3AC2:
pop {r1}
bx r1
thumb_func_end sub_80C3878
thumb_func_start sub_80C3AC8
sub_80C3AC8: @ 80C3AC8
push {lr}
+126
View File
@@ -2314,3 +2314,129 @@ u16 sub_80C3580(void)
ret = MAPSEC_NONE;
return ret;
}
u8 sub_80C35DC(u8 mapsec)
{
switch (mapsec)
{
case MAPSEC_PALLET_TOWN:
return FlagGet(FLAG_WORLD_MAP_PALLET_TOWN) ? 2 : 3;
case MAPSEC_VIRIDIAN_CITY:
return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_CITY) ? 2 : 3;
case MAPSEC_PEWTER_CITY:
return FlagGet(FLAG_WORLD_MAP_PEWTER_CITY) ? 2 : 3;
case MAPSEC_CERULEAN_CITY:
return FlagGet(FLAG_WORLD_MAP_CERULEAN_CITY) ? 2 : 3;
case MAPSEC_LAVENDER_TOWN:
return FlagGet(FLAG_WORLD_MAP_LAVENDER_TOWN) ? 2 : 3;
case MAPSEC_VERMILION_CITY:
return FlagGet(FLAG_WORLD_MAP_VERMILION_CITY) ? 2 : 3;
case MAPSEC_CELADON_CITY:
return FlagGet(FLAG_WORLD_MAP_CELADON_CITY) ? 2 : 3;
case MAPSEC_FUCHSIA_CITY:
return FlagGet(FLAG_WORLD_MAP_FUCHSIA_CITY) ? 2 : 3;
case MAPSEC_CINNABAR_ISLAND:
return FlagGet(FLAG_WORLD_MAP_CINNABAR_ISLAND) ? 2 : 3;
case MAPSEC_INDIGO_PLATEAU:
return FlagGet(FLAG_WORLD_MAP_INDIGO_PLATEAU_EXTERIOR) ? 2 : 3;
case MAPSEC_SAFFRON_CITY:
return FlagGet(FLAG_WORLD_MAP_SAFFRON_CITY) ? 2 : 3;
case MAPSEC_ONE_ISLAND:
return FlagGet(FLAG_WORLD_MAP_ONE_ISLAND) ? 2 : 3;
case MAPSEC_TWO_ISLAND:
return FlagGet(FLAG_WORLD_MAP_TWO_ISLAND) ? 2 : 3;
case MAPSEC_THREE_ISLAND:
return FlagGet(FLAG_WORLD_MAP_THREE_ISLAND) ? 2 : 3;
case MAPSEC_FOUR_ISLAND:
return FlagGet(FLAG_WORLD_MAP_FOUR_ISLAND) ? 2 : 3;
case MAPSEC_FIVE_ISLAND:
return FlagGet(FLAG_WORLD_MAP_FIVE_ISLAND) ? 2 : 3;
case MAPSEC_SEVEN_ISLAND:
return FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND) ? 2 : 3;
case MAPSEC_SIX_ISLAND:
return FlagGet(FLAG_WORLD_MAP_SIX_ISLAND) ? 2 : 3;
case MAPSEC_ROUTE_4_FLYDUP:
if (!sub_80C0E04(3))
return 0;
return FlagGet(FLAG_WORLD_MAP_ROUTE4_POKEMON_CENTER_1F) ? 2 : 3;
case MAPSEC_ROUTE_10_FLYDUP:
return FlagGet(FLAG_WORLD_MAP_ROUTE10_POKEMON_CENTER_1F) ? 2 : 3;
case MAPSEC_NONE:
return 0;
default:
return 1;
}
}
u8 sub_80C3878(u8 mapsec)
{
switch (mapsec)
{
case MAPSEC_NONE:
return 0;
case MAPSEC_VIRIDIAN_FOREST:
return FlagGet(FLAG_WORLD_MAP_VIRIDIAN_FOREST) ? 2 : 3;
case MAPSEC_MT_MOON:
return FlagGet(FLAG_WORLD_MAP_MT_MOON_1F) ? 2 : 3;
case MAPSEC_S_S_ANNE:
return FlagGet(FLAG_WORLD_MAP_SSANNE_EXTERIOR) ? 2 : 3;
case MAPSEC_UNDERGROUND_PATH:
return FlagGet(FLAG_WORLD_MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL) ? 2 : 3;
case MAPSEC_UNDERGROUND_PATH_2:
return FlagGet(FLAG_WORLD_MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL) ? 2 : 3;
case MAPSEC_DIGLETTS_CAVE:
return FlagGet(FLAG_WORLD_MAP_DIGLETTS_CAVE_B1F) ? 2 : 3;
case MAPSEC_KANTO_VICTORY_ROAD:
return FlagGet(FLAG_WORLD_MAP_VICTORY_ROAD_1F) ? 2 : 3;
case MAPSEC_ROCKET_HIDEOUT:
return FlagGet(FLAG_WORLD_MAP_ROCKET_HIDEOUT_B1F) ? 2 : 3;
case MAPSEC_SILPH_CO:
return FlagGet(FLAG_WORLD_MAP_SILPH_CO_1F) ? 2 : 3;
case MAPSEC_POKEMON_MANSION:
return FlagGet(FLAG_WORLD_MAP_POKEMON_MANSION_1F) ? 2 : 3;
case MAPSEC_KANTO_SAFARI_ZONE:
return FlagGet(FLAG_WORLD_MAP_SAFARI_ZONE_CENTER) ? 2 : 3;
case MAPSEC_POKEMON_LEAGUE:
return FlagGet(FLAG_WORLD_MAP_POKEMON_LEAGUE_LORELEIS_ROOM) ? 2 : 3;
case MAPSEC_ROCK_TUNNEL:
return FlagGet(FLAG_WORLD_MAP_ROCK_TUNNEL_1F) ? 2 : 3;
case MAPSEC_SEAFOAM_ISLANDS:
return FlagGet(FLAG_WORLD_MAP_SEAFOAM_ISLANDS_1F) ? 2 : 3;
case MAPSEC_POKEMON_TOWER:
return FlagGet(FLAG_WORLD_MAP_POKEMON_TOWER_1F) ? 2 : 3;
case MAPSEC_CERULEAN_CAVE:
return FlagGet(FLAG_WORLD_MAP_CERULEAN_CAVE_1F) ? 2 : 3;
case MAPSEC_POWER_PLANT:
return FlagGet(FLAG_WORLD_MAP_POWER_PLANT) ? 2 : 3;
case MAPSEC_NAVEL_ROCK:
return FlagGet(FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR) ? 2 : 3;
case MAPSEC_MT_EMBER:
return FlagGet(FLAG_WORLD_MAP_MT_EMBER_EXTERIOR) ? 2 : 3;
case MAPSEC_BERRY_FOREST:
return FlagGet(FLAG_WORLD_MAP_THREE_ISLAND_BERRY_FOREST) ? 2 : 3;
case MAPSEC_ICEFALL_CAVE:
return FlagGet(FLAG_WORLD_MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE) ? 2 : 3;
case MAPSEC_ROCKET_WAREHOUSE:
return FlagGet(FLAG_WORLD_MAP_FIVE_ISLAND_ROCKET_WAREHOUSE) ? 2 : 3;
case MAPSEC_TRAINER_TOWER_2:
return FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND_TRAINER_TOWER_LOBBY) ? 2 : 3;
case MAPSEC_DOTTED_HOLE:
return FlagGet(FLAG_WORLD_MAP_SIX_ISLAND_DOTTED_HOLE_1F) ? 2 : 3;
case MAPSEC_LOST_CAVE:
return FlagGet(FLAG_WORLD_MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE) ? 2 : 3;
case MAPSEC_PATTERN_BUSH:
return FlagGet(FLAG_WORLD_MAP_SIX_ISLAND_PATTERN_BUSH) ? 2 : 3;
case MAPSEC_ALTERING_CAVE:
return FlagGet(FLAG_WORLD_MAP_SIX_ISLAND_ALTERING_CAVE) ? 2 : 3;
case MAPSEC_TANOBY_CHAMBERS:
return FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER) ? 2 : 3;
case MAPSEC_THREE_ISLE_PATH:
return FlagGet(FLAG_WORLD_MAP_THREE_ISLAND_DUNSPARCE_TUNNEL) ? 2 : 3;
case MAPSEC_TANOBY_KEY:
return FlagGet(FLAG_WORLD_MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY) ? 2 : 3;
case MAPSEC_BIRTH_ISLAND:
return FlagGet(FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR) ? 2 : 3;
default:
return 1;
}
}