through sub_8055B38

This commit is contained in:
PikalaxALT
2020-03-27 18:08:28 -04:00
parent a03906a1a3
commit fe9c3d3b58
17 changed files with 264 additions and 524 deletions
+20 -502
View File
@@ -5,490 +5,8 @@
.text
thumb_func_start GetMapConnection
GetMapConnection: @ 805578C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080557A0 @ =gMapHeader
ldr r0, [r0, 0xC]
ldr r3, [r0]
ldr r1, [r0, 0x4]
cmp r1, 0
bne _080557A8
b _080557BC
.align 2, 0
_080557A0: .4byte gMapHeader
_080557A4:
adds r0, r1, 0
b _080557BE
_080557A8:
movs r2, 0
cmp r2, r3
bge _080557BC
_080557AE:
ldrb r0, [r1]
cmp r0, r4
beq _080557A4
adds r2, 0x1
adds r1, 0xC
cmp r2, r3
blt _080557AE
_080557BC:
movs r0, 0
_080557BE:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetMapConnection
thumb_func_start sub_80557C4
sub_80557C4: @ 80557C4
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 16
lsrs r5, r2, 16
bl GetMapConnection
adds r1, r0, 0
cmp r1, 0
beq _080557FC
movs r0, 0x8
ldrsb r0, [r1, r0]
ldrb r1, [r1, 0x9]
lsls r1, 24
asrs r1, 24
movs r2, 0x1
negs r2, r2
lsls r3, r4, 24
asrs r3, 24
lsls r4, r5, 24
asrs r4, 24
str r4, [sp]
bl SetWarpDestination
b _08055818
_080557FC:
bl mapheader_run_script_with_tag_x6
ldr r0, _08055810 @ =gFixedDiveWarp
bl IsDummyWarp
cmp r0, 0
beq _08055814
movs r0, 0
b _0805581A
.align 2, 0
_08055810: .4byte gFixedDiveWarp
_08055814:
bl SetWarpDestinationToDiveWarp
_08055818:
movs r0, 0x1
_0805581A:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80557C4
thumb_func_start SetDiveWarpEmerge
SetDiveWarpEmerge: @ 8055824
push {lr}
adds r3, r0, 0
adds r2, r1, 0
lsls r3, 16
lsrs r3, 16
lsls r2, 16
lsrs r2, 16
movs r0, 0x6
adds r1, r3, 0
bl sub_80557C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end SetDiveWarpEmerge
thumb_func_start SetDiveWarpDive
SetDiveWarpDive: @ 8055844
push {lr}
adds r3, r0, 0
adds r2, r1, 0
lsls r3, 16
lsrs r3, 16
lsls r2, 16
lsrs r2, 16
movs r0, 0x5
adds r1, r3, 0
bl sub_80557C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end SetDiveWarpDive
thumb_func_start sub_8055864
sub_8055864: @ 8055864
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsls r1, 24
lsrs r5, r0, 24
asrs r0, 24
lsrs r4, r1, 24
asrs r1, 24
movs r3, 0x1
negs r3, r3
str r3, [sp]
adds r2, r3, 0
bl SetWarpDestination
bl sub_8055E94
bl ApplyCurrentWarp
bl LoadCurrentMapData
bl sub_8054F68
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
bl RestartWildEncounterImmunitySteps
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl Overworld_ClearSavedMusic
bl mapheader_run_script_with_tag_x3
bl TryRegenerateRenewableHiddenItems
bl InitMap
ldr r4, _0805591C @ =gMapHeader
ldr r0, [r4]
bl copy_map_tileset2_to_vram_2
ldr r0, [r4]
bl apply_map_tileset2_palette
movs r4, 0x7
_080558D4:
lsls r0, r4, 24
lsrs r0, 24
bl ApplyWeatherGammaShiftToPal
adds r4, 0x1
cmp r4, 0xC
ble _080558D4
bl InitSecondaryTilesetAnimation
bl UpdateLocationHistoryForRoamer
bl RoamerMove
bl sub_8110920
bl DoCurrentWeather
bl ResetFieldTasksArgs
bl mapheader_run_script_with_tag_x5
bl GetLastUsedWarpMapSectionId
ldr r1, _0805591C @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x14]
cmp r0, r1
beq _08055914
movs r0, 0x1
bl CreateMapNamePopupIfNotAlreadyRunning
_08055914:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805591C: .4byte gMapHeader
thumb_func_end sub_8055864
thumb_func_start sub_8055920
sub_8055920: @ 8055920
push {r4,lr}
bl LoadCurrentMapData
bl sub_8054F68
ldr r0, _0805599C @ =gMapHeader
ldrb r0, [r0, 0x17]
bl IsMapTypeOutdoors
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
bl RestartWildEncounterImmunitySteps
ldr r0, _080559A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
ldrsb r0, [r1, r0]
lsls r0, 16
lsrs r0, 16
ldrb r1, [r1, 0x5]
lsls r1, 24
asrs r1, 24
lsls r1, 16
lsrs r1, 16
bl sub_810C578
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
cmp r4, 0
beq _08055974
ldr r0, _080559A4 @ =0x00000806
bl FlagClear
_08055974:
bl sub_8055CB8
bl Overworld_ClearSavedMusic
bl mapheader_run_script_with_tag_x3
bl TryRegenerateRenewableHiddenItems
bl UpdateLocationHistoryForRoamer
bl RoamerMoveToOtherLocationSet
bl sub_8110920
bl InitMap
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805599C: .4byte gMapHeader
_080559A0: .4byte gSaveBlock1Ptr
_080559A4: .4byte 0x00000806
thumb_func_end sub_8055920
thumb_func_start sub_80559A8
sub_80559A8: @ 80559A8
push {lr}
bl LoadCurrentMapData
bl sub_8054F68
ldr r0, _080559E0 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl IsMapTypeOutdoors
bl TrySetMapSaveWarpStatus
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sub_8110920
bl sub_8111708
bl LoadSaveblockMapHeader
bl InitMap
pop {r0}
bx r0
.align 2, 0
_080559E0: .4byte gMapHeader
thumb_func_end sub_80559A8
thumb_func_start ResetInitialPlayerAvatarState
ResetInitialPlayerAvatarState: @ 80559E4
ldr r0, _080559F4 @ =gUnknown_2031DD4
movs r2, 0
movs r1, 0x1
strb r1, [r0, 0x1]
strb r1, [r0]
strb r2, [r0, 0x2]
bx lr
.align 2, 0
_080559F4: .4byte gUnknown_2031DD4
thumb_func_end ResetInitialPlayerAvatarState
thumb_func_start sub_80559F8
sub_80559F8: @ 80559F8
ldr r1, _08055A04 @ =gUnknown_2031DD4
strb r0, [r1, 0x1]
movs r0, 0x1
strb r0, [r1]
strb r0, [r1, 0x2]
bx lr
.align 2, 0
_08055A04: .4byte gUnknown_2031DD4
thumb_func_end sub_80559F8
thumb_func_start StoreInitialPlayerAvatarState
StoreInitialPlayerAvatarState: @ 8055A08
push {r4,lr}
bl GetPlayerFacingDirection
ldr r4, _08055A24 @ =gUnknown_2031DD4
strb r0, [r4, 0x1]
movs r0, 0x2
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A28
movs r0, 0x2
b _08055A5A
.align 2, 0
_08055A24: .4byte gUnknown_2031DD4
_08055A28:
movs r0, 0x4
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A38
movs r0, 0x4
b _08055A5A
_08055A38:
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A48
movs r0, 0x8
b _08055A5A
_08055A48:
movs r0, 0x10
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A58
movs r0, 0x10
b _08055A5A
_08055A58:
movs r0, 0x1
_08055A5A:
strb r0, [r4]
ldr r1, _08055A68 @ =gUnknown_2031DD4
movs r0, 0
strb r0, [r1, 0x2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08055A68: .4byte gUnknown_2031DD4
thumb_func_end StoreInitialPlayerAvatarState
thumb_func_start sub_8055A6C
sub_8055A6C: @ 8055A6C
push {r4-r7,lr}
bl GetCurrentMapType
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
bl sub_8055C74
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r6, _08055ABC @ =gUnknown_2031DD4
adds r0, r6, 0
adds r1, r4, 0
adds r2, r5, 0
bl sub_8055ACC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _08055AC0 @ =0xffffff00
ands r7, r0
orrs r7, r1
adds r0, r6, 0
adds r2, r4, 0
adds r3, r5, 0
bl sub_8055B74
lsls r0, 24
lsrs r0, 16
ldr r1, _08055AC4 @ =0xffff00ff
ands r7, r1
orrs r7, r0
ldr r0, _08055AC8 @ =0xff00ffff
ands r7, r0
str r7, [r6]
adds r0, r6, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08055ABC: .4byte gUnknown_2031DD4
_08055AC0: .4byte 0xffffff00
_08055AC4: .4byte 0xffff00ff
_08055AC8: .4byte 0xff00ffff
thumb_func_end sub_8055A6C
thumb_func_start sub_8055ACC
sub_8055ACC: @ 8055ACC
push {r4-r6,lr}
adds r6, r0, 0
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 24
lsrs r4, r2, 24
cmp r4, 0x8
beq _08055AE8
ldr r0, _08055AF0 @ =0x00000802
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _08055B30
_08055AE8:
cmp r4, 0x5
bne _08055AF4
movs r0, 0x10
b _08055B32
.align 2, 0
_08055AF0: .4byte 0x00000802
_08055AF4:
adds r0, r5, 0
bl sub_8055B38
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055B30
lsls r0, r5, 24
lsrs r0, 24
bl MetatileBehavior_IsSurfable
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055B16
movs r0, 0x8
b _08055B32
_08055B16:
bl sub_8055C9C
cmp r0, 0x1
bne _08055B30
ldrb r0, [r6]
cmp r0, 0x2
bne _08055B28
movs r0, 0x2
b _08055B32
_08055B28:
cmp r0, 0x4
bne _08055B30
movs r0, 0x4
b _08055B32
_08055B30:
movs r0, 0x1
_08055B32:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8055ACC
thumb_func_start sub_8055B38
sub_8055B38: @ 8055B38
push {lr}
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_IsSurfable
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055B6C
ldr r0, _08055B60 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08055B64 @ =0x00005601
cmp r1, r0
beq _08055B5C
ldr r0, _08055B68 @ =0x00005701
cmp r1, r0
bne _08055B6C
_08055B5C:
movs r0, 0x1
b _08055B6E
.align 2, 0
_08055B60: .4byte gSaveBlock1Ptr
_08055B64: .4byte 0x00005601
_08055B68: .4byte 0x00005701
_08055B6C:
movs r0, 0
_08055B6E:
pop {r1}
bx r1
thumb_func_end sub_8055B38
thumb_func_start sub_8055B74
sub_8055B74: @ 8055B74
thumb_func_start GetAdjustedInitialDirection
GetAdjustedInitialDirection: @ 8055B74
push {r4-r7,lr}
adds r6, r0, 0
lsls r1, 24
@@ -616,10 +134,10 @@ _08055C6E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8055B74
thumb_func_end GetAdjustedInitialDirection
thumb_func_start sub_8055C74
sub_8055C74: @ 8055C74
thumb_func_start GetCenterScreenMetatileBehavior
GetCenterScreenMetatileBehavior: @ 8055C74
push {lr}
ldr r0, _08055C98 @ =gSaveBlock1Ptr
ldr r1, [r0]
@@ -638,10 +156,10 @@ sub_8055C74: @ 8055C74
bx r1
.align 2, 0
_08055C98: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055C74
thumb_func_end GetCenterScreenMetatileBehavior
thumb_func_start sub_8055C9C
sub_8055C9C: @ 8055C9C
thumb_func_start Overworld_IsBikingAllowed
Overworld_IsBikingAllowed: @ 8055C9C
push {lr}
ldr r0, _08055CAC @ =gMapHeader
ldrb r0, [r0, 0x18]
@@ -656,10 +174,10 @@ _08055CB0:
_08055CB2:
pop {r1}
bx r1
thumb_func_end sub_8055C9C
thumb_func_end Overworld_IsBikingAllowed
thumb_func_start sub_8055CB8
sub_8055CB8: @ 8055CB8
thumb_func_start SetDefaultFlashLevel
SetDefaultFlashLevel: @ 8055CB8
push {lr}
ldr r0, _08055CC8 @ =gMapHeader
ldrb r1, [r0, 0x15]
@@ -699,7 +217,7 @@ _08055CFA:
.align 2, 0
_08055D00: .4byte gSaveBlock1Ptr
_08055D04: .4byte gMaxFlashLevel
thumb_func_end sub_8055CB8
thumb_func_end SetDefaultFlashLevel
thumb_func_start Overworld_SetFlashLevel
Overworld_SetFlashLevel: @ 8055D08
@@ -1248,8 +766,8 @@ _08056106:
bx r0
thumb_func_end sub_8056078
thumb_func_start sub_805610C
sub_805610C: @ 805610C
thumb_func_start ChooseAmbientCrySpecies
ChooseAmbientCrySpecies: @ 805610C
push {lr}
ldr r0, _0805611C @ =gUnknown_2031DDC
bl GetLocalWildMon
@@ -1260,7 +778,7 @@ sub_805610C: @ 805610C
.align 2, 0
_0805611C: .4byte gUnknown_2031DDC
_08056120: .4byte gUnknown_2031DDA
thumb_func_end sub_805610C
thumb_func_end ChooseAmbientCrySpecies
thumb_func_start sub_8056124
sub_8056124: @ 8056124
@@ -2442,7 +1960,7 @@ _08056AB0:
b _08056B62
_08056ABE:
movs r0, 0x1
bl sub_8055920
bl mli0_load_map
b _08056B62
_08056AC6:
movs r0, 0x1
@@ -2565,7 +2083,7 @@ _08056BD0:
bl InitOverworldBgs
bl FieldClearVBlankHBlankCallbacks
adds r0, r5, 0
bl sub_8055920
bl mli0_load_map
b _08056CCA
_08056BE0:
bl sub_8111F14
@@ -3132,7 +2650,7 @@ mli4_mapscripts_and_other: @ 805709C
mov r0, sp
adds r1, r4, 0
bl GetCameraFocusCoords
bl sub_8055A6C
bl GetInitialPlayerAvatarState
adds r5, r0, 0
mov r0, sp
movs r1, 0
@@ -3474,7 +2992,7 @@ _0805735C:
movs r0, 0
strb r0, [r1]
movs r0, 0
bl sub_8055920
bl mli0_load_map
b _08057412
.align 2, 0
_0805738C: .4byte gUnknown_2031DE0
@@ -3833,7 +3351,7 @@ _0805766C:
_08057690:
bl sub_8056354
movs r0, 0
bl sub_8055920
bl mli0_load_map
b _0805772A
_0805769C:
bl ScanlineEffect_Clear
+1 -1
View File
@@ -1319,7 +1319,7 @@
#define FLAG_SYS_SAFARI_MODE (SYS_FLAGS + 0x0)
#define FLAG_SYS_VS_SEEKER_CHARGING (SYS_FLAGS + 0x1)
#define FLAG_SYS_UNK_802 (SYS_FLAGS + 0x2)
#define FLAG_SYS_CRUISE_MODE (SYS_FLAGS + 0x2)
#define FLAG_SYS_WHITE_FLUTE_ACTIVE (SYS_FLAGS + 0x3)
#define FLAG_SYS_BLACK_FLUTE_ACTIVE (SYS_FLAGS + 0x4)
#define FLAG_SYS_USE_STRENGTH (SYS_FLAGS + 0x5)
+1
View File
@@ -58,5 +58,6 @@ void ResetMysteryEventFlags(void);
void ResetMysteryEventVars(void);
bool32 IsNationalPokedexEnabled(void);
void sub_806E190(void);
void ClearTempFieldEventData(void);
#endif // GUARD_EVENT_DATA_H
+2
View File
@@ -31,5 +31,7 @@ void CutMoveOpenDottedHoleDoor(void);
void RunMassageCooldownStepCounter(void);
void IncrementResortGorgeousStepCounter(void);
void IncrementBirthIslandRockStepCount(void);
void ResetCyclingRoadChallengeData(void);
void ResetFieldTasksArgs(void);
#endif // GUARD_FIELD_SPECIALS_H
+1
View File
@@ -143,6 +143,7 @@ void sub_807AC98(void);
void SetRainStrengthFromSoundEffect(u16 soundEffect);
void sub_807A790(s8 gammaIndex);
void sub_807A7C4(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
extern const u16 gCloudsWeatherPalette[];
extern const u16 gSandstormWeatherPalette[];
+5 -2
View File
@@ -34,7 +34,10 @@ u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit);
u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr);
void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2);
bool8 CameraMove(s32 x, s32 y);
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout);
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout);
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const * mapLayout);
void apply_map_tileset1_tileset2_palette(struct MapLayout const * mapLayout);
void InitMap(void);
void copy_map_tileset2_to_vram_2(const struct MapLayout * mapLayout);
void apply_map_tileset2_palette(const struct MapLayout * mapLayout);
#endif //GUARD_FIELDMAP_H
+2 -2
View File
@@ -141,7 +141,7 @@ extern u8 gUnknown_2036E28;
extern bool8 (* gFieldCallback2)(void);
void SetLastHealLocationWarp(u8 healLocaionId);
void sub_8055864(u8 mapGroup, u8 mapNum);
void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum);
void CB2_Overworld(void);
void CB2_OverworldBasic(void);
void CB2_NewGame(void);
@@ -153,7 +153,7 @@ void Overworld_FadeOutMapMusic(void);
void CB2_LoadMap(void);
bool8 BGMusicStopped(void);
bool8 IsMapTypeIndoors(u8 mapType);
bool32 sub_8055C9C(void);
bool32 Overworld_IsBikingAllowed(void);
void Overworld_ResetStateAfterDigEscRope(void);
bool32 sub_8058244(void);
u8 GetCurrentMapType(void);
+2
View File
@@ -59,5 +59,7 @@ void sub_8112628(u8 movementActionId);
void sub_81126AC(u8 movementActionId, u8 duration);
void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration);
void sub_8112C9C(void);
void sub_8110920(void);
void sub_8111708(void);
#endif //GUARD_QUEST_LOG_H
+2 -2
View File
@@ -49,10 +49,10 @@ u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
void RunOnLoadMapScript(void);
void mapheader_run_script_with_tag_x3(void);
void RunOnTransitionMapScript(void);
void mapheader_run_script_with_tag_x5(void);
void mapheader_run_script_with_tag_x7(void);
void mapheader_run_script_with_tag_x6(void);
void RunOnDiveWarpMapScript(void);
bool8 TryRunOnFrameMapScript(void);
void mapheader_run_first_tag4_script_list_match(void);
u32 CalculateRamScriptChecksum(void);
+1
View File
@@ -15,5 +15,6 @@ u8 sub_810CF54();
void sub_810D0D0(void);
void sub_810CB90(void);
bool8 sub_810C4EC(void);
void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
#endif //GUARD_VS_SEEKER_H
+1 -1
View File
@@ -38,7 +38,7 @@ void InitEventData(void)
memset(sSpecialFlags, 0, SPECIAL_FLAGS_COUNT);
}
void sub_806E110(void)
void ClearTempFieldEventData(void)
{
memset(gSaveBlock1Ptr->flags, 0, 4);
memset(gSaveBlock1Ptr->vars, 0, 16 * 2);
+1 -1
View File
@@ -108,7 +108,7 @@ void ForcePlayerOntoBike(void)
Overworld_ChangeMusicTo(MUS_CYCLING);
}
void nullsub_74(void)
void ResetCyclingRoadChallengeData(void)
{
}
+1 -1
View File
@@ -732,7 +732,7 @@ bool8 CameraMove(s32 x, s32 y)
old_y = gSaveBlock1Ptr->pos.y;
connection = sub_8059600(direction, gSaveBlock1Ptr->pos.x, gSaveBlock1Ptr->pos.y);
sub_80594AC(connection, direction, x, y);
sub_8055864(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;
+1 -1
View File
@@ -268,7 +268,7 @@ void FieldUseFunc_MachBike(u8 taskId)
|| MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE
|| MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE)
sub_80A10C4(taskId, gTasks[taskId].data[3], 2, gUnknown_8416451);
else if (sub_8055C9C() == TRUE && !sub_80BD540())
else if (Overworld_IsBikingAllowed() == TRUE && !sub_80BD540())
{
sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle;
sub_80A103C(taskId);
+220 -8
View File
@@ -3,17 +3,25 @@
#include "event_data.h"
#include "event_scripts.h"
#include "field_camera.h"
#include "field_control_avatar.h"
#include "field_player_avatar.h"
#include "field_specials.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "heal_location.h"
#include "load_save.h"
#include "map_name_popup.h"
#include "metatile_behavior.h"
#include "money.h"
#include "overworld.h"
#include "quest_log.h"
#include "renewable_hidden_items.h"
#include "roamer.h"
#include "save_location.h"
#include "script.h"
#include "script_pokemon_util.h"
#include "tileset_anims.h"
#include "vs_seeker.h"
#include "constants/maps.h"
#include "constants/flags.h"
#include "constants/species.h"
@@ -22,14 +30,14 @@ struct InitialPlayerAvatarState
{
u8 transitionFlags;
u8 direction;
u8 unk2;
bool8 unk2;
};
EWRAM_DATA struct WarpData gLastUsedWarp = {};
EWRAM_DATA struct WarpData sWarpDestination = {};
EWRAM_DATA struct WarpData gFixedDiveWarp = {};
EWRAM_DATA struct WarpData gFixedHoleWarp = {};
EWRAM_DATA struct InitialPlayerAvatarState gUnknown_2031DD4 = {};
EWRAM_DATA struct InitialPlayerAvatarState gInitialPlayerAvatarState = {};
EWRAM_DATA bool8 gDisableMapMusicChangeOnMapLoad = FALSE;
EWRAM_DATA u16 gUnknown_2031DDA = SPECIES_NONE;
EWRAM_DATA bool8 gUnknown_2031DDC = FALSE;
@@ -46,7 +54,12 @@ EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {};
u8 CountBadgesForOverworldWhiteOutLossCalculation(void);
void Overworld_ResetStateAfterWhitingOut(void);
void Overworld_SetWhiteoutRespawnPoint(void);
void sub_805610C(void);
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType);
u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType);
u16 GetCenterScreenMetatileBehavior(void);
void sub_8055E94(void);
void SetDefaultFlashLevel(void);
void ChooseAmbientCrySpecies(void);
extern const struct MapLayout * gMapLayouts[];
extern const struct MapHeader *const *gMapGroups[];
@@ -118,7 +131,7 @@ void Overworld_ResetStateAfterFly(void)
ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_ON_CYCLING_ROAD);
VarSet(VAR_MAP_SCENE_ROUTE16, 0);
FlagClear(FLAG_SYS_UNK_802);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
FlagClear(FLAG_SYS_USE_STRENGTH);
@@ -132,7 +145,7 @@ void Overworld_ResetStateAfterTeleport(void)
ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_ON_CYCLING_ROAD);
VarSet(VAR_MAP_SCENE_ROUTE16, 0);
FlagClear(FLAG_SYS_UNK_802);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
FlagClear(FLAG_SYS_USE_STRENGTH);
@@ -146,7 +159,7 @@ void Overworld_ResetStateAfterDigEscRope(void)
ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_ON_CYCLING_ROAD);
VarSet(VAR_MAP_SCENE_ROUTE16, 0);
FlagClear(FLAG_SYS_UNK_802);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
FlagClear(FLAG_SYS_USE_STRENGTH);
@@ -160,7 +173,7 @@ void Overworld_ResetStateAfterWhitingOut(void)
ResetInitialPlayerAvatarState();
FlagClear(FLAG_SYS_ON_CYCLING_ROAD);
VarSet(VAR_MAP_SCENE_ROUTE16, 0);
FlagClear(FLAG_SYS_UNK_802);
FlagClear(FLAG_SYS_CRUISE_MODE);
FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
FlagClear(FLAG_SYS_USE_STRENGTH);
@@ -173,7 +186,7 @@ void sub_8054E40(void)
{
FlagClear(FLAG_SYS_SAFARI_MODE);
VarSet(VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0);
sub_805610C();
ChooseAmbientCrySpecies();
UpdateLocationHistoryForRoamer();
RoamerMoveToOtherLocationSet();
}
@@ -524,3 +537,202 @@ void SetContinueGameWarpToDynamicWarp(int unused)
{
gSaveBlock1Ptr->continueGameWarp = gSaveBlock1Ptr->dynamicWarp;
}
const struct MapConnection * GetMapConnection(u8 dir)
{
s32 i;
s32 count = gMapHeader.connections->count;
const struct MapConnection *connection = gMapHeader.connections->connections;
if (connection == NULL)
return NULL;
for(i = 0; i < count; i++, connection++)
if (connection->direction == dir)
return connection;
return NULL;
}
bool8 SetDiveWarp(u8 dir, u16 x, u16 y)
{
const struct MapConnection *connection = GetMapConnection(dir);
if (connection != NULL)
{
SetWarpDestination(connection->mapGroup, connection->mapNum, -1, x, y);
}
else
{
RunOnDiveWarpMapScript();
if (IsDummyWarp(&gFixedDiveWarp))
return FALSE;
SetWarpDestinationToDiveWarp();
}
return TRUE;
}
bool8 SetDiveWarpEmerge(u16 x, u16 y)
{
return SetDiveWarp(CONNECTION_EMERGE, x, y);
}
bool8 SetDiveWarpDive(u16 x, u16 y)
{
return SetDiveWarp(CONNECTION_DIVE, x, y);
}
void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
{
int paletteIndex;
SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
sub_8055E94();
ApplyCurrentWarp();
LoadCurrentMapData();
sub_8054F68();
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(mapGroup, mapNum);
SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
RunOnTransitionMapScript();
TryRegenerateRenewableHiddenItems();
InitMap();
copy_map_tileset2_to_vram_2(gMapHeader.mapLayout);
apply_map_tileset2_palette(gMapHeader.mapLayout);
for (paletteIndex = 7; paletteIndex < 13; paletteIndex++)
ApplyWeatherGammaShiftToPal(paletteIndex);
InitSecondaryTilesetAnimation();
UpdateLocationHistoryForRoamer();
RoamerMove();
sub_8110920();
DoCurrentWeather();
ResetFieldTasksArgs();
mapheader_run_script_with_tag_x5();
if (GetLastUsedWarpMapSectionId() != gMapHeader.regionMapSectionId)
CreateMapNamePopupIfNotAlreadyRunning(TRUE);
}
void mli0_load_map(bool32 a1)
{
bool8 isOutdoors;
LoadCurrentMapData();
sub_8054F68();
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
RestartWildEncounterImmunitySteps();
TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
if (isOutdoors)
FlagClear(FLAG_SYS_FLASH_ACTIVE);
SetDefaultFlashLevel();
Overworld_ClearSavedMusic();
RunOnTransitionMapScript();
TryRegenerateRenewableHiddenItems();
UpdateLocationHistoryForRoamer();
RoamerMoveToOtherLocationSet();
sub_8110920();
InitMap();
}
void sub_80559A8(void)
{
bool8 isOutdoors;
LoadCurrentMapData();
sub_8054F68();
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
TrySetMapSaveWarpStatus();
SetSav1WeatherFromCurrMapHeader();
ChooseAmbientCrySpecies();
SetDefaultFlashLevel();
sub_8110920();
sub_8111708();
LoadSaveblockMapHeader();
InitMap();
}
void ResetInitialPlayerAvatarState(void)
{
gInitialPlayerAvatarState.direction = DIR_SOUTH;
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
gInitialPlayerAvatarState.unk2 = FALSE;
}
void sub_80559F8(u8 dirn)
{
gInitialPlayerAvatarState.direction = dirn;
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
gInitialPlayerAvatarState.unk2 = TRUE;
}
void StoreInitialPlayerAvatarState(void)
{
gInitialPlayerAvatarState.direction = GetPlayerFacingDirection();
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING;
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER))
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER;
else
gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT;
gInitialPlayerAvatarState.unk2 = FALSE;
}
struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void)
{
struct InitialPlayerAvatarState playerStruct;
u8 mapType = GetCurrentMapType();
u16 metatileBehavior = GetCenterScreenMetatileBehavior();
u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType);
playerStruct.transitionFlags = transitionFlags;
playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType);
playerStruct.unk2 = FALSE;
gInitialPlayerAvatarState = playerStruct;
return &gInitialPlayerAvatarState;
}
bool8 sub_8055B38(u16 metatileBehavior);
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType)
{
if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE))
return PLAYER_AVATAR_FLAG_ON_FOOT;
else if (mapType == MAP_TYPE_UNDERWATER)
return PLAYER_AVATAR_FLAG_UNDERWATER;
else if (sub_8055B38(metatileBehavior) == TRUE)
return PLAYER_AVATAR_FLAG_ON_FOOT;
else if (MetatileBehavior_IsSurfable(metatileBehavior) == TRUE)
return PLAYER_AVATAR_FLAG_SURFING;
else if (Overworld_IsBikingAllowed() != TRUE)
return PLAYER_AVATAR_FLAG_ON_FOOT;
else if (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_MACH_BIKE)
return PLAYER_AVATAR_FLAG_MACH_BIKE;
else if (playerStruct->transitionFlags != PLAYER_AVATAR_FLAG_ACRO_BIKE)
return PLAYER_AVATAR_FLAG_ON_FOOT;
else
return PLAYER_AVATAR_FLAG_ACRO_BIKE;
}
bool8 sub_8055B38(u16 metatileBehavior)
{
if (MetatileBehavior_IsSurfable(metatileBehavior) != TRUE)
return FALSE;
if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B3F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B3F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B4F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B4F)))
return TRUE;
return FALSE;
}
+2 -2
View File
@@ -411,7 +411,7 @@ void RunOnLoadMapScript(void)
mapheader_run_script_by_tag(1);
}
void mapheader_run_script_with_tag_x3(void)
void RunOnTransitionMapScript(void)
{
mapheader_run_script_by_tag(3);
}
@@ -426,7 +426,7 @@ void mapheader_run_script_with_tag_x7(void)
mapheader_run_script_by_tag(7);
}
void mapheader_run_script_with_tag_x6(void)
void RunOnDiveWarpMapScript(void)
{
mapheader_run_script_by_tag(6);
}
+1 -1
View File
@@ -681,7 +681,7 @@ bool8 sub_810C4EC(void)
return FALSE;
}
void sub_810C578(void)
void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum)
{
FlagClear(FLAG_SYS_VS_SEEKER_CHARGING);
sub_810C640();