through ChooseAmbientCrySpecies
This commit is contained in:
-775
@@ -5,781 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start GetAdjustedInitialDirection
|
|
||||||
GetAdjustedInitialDirection: @ 8055B74
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r6, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r7, r1, 24
|
|
||||||
lsls r2, 16
|
|
||||||
lsrs r4, r2, 16
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r5, r3, 24
|
|
||||||
ldr r0, _08055BD4 @ =0x00000802
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055B94
|
|
||||||
cmp r5, 0x6
|
|
||||||
beq _08055C3E
|
|
||||||
_08055B94:
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r5, r4, 24
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_ReturnFalse_2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055BD0
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsNonAnimDoor
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C68
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsWarpDoor_2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C68
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsSouthArrowWarp
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08055BD8
|
|
||||||
_08055BD0:
|
|
||||||
movs r0, 0x2
|
|
||||||
b _08055C6E
|
|
||||||
.align 2, 0
|
|
||||||
_08055BD4: .4byte 0x00000802
|
|
||||||
_08055BD8:
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsNorthArrowWarp
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C68
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsWestArrowWarp
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C3E
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsEastArrowWarp
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C1E
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsUnknownWarp6C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C1E
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsUnknownWarp6E
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08055C22
|
|
||||||
_08055C1E:
|
|
||||||
movs r0, 0x3
|
|
||||||
b _08055C6E
|
|
||||||
_08055C22:
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsUnknownWarp6D
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C3E
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MetatileBehavior_IsUnknownWarp6F
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08055C42
|
|
||||||
_08055C3E:
|
|
||||||
movs r0, 0x4
|
|
||||||
b _08055C6E
|
|
||||||
_08055C42:
|
|
||||||
ldrb r0, [r6]
|
|
||||||
cmp r0, 0x10
|
|
||||||
bne _08055C4C
|
|
||||||
cmp r7, 0x8
|
|
||||||
beq _08055C6C
|
|
||||||
_08055C4C:
|
|
||||||
cmp r0, 0x8
|
|
||||||
bne _08055C54
|
|
||||||
cmp r7, 0x10
|
|
||||||
beq _08055C6C
|
|
||||||
_08055C54:
|
|
||||||
lsrs r0, r4, 24
|
|
||||||
bl MetatileBehavior_IsLadder
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055C6C
|
|
||||||
ldrb r0, [r6, 0x2]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08055C6C
|
|
||||||
_08055C68:
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08055C6E
|
|
||||||
_08055C6C:
|
|
||||||
ldrb r0, [r6, 0x1]
|
|
||||||
_08055C6E:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end GetAdjustedInitialDirection
|
|
||||||
|
|
||||||
thumb_func_start GetCenterScreenMetatileBehavior
|
|
||||||
GetCenterScreenMetatileBehavior: @ 8055C74
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08055C98 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrh r0, [r1]
|
|
||||||
adds r0, 0x7
|
|
||||||
lsls r0, 16
|
|
||||||
asrs r0, 16
|
|
||||||
ldrh r1, [r1, 0x2]
|
|
||||||
adds r1, 0x7
|
|
||||||
lsls r1, 16
|
|
||||||
asrs r1, 16
|
|
||||||
bl MapGridGetMetatileBehaviorAt
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_08055C98: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end GetCenterScreenMetatileBehavior
|
|
||||||
|
|
||||||
thumb_func_start Overworld_IsBikingAllowed
|
|
||||||
Overworld_IsBikingAllowed: @ 8055C9C
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08055CAC @ =gMapHeader
|
|
||||||
ldrb r0, [r0, 0x18]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055CB0
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08055CB2
|
|
||||||
.align 2, 0
|
|
||||||
_08055CAC: .4byte gMapHeader
|
|
||||||
_08055CB0:
|
|
||||||
movs r0, 0
|
|
||||||
_08055CB2:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end Overworld_IsBikingAllowed
|
|
||||||
|
|
||||||
thumb_func_start SetDefaultFlashLevel
|
|
||||||
SetDefaultFlashLevel: @ 8055CB8
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08055CC8 @ =gMapHeader
|
|
||||||
ldrb r1, [r0, 0x15]
|
|
||||||
cmp r1, 0
|
|
||||||
bne _08055CD0
|
|
||||||
ldr r0, _08055CCC @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
b _08055CF8
|
|
||||||
.align 2, 0
|
|
||||||
_08055CC8: .4byte gMapHeader
|
|
||||||
_08055CCC: .4byte gSaveBlock1Ptr
|
|
||||||
_08055CD0:
|
|
||||||
ldr r0, _08055CE8 @ =0x00000806
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055CF0
|
|
||||||
ldr r0, _08055CEC @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x30
|
|
||||||
movs r1, 0
|
|
||||||
b _08055CFA
|
|
||||||
.align 2, 0
|
|
||||||
_08055CE8: .4byte 0x00000806
|
|
||||||
_08055CEC: .4byte gSaveBlock1Ptr
|
|
||||||
_08055CF0:
|
|
||||||
ldr r0, _08055D00 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _08055D04 @ =gMaxFlashLevel
|
|
||||||
ldr r1, [r1]
|
|
||||||
_08055CF8:
|
|
||||||
adds r0, 0x30
|
|
||||||
_08055CFA:
|
|
||||||
strb r1, [r0]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08055D00: .4byte gSaveBlock1Ptr
|
|
||||||
_08055D04: .4byte gMaxFlashLevel
|
|
||||||
thumb_func_end SetDefaultFlashLevel
|
|
||||||
|
|
||||||
thumb_func_start Overworld_SetFlashLevel
|
|
||||||
Overworld_SetFlashLevel: @ 8055D08
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, 0
|
|
||||||
cmp r1, 0
|
|
||||||
blt _08055D18
|
|
||||||
ldr r0, _08055D28 @ =gMaxFlashLevel
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r1, r0
|
|
||||||
ble _08055D1A
|
|
||||||
_08055D18:
|
|
||||||
movs r1, 0
|
|
||||||
_08055D1A:
|
|
||||||
ldr r0, _08055D2C @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x30
|
|
||||||
strb r1, [r0]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08055D28: .4byte gMaxFlashLevel
|
|
||||||
_08055D2C: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end Overworld_SetFlashLevel
|
|
||||||
|
|
||||||
thumb_func_start Overworld_GetFlashLevel
|
|
||||||
Overworld_GetFlashLevel: @ 8055D30
|
|
||||||
ldr r0, _08055D3C @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x30
|
|
||||||
ldrb r0, [r0]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08055D3C: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end Overworld_GetFlashLevel
|
|
||||||
|
|
||||||
thumb_func_start SetCurrentMapLayout
|
|
||||||
SetCurrentMapLayout: @ 8055D40
|
|
||||||
push {lr}
|
|
||||||
ldr r1, _08055D54 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r1]
|
|
||||||
strh r0, [r1, 0x32]
|
|
||||||
bl GetMapLayout
|
|
||||||
ldr r1, _08055D58 @ =gMapHeader
|
|
||||||
str r0, [r1]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08055D54: .4byte gSaveBlock1Ptr
|
|
||||||
_08055D58: .4byte gMapHeader
|
|
||||||
thumb_func_end SetCurrentMapLayout
|
|
||||||
|
|
||||||
thumb_func_start sub_8055D5C
|
|
||||||
sub_8055D5C: @ 8055D5C
|
|
||||||
ldr r2, _08055D68 @ =sWarpDestination
|
|
||||||
ldr r1, [r0, 0x4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [r2]
|
|
||||||
str r1, [r2, 0x4]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08055D68: .4byte sWarpDestination
|
|
||||||
thumb_func_end sub_8055D5C
|
|
||||||
|
|
||||||
thumb_func_start sub_8055D6C
|
|
||||||
sub_8055D6C: @ 8055D6C
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, 0
|
|
||||||
movs r0, 0
|
|
||||||
ldrsb r0, [r1, r0]
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
ldrb r1, [r1, 0x1]
|
|
||||||
lsls r1, 24
|
|
||||||
asrs r1, 24
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
bl Overworld_GetMapHeaderByGroupAndId
|
|
||||||
ldrh r0, [r0, 0x10]
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8055D6C
|
|
||||||
|
|
||||||
thumb_func_start sub_8055D8C
|
|
||||||
sub_8055D8C: @ 8055D8C
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08055DA0 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
adds r0, 0x4
|
|
||||||
bl sub_8055D6C
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_08055DA0: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end sub_8055D8C
|
|
||||||
|
|
||||||
thumb_func_start sub_8055DA4
|
|
||||||
sub_8055DA4: @ 8055DA4
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08055DB4 @ =sWarpDestination
|
|
||||||
bl sub_8055D6C
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_08055DB4: .4byte sWarpDestination
|
|
||||||
thumb_func_end sub_8055DA4
|
|
||||||
|
|
||||||
thumb_func_start sub_8055DB8
|
|
||||||
sub_8055DB8: @ 8055DB8
|
|
||||||
push {lr}
|
|
||||||
bl ResetMapMusic
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8055DB8
|
|
||||||
|
|
||||||
thumb_func_start Overworld_PlaySpecialMapMusic
|
|
||||||
Overworld_PlaySpecialMapMusic: @ 8055DC4
|
|
||||||
push {r4,r5,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
ldr r0, _08055DD8 @ =gDisableMapMusicChangeOnMapLoad
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08055DDC
|
|
||||||
bl StopMapMusic
|
|
||||||
b _08055E6C
|
|
||||||
.align 2, 0
|
|
||||||
_08055DD8: .4byte gDisableMapMusicChangeOnMapLoad
|
|
||||||
_08055DDC:
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _08055E6C
|
|
||||||
ldr r0, _08055E14 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrh r1, [r0, 0x4]
|
|
||||||
ldr r0, _08055E18 @ =0x00004f01
|
|
||||||
cmp r1, r0
|
|
||||||
bne _08055E24
|
|
||||||
mov r4, sp
|
|
||||||
adds r4, 0x2
|
|
||||||
mov r0, sp
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl PlayerGetDestCoords
|
|
||||||
movs r1, 0
|
|
||||||
ldrsh r0, [r4, r1]
|
|
||||||
subs r0, 0x7
|
|
||||||
cmp r0, 0xA
|
|
||||||
bgt _08055E24
|
|
||||||
ldr r0, _08055E1C @ =gMPlayInfo_BGM
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r0, _08055E20 @ =mus_win_gym
|
|
||||||
cmp r1, r0
|
|
||||||
bne _08055E24
|
|
||||||
movs r0, 0x4
|
|
||||||
bl FadeInBGM
|
|
||||||
b _08055E6C
|
|
||||||
.align 2, 0
|
|
||||||
_08055E14: .4byte gSaveBlock1Ptr
|
|
||||||
_08055E18: .4byte 0x00004f01
|
|
||||||
_08055E1C: .4byte gMPlayInfo_BGM
|
|
||||||
_08055E20: .4byte mus_win_gym
|
|
||||||
_08055E24:
|
|
||||||
bl sub_8055D8C
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, _08055E3C @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldrh r0, [r1, 0x2C]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055E40
|
|
||||||
adds r4, r0, 0
|
|
||||||
b _08055E5A
|
|
||||||
.align 2, 0
|
|
||||||
_08055E3C: .4byte gSaveBlock1Ptr
|
|
||||||
_08055E40:
|
|
||||||
movs r0, 0x8
|
|
||||||
bl TestPlayerAvatarFlags
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055E5A
|
|
||||||
ldr r5, _08055E74 @ =0x00000131 @ MUS_NAMINORI
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_8056124
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055E5A
|
|
||||||
adds r4, r5, 0
|
|
||||||
_08055E5A:
|
|
||||||
bl GetCurrentMapMusic
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r4, r0
|
|
||||||
beq _08055E6C
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl PlayNewMapMusic
|
|
||||||
_08055E6C:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08055E74: .4byte 0x00000131
|
|
||||||
thumb_func_end Overworld_PlaySpecialMapMusic
|
|
||||||
|
|
||||||
thumb_func_start Overworld_SetSavedMusic
|
|
||||||
Overworld_SetSavedMusic: @ 8055E78
|
|
||||||
ldr r1, _08055E80 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r1]
|
|
||||||
strh r0, [r1, 0x2C]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08055E80: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end Overworld_SetSavedMusic
|
|
||||||
|
|
||||||
thumb_func_start Overworld_ClearSavedMusic
|
|
||||||
Overworld_ClearSavedMusic: @ 8055E84
|
|
||||||
ldr r0, _08055E90 @ =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r1, 0x2C]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08055E90: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end Overworld_ClearSavedMusic
|
|
||||||
|
|
||||||
thumb_func_start sub_8055E94
|
|
||||||
sub_8055E94: @ 8055E94
|
|
||||||
push {r4-r6,lr}
|
|
||||||
ldr r0, _08055EA4 @ =gDisableMapMusicChangeOnMapLoad
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08055EA8
|
|
||||||
bl StopMapMusic
|
|
||||||
b _08055F14
|
|
||||||
.align 2, 0
|
|
||||||
_08055EA4: .4byte gDisableMapMusicChangeOnMapLoad
|
|
||||||
_08055EA8:
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _08055F14
|
|
||||||
ldr r0, _08055F04 @ =0x00004001
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055F14
|
|
||||||
bl sub_8055DA4
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
bl GetCurrentMapMusic
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
ldr r5, _08055F08 @ =0x00000131 @ MUS_NAMINORI
|
|
||||||
cmp r6, r5
|
|
||||||
beq _08055F14
|
|
||||||
movs r0, 0x8
|
|
||||||
bl TestPlayerAvatarFlags
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055EE8
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl sub_8056124
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055EE8
|
|
||||||
adds r4, r5, 0
|
|
||||||
_08055EE8:
|
|
||||||
cmp r4, r6
|
|
||||||
beq _08055F14
|
|
||||||
movs r0, 0x6
|
|
||||||
bl TestPlayerAvatarFlags
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08055F0C
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x4
|
|
||||||
movs r2, 0x4
|
|
||||||
bl FadeOutAndFadeInNewMapMusic
|
|
||||||
b _08055F14
|
|
||||||
.align 2, 0
|
|
||||||
_08055F04: .4byte 0x00004001
|
|
||||||
_08055F08: .4byte 0x00000131
|
|
||||||
_08055F0C:
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x8
|
|
||||||
bl FadeOutAndPlayNewMapMusic
|
|
||||||
_08055F14:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8055E94
|
|
||||||
|
|
||||||
thumb_func_start Overworld_ChangeMusicToDefault
|
|
||||||
Overworld_ChangeMusicToDefault: @ 8055F1C
|
|
||||||
push {r4,lr}
|
|
||||||
bl GetCurrentMapMusic
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 16
|
|
||||||
lsrs r4, 16
|
|
||||||
bl sub_8055D8C
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r4, r0
|
|
||||||
beq _08055F42
|
|
||||||
bl sub_8055D8C
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
movs r1, 0x8
|
|
||||||
bl FadeOutAndPlayNewMapMusic
|
|
||||||
_08055F42:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end Overworld_ChangeMusicToDefault
|
|
||||||
|
|
||||||
thumb_func_start Overworld_ChangeMusicTo
|
|
||||||
Overworld_ChangeMusicTo: @ 8055F48
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
bl GetCurrentMapMusic
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r0, r4
|
|
||||||
beq _08055F62
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x8
|
|
||||||
bl FadeOutAndPlayNewMapMusic
|
|
||||||
_08055F62:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end Overworld_ChangeMusicTo
|
|
||||||
|
|
||||||
thumb_func_start GetMapMusicFadeoutSpeed
|
|
||||||
GetMapMusicFadeoutSpeed: @ 8055F68
|
|
||||||
push {lr}
|
|
||||||
bl GetDestinationWarpMapHeader
|
|
||||||
ldrb r0, [r0, 0x17]
|
|
||||||
bl IsMapTypeIndoors
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055F80
|
|
||||||
movs r0, 0x4
|
|
||||||
b _08055F82
|
|
||||||
_08055F80:
|
|
||||||
movs r0, 0x2
|
|
||||||
_08055F82:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end GetMapMusicFadeoutSpeed
|
|
||||||
|
|
||||||
thumb_func_start TryFadeOutOldMapMusic
|
|
||||||
TryFadeOutOldMapMusic: @ 8055F88
|
|
||||||
push {r4,lr}
|
|
||||||
bl sub_8055DA4
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, _08055FC0 @ =0x00004001
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _08055FB8
|
|
||||||
bl GetCurrentMapMusic
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r4, r0
|
|
||||||
beq _08055FB8
|
|
||||||
bl GetMapMusicFadeoutSpeed
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl FadeOutMapMusic
|
|
||||||
_08055FB8:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08055FC0: .4byte 0x00004001
|
|
||||||
thumb_func_end TryFadeOutOldMapMusic
|
|
||||||
|
|
||||||
thumb_func_start BGMusicStopped
|
|
||||||
BGMusicStopped: @ 8055FC4
|
|
||||||
push {lr}
|
|
||||||
bl IsNotWaitingForBGMStop
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end BGMusicStopped
|
|
||||||
|
|
||||||
thumb_func_start Overworld_FadeOutMapMusic
|
|
||||||
Overworld_FadeOutMapMusic: @ 8055FD4
|
|
||||||
push {lr}
|
|
||||||
movs r0, 0x4
|
|
||||||
bl FadeOutMapMusic
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end Overworld_FadeOutMapMusic
|
|
||||||
|
|
||||||
thumb_func_start sub_8055FE0
|
|
||||||
sub_8055FE0: @ 8055FE0
|
|
||||||
push {r4,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
mov r4, sp
|
|
||||||
adds r4, 0x2
|
|
||||||
mov r0, sp
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl PlayerGetDestCoords
|
|
||||||
ldr r0, _0805604C @ =gUnknown_2031DDC
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08056014
|
|
||||||
mov r0, sp
|
|
||||||
movs r1, 0
|
|
||||||
ldrsh r0, [r0, r1]
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r1, [r4, r2]
|
|
||||||
bl MapGridGetMetatileBehaviorAt
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl MetatileBehavior_IsSurfable
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0805606A
|
|
||||||
_08056014:
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
movs r1, 0x58
|
|
||||||
bl __umodsi3
|
|
||||||
adds r0, 0xD4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
movs r1, 0x1E
|
|
||||||
bl __umodsi3
|
|
||||||
adds r0, 0x32
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
ldr r0, _08056050 @ =gDisableMapMusicChangeOnMapLoad
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08056054
|
|
||||||
bl StopMapMusic
|
|
||||||
b _0805606A
|
|
||||||
.align 2, 0
|
|
||||||
_0805604C: .4byte gUnknown_2031DDC
|
|
||||||
_08056050: .4byte gDisableMapMusicChangeOnMapLoad
|
|
||||||
_08056054:
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _0805606A
|
|
||||||
ldr r0, _08056074 @ =gUnknown_2031DDA
|
|
||||||
ldrh r0, [r0]
|
|
||||||
lsls r1, r4, 24
|
|
||||||
asrs r1, 24
|
|
||||||
lsls r2, 24
|
|
||||||
asrs r2, 24
|
|
||||||
movs r3, 0x1
|
|
||||||
bl PlayCry2
|
|
||||||
_0805606A:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08056074: .4byte gUnknown_2031DDA
|
|
||||||
thumb_func_end sub_8055FE0
|
|
||||||
|
|
||||||
thumb_func_start sub_8056078
|
|
||||||
sub_8056078: @ 8056078
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r6, r0, 0
|
|
||||||
adds r5, r1, 0
|
|
||||||
movs r1, 0
|
|
||||||
ldrsh r0, [r6, r1]
|
|
||||||
cmp r0, 0x4
|
|
||||||
bhi _08056106
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08056090 @ =_08056094
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_08056090: .4byte _08056094
|
|
||||||
.align 2, 0
|
|
||||||
_08056094:
|
|
||||||
.4byte _080560A8
|
|
||||||
.4byte _080560BC
|
|
||||||
.4byte _080560D8
|
|
||||||
.4byte _080560F2
|
|
||||||
.4byte _08056106
|
|
||||||
_080560A8:
|
|
||||||
ldr r0, _080560B4 @ =gUnknown_2031DDA
|
|
||||||
ldrh r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080560B8
|
|
||||||
movs r0, 0x4
|
|
||||||
b _08056104
|
|
||||||
.align 2, 0
|
|
||||||
_080560B4: .4byte gUnknown_2031DDA
|
|
||||||
_080560B8:
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08056104
|
|
||||||
_080560BC:
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
movs r1, 0x96
|
|
||||||
lsls r1, 4
|
|
||||||
bl __umodsi3
|
|
||||||
movs r1, 0x96
|
|
||||||
lsls r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
strh r0, [r5]
|
|
||||||
movs r0, 0x3
|
|
||||||
b _08056104
|
|
||||||
_080560D8:
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
movs r4, 0x96
|
|
||||||
lsls r4, 3
|
|
||||||
adds r1, r4, 0
|
|
||||||
bl __umodsi3
|
|
||||||
adds r0, r4
|
|
||||||
strh r0, [r5]
|
|
||||||
movs r0, 0x3
|
|
||||||
b _08056104
|
|
||||||
_080560F2:
|
|
||||||
ldrh r0, [r5]
|
|
||||||
subs r0, 0x1
|
|
||||||
strh r0, [r5]
|
|
||||||
lsls r0, 16
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08056106
|
|
||||||
bl sub_8055FE0
|
|
||||||
movs r0, 0x2
|
|
||||||
_08056104:
|
|
||||||
strh r0, [r6]
|
|
||||||
_08056106:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8056078
|
|
||||||
|
|
||||||
thumb_func_start ChooseAmbientCrySpecies
|
|
||||||
ChooseAmbientCrySpecies: @ 805610C
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _0805611C @ =gUnknown_2031DDC
|
|
||||||
bl GetLocalWildMon
|
|
||||||
ldr r1, _08056120 @ =gUnknown_2031DDA
|
|
||||||
strh r0, [r1]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0805611C: .4byte gUnknown_2031DDC
|
|
||||||
_08056120: .4byte gUnknown_2031DDA
|
|
||||||
thumb_func_end ChooseAmbientCrySpecies
|
|
||||||
|
|
||||||
thumb_func_start sub_8056124
|
thumb_func_start sub_8056124
|
||||||
sub_8056124: @ 8056124
|
sub_8056124: @ 8056124
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ CinnabarIsland_OnFrame:: @ 8166F6E
|
|||||||
|
|
||||||
CinnabarIsland_EventScript_ExitPokeCenterForOneIsland:: @ 8166F88
|
CinnabarIsland_EventScript_ExitPokeCenterForOneIsland:: @ 8166F88
|
||||||
lockall
|
lockall
|
||||||
clearflag FLAG_SPECIAL_FLAG_0x4001
|
clearflag FLAG_DONT_TRANSITION_MUSIC
|
||||||
savebgm MUS_DUMMY
|
savebgm MUS_DUMMY
|
||||||
textcolor 0
|
textcolor 0
|
||||||
setvar VAR_MAP_SCENE_CINNABAR_ISLAND_2, 2
|
setvar VAR_MAP_SCENE_CINNABAR_ISLAND_2, 2
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ CinnabarIsland_PokemonCenter_1F_EventScript_Bill:: @ 816E90A
|
|||||||
closemessage
|
closemessage
|
||||||
playbgm MUS_ANNAI, 1
|
playbgm MUS_ANNAI, 1
|
||||||
savebgm MUS_ANNAI
|
savebgm MUS_ANNAI
|
||||||
setflag FLAG_SPECIAL_FLAG_0x4001
|
setflag FLAG_DONT_TRANSITION_MUSIC
|
||||||
setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL
|
setflag FLAG_HIDE_CINNABAR_POKECENTER_BILL
|
||||||
delay 20
|
delay 20
|
||||||
compare VAR_FACING, DIR_SOUTH
|
compare VAR_FACING, DIR_SOUTH
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ PalletTown_EventScript_OakTrigger:: @ 8165605
|
|||||||
clearflag FLAG_HIDE_OAK_IN_HIS_LAB
|
clearflag FLAG_HIDE_OAK_IN_HIS_LAB
|
||||||
setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 1
|
setvar VAR_MAP_SCENE_PALLET_TOWN_OAK, 1
|
||||||
setflag FLAG_HIDE_OAK_IN_PALLET_TOWN
|
setflag FLAG_HIDE_OAK_IN_PALLET_TOWN
|
||||||
setflag FLAG_SPECIAL_FLAG_0x4001
|
setflag FLAG_DONT_TRANSITION_MUSIC
|
||||||
warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12
|
warp MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB, 255, 6, 12
|
||||||
waitstate
|
waitstate
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ PalletTown_ProfessorOaksLab_ChooseStarterScene:: @ 816923E
|
|||||||
waitmovement 0
|
waitmovement 0
|
||||||
applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp
|
applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp
|
||||||
waitmovement 0
|
waitmovement 0
|
||||||
clearflag FLAG_SPECIAL_FLAG_0x4001
|
clearflag FLAG_DONT_TRANSITION_MUSIC
|
||||||
savebgm SE_STOP
|
savebgm SE_STOP
|
||||||
fadedefaultbgm
|
fadedefaultbgm
|
||||||
msgbox PalletTown_ProfessorOaksLab_Text_RivalFedUpWithWaiting
|
msgbox PalletTown_ProfessorOaksLab_Text_RivalFedUpWithWaiting
|
||||||
|
|||||||
@@ -1438,7 +1438,7 @@
|
|||||||
#define SPECIAL_FLAGS_START 0x4000
|
#define SPECIAL_FLAGS_START 0x4000
|
||||||
#define SPECIAL_FLAGS_COUNT 16
|
#define SPECIAL_FLAGS_COUNT 16
|
||||||
#define FLAG_SPECIAL_FLAG_0x4000 0x4000
|
#define FLAG_SPECIAL_FLAG_0x4000 0x4000
|
||||||
#define FLAG_SPECIAL_FLAG_0x4001 0x4001
|
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
|
||||||
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
||||||
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
||||||
#define FLAG_SPECIAL_FLAG_0x4004 0x4004
|
#define FLAG_SPECIAL_FLAG_0x4004 0x4004
|
||||||
|
|||||||
@@ -11,4 +11,6 @@ void DoOutwardBarnDoorWipe(void);
|
|||||||
void Task_BarnDoorWipe(u8 taskId);
|
void Task_BarnDoorWipe(u8 taskId);
|
||||||
void sub_807F5F0(void);
|
void sub_807F5F0(void);
|
||||||
|
|
||||||
|
extern const s32 gMaxFlashLevel;
|
||||||
|
|
||||||
#endif // GUARD_FIELD_SCREEN_EFFECT_H
|
#endif // GUARD_FIELD_SCREEN_EFFECT_H
|
||||||
|
|||||||
@@ -195,12 +195,21 @@ struct MapHeader
|
|||||||
/* 0x15 */ u8 cave;
|
/* 0x15 */ u8 cave;
|
||||||
/* 0x16 */ u8 weather;
|
/* 0x16 */ u8 weather;
|
||||||
/* 0x17 */ u8 mapType;
|
/* 0x17 */ u8 mapType;
|
||||||
/* 0x18 */ u8 filler_18;
|
/* 0x18 */ u8 bikingAllowed;
|
||||||
/* 0x19 */ u8 escapeRope;
|
/* 0x19 */ u8 escapeRope;
|
||||||
/* 0x1A */ s8 flags;
|
/* 0x1A */ s8 flags;
|
||||||
/* 0x1B */ u8 battleType;
|
/* 0x1B */ u8 battleType;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Flags for gMapHeader.flags, as defined in the map_header_flags macro
|
||||||
|
#define MAP_ALLOW_BIKE (1 << 0)
|
||||||
|
#define MAP_ALLOW_ESCAPE_ROPE (1 << 1)
|
||||||
|
#define MAP_ALLOW_RUN (1 << 2)
|
||||||
|
#define MAP_SHOW_MAP_NAME (1 << 3)
|
||||||
|
#define UNUSED_MAP_FLAGS (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7)
|
||||||
|
|
||||||
|
#define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME)
|
||||||
|
|
||||||
struct ObjectEvent
|
struct ObjectEvent
|
||||||
{
|
{
|
||||||
/*0x00*/ /* 0*/ u32 active:1;
|
/*0x00*/ /* 0*/ u32 active:1;
|
||||||
|
|||||||
@@ -25,4 +25,6 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
|
|||||||
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
|
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
|
||||||
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
|
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
|
||||||
|
|
||||||
|
extern const struct SongHeader mus_win_gym;
|
||||||
|
|
||||||
#endif //GUARD_M4A_H
|
#endif //GUARD_M4A_H
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ bool8 MetatileBehavior_IsUnknownWarp6F(u8 metatileBehavior);
|
|||||||
bool8 MetatileBehavior_IsUnknownWarp6C_to_6F(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsUnknownWarp6C_to_6F(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_IsLadder(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsLadder(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsDeepSouthWarp(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_IsSemiDeepWater(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsSemiDeepWater(u8 metatileBehavior);
|
||||||
bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
|
bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
|
||||||
|
|||||||
+2
-2
@@ -177,14 +177,14 @@ void SetContinueGameWarpToDynamicWarp(int);
|
|||||||
|
|
||||||
void SetContinueGameWarpToHealLocation(u8 loc);
|
void SetContinueGameWarpToHealLocation(u8 loc);
|
||||||
|
|
||||||
void sub_8056078(void *, void *);
|
void UpdateAmbientCry(s16 *state, u16 *delayCounter);
|
||||||
void SetWarpDestinationToHealLocation(u8 a0);
|
void SetWarpDestinationToHealLocation(u8 a0);
|
||||||
bool32 sub_80582E0(void);
|
bool32 sub_80582E0(void);
|
||||||
bool32 sub_8058274(void);
|
bool32 sub_8058274(void);
|
||||||
u8 GetCurrentMapBattleScene(void);
|
u8 GetCurrentMapBattleScene(void);
|
||||||
void Overworld_ResetStateAfterFly(void);
|
void Overworld_ResetStateAfterFly(void);
|
||||||
bool8 sub_8055B38(u16 metatileBehavior);
|
bool8 sub_8055B38(u16 metatileBehavior);
|
||||||
void sub_8055DB8(void);
|
void Overworld_ResetMapMusic(void);
|
||||||
void sub_8057F5C(void);
|
void sub_8057F5C(void);
|
||||||
void sub_8057F34(void);
|
void sub_8057F34(void);
|
||||||
u32 sub_8057EC0(void);
|
u32 sub_8057EC0(void);
|
||||||
|
|||||||
+1
-1
@@ -724,7 +724,7 @@ static void sub_8081624(void)
|
|||||||
void CB2_ReturnFromCableClubBattle(void)
|
void CB2_ReturnFromCableClubBattle(void)
|
||||||
{
|
{
|
||||||
gBattleTypeFlags &= (u16)~BATTLE_TYPE_20;
|
gBattleTypeFlags &= (u16)~BATTLE_TYPE_20;
|
||||||
sub_8055DB8();
|
Overworld_ResetMapMusic();
|
||||||
LoadPlayerParty();
|
LoadPlayerParty();
|
||||||
SavePlayerBag();
|
SavePlayerBag();
|
||||||
Special_UpdateTrainerFansAfterLinkBattle();
|
Special_UpdateTrainerFansAfterLinkBattle();
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ static void Task_RunTimeBasedEvents(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (gQuestLogState != 2 && gQuestLogState != 3)
|
if (gQuestLogState != 2 && gQuestLogState != 3)
|
||||||
{
|
{
|
||||||
sub_8056078(&data[1], &data[2]);
|
UpdateAmbientCry(&data[1], &data[2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior) { return FALSE; }
|
bool8 MetatileBehavior_IsDeepSouthWarp(u8 metatileBehavior) { return FALSE; }
|
||||||
|
|
||||||
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior)
|
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior)
|
||||||
{
|
{
|
||||||
|
|||||||
+294
-6
@@ -5,16 +5,19 @@
|
|||||||
#include "field_camera.h"
|
#include "field_camera.h"
|
||||||
#include "field_control_avatar.h"
|
#include "field_control_avatar.h"
|
||||||
#include "field_player_avatar.h"
|
#include "field_player_avatar.h"
|
||||||
|
#include "field_screen_effect.h"
|
||||||
#include "field_specials.h"
|
#include "field_specials.h"
|
||||||
#include "field_weather.h"
|
#include "field_weather.h"
|
||||||
#include "fieldmap.h"
|
#include "fieldmap.h"
|
||||||
#include "heal_location.h"
|
#include "heal_location.h"
|
||||||
#include "load_save.h"
|
#include "load_save.h"
|
||||||
|
#include "m4a.h"
|
||||||
#include "map_name_popup.h"
|
#include "map_name_popup.h"
|
||||||
#include "metatile_behavior.h"
|
#include "metatile_behavior.h"
|
||||||
#include "money.h"
|
#include "money.h"
|
||||||
#include "overworld.h"
|
#include "overworld.h"
|
||||||
#include "quest_log.h"
|
#include "quest_log.h"
|
||||||
|
#include "random.h"
|
||||||
#include "renewable_hidden_items.h"
|
#include "renewable_hidden_items.h"
|
||||||
#include "roamer.h"
|
#include "roamer.h"
|
||||||
#include "save_location.h"
|
#include "save_location.h"
|
||||||
@@ -22,9 +25,11 @@
|
|||||||
#include "script_pokemon_util.h"
|
#include "script_pokemon_util.h"
|
||||||
#include "tileset_anims.h"
|
#include "tileset_anims.h"
|
||||||
#include "vs_seeker.h"
|
#include "vs_seeker.h"
|
||||||
|
#include "wild_encounter.h"
|
||||||
#include "constants/maps.h"
|
#include "constants/maps.h"
|
||||||
#include "constants/flags.h"
|
#include "constants/flags.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
|
#include "constants/songs.h"
|
||||||
|
|
||||||
struct InitialPlayerAvatarState
|
struct InitialPlayerAvatarState
|
||||||
{
|
{
|
||||||
@@ -39,8 +44,8 @@ EWRAM_DATA struct WarpData gFixedDiveWarp = {};
|
|||||||
EWRAM_DATA struct WarpData gFixedHoleWarp = {};
|
EWRAM_DATA struct WarpData gFixedHoleWarp = {};
|
||||||
EWRAM_DATA struct InitialPlayerAvatarState gInitialPlayerAvatarState = {};
|
EWRAM_DATA struct InitialPlayerAvatarState gInitialPlayerAvatarState = {};
|
||||||
EWRAM_DATA bool8 gDisableMapMusicChangeOnMapLoad = FALSE;
|
EWRAM_DATA bool8 gDisableMapMusicChangeOnMapLoad = FALSE;
|
||||||
EWRAM_DATA u16 gUnknown_2031DDA = SPECIES_NONE;
|
EWRAM_DATA u16 sAmbientCrySpecies = SPECIES_NONE;
|
||||||
EWRAM_DATA bool8 gUnknown_2031DDC = FALSE;
|
EWRAM_DATA bool8 sIsAmbientCryWaterMon = FALSE;
|
||||||
|
|
||||||
// File boundary perhaps?
|
// File boundary perhaps?
|
||||||
ALIGNED(4) EWRAM_DATA bool8 gUnknown_2031DE0 = FALSE;
|
ALIGNED(4) EWRAM_DATA bool8 gUnknown_2031DE0 = FALSE;
|
||||||
@@ -57,8 +62,9 @@ void Overworld_SetWhiteoutRespawnPoint(void);
|
|||||||
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType);
|
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType);
|
||||||
u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType);
|
u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType);
|
||||||
u16 GetCenterScreenMetatileBehavior(void);
|
u16 GetCenterScreenMetatileBehavior(void);
|
||||||
void sub_8055E94(void);
|
bool8 sub_8055B38(u16 metatileBehavior);
|
||||||
void SetDefaultFlashLevel(void);
|
void SetDefaultFlashLevel(void);
|
||||||
|
void Overworld_TryMapConnectionMusicTransition(void);
|
||||||
void ChooseAmbientCrySpecies(void);
|
void ChooseAmbientCrySpecies(void);
|
||||||
|
|
||||||
extern const struct MapLayout * gMapLayouts[];
|
extern const struct MapLayout * gMapLayouts[];
|
||||||
@@ -587,7 +593,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
|
|||||||
int paletteIndex;
|
int paletteIndex;
|
||||||
|
|
||||||
SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
|
SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
|
||||||
sub_8055E94();
|
Overworld_TryMapConnectionMusicTransition();
|
||||||
ApplyCurrentWarp();
|
ApplyCurrentWarp();
|
||||||
LoadCurrentMapData();
|
LoadCurrentMapData();
|
||||||
sub_8054F68();
|
sub_8054F68();
|
||||||
@@ -706,8 +712,6 @@ struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void)
|
|||||||
return &gInitialPlayerAvatarState;
|
return &gInitialPlayerAvatarState;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_8055B38(u16 metatileBehavior);
|
|
||||||
|
|
||||||
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType)
|
u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType)
|
||||||
{
|
{
|
||||||
if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE))
|
if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE))
|
||||||
@@ -736,3 +740,287 @@ bool8 sub_8055B38(u16 metatileBehavior)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType)
|
||||||
|
{
|
||||||
|
if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_OCEAN_ROUTE)
|
||||||
|
return DIR_EAST;
|
||||||
|
else if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE)
|
||||||
|
return DIR_NORTH;
|
||||||
|
else if (MetatileBehavior_IsNonAnimDoor(metatileBehavior) == TRUE || MetatileBehavior_IsWarpDoor_2(metatileBehavior) == TRUE)
|
||||||
|
return DIR_SOUTH;
|
||||||
|
else if (MetatileBehavior_IsSouthArrowWarp(metatileBehavior) == TRUE)
|
||||||
|
return DIR_NORTH;
|
||||||
|
else if (MetatileBehavior_IsNorthArrowWarp(metatileBehavior) == TRUE)
|
||||||
|
return DIR_SOUTH;
|
||||||
|
else if (MetatileBehavior_IsWestArrowWarp(metatileBehavior) == TRUE)
|
||||||
|
return DIR_EAST;
|
||||||
|
else if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE)
|
||||||
|
return DIR_WEST;
|
||||||
|
else if (MetatileBehavior_IsUnknownWarp6C(metatileBehavior) == TRUE || MetatileBehavior_IsUnknownWarp6E(metatileBehavior) == TRUE)
|
||||||
|
return DIR_WEST;
|
||||||
|
else if (MetatileBehavior_IsUnknownWarp6D(metatileBehavior) == TRUE || MetatileBehavior_IsUnknownWarp6F(metatileBehavior) == TRUE)
|
||||||
|
return DIR_EAST;
|
||||||
|
else if ((playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER && transitionFlags == PLAYER_AVATAR_FLAG_SURFING)
|
||||||
|
|| (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER ))
|
||||||
|
return playerStruct->direction;
|
||||||
|
else if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE)
|
||||||
|
return playerStruct->direction;
|
||||||
|
else if (playerStruct->unk2)
|
||||||
|
return playerStruct->direction;
|
||||||
|
else
|
||||||
|
return DIR_SOUTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetCenterScreenMetatileBehavior(void)
|
||||||
|
{
|
||||||
|
return MapGridGetMetatileBehaviorAt(gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 Overworld_IsBikingAllowed(void)
|
||||||
|
{
|
||||||
|
if (!gMapHeader.bikingAllowed)
|
||||||
|
return FALSE;
|
||||||
|
else
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetDefaultFlashLevel(void)
|
||||||
|
{
|
||||||
|
if (!gMapHeader.cave)
|
||||||
|
gSaveBlock1Ptr->flashLevel = 0;
|
||||||
|
else if (FlagGet(FLAG_SYS_FLASH_ACTIVE))
|
||||||
|
gSaveBlock1Ptr->flashLevel = 0;
|
||||||
|
else
|
||||||
|
gSaveBlock1Ptr->flashLevel = gMaxFlashLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_SetFlashLevel(s32 flashLevel)
|
||||||
|
{
|
||||||
|
if (flashLevel < 0 || flashLevel > gMaxFlashLevel)
|
||||||
|
flashLevel = 0;
|
||||||
|
gSaveBlock1Ptr->flashLevel = flashLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 Overworld_GetFlashLevel(void)
|
||||||
|
{
|
||||||
|
return gSaveBlock1Ptr->flashLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetCurrentMapLayout(u16 mapLayoutId)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->mapLayoutId = mapLayoutId;
|
||||||
|
gMapHeader.mapLayout = GetMapLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8055D5C(struct WarpData * warp)
|
||||||
|
{
|
||||||
|
sWarpDestination = *warp;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetLocationMusic(struct WarpData * warp)
|
||||||
|
{
|
||||||
|
return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetCurrLocationDefaultMusic(void)
|
||||||
|
{
|
||||||
|
u16 music;
|
||||||
|
music = GetLocationMusic(&gSaveBlock1Ptr->location);
|
||||||
|
return music;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetWarpDestinationMusic(void)
|
||||||
|
{
|
||||||
|
u16 music = GetLocationMusic(&sWarpDestination);
|
||||||
|
return music;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_ResetMapMusic(void)
|
||||||
|
{
|
||||||
|
ResetMapMusic();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_PlaySpecialMapMusic(void)
|
||||||
|
{
|
||||||
|
u16 music;
|
||||||
|
s16 x, y;
|
||||||
|
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 1)
|
||||||
|
{
|
||||||
|
StopMapMusic();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 2)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
|
||||||
|
{
|
||||||
|
PlayerGetDestCoords(&x, &y);
|
||||||
|
if (y - 7 < 11 && gMPlayInfo_BGM.songHeader == &mus_win_gym)
|
||||||
|
{
|
||||||
|
FadeInBGM(4);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
music = GetCurrLocationDefaultMusic();
|
||||||
|
|
||||||
|
if (gSaveBlock1Ptr->savedMusic)
|
||||||
|
music = gSaveBlock1Ptr->savedMusic;
|
||||||
|
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) &&sub_8056124(MUS_NAMINORI))
|
||||||
|
music = MUS_NAMINORI;
|
||||||
|
|
||||||
|
if (music != GetCurrentMapMusic())
|
||||||
|
PlayNewMapMusic(music);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_SetSavedMusic(u16 songNum)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->savedMusic = songNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_ClearSavedMusic(void)
|
||||||
|
{
|
||||||
|
gSaveBlock1Ptr->savedMusic = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_TryMapConnectionMusicTransition(void)
|
||||||
|
{
|
||||||
|
u16 newMusic;
|
||||||
|
u16 currentMusic;
|
||||||
|
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 1)
|
||||||
|
{
|
||||||
|
StopMapMusic();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 2)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE)
|
||||||
|
{
|
||||||
|
newMusic = GetWarpDestinationMusic();
|
||||||
|
currentMusic = GetCurrentMapMusic();
|
||||||
|
if (currentMusic == MUS_NAMINORI)
|
||||||
|
return;
|
||||||
|
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && sub_8056124(MUS_NAMINORI))
|
||||||
|
newMusic = MUS_NAMINORI;
|
||||||
|
if (newMusic != currentMusic)
|
||||||
|
{
|
||||||
|
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
|
||||||
|
FadeOutAndFadeInNewMapMusic(newMusic, 4, 4);
|
||||||
|
else
|
||||||
|
FadeOutAndPlayNewMapMusic(newMusic, 8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_ChangeMusicToDefault(void)
|
||||||
|
{
|
||||||
|
u16 currentMusic = GetCurrentMapMusic();
|
||||||
|
if (currentMusic != GetCurrLocationDefaultMusic())
|
||||||
|
FadeOutAndPlayNewMapMusic(GetCurrLocationDefaultMusic(), 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_ChangeMusicTo(u16 newMusic)
|
||||||
|
{
|
||||||
|
u16 currentMusic = GetCurrentMapMusic();
|
||||||
|
if (currentMusic != newMusic)
|
||||||
|
FadeOutAndPlayNewMapMusic(newMusic, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
u8 GetMapMusicFadeoutSpeed(void)
|
||||||
|
{
|
||||||
|
const struct MapHeader *mapHeader = GetDestinationWarpMapHeader();
|
||||||
|
if (IsMapTypeIndoors(mapHeader->mapType) == TRUE)
|
||||||
|
return 2;
|
||||||
|
else
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TryFadeOutOldMapMusic(void)
|
||||||
|
{
|
||||||
|
u16 warpMusic = GetWarpDestinationMusic();
|
||||||
|
if (FlagGet(FLAG_DONT_TRANSITION_MUSIC) != TRUE && warpMusic != GetCurrentMapMusic())
|
||||||
|
{
|
||||||
|
FadeOutMapMusic(GetMapMusicFadeoutSpeed());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 BGMusicStopped(void)
|
||||||
|
{
|
||||||
|
return IsNotWaitingForBGMStop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Overworld_FadeOutMapMusic(void)
|
||||||
|
{
|
||||||
|
FadeOutMapMusic(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayAmbientCry(void)
|
||||||
|
{
|
||||||
|
s16 x, y;
|
||||||
|
s8 pan;
|
||||||
|
s8 volume;
|
||||||
|
|
||||||
|
PlayerGetDestCoords(&x, &y);
|
||||||
|
if (sIsAmbientCryWaterMon == TRUE
|
||||||
|
&& !MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)))
|
||||||
|
return;
|
||||||
|
pan = (Random() % 88) + 212;
|
||||||
|
volume = (Random() % 30) + 50;
|
||||||
|
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 1)
|
||||||
|
{
|
||||||
|
StopMapMusic();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gDisableMapMusicChangeOnMapLoad == 2)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayCry2(sAmbientCrySpecies, pan, volume, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateAmbientCry(s16 *state, u16 *delayCounter)
|
||||||
|
{
|
||||||
|
u8 i, monsCount, divBy;
|
||||||
|
|
||||||
|
switch (*state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
if (sAmbientCrySpecies == SPECIES_NONE)
|
||||||
|
*state = 4;
|
||||||
|
else
|
||||||
|
*state = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
*delayCounter = (Random() % 2400) + 1200;
|
||||||
|
*state = 3;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
*delayCounter = (Random() % 1200) + 1200;
|
||||||
|
*state = 3;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
(*delayCounter)--;
|
||||||
|
if (*delayCounter == 0)
|
||||||
|
{
|
||||||
|
PlayAmbientCry();
|
||||||
|
*state = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ChooseAmbientCrySpecies(void)
|
||||||
|
{
|
||||||
|
sAmbientCrySpecies = GetLocalWildMon(&sIsAmbientCryWaterMon);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user