Merge pull request #567 from red031000/master
Some checks failed
build / build (push) Has been cancelled

decompile player_avatar
This commit is contained in:
red031000 2025-11-01 23:00:29 +00:00 committed by GitHub
commit 69a73ea442
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
60 changed files with 1820 additions and 1903 deletions

View File

@ -213,7 +213,7 @@ Static arm9
Object text_02054590.o Object text_02054590.o
Object unk_0205478C.o Object unk_0205478C.o
Object unk_02054C14.o Object unk_02054C14.o
Object unk_02055068.o Object player_avatar.o
Object unk_020557F4.o Object unk_020557F4.o
Object map_object.o Object map_object.o
Object unk_02058EE8.o Object unk_02058EE8.o

View File

@ -38,7 +38,7 @@ sub_02034D98: ; 0x02034D98
bl sub_0204ADE0 bl sub_0204ADE0
add r0, r4, #0x0 add r0, r4, #0x0
add r0, #0x8c add r0, #0x8c
bl sub_02055468 bl PlayerSaveData_Init
bl GetMomSpawnId bl GetMomSpawnId
add r4, #0x68 add r4, #0x68
strh r0, [r4, #0x0] strh r0, [r4, #0x0]

View File

@ -13,10 +13,10 @@ sub_02036FA4: ; 0x02036FA4
bl PlayerAvatar_GetFacingDirection bl PlayerAvatar_GetFacingDirection
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [r4, #0x0] str r0, [r4, #0x0]
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [r5, #0x0] str r0, [r5, #0x0]
cmp r7, #0x3 cmp r7, #0x3
bhi _02036FFA bhi _02036FFA

View File

@ -331,11 +331,11 @@ sub_02037264: ; 0x02037264
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
str r1, [sp, #0x4] str r1, [sp, #0x4]
str r2, [sp, #0x8] str r2, [sp, #0x8]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
mov r7, #0x0 mov r7, #0x0

View File

@ -2341,11 +2341,11 @@ _02039786:
_020397A0: _020397A0:
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0x18] str r0, [sp, #0x18]
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [sp, #0x14] str r0, [sp, #0x14]
ldr r0, [sp, #0x18] ldr r0, [sp, #0x18]
sub r0, r0, #0x7 sub r0, r0, #0x7

View File

@ -71,10 +71,10 @@ _02046096: ; jump table (using 16-bit offset)
.short _020461E4 - _02046096 - 2; case 11 .short _020461E4 - _02046096 - 2; case 11
_020460AE: _020460AE:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
strh r0, [r4, #0x4] strh r0, [r4, #0x4]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
strh r0, [r4, #0x6] strh r0, [r4, #0x6]
add r0, r5, #0x0 add r0, r5, #0x0
mov r1, #0x1 mov r1, #0x1

View File

@ -283,7 +283,7 @@ sub_02048AE4: ; 0x02048AE4
ldr r1, [r3, #0x8] ldr r1, [r3, #0x8]
ldr r2, [r3, #0xc] ldr r2, [r3, #0xc]
ldr r3, [r3, #0x10] ldr r3, [r3, #0x10]
bl sub_02055068 bl PlayerAvatar_CreateWithParams
str r0, [r5, #0x38] str r0, [r5, #0x38]
add r0, r5, #0x0 add r0, r5, #0x0
bl sub_02034AC8 bl sub_02034AC8
@ -299,7 +299,7 @@ sub_02048B34: ; 0x02048B34
add r4, r0, #0x0 add r4, r0, #0x0
bl sub_0204CC48 bl sub_0204CC48
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl sub_02055160 bl PlayerAvatar_FreeToHeap
ldr r0, [r4, #0x34] ldr r0, [r4, #0x34]
bl MapObjectManager_RemoveAllActiveObjects bl MapObjectManager_RemoveAllActiveObjects
ldr r0, [r4, #0x34] ldr r0, [r4, #0x34]
@ -326,7 +326,7 @@ sub_02048B50: ; 0x02048B50
add r2, r0, #0x0 add r2, r0, #0x0
ldr r0, [r5, #0x34] ldr r0, [r5, #0x34]
add r1, r4, #0x0 add r1, r4, #0x0
bl sub_020550A4 bl PlayerAvatar_CreateWithActiveMapObject
str r0, [r5, #0x38] str r0, [r5, #0x38]
ldr r0, [r5, #0x34] ldr r0, [r5, #0x34]
bl sub_02058768 bl sub_02058768
@ -483,10 +483,10 @@ sub_02048CB0: ; 0x02048CB0
add r4, r1, #0x0 add r4, r1, #0x0
add r5, r0, #0x0 add r5, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, [r4, #0x1c] ldr r1, [r4, #0x1c]
ldr r1, [r1, #0x0] ldr r1, [r1, #0x0]
str r1, [r5, #0x0] str r1, [r5, #0x0]

View File

@ -507,10 +507,10 @@ sub_0204B70C: ; 0x0204B70C
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
add r5, r2, #0x0 add r5, r2, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r4, r0, #0x0 add r4, r0, #0x0
cmp r5, #0x2 cmp r5, #0x2
bne _0204B72A bne _0204B72A
@ -562,10 +562,10 @@ sub_0204B770: ; 0x0204B770
add r5, r0, #0x0 add r5, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r6, r1, #0x0 add r6, r1, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
cmp r6, #0x2 cmp r6, #0x2
bne _0204B78E bne _0204B78E
@ -588,10 +588,10 @@ sub_0204B7A0: ; 0x0204B7A0
add r5, r0, #0x0 add r5, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r6, r1, #0x0 add r6, r1, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [r6, #0x4] ldr r0, [r6, #0x4]
cmp r0, #0x0 cmp r0, #0x0
@ -767,7 +767,7 @@ _0204B8F6:
bne _0204B910 bne _0204B910
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
mov r1, #0x0 mov r1, #0x0
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
mov r0, #0x4 mov r0, #0x4
str r0, [r4, #0x0] str r0, [r4, #0x0]
b _0204B98E b _0204B98E
@ -789,7 +789,7 @@ _0204B922:
ble _0204B98E ble _0204B98E
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [r4, #0x4] ldr r1, [r4, #0x4]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
mov r0, #0x4 mov r0, #0x4
str r0, [r4, #0x0] str r0, [r4, #0x0]
b _0204B98E b _0204B98E
@ -814,14 +814,14 @@ _0204B93A:
_0204B964: _0204B964:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [r4, #0x4] ldr r1, [r4, #0x4]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
mov r0, #0x4 mov r0, #0x4
str r0, [r4, #0x0] str r0, [r4, #0x0]
b _0204B98E b _0204B98E
_0204B972: _0204B972:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [r4, #0x4] ldr r1, [r4, #0x4]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl PlayerAvatar_GetMapObject bl PlayerAvatar_GetMapObject
bl MapObject_PauseMovement bl MapObject_PauseMovement
@ -865,7 +865,7 @@ sub_0204B9CC: ; 0x0204B9CC
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl PlayerAvatar_GetState bl PlayerAvatar_GetState
bl sub_02055648 bl PlayerAvatar_GetTransitionBits
add r1, r0, #0x0 add r1, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl Field_PlayerAvatar_OrrTransitionFlags bl Field_PlayerAvatar_OrrTransitionFlags

View File

@ -418,10 +418,10 @@ _0204C4D0:
bl ov05_021DA5B8 bl ov05_021DA5B8
str r0, [r4, #0x1c] str r0, [r4, #0x1c]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
ldr r2, [r4, #0x1c] ldr r2, [r4, #0x1c]
add r0, r6, #0x0 add r0, r6, #0x0
@ -478,10 +478,10 @@ _0204C54A:
bl ov05_021DA5B8 bl ov05_021DA5B8
str r0, [r4, #0x1c] str r0, [r4, #0x1c]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
ldr r2, [r4, #0x1c] ldr r2, [r4, #0x1c]
add r0, r6, #0x0 add r0, r6, #0x0
@ -696,10 +696,10 @@ _0204C700:
bl PlayerAvatar_GetMapObject bl PlayerAvatar_GetMapObject
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
ldr r1, [sp, #0x0] ldr r1, [sp, #0x0]
add r0, r4, #0x0 add r0, r4, #0x0
@ -726,10 +726,10 @@ _0204C74A:
bl ov05_021DA5B8 bl ov05_021DA5B8
str r0, [r5, #0x1c] str r0, [r5, #0x1c]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
ldr r2, [r5, #0x1c] ldr r2, [r5, #0x1c]
add r0, r6, #0x0 add r0, r6, #0x0
@ -782,10 +782,10 @@ _0204C7BE:
bl PlayerAvatar_GetMapObject bl PlayerAvatar_GetMapObject
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
ldr r1, [sp, #0x0] ldr r1, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
@ -844,10 +844,10 @@ _0204C846:
bl ov05_021DA5B8 bl ov05_021DA5B8
str r0, [r4, #0x1c] str r0, [r4, #0x1c]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
ldr r2, [r4, #0x1c] ldr r2, [r4, #0x1c]
add r0, r6, #0x0 add r0, r6, #0x0
@ -1007,7 +1007,7 @@ sub_0204C984: ; 0x0204C984
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r1, sp, #0x4 add r1, sp, #0x4
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
cmp r4, #0x3 cmp r4, #0x3
bne _0204C9AA bne _0204C9AA
mov r0, #0x1 mov r0, #0x1
@ -1036,11 +1036,11 @@ _0204C9B4:
add r2, r4, #0x0 add r2, r4, #0x0
bl sub_020554EC bl sub_020554EC
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
ldr r1, [r5, #0x20] ldr r1, [r5, #0x20]
bl Camera_SetLookAtTargetAndRecalcPos bl Camera_SetLookAtTargetAndRecalcPos
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
ldr r1, [r5, #0x20] ldr r1, [r5, #0x20]
bl Camera_SetFixedTarget bl Camera_SetFixedTarget
add sp, #0x10 add sp, #0x10
@ -1056,12 +1056,12 @@ sub_0204C9EC: ; 0x0204C9EC
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r1, sp, #0x4 add r1, sp, #0x4
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r6, #0x0 add r1, r6, #0x0
@ -1102,11 +1102,11 @@ _0204CA48:
add r2, r4, #0x0 add r2, r4, #0x0
bl sub_020554EC bl sub_020554EC
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
ldr r1, [r5, #0x20] ldr r1, [r5, #0x20]
bl Camera_SetLookAtTargetAndRecalcPos bl Camera_SetLookAtTargetAndRecalcPos
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
ldr r1, [r5, #0x20] ldr r1, [r5, #0x20]
bl Camera_SetFixedTarget bl Camera_SetFixedTarget
add sp, #0x10 add sp, #0x10

View File

@ -251,12 +251,12 @@ sub_0204CC9C: ; 0x0204CC9C
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r0, _0204CCD8 ; =UNK_021C5A68 ldr r0, _0204CCD8 ; =UNK_021C5A68
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
_0204CCD6: _0204CCD6:
pop {r3, pc} pop {r3, pc}
.balign 4 .balign 4
@ -402,7 +402,7 @@ _0204CDD4:
ldrb r1, [r1, r2] ldrb r1, [r1, r2]
cmp r1, #0x0 cmp r1, #0x0
beq _0204CDF2 beq _0204CDF2
bl sub_02055168 bl PlayerAvatar_DeleteFromMap
_0204CDF2: _0204CDF2:
ldr r0, [r6, #0x0] ldr r0, [r6, #0x0]
add r1, r0, r7 add r1, r0, r7
@ -606,7 +606,7 @@ sub_0204CF60: ; 0x0204CF60
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, _0204D03C ; =UNK_021C5A68 ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0] ldr r2, [r1, #0x0]
lsl r1, r4, #0x3 lsl r1, r4, #0x3
@ -619,7 +619,7 @@ sub_0204CF60: ; 0x0204CF60
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, _0204D03C ; =UNK_021C5A68 ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0] ldr r2, [r1, #0x0]
lsl r1, r4, #0x3 lsl r1, r4, #0x3
@ -645,7 +645,7 @@ sub_0204CF60: ; 0x0204CF60
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, _0204D03C ; =UNK_021C5A68 ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0] ldr r2, [r1, #0x0]
lsl r1, r4, #0x3 lsl r1, r4, #0x3
@ -658,7 +658,7 @@ sub_0204CF60: ; 0x0204CF60
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, _0204D03C ; =UNK_021C5A68 ldr r1, _0204D03C ; =UNK_021C5A68
ldr r2, [r1, #0x0] ldr r2, [r1, #0x0]
lsl r1, r4, #0x3 lsl r1, r4, #0x3
@ -839,13 +839,13 @@ sub_0204D168: ; 0x0204D168
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, _0204D194 ; =UNK_021C5A68 ldr r0, _0204D194 ; =UNK_021C5A68
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r4, #0x0 add r1, r4, #0x0
@ -953,13 +953,13 @@ sub_0204D248: ; 0x0204D248
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055370 bl PlayerAvatar_GetUnk10
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, _0204D2A8 ; =UNK_021C5A68 ldr r0, _0204D2A8 ; =UNK_021C5A68
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055378 bl PlayerAvatar_GetUnk14
add r5, r0, #0x0 add r5, r0, #0x0
cmp r4, #0x0 cmp r4, #0x0
bne _0204D292 bne _0204D292
@ -1126,7 +1126,7 @@ _0204D37C:
ldrh r2, [r2, #0x0] ldrh r2, [r2, #0x0]
ldrsb r3, [r7, r3] ldrsb r3, [r7, r3]
ldr r0, [r0, #0x34] ldr r0, [r0, #0x34]
bl sub_02055068 bl PlayerAvatar_CreateWithParams
add r7, r0, #0x0 add r7, r0, #0x0
bne _0204D3B2 bne _0204D3B2
bl GF_AssertFail bl GF_AssertFail
@ -1232,10 +1232,10 @@ sub_0204D43C: ; 0x0204D43C
cmp r7, #0x0 cmp r7, #0x0
beq _0204D484 beq _0204D484
_0204D47E: _0204D47E:
bl sub_02055168 bl PlayerAvatar_DeleteFromMap
b _0204D488 b _0204D488
_0204D484: _0204D484:
bl sub_02055160 bl PlayerAvatar_FreeToHeap
_0204D488: _0204D488:
ldr r0, _0204D4CC ; =UNK_021C5A68 ldr r0, _0204D4CC ; =UNK_021C5A68
mov r1, #0x0 mov r1, #0x0
@ -2424,7 +2424,7 @@ _0204DD5E:
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
add r0, r0, r7 add r0, r0, r7
ldr r0, [r0, #0x8] ldr r0, [r0, #0x8]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
add r0, r4, #0x0 add r0, r4, #0x0
mov r1, #0x80 mov r1, #0x80
bl MapObject_SetFlagsBits bl MapObject_SetFlagsBits
@ -2543,12 +2543,12 @@ _0204DE86:
bne _0204DE98 bne _0204DE98
b _0204E068 b _0204E068
_0204DE98: _0204DE98:
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldrh r1, [r5, #0x0] ldrh r1, [r5, #0x0]
sub r0, r0, r1 sub r0, r0, r1
str r0, [sp, #0x10] str r0, [sp, #0x10]
ldr r0, [sp, #0x18] ldr r0, [sp, #0x18]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldrh r1, [r5, #0x2] ldrh r1, [r5, #0x2]
sub r7, r0, r1 sub r7, r0, r1
ldr r0, [sp, #0x18] ldr r0, [sp, #0x18]
@ -5707,7 +5707,7 @@ sub_0204F6DC: ; 0x0204F6DC
ldr r0, [r0, #0x0] ldr r0, [r0, #0x0]
ldr r0, [r0, #0x54] ldr r0, [r0, #0x54]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
bl sub_02031190 bl sub_02031190
ldr r1, _0204F708 ; =UNK_021C5A68 ldr r1, _0204F708 ; =UNK_021C5A68
lsl r0, r0, #0x3 lsl r0, r0, #0x3
@ -5734,7 +5734,7 @@ sub_0204F70C: ; 0x0204F70C
ldr r2, [r3, #0x0] ldr r2, [r3, #0x0]
add r0, r2, r0 add r0, r2, r0
ldr r0, [r0, #0x8] ldr r0, [r0, #0x8]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
pop {r4, pc} pop {r4, pc}
.balign 4 .balign 4
_0204F728: .word UNK_021C5A68 _0204F728: .word UNK_021C5A68

View File

@ -410,11 +410,11 @@ sub_020531E4: ; 0x020531E4
str r0, [sp, #0x0] str r0, [sp, #0x0]
ldr r0, [r0, #0x8] ldr r0, [r0, #0x8]
str r1, [sp, #0x4] str r1, [sp, #0x4]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x8] ldr r0, [r0, #0x8]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r4, [sp, #0x0] ldr r4, [sp, #0x0]
str r0, [sp, #0x8] str r0, [sp, #0x8]
add r6, r4, #0x0 add r6, r4, #0x0

View File

@ -100,7 +100,7 @@ _02053786:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x0 mov r1, #0x0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #0x6 mov r0, #0x6
lsl r0, r0, #0x6 lsl r0, r0, #0x6
ldr r1, [r4, r0] ldr r1, [r4, r0]
@ -292,7 +292,7 @@ _020538FA:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x0 mov r1, #0x0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #0x6 mov r0, #0x6
lsl r0, r0, #0x6 lsl r0, r0, #0x6
ldr r1, [r4, r0] ldr r1, [r4, r0]
@ -380,7 +380,7 @@ _020539A2:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x1 mov r1, #0x1
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
add sp, #0x10 add sp, #0x10
pop {r3-r5, pc} pop {r3-r5, pc}
_020539C4: _020539C4:
@ -448,7 +448,7 @@ _02053A36:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x0 mov r1, #0x0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #0x6 mov r0, #0x6
lsl r0, r0, #0x6 lsl r0, r0, #0x6
ldr r1, [r4, r0] ldr r1, [r4, r0]
@ -613,7 +613,7 @@ _02053B76:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x0 mov r1, #0x0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r1, #0x57 mov r1, #0x57
lsl r1, r1, #0x2 lsl r1, r1, #0x2
add r0, r4, #0x0 add r0, r4, #0x0
@ -680,7 +680,7 @@ _02053BF2:
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
mov r1, #0x1 mov r1, #0x1
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #0x61 mov r0, #0x61
mov r1, #0x6 mov r1, #0x6
lsl r0, r0, #0x2 lsl r0, r0, #0x2

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2160,13 +2160,13 @@ sub_020596D8: ; 0x020596D8
cmp r0, #0x1 cmp r0, #0x1
bne _02059708 bne _02059708
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousY bl MapObject_GetPreviousYCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
add r3, r0, #0x0 add r3, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r4, #0x0 add r1, r4, #0x0
@ -2185,13 +2185,13 @@ sub_0205970C: ; 0x0205970C
cmp r0, #0x1 cmp r0, #0x1
bne _0205973C bne _0205973C
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r3, r0, #0x0 add r3, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r4, #0x0 add r1, r4, #0x0
@ -2210,13 +2210,13 @@ sub_02059740: ; 0x02059740
cmp r0, #0x1 cmp r0, #0x1
bne _02059770 bne _02059770
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousY bl MapObject_GetPreviousYCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
add r3, r0, #0x0 add r3, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r4, #0x0 add r1, r4, #0x0
@ -2235,13 +2235,13 @@ sub_02059774: ; 0x02059774
cmp r0, #0x1 cmp r0, #0x1
bne _020597A4 bne _020597A4
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r3, r0, #0x0 add r3, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
add r1, r4, #0x0 add r1, r4, #0x0
@ -2445,16 +2445,16 @@ sub_02059918: ; 0x02059918
sub sp, #0xc sub sp, #0xc
add r4, r1, #0x0 add r4, r1, #0x0
add r5, r0, #0x0 add r5, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl sub_02059BF4 bl sub_02059BF4
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
str r0, [sp, #0x4] str r0, [sp, #0x4]
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x8] str r0, [sp, #0x8]
add r0, r4, #0x0 add r0, r4, #0x0
bl sub_02059C00 bl sub_02059C00
@ -2501,16 +2501,16 @@ _0205997C:
cmp r0, #0x0 cmp r0, #0x0
bne _020599F4 bne _020599F4
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r7, r5 cmp r7, r5
bne _020599C8 bne _020599C8
cmp r0, r6 cmp r0, r6
bne _020599C8 bne _020599C8
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetCurrentY bl MapObject_GetYCoord
sub r0, r0, r4 sub r0, r0, r4
bpl _020599BE bpl _020599BE
neg r0, r0 neg r0, r0
@ -2522,16 +2522,16 @@ _020599BE:
pop {r4-r7, pc} pop {r4-r7, pc}
_020599C8: _020599C8:
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
cmp r7, r5 cmp r7, r5
bne _020599F4 bne _020599F4
cmp r0, r6 cmp r0, r6
bne _020599F4 bne _020599F4
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
bl MapObject_GetCurrentY bl MapObject_GetYCoord
sub r0, r0, r4 sub r0, r0, r4
bpl _020599EA bpl _020599EA
neg r0, r0 neg r0, r0
@ -2839,17 +2839,17 @@ sub_02059C0C: ; 0x02059C0C
push {r3-r5, lr} push {r3-r5, lr}
add r5, r0, #0x0 add r5, r0, #0x0
add r4, r1, #0x0 add r4, r1, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_SetPreviousX bl MapObject_SetPreviousX
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_SetPreviousY bl MapObject_SetPreviousY
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_SetPreviousZ bl MapObject_SetPreviousZ
@ -2872,17 +2872,17 @@ sub_02059C0C: ; 0x02059C0C
sub_02059C60: ; 0x02059C60 sub_02059C60: ; 0x02059C60
push {r4, lr} push {r4, lr}
add r4, r0, #0x0 add r4, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_SetPreviousX bl MapObject_SetPreviousX
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_SetPreviousY bl MapObject_SetPreviousY
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_SetPreviousZ bl MapObject_SetPreviousZ
@ -2894,13 +2894,13 @@ sub_02059C90: ; 0x02059C90
push {r3-r7, lr} push {r3-r7, lr}
add r5, r1, #0x0 add r5, r1, #0x0
add r4, r0, #0x0 add r4, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl sub_02059BF4 bl sub_02059BF4
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
bl sub_02059C00 bl sub_02059C00
@ -3005,7 +3005,7 @@ _02059D4E:
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_SetPositionVector bl MapObject_SetPositionVector
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
add r1, r0, #0x0 add r1, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_SetPreviousY bl MapObject_SetPreviousY
@ -3037,10 +3037,10 @@ _02059DAC:
sub_02059DB4: ; 0x02059DB4 sub_02059DB4: ; 0x02059DB4
push {r3-r7, lr} push {r3-r7, lr}
add r5, r0, #0x0 add r5, r0, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
@ -3052,10 +3052,10 @@ sub_02059DB4: ; 0x02059DB4
add r0, r5, #0x0 add r0, r5, #0x0
bl sub_02058728 bl sub_02058728
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r2, r0, #0x0 add r2, r0, #0x0
add r0, r7, #0x0 add r0, r7, #0x0
add r1, r4, #0x0 add r1, r4, #0x0

View File

@ -493,13 +493,13 @@ sub_0205A270: ; 0x0205A270
add r1, sp, #0x0 add r1, sp, #0x0
bl sub_0205A174 bl sub_0205A174
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r6, #0x0 add r0, r6, #0x0
bl sub_02059BF4 bl sub_02059BF4
add r4, r4, r0 add r4, r4, r0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r5, r0, #0x0 add r5, r0, #0x0
add r0, r6, #0x0 add r0, r6, #0x0
bl sub_02059C00 bl sub_02059C00
@ -1061,10 +1061,10 @@ sub_0205A67C: ; 0x0205A67C
bl MapObject_GetInitialZ bl MapObject_GetInitialZ
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [sp, #0x0] ldr r1, [sp, #0x0]
cmp r6, r1 cmp r6, r1
bne _0205A6DA bne _0205A6DA
@ -1461,7 +1461,7 @@ sub_0205A940: ; 0x0205A940
bl MapObject_GetInitialX bl MapObject_GetInitialX
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
cmp r6, r0 cmp r6, r0
bne _0205A98C bne _0205A98C
mov r0, #0x2 mov r0, #0x2
@ -1473,7 +1473,7 @@ _0205A974:
bl MapObject_GetInitialZ bl MapObject_GetInitialZ
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r6, r0 cmp r6, r0
bne _0205A98C bne _0205A98C
mov r0, #0x2 mov r0, #0x2
@ -1492,10 +1492,10 @@ _0205A98C:
bl MapObject_GetInitialZ bl MapObject_GetInitialZ
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [sp, #0x0] ldr r1, [sp, #0x0]
cmp r6, r1 cmp r6, r1
bne _0205A9C0 bne _0205A9C0
@ -1695,7 +1695,7 @@ sub_0205AB20: ; 0x0205AB20
_0205AB36: _0205AB36:
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
add r6, r0, #0x0 add r6, r0, #0x0
bl sub_02057124 bl sub_02057124
cmp r0, #0x0 cmp r0, #0x0
@ -1736,20 +1736,20 @@ _0205AB72:
pop {r3-r7, pc} pop {r3-r7, pc}
_0205AB8E: _0205AB8E:
add r0, r6, #0x0 add r0, r6, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r6, #0x0 add r0, r6, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
mov r1, #0x0 mov r1, #0x0
bl MapObject_GetParam bl MapObject_GetParam
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r3, r0, #0x0 add r3, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r5, [sp, #0x0] ldr r5, [sp, #0x0]
@ -1817,19 +1817,19 @@ _0205AC22:
mvn r7, r7 mvn r7, r7
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
add r6, r7, #0x0 add r6, r7, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x8] str r0, [sp, #0x8]
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x4] str r0, [sp, #0x4]
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
str r0, [sp, #0xc] str r0, [sp, #0xc]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
ldr r0, [sp, #0xc] ldr r0, [sp, #0xc]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r2, [sp, #0x8] ldr r2, [sp, #0x8]
ldr r1, [sp, #0x10] ldr r1, [sp, #0x10]
cmp r2, r1 cmp r2, r1

View File

@ -113,20 +113,20 @@ _0205BF74: .word UNK_020F7178
sub_0205BF78: ; 0x0205BF78 sub_0205BF78: ; 0x0205BF78
push {r3-r5, lr} push {r3-r5, lr}
add r4, r0, #0x0 add r4, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r5, r0, #0x0 add r5, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
cmp r5, r0 cmp r5, r0
beq _0205BF90 beq _0205BF90
mov r0, #0x1 mov r0, #0x1
pop {r3-r5, pc} pop {r3-r5, pc}
_0205BF90: _0205BF90:
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r5, r0, #0x0 add r5, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
cmp r5, r0 cmp r5, r0
beq _0205BFA6 beq _0205BFA6
mov r0, #0x1 mov r0, #0x1
@ -140,20 +140,20 @@ _0205BFA6:
sub_0205BFAC: ; 0x0205BFAC sub_0205BFAC: ; 0x0205BFAC
push {r3-r5, lr} push {r3-r5, lr}
add r4, r0, #0x0 add r4, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r5, r0, #0x0 add r5, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
cmp r5, r0 cmp r5, r0
beq _0205BFC4 beq _0205BFC4
mov r0, #0x0 mov r0, #0x0
pop {r3-r5, pc} pop {r3-r5, pc}
_0205BFC4: _0205BFC4:
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r5, r0, #0x0 add r5, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
cmp r5, r0 cmp r5, r0
bne _0205BFDA bne _0205BFDA
mov r0, #0x1 mov r0, #0x1

View File

@ -285,10 +285,10 @@ sub_0205C794: ; 0x0205C794
cmp r0, #0x1 cmp r0, #0x1
bne _0205C802 bne _0205C802
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetFacingDirection bl MapObject_GetFacingDirection
@ -329,10 +329,10 @@ _0205C802:
cmp r0, #0x2 cmp r0, #0x2
bne _0205C864 bne _0205C864
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
mov r1, #0x0 mov r1, #0x0
@ -402,11 +402,11 @@ sub_0205C888: ; 0x0205C888
add r5, r1, #0x0 add r5, r1, #0x0
add r6, r2, #0x0 add r6, r2, #0x0
add r4, r3, #0x0 add r4, r3, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
cmp r0, r6 cmp r0, r6
bne _0205C8AE bne _0205C8AE
add r0, r7, #0x0 add r0, r7, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r4, r0 cmp r4, r0
bge _0205C8AE bge _0205C8AE
sub r1, r0, r5 sub r1, r0, r5
@ -426,11 +426,11 @@ sub_0205C8B4: ; 0x0205C8B4
add r5, r1, #0x0 add r5, r1, #0x0
add r6, r2, #0x0 add r6, r2, #0x0
add r4, r3, #0x0 add r4, r3, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
cmp r0, r6 cmp r0, r6
bne _0205C8DA bne _0205C8DA
add r0, r7, #0x0 add r0, r7, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r4, r0 cmp r4, r0
ble _0205C8DA ble _0205C8DA
add r1, r0, r5 add r1, r0, r5
@ -450,11 +450,11 @@ sub_0205C8E0: ; 0x0205C8E0
add r5, r1, #0x0 add r5, r1, #0x0
add r4, r2, #0x0 add r4, r2, #0x0
add r6, r3, #0x0 add r6, r3, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r0, r6 cmp r0, r6
bne _0205C906 bne _0205C906
add r0, r7, #0x0 add r0, r7, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
cmp r4, r0 cmp r4, r0
bge _0205C906 bge _0205C906
sub r1, r0, r5 sub r1, r0, r5
@ -474,11 +474,11 @@ sub_0205C90C: ; 0x0205C90C
add r5, r1, #0x0 add r5, r1, #0x0
add r4, r2, #0x0 add r4, r2, #0x0
add r6, r3, #0x0 add r6, r3, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
cmp r0, r6 cmp r0, r6
bne _0205C932 bne _0205C932
add r0, r7, #0x0 add r0, r7, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
cmp r4, r0 cmp r4, r0
ble _0205C932 ble _0205C932
add r1, r0, r5 add r1, r0, r5
@ -504,13 +504,13 @@ sub_0205C938: ; 0x0205C938
mov r0, #0x1 mov r0, #0x1
pop {r3-r7, pc} pop {r3-r7, pc}
_0205C94C: _0205C94C:
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [sp, #0x4] ldr r0, [sp, #0x4]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [sp, #0x4] ldr r0, [sp, #0x4]
bl MapObject_GetCurrentY bl MapObject_GetYCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
add r0, r5, #0x0 add r0, r5, #0x0
bl sub_02059BF4 bl sub_02059BF4
@ -1024,16 +1024,16 @@ sub_0205CCEC: ; 0x0205CCEC
ldr r0, [r5, #0x28] ldr r0, [r5, #0x28]
bl PlayerAvatar_GetMapObject bl PlayerAvatar_GetMapObject
add r4, r0, #0x0 add r4, r0, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r5, #0x24] ldr r0, [r5, #0x24]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
ldr r0, [r5, #0x24] ldr r0, [r5, #0x24]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r3, r0, #0x0 add r3, r0, #0x0
ldr r2, [sp, #0x0] ldr r2, [sp, #0x0]
add r0, r6, #0x0 add r0, r6, #0x0

View File

@ -82,10 +82,10 @@ sub_0205CE80: ; 0x0205CE80
bl PlayerAvatar_GetState bl PlayerAvatar_GetState
str r0, [r5, #0x8] str r0, [r5, #0x8]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
add r1, r6, #0x0 add r1, r6, #0x0
@ -448,7 +448,7 @@ _0205D184:
pop {r3-r5, pc} pop {r3-r5, pc}
_0205D194: _0205D194:
ldr r0, [r5, #0x14] ldr r0, [r5, #0x14]
bl sub_02055738 bl PlayerAvatar_CheckBikeStateLocked
cmp r0, #0x1 cmp r0, #0x1
bne _0205D1A4 bne _0205D1A4
mov r0, #0x0 mov r0, #0x0
@ -492,12 +492,12 @@ _0205D1DA:
_0205D1EE: _0205D1EE:
ldr r0, [r5, #0x18] ldr r0, [r5, #0x18]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
lsl r0, r0, #0x10 lsl r0, r0, #0x10
lsr r4, r0, #0x10 lsr r4, r0, #0x10
ldr r0, [r5, #0x18] ldr r0, [r5, #0x18]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
lsl r0, r0, #0x10 lsl r0, r0, #0x10
lsr r2, r0, #0x10 lsr r2, r0, #0x10
ldr r0, [r5, #0x18] ldr r0, [r5, #0x18]
@ -651,7 +651,7 @@ sub_0205D328: ; 0x0205D328
pop {r3-r5, pc} pop {r3-r5, pc}
_0205D336: _0205D336:
ldr r0, [r4, #0x14] ldr r0, [r4, #0x14]
bl sub_02055738 bl PlayerAvatar_CheckBikeStateLocked
cmp r0, #0x1 cmp r0, #0x1
bne _0205D344 bne _0205D344
mov r0, #0x1 mov r0, #0x1

View File

@ -88,7 +88,7 @@ sub_0205DD80: ; 0x0205DD80
strb r1, [r0, #0x3] strb r1, [r0, #0x3]
ldr r0, [sp, #0xc] ldr r0, [sp, #0xc]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
str r0, [sp, #0x1c] str r0, [sp, #0x1c]
ldr r0, [sp, #0x18] ldr r0, [sp, #0x18]
mov r5, #0x0 mov r5, #0x0
@ -882,10 +882,10 @@ _0205E374:
mov r0, #0x0 mov r0, #0x0
strb r0, [r6, #0x0] strb r0, [r6, #0x0]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r3, r4, #0x0 add r3, r4, #0x0
add r3, #0x90 add r3, #0x90
add r2, r0, #0x0 add r2, r0, #0x0

View File

@ -133,7 +133,7 @@ sub_0205E5B4: ; 0x0205E5B4
add r5, r0, #0x0 add r5, r0, #0x0
add r4, r1, #0x0 add r4, r1, #0x0
bl MapObject_GetManager bl MapObject_GetManager
bl sub_020552A4 bl MapObjectManager_GetFirstActiveObjectWithMovement1
cmp r0, #0x0 cmp r0, #0x0
bne _0205E5CC bne _0205E5CC
mov r0, #0x0 mov r0, #0x0
@ -156,14 +156,14 @@ sub_0205E5E0: ; 0x0205E5E0
push {r3-r5, lr} push {r3-r5, lr}
add r5, r1, #0x0 add r5, r1, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
mov r1, #0x1 mov r1, #0x1
add r4, r0, #0x0 add r4, r0, #0x0
strb r1, [r5, #0x1] strb r1, [r5, #0x1]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
strh r0, [r5, #0x2] strh r0, [r5, #0x2]
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
strh r0, [r5, #0x4] strh r0, [r5, #0x4]
mov r0, #0xff mov r0, #0xff
strh r0, [r5, #0x6] strh r0, [r5, #0x6]
@ -175,13 +175,13 @@ sub_0205E608: ; 0x0205E608
push {r4-r6, lr} push {r4-r6, lr}
add r5, r1, #0x0 add r5, r1, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
add r6, r0, #0x0 add r6, r0, #0x0
beq _0205E638 beq _0205E638
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r6, #0x0 add r0, r6, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
mov r1, #0x2 mov r1, #0x2
ldrsh r1, [r5, r1] ldrsh r1, [r5, r1]
cmp r4, r1 cmp r4, r1
@ -202,12 +202,12 @@ sub_0205E63C: ; 0x0205E63C
push {r3-r5, lr} push {r3-r5, lr}
add r5, r1, #0x0 add r5, r1, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
add r4, r0, #0x0 add r4, r0, #0x0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
strh r0, [r5, #0x2] strh r0, [r5, #0x2]
add r0, r4, #0x0 add r0, r4, #0x0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
strh r0, [r5, #0x4] strh r0, [r5, #0x4]
pop {r3-r5, pc} pop {r3-r5, pc}
.balign 4 .balign 4
@ -216,8 +216,8 @@ sub_0205E63C: ; 0x0205E63C
sub_0205E65C: ; 0x0205E65C sub_0205E65C: ; 0x0205E65C
push {r3, lr} push {r3, lr}
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
bl sub_02055464 bl PlayerAvatar_GetUnk8
add r1, r0, #0x0 add r1, r0, #0x0
sub r1, #0x58 sub r1, #0x58
cmp r1, #0x3 cmp r1, #0x3
@ -254,19 +254,19 @@ sub_0205E698: ; 0x0205E698
sub sp, #0x8 sub sp, #0x8
add r5, r0, #0x0 add r5, r0, #0x0
bl MapObject_GetFieldSystem bl MapObject_GetFieldSystem
bl sub_02055698 bl FieldSystem_GetPlayerAvatar
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl sub_02055338 bl PlayerAvatar_GetPreviousXCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r4, #0x0 add r0, r4, #0x0
bl sub_02055344 bl PlayerAvatar_GetPreviousZCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
cmp r0, r6 cmp r0, r6
@ -541,10 +541,10 @@ sub_0205E8D0: ; 0x0205E8D0
add r4, r2, #0x0 add r4, r2, #0x0
strb r0, [r5, #0x1] strb r0, [r5, #0x1]
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
strh r0, [r5, #0x2] strh r0, [r5, #0x2]
add r0, r4, #0x0 add r0, r4, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
strh r0, [r5, #0x4] strh r0, [r5, #0x4]
mov r0, #0xff mov r0, #0xff
strh r0, [r5, #0x6] strh r0, [r5, #0x6]
@ -557,16 +557,16 @@ sub_0205E8F4: ; 0x0205E8F4
push {r3-r7, lr} push {r3-r7, lr}
add r6, r0, #0x0 add r6, r0, #0x0
ldr r5, [r1, #0x8] ldr r5, [r1, #0x8]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
add r0, r6, #0x0 add r0, r6, #0x0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r6, r0, #0x0 add r6, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
add r7, r0, #0x0 add r7, r0, #0x0
add r0, r5, #0x0 add r0, r5, #0x0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
cmp r4, r7 cmp r4, r7
bne _0205E91E bne _0205E91E
cmp r6, r0 cmp r6, r0
@ -596,22 +596,22 @@ sub_0205E940: ; 0x0205E940
sub sp, #0xc sub sp, #0xc
str r0, [sp, #0x0] str r0, [sp, #0x0]
add r5, r1, #0x0 add r5, r1, #0x0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x8] ldr r0, [r5, #0x8]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #0x8] str r0, [sp, #0x8]
ldr r0, [r5, #0x8] ldr r0, [r5, #0x8]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r7, r0, #0x0 add r7, r0, #0x0
ldr r0, [r5, #0x8] ldr r0, [r5, #0x8]
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
str r0, [sp, #0x4] str r0, [sp, #0x4]
ldr r0, [r5, #0x8] ldr r0, [r5, #0x8]
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
add r3, r0, #0x0 add r3, r0, #0x0
ldr r0, [sp, #0x8] ldr r0, [sp, #0x8]
cmp r4, r0 cmp r4, r0

View File

@ -38,11 +38,11 @@ TownMap_Init: ; 0x0205F7A0
bl memset bl memset
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0x0 add r4, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [sp, #0x0] ldr r0, [sp, #0x0]
asr r1, r4, #0x4 asr r1, r4, #0x4

View File

@ -52,10 +52,10 @@ _02060802:
mov r0, #0x22 mov r0, #0x22
str r0, [sp, #0x14] str r0, [sp, #0x14]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
mov r0, #0x3 mov r0, #0x3
str r0, [sp, #0x0] str r0, [sp, #0x0]
@ -81,10 +81,10 @@ _0206085C:
ldr r0, _02060918 ; =0x000001C1 ldr r0, _02060918 ; =0x000001C1
str r0, [sp, #0x14] str r0, [sp, #0x14]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0x0 add r6, r0, #0x0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0x0 add r1, r0, #0x0
mov r0, #0x6 mov r0, #0x6
str r0, [sp, #0x0] str r0, [sp, #0x0]
@ -122,7 +122,7 @@ _02060892:
str r0, [r4, #0x7c] str r0, [r4, #0x7c]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r1, #0x24 add r1, #0x24
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [r5, #0x20] ldr r0, [r5, #0x20]
bl Camera_ClearFixedTarget bl Camera_ClearFixedTarget
add r0, r4, #0x0 add r0, r4, #0x0

View File

@ -503,7 +503,7 @@ _02064B00:
_02064B1C: _02064B1C:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [sp, #0x14] ldr r1, [sp, #0x14]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
ldr r0, [sp, #0xc] ldr r0, [sp, #0xc]
add r1, sp, #0x10 add r1, sp, #0x10
bl ov05_021E7EB0 bl ov05_021E7EB0
@ -517,7 +517,7 @@ _02064B2E:
bl ov05_021F4594 bl ov05_021F4594
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
mov r1, #0x1 mov r1, #0x1
bl sub_0205557C bl PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
ldr r0, _02064B6C ; =0x0000061A ldr r0, _02064B6C ; =0x0000061A
bl PlaySE bl PlaySE
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]
@ -620,7 +620,7 @@ _02064BEC:
_02064C12: _02064C12:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [sp, #0x14] ldr r1, [sp, #0x14]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
ldr r0, [sp, #0xc] ldr r0, [sp, #0xc]
add r1, sp, #0x10 add r1, sp, #0x10
bl ov05_021E7EB0 bl ov05_021E7EB0
@ -634,7 +634,7 @@ _02064C24:
bl ov05_021F4594 bl ov05_021F4594
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
mov r1, #0x1 mov r1, #0x1
bl sub_0205557C bl PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
ldr r0, _02064C60 ; =0x0000061A ldr r0, _02064C60 ; =0x0000061A
bl PlaySE bl PlaySE
ldr r0, [r4, #0x0] ldr r0, [r4, #0x0]

View File

@ -3892,75 +3892,75 @@
.extern Save_PlayerHasAllRegisInParty .extern Save_PlayerHasAllRegisInParty
.extern sub_02054F50 .extern sub_02054F50
.extern sub_0205502C .extern sub_0205502C
.extern sub_02055068 .extern PlayerAvatar_CreateWithParams
.extern sub_020550A4 .extern PlayerAvatar_CreateWithActiveMapObject
.extern sub_02055108 .extern sub_02055108
.extern sub_02055160 .extern PlayerAvatar_FreeToHeap
.extern sub_02055168 .extern PlayerAvatar_DeleteFromMap
.extern sub_020552A4 .extern MapObjectManager_GetFirstActiveObjectWithMovement1
.extern PlayerAvatar_GetFacingDirection .extern PlayerAvatar_GetFacingDirection
.extern sub_02055304 .extern PlayerAvatar_SetFacingDirection
.extern sub_02055314 .extern PlayerAvatar_GetNextFacingDirection
.extern GetPlayerXCoord .extern PlayerAvatar_GetXCoord
.extern GetPlayerZCoord .extern PlayerAvatar_GetZCoord
.extern sub_02055338 .extern PlayerAvatar_GetPreviousXCoord
.extern sub_02055344 .extern PlayerAvatar_GetPreviousZCoord
.extern sub_02055350 .extern PlayerAvatar_CopyPositionVector
.extern sub_02055360 .extern PlayerAvatar_GetPositionVector
.extern sub_0205536C .extern PlayerAvatar_SetUnk10
.extern sub_02055370 .extern PlayerAvatar_GetUnk10
.extern sub_02055374 .extern PlayerAvatar_SetUnk14
.extern sub_02055378 .extern PlayerAvatar_GetUnk14
.extern sub_0205537C .extern PlayerAvatar_ToggleVisible
.extern PlayerAvatar_GetMapObject .extern PlayerAvatar_GetMapObject
.extern PlayerAvatar_SetState .extern PlayerAvatar_SetState
.extern PlayerAvatar_GetState .extern PlayerAvatar_GetState
.extern PlayerAvatar_OrrTransitionFlags .extern PlayerAvatar_SetTransitionFlagsBits
.extern PlayerAvatar_SetTransitionFlags .extern PlayerAvatar_SetTransitionFlags
.extern PlayerAvatar_GetTransitionFlags .extern PlayerAvatar_GetTransitionFlags
.extern PlayerAvatar_GetGender .extern PlayerAvatar_GetGender
.extern sub_02055408 .extern PlayerAvatar_GetUnk20
.extern sub_0205540C .extern PlayerAvatar_SetUnk20
.extern sub_02055410 .extern PlayerAvatar_ClearUnk20ClearFlag2
.extern sub_0205541C .extern PlayerAvatar_Unk20AddWithCeiling
.extern sub_02055430 .extern PlayerAvatar_GetUnk24
.extern sub_02055438 .extern PlayerAvatar_GetUnk28
.extern sub_0205543C .extern PlayerAvatar_SetUnk24Unk28
.extern sub_02055450 .extern PlayerAvatar_SetUnk30
.extern sub_02055454 .extern PlayerAvatar_GetUnk30
.extern sub_0205545C .extern PlayerAvatar_GetPlayerSaveData
.extern sub_02055460 .extern PlayerAvatar_SetUnk8
.extern sub_02055464 .extern PlayerAvatar_GetUnk8
.extern sub_02055468 .extern PlayerSaveData_Init
.extern sub_02055474 .extern PlayerSaveData_CheckRunningShoes
.extern sub_02055488 .extern PlayerSaveData_SetRunningShoesFlag
.extern sub_020554AC .extern PlayerAvatar_SetPlayerSaveDataUnk0
.extern sub_020554BC .extern PlayerAvatar_GetPlayerSaveDataUnk0
.extern sub_020554EC .extern sub_020554EC
.extern sub_02055514 .extern sub_02055514
.extern sub_02055540 .extern PlayerAvatar_SetMapObjectYPosition
.extern PlayerAvatar_ToggleAutomaticHeightUpdating .extern PlayerAvatar_ToggleAutomaticHeightUpdating
.extern sub_0205557C .extern PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
.extern PlayerAvatar_GetSpriteByStateAndGender .extern PlayerAvatar_GetSpriteByStateAndGender
.extern sub_02055648 .extern PlayerAvatar_GetTransitionBits
.extern sub_02055698 .extern FieldSystem_GetPlayerAvatar
.extern sub_0205569C .extern PlayerAvatar_SetFlag0
.extern sub_020556B4 .extern PlayerAvatar_CheckFlag0
.extern sub_020556C8 .extern PlayerAvatar_SetFlag1
.extern sub_020556E0 .extern PlayerAvatar_CheckFlag1
.extern sub_020556F4 .extern PlayerAvatar_SetFlag2
.extern sub_0205570C .extern PlayerAvatar_CheckFlag2
.extern sub_02055720 .extern PlayerAvatar_SetBikeStateLock
.extern sub_02055738 .extern PlayerAvatar_CheckBikeStateLocked
.extern sub_0205574C .extern PlayerAvatar_SetFlag4
.extern sub_02055764 .extern PlayerAvatar_CheckFlag4
.extern sub_02055778 .extern PlayerAvatar_SetFlag5
.extern sub_02055790 .extern PlayerAvatar_CheckFlag5
.extern sub_020557A4 .extern PlayerAvatar_SetFlag6
.extern sub_020557B0 .extern PlayerAvatar_ClearFlag6
.extern sub_020557BC .extern PlayerAvatar_CheckFlag6
.extern sub_020557D0 .extern PlayerAvatar_SetFlag7
.extern sub_020557E8 .extern PlayerAvatar_CheckFlag7
.extern sub_020557F4 .extern sub_020557F4
.extern sub_02055898 .extern sub_02055898
.extern sub_02055A38 .extern sub_02055A38
@ -4116,19 +4116,19 @@
.extern MapObject_GetInitialX .extern MapObject_GetInitialX
.extern MapObject_GetInitialY .extern MapObject_GetInitialY
.extern MapObject_GetInitialZ .extern MapObject_GetInitialZ
.extern MapObject_GetPreviousX .extern MapObject_GetPreviousXCoord
.extern MapObject_SetPreviousX .extern MapObject_SetPreviousX
.extern MapObject_GetPreviousY .extern MapObject_GetPreviousYCoord
.extern MapObject_SetPreviousY .extern MapObject_SetPreviousY
.extern MapObject_GetPreviousZ .extern MapObject_GetPreviousZCoord
.extern MapObject_SetPreviousZ .extern MapObject_SetPreviousZ
.extern MapObject_GetCurrentX .extern MapObject_GetXCoord
.extern MapObject_SetCurrentX .extern MapObject_SetCurrentX
.extern MapObject_AddCurrentX .extern MapObject_AddCurrentX
.extern MapObject_GetCurrentY .extern MapObject_GetYCoord
.extern MapObject_SetCurrentY .extern MapObject_SetCurrentY
.extern MapObject_AddCurrentY .extern MapObject_AddCurrentY
.extern MapObject_GetCurrentZ .extern MapObject_GetZCoord
.extern MapObject_SetCurrentZ .extern MapObject_SetCurrentZ
.extern MapObject_AddCurrentZ .extern MapObject_AddCurrentZ
.extern MapObject_CopyPositionVector .extern MapObject_CopyPositionVector
@ -4143,7 +4143,7 @@
.extern sub_02058BD4 .extern sub_02058BD4
.extern MapObject_GetPositionVectorYCoordUInt .extern MapObject_GetPositionVectorYCoordUInt
.extern MapObjectManager_GetFirstObjectWithXAndZ .extern MapObjectManager_GetFirstObjectWithXAndZ
.extern LocalMapObject_SetPositionFromVectorAndDirection .extern MapObject_SetPositionFromVectorAndDirection
.extern MapObject_SetPositionFromXYZAndDirection .extern MapObject_SetPositionFromXYZAndDirection
.extern sub_02058E90 .extern sub_02058E90
.extern sub_02058EB0 .extern sub_02058EB0

View File

@ -232,11 +232,11 @@ _021D76E2:
ldr r0, [r4, #0x24] ldr r0, [r4, #0x24]
bl ov05_021EF5FC bl ov05_021EF5FC
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, [r4, #0x1c] ldr r1, [r4, #0x1c]
str r0, [r1, #8] str r0, [r1, #8]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x1c] ldr r1, [r4, #0x1c]
str r0, [r1, #0xc] str r0, [r1, #0xc]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
@ -383,10 +383,10 @@ ov05_021D7864: ; 0x021D7864
push {r3, r4, r5, lr} push {r3, r4, r5, lr}
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r2, [r5, #0x1c] ldr r2, [r5, #0x1c]
ldr r1, [r2, #8] ldr r1, [r2, #8]
cmp r4, r1 cmp r4, r1
@ -411,13 +411,13 @@ ov05_021D7894: ; 0x021D7894
sub sp, #8 sub sp, #8
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
asr r1, r0, #4 asr r1, r0, #4
lsr r1, r1, #0x1b lsr r1, r1, #0x1b
add r1, r0, r1 add r1, r0, r1
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
asr r4, r1, #5 asr r4, r1, #5
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
asr r1, r0, #4 asr r1, r0, #4
lsr r1, r1, #0x1b lsr r1, r1, #0x1b
add r1, r0, r1 add r1, r0, r1
@ -550,13 +550,13 @@ ov05_021D79B4: ; 0x021D79B4
bl sub_02034E0C bl sub_02034E0C
add r7, r0, #0 add r7, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
asr r1, r0, #4 asr r1, r0, #4
lsr r1, r1, #0x1b lsr r1, r1, #0x1b
add r1, r0, r1 add r1, r0, r1
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
asr r6, r1, #5 asr r6, r1, #5
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
asr r1, r0, #4 asr r1, r0, #4
lsr r1, r1, #0x1b lsr r1, r1, #0x1b
add r1, r0, r1 add r1, r0, r1
@ -1077,7 +1077,7 @@ _021D7DF6:
ldr r0, [r4, #0x34] ldr r0, [r4, #0x34]
bl sub_02058774 bl sub_02058774
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
ldr r1, [r4, #0x24] ldr r1, [r4, #0x24]
bl ov05_021EF5E0 bl ov05_021EF5E0
add r0, r4, #0 add r0, r4, #0
@ -1109,7 +1109,7 @@ ov05_021D7E4C: ; 0x021D7E4C
bl sub_02034E10 bl sub_02034E10
add r5, r0, #0 add r5, r0, #0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl sub_02055360 bl PlayerAvatar_GetPositionVector
add r1, r4, #0 add r1, r4, #0
add r2, r5, #0 add r2, r5, #0
mov r3, #1 mov r3, #1

View File

@ -74,10 +74,10 @@ ov05_021D8164: ; 0x021D8164
add r4, r3, #0 add r4, r3, #0
bl ov05_021D80E8 bl ov05_021D80E8
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
bl sub_02055378 bl PlayerAvatar_GetUnk14
str r0, [sp, #4] str r0, [sp, #4]
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
bl sub_02055370 bl PlayerAvatar_GetUnk10
str r0, [sp] str r0, [sp]
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
bl PlayerAvatar_GetFacingDirection bl PlayerAvatar_GetFacingDirection
@ -208,7 +208,7 @@ ov05_021D825C: ; 0x021D825C
add r4, r1, #0 add r4, r1, #0
add r5, r0, #0 add r5, r0, #0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl sub_02055378 bl PlayerAvatar_GetUnk14
add r6, r0, #0 add r6, r0, #0
ldr r0, [r4, #0x1c] ldr r0, [r4, #0x1c]
ldr r1, [r0] ldr r1, [r0]
@ -231,7 +231,7 @@ _021D8290:
cmp r6, #0 cmp r6, #0
bne _021D82EC bne _021D82EC
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl sub_02055370 bl PlayerAvatar_GetUnk10
ldrb r1, [r5, #2] ldrb r1, [r5, #2]
lsl r2, r1, #0x18 lsl r2, r1, #0x18
asr r3, r2, #0x18 asr r3, r2, #0x18
@ -1451,10 +1451,10 @@ _021D8C88:
bl Save_PlayerData_GetProfile bl Save_PlayerData_GetProfile
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r7, r0, #0 add r7, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
add r0, r5, #0 add r0, r5, #0
add r1, r7, #0 add r1, r7, #0
@ -1521,10 +1521,10 @@ _021D8D34:
pop {r3, r4, r5, r6, r7, pc} pop {r3, r4, r5, r6, r7, pc}
_021D8D4C: _021D8D4C:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0 add r7, r0, #0
add r0, r5, #0 add r0, r5, #0
add r1, r4, #0 add r1, r4, #0
@ -1551,7 +1551,7 @@ _021D8D76:
pop {r3, r4, r5, r6, r7, pc} pop {r3, r4, r5, r6, r7, pc}
_021D8D90: _021D8D90:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl sub_020556B4 bl PlayerAvatar_CheckFlag0
cmp r0, #0 cmp r0, #0
beq _021D8D9E beq _021D8D9E
mov r0, #0 mov r0, #0
@ -1988,10 +1988,10 @@ ov05_021D90F8: ; 0x021D90F8
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r4, r1, #0 add r4, r1, #0
add r6, r2, #0 add r6, r2, #0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [r4] str r0, [r4]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [r6] str r0, [r6]
pop {r4, r5, r6, pc} pop {r4, r5, r6, pc}
.balign 4, 0 .balign 4, 0

View File

@ -259,12 +259,12 @@ _021E1562:
ldr r0, [sp] ldr r0, [sp]
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [sp] ldr r0, [sp]
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
sub r1, r4, #7 sub r1, r4, #7
str r1, [sp, #0x14] str r1, [sp, #0x14]
add r1, r4, #7 add r1, r4, #7
@ -319,10 +319,10 @@ _021E15CA: ; jump table
.short _021E15DC - _021E15CA - 2 ; case 8 .short _021E15DC - _021E15CA - 2 ; case 8
_021E15DC: _021E15DC:
add r0, r4, #0 add r0, r4, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r7, r0, #0 add r7, r0, #0
add r0, r4, #0 add r0, r4, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [sp, #0x14] ldr r1, [sp, #0x14]
cmp r7, r1 cmp r7, r1
blt _021E161A blt _021E161A

View File

@ -5,10 +5,10 @@
thumb_func_start Field_PlayerAvatar_OrrTransitionFlags thumb_func_start Field_PlayerAvatar_OrrTransitionFlags
Field_PlayerAvatar_OrrTransitionFlags: ; 0x021E5FD8 Field_PlayerAvatar_OrrTransitionFlags: ; 0x021E5FD8
ldr r3, _021E5FDC ; =PlayerAvatar_OrrTransitionFlags ldr r3, _021E5FDC ; =PlayerAvatar_SetTransitionFlagsBits
bx r3 bx r3
.balign 4, 0 .balign 4, 0
_021E5FDC: .word PlayerAvatar_OrrTransitionFlags _021E5FDC: .word PlayerAvatar_SetTransitionFlagsBits
thumb_func_start Field_PlayerAvatar_ApplyTransitionFlags thumb_func_start Field_PlayerAvatar_ApplyTransitionFlags
Field_PlayerAvatar_ApplyTransitionFlags: ; 0x021E5FE0 Field_PlayerAvatar_ApplyTransitionFlags: ; 0x021E5FE0
@ -53,16 +53,16 @@ ov05_021E6014: ; 0x021E6014
mov r1, #0 mov r1, #0
bl PlayerAvatar_SetState bl PlayerAvatar_SetState
add r0, r4, #0 add r0, r4, #0
bl sub_02055410 bl PlayerAvatar_ClearUnk20ClearFlag2
add r0, r4, #0 add r0, r4, #0
bl sub_02055454 bl PlayerAvatar_GetUnk30
cmp r0, #0 cmp r0, #0
beq _021E6048 beq _021E6048
bl ov05_021E4DE4 bl ov05_021E4DE4
_021E6048: _021E6048:
add r0, r4, #0 add r0, r4, #0
mov r1, #0 mov r1, #0
bl sub_02055450 bl PlayerAvatar_SetUnk30
pop {r4, pc} pop {r4, pc}
.balign 4, 0 .balign 4, 0
@ -81,16 +81,16 @@ ov05_021E6054: ; 0x021E6054
mov r1, #1 mov r1, #1
bl PlayerAvatar_SetState bl PlayerAvatar_SetState
add r0, r4, #0 add r0, r4, #0
bl sub_02055410 bl PlayerAvatar_ClearUnk20ClearFlag2
add r0, r4, #0 add r0, r4, #0
bl sub_02055454 bl PlayerAvatar_GetUnk30
cmp r0, #0 cmp r0, #0
beq _021E6088 beq _021E6088
bl ov05_021E4DE4 bl ov05_021E4DE4
_021E6088: _021E6088:
add r0, r4, #0 add r0, r4, #0
mov r1, #0 mov r1, #0
bl sub_02055450 bl PlayerAvatar_SetUnk30
ldr r0, _021E6098 ; =0x00000618 ldr r0, _021E6098 ; =0x00000618
bl PlaySE bl PlaySE
pop {r4, pc} pop {r4, pc}
@ -113,16 +113,16 @@ ov05_021E609C: ; 0x021E609C
mov r1, #2 mov r1, #2
bl PlayerAvatar_SetState bl PlayerAvatar_SetState
add r0, r5, #0 add r0, r5, #0
bl sub_02055410 bl PlayerAvatar_ClearUnk20ClearFlag2
add r0, r5, #0 add r0, r5, #0
bl sub_02055454 bl PlayerAvatar_GetUnk30
cmp r0, #0 cmp r0, #0
beq _021E60D2 beq _021E60D2
bl ov05_021E4DE4 bl ov05_021E4DE4
_021E60D2: _021E60D2:
add r0, r5, #0 add r0, r5, #0
mov r1, #0 mov r1, #0
bl sub_02055450 bl PlayerAvatar_SetUnk30
add r0, r5, #0 add r0, r5, #0
bl PlayerAvatar_GetFacingDirection bl PlayerAvatar_GetFacingDirection
add r4, r0, #0 add r4, r0, #0
@ -139,18 +139,18 @@ _021E60D2:
bl ov06_0224ABAC bl ov06_0224ABAC
add r1, r0, #0 add r1, r0, #0
add r0, r5, #0 add r0, r5, #0
bl sub_02055450 bl PlayerAvatar_SetUnk30
add sp, #4 add sp, #4
pop {r3, r4, r5, r6, pc} pop {r3, r4, r5, r6, pc}
.balign 4, 0 .balign 4, 0
thumb_func_start ov05_021E610C thumb_func_start ov05_021E610C
ov05_021E610C: ; 0x021E610C ov05_021E610C: ; 0x021E610C
ldr r3, _021E6114 ; =sub_020556C8 ldr r3, _021E6114 ; =PlayerAvatar_SetFlag1
mov r1, #1 mov r1, #1
bx r3 bx r3
nop nop
_021E6114: .word sub_020556C8 _021E6114: .word PlayerAvatar_SetFlag1
thumb_func_start ov05_021E6118 thumb_func_start ov05_021E6118
ov05_021E6118: ; 0x021E6118 ov05_021E6118: ; 0x021E6118
@ -230,7 +230,7 @@ ov05_021E61A4: ; 0x021E61A4
add r0, r5, #0 add r0, r5, #0
add r4, r2, #0 add r4, r2, #0
add r7, r3, #0 add r7, r3, #0
bl sub_020556B4 bl PlayerAvatar_CheckFlag0
cmp r0, #1 cmp r0, #1
bne _021E61CE bne _021E61CE
add r0, r6, #0 add r0, r6, #0
@ -672,13 +672,13 @@ _021E6500:
b _021E65E4 b _021E65E4
_021E6514: _021E6514:
ldr r0, [r4, #0x20] ldr r0, [r4, #0x20]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r5, r0, #0 add r5, r0, #0
ldr r0, [r4, #4] ldr r0, [r4, #4]
bl sub_02059BF4 bl sub_02059BF4
add r6, r0, #0 add r6, r0, #0
ldr r0, [r4, #0x20] ldr r0, [r4, #0x20]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0 add r7, r0, #0
ldr r0, [r4, #4] ldr r0, [r4, #4]
bl sub_02059C00 bl sub_02059C00
@ -693,7 +693,7 @@ _021E6514:
str r0, [r4, #0x28] str r0, [r4, #0x28]
ldr r0, [r4, #0x20] ldr r0, [r4, #0x20]
ldr r1, [r4, #0x28] ldr r1, [r4, #0x28]
bl sub_02055450 bl PlayerAvatar_SetUnk30
ldr r0, [r4, #0x20] ldr r0, [r4, #0x20]
mov r1, #2 mov r1, #2
bl PlayerAvatar_SetState bl PlayerAvatar_SetState
@ -821,7 +821,7 @@ ov05_021E6638: ; 0x021E6638
bl PlayerAvatar_GetMapObject bl PlayerAvatar_GetMapObject
str r0, [r4, #0x10] str r0, [r4, #0x10]
add r0, r7, #0 add r0, r7, #0
bl sub_02055454 bl PlayerAvatar_GetUnk30
str r0, [r4, #0x14] str r0, [r4, #0x14]
cmp r0, #0 cmp r0, #0
bne _021E6666 bne _021E6666
@ -883,7 +883,7 @@ _021E66CC:
bl ov05_021E4DE4 bl ov05_021E4DE4
ldr r0, [r4, #0xc] ldr r0, [r4, #0xc]
mov r1, #0 mov r1, #0
bl sub_02055450 bl PlayerAvatar_SetUnk30
ldr r0, [r4, #0xc] ldr r0, [r4, #0xc]
mov r1, #0 mov r1, #0
bl PlayerAvatar_SetState bl PlayerAvatar_SetState
@ -945,7 +945,7 @@ ov05_021E6758: ; 0x021E6758
add r4, r1, #0 add r4, r1, #0
add r5, r0, #0 add r5, r0, #0
add r0, r4, #0 add r0, r4, #0
bl sub_02055764 bl PlayerAvatar_CheckFlag4
cmp r0, #1 cmp r0, #1
bne _021E676C bne _021E676C
mov r0, #0 mov r0, #0
@ -1032,7 +1032,7 @@ _021E6804:
bl PlaySE bl PlaySE
ldr r0, [r4, #0xc] ldr r0, [r4, #0xc]
mov r1, #1 mov r1, #1
bl sub_0205574C bl PlayerAvatar_SetFlag4
add r0, r4, #0 add r0, r4, #0
bl ov05_021E72DC bl ov05_021E72DC
add sp, #0xc add sp, #0xc
@ -1084,7 +1084,7 @@ _021E682A:
bne _021E68A2 bne _021E68A2
ldr r0, [r4, #0xc] ldr r0, [r4, #0xc]
mov r1, #1 mov r1, #1
bl sub_0205574C bl PlayerAvatar_SetFlag4
add r0, r4, #0 add r0, r4, #0
bl ov05_021E72DC bl ov05_021E72DC
ldr r0, [sp, #4] ldr r0, [sp, #4]
@ -1150,14 +1150,14 @@ ov05_021E6904: ; 0x021E6904
push {r4, lr} push {r4, lr}
add r4, r1, #0 add r4, r1, #0
add r0, r4, #0 add r0, r4, #0
bl sub_02055408 bl PlayerAvatar_GetUnk20
cmp r0, #1 cmp r0, #1
bge _021E6916 bge _021E6916
mov r0, #0 mov r0, #0
pop {r4, pc} pop {r4, pc}
_021E6916: _021E6916:
add r0, r4, #0 add r0, r4, #0
bl sub_02055314 bl PlayerAvatar_GetNextFacingDirection
add r1, r0, #0 add r1, r0, #0
add r0, r4, #0 add r0, r4, #0
bl ov05_021E727C bl ov05_021E727C
@ -1329,13 +1329,13 @@ ov05_021E6A58: ; 0x021E6A58
push {r3, r4, r5, r6, r7, lr} push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x10] ldr r0, [r5, #0x10]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #4] ldr r0, [r5, #4]
bl sub_02059BF4 bl sub_02059BF4
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x10] ldr r0, [r5, #0x10]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0 add r7, r0, #0
ldr r0, [r5, #4] ldr r0, [r5, #4]
bl sub_02059C00 bl sub_02059C00
@ -1647,14 +1647,14 @@ ov05_021E6CC4: ; 0x021E6CC4
sub sp, #0x18 sub sp, #0x18
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x3c] ldr r0, [r5, #0x3c]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0 add r4, r0, #0
mov r0, #0 mov r0, #0
bl sub_02059BF4 bl sub_02059BF4
lsl r0, r0, #1 lsl r0, r0, #1
add r4, r4, r0 add r4, r4, r0
ldr r0, [r5, #0x3c] ldr r0, [r5, #0x3c]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r6, r0, #0 add r6, r0, #0
mov r0, #0 mov r0, #0
bl sub_02059C00 bl sub_02059C00
@ -1878,14 +1878,14 @@ ov05_021E6E90: ; 0x021E6E90
sub sp, #0x18 sub sp, #0x18
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x3c] ldr r0, [r5, #0x3c]
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0 add r4, r0, #0
mov r0, #1 mov r0, #1
bl sub_02059BF4 bl sub_02059BF4
lsl r0, r0, #1 lsl r0, r0, #1
add r4, r4, r0 add r4, r4, r0
ldr r0, [r5, #0x3c] ldr r0, [r5, #0x3c]
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r6, r0, #0 add r6, r0, #0
mov r0, #1 mov r0, #1
bl sub_02059C00 bl sub_02059C00
@ -2367,13 +2367,13 @@ ov05_021E727C: ; 0x021E727C
push {r3, r4, r5, r6, r7, lr} push {r3, r4, r5, r6, r7, lr}
add r5, r1, #0 add r5, r1, #0
add r4, r0, #0 add r4, r0, #0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
add r0, r5, #0 add r0, r5, #0
bl sub_02059BF4 bl sub_02059BF4
add r7, r0, #0 add r7, r0, #0
add r0, r4, #0 add r0, r4, #0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [sp] str r0, [sp]
add r0, r5, #0 add r0, r5, #0
bl sub_02059C00 bl sub_02059C00

View File

@ -37,12 +37,12 @@ _021E7532:
str r0, [r1, #0x10] str r0, [r1, #0x10]
_021E7536: _021E7536:
ldr r0, [r1] ldr r0, [r1]
ldr r3, _021E7540 ; =sub_02055304 ldr r3, _021E7540 ; =PlayerAvatar_SetFacingDirection
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
ldr r1, [r1, #0x10] ldr r1, [r1, #0x10]
bx r3 bx r3
.balign 4, 0 .balign 4, 0
_021E7540: .word sub_02055304 _021E7540: .word PlayerAvatar_SetFacingDirection
thumb_func_start ov05_021E7544 thumb_func_start ov05_021E7544
ov05_021E7544: ; 0x021E7544 ov05_021E7544: ; 0x021E7544
@ -264,7 +264,7 @@ _021E771C:
ldr r0, [r5] ldr r0, [r5]
mov r1, #1 mov r1, #1
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
ldr r0, [r5, #4] ldr r0, [r5, #4]
mov r1, #1 mov r1, #1
str r1, [r0] str r1, [r0]

View File

@ -372,11 +372,11 @@ Field_SaveGame: ; 0x021E85FC
mov r2, #0 mov r2, #0
bl ov05_021EFA9C bl ov05_021EFA9C
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, [r4, #0x1c] ldr r1, [r4, #0x1c]
str r0, [r1, #8] str r0, [r1, #8]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x1c] ldr r1, [r4, #0x1c]
str r0, [r1, #0xc] str r0, [r1, #0xc]
mov r1, #0 mov r1, #0

View File

@ -173,13 +173,13 @@ _021EDCAE:
str r0, [r5, #0x20] str r0, [r5, #0x20]
_021EDCB8: _021EDCB8:
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #4] ldr r0, [r5, #4]
bl sub_02059BF4 bl sub_02059BF4
add r7, r0, #0 add r7, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #8] str r0, [sp, #8]
ldr r0, [r5, #4] ldr r0, [r5, #4]
bl sub_02059C00 bl sub_02059C00

View File

@ -21,10 +21,10 @@ ov05_021F3860: ; 0x021F3860
add r5, r1, #0 add r5, r1, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r4, r2, #0 add r4, r2, #0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0 add r7, r0, #0
ldr r0, [r4] ldr r0, [r4]
cmp r0, r6 cmp r0, r6

View File

@ -42,10 +42,10 @@ ov05_021F4D2C: ; 0x021F4D2C
ldr r0, _021F4D7C ; =0x000007D8 ldr r0, _021F4D7C ; =0x000007D8
str r0, [r1] str r0, [r1]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl PlayerAvatar_GetFacingDirection bl PlayerAvatar_GetFacingDirection

View File

@ -480,10 +480,10 @@ _021F5888:
cmp r0, #0 cmp r0, #0
bge _021F5980 bge _021F5980
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
add r0, r5, #0 add r0, r5, #0
add r1, r6, #0 add r1, r6, #0

View File

@ -539,7 +539,7 @@ _021F602C:
bl ov05_021F60FC bl ov05_021F60FC
add r0, r4, #0 add r0, r4, #0
bl PlayerAvatar_GetState bl PlayerAvatar_GetState
bl sub_02055648 bl PlayerAvatar_GetTransitionBits
add r1, r0, #0 add r1, r0, #0
add r0, r4, #0 add r0, r4, #0
bl Field_PlayerAvatar_OrrTransitionFlags bl Field_PlayerAvatar_OrrTransitionFlags

View File

@ -4,6 +4,7 @@
#include "nitro/types.h" #include "nitro/types.h"
#include "field_system.h" #include "field_system.h"
#include "player_avatar.h"
#include "task.h" #include "task.h"
typedef struct UnkStruct021E7358 { typedef struct UnkStruct021E7358 {
@ -11,12 +12,12 @@ typedef struct UnkStruct021E7358 {
u32 Unk04; u32 Unk04;
u32 Unk08; u32 Unk08;
FieldSystem *fieldSystem; FieldSystem *fieldSystem;
u32 Unk10; PlayerAvatar *avatar;
} UnkStruct021E7358; } UnkStruct021E7358;
BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1); BOOL ov05_021E72FC(FieldSystem *fieldSystem, PlayerAvatar *avatar);
void ov05_021E7358(FieldSystem *fieldSystem, u32 param1, u32 param2); void ov05_021E7358(FieldSystem *fieldSystem, PlayerAvatar *avatar, u32 param2);
u32 ov05_021E7388(u32 param0); u32 ov05_021E7388(u32 param0);
BOOL ov05_021E73B4(TaskManager *taskManager); BOOL ov05_021E73B4(TaskManager *taskManager);
UnkStruct021E7358 *ov05_021E74D4(u32 param0); UnkStruct021E7358 *ov05_021E74D4(u32 param0);

View File

@ -8,19 +8,17 @@
#include "map_object.h" #include "map_object.h"
#include "unk_020051F4.h" #include "unk_020051F4.h"
extern LocalMapObject *PlayerAvatar_GetMapObject(u32 param0);
extern BOOL sub_02054B30(u8 param0); extern BOOL sub_02054B30(u8 param0);
extern BOOL sub_02054B3C(u8 param0); extern BOOL sub_02054B3C(u8 param0);
extern BOOL sub_02054B48(u8 param0); extern BOOL sub_02054B48(u8 param0);
extern BOOL sub_02054B54(u8 param0); extern BOOL sub_02054B54(u8 param0);
extern BOOL sub_02057254(u32 param0); extern BOOL sub_02057254(PlayerAvatar *avatar);
extern u32 sub_0205AFDC(u32 param0, u32 param1); extern u32 sub_0205AFDC(u32 param0, u32 param1);
extern void sub_02057260(u32 param0, u32 param1); extern void sub_02057260(PlayerAvatar *avatar, u32 param1);
extern void sub_02055304(u32 param0, u32 param1); extern BOOL sub_02056B74(PlayerAvatar *avatar, LocalMapObject *object, u32 param2);
extern BOOL sub_02056B74(u32 param0, LocalMapObject *object, u32 param2);
BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1) { BOOL ov05_021E72FC(FieldSystem *fieldSystem, PlayerAvatar *avatar) {
u8 res = (u8)sub_02058720(PlayerAvatar_GetMapObject(param1)); u8 res = (u8)sub_02058720(PlayerAvatar_GetMapObject(avatar));
u32 r2; u32 r2;
if (sub_02054B30(res) == TRUE) { if (sub_02054B30(res) == TRUE) {
r2 = 3; r2 = 3;
@ -37,14 +35,14 @@ BOOL ov05_021E72FC(FieldSystem *fieldSystem, u32 param1) {
} }
return FALSE; return FALSE;
label: label:
ov05_021E7358(fieldSystem, param1, r2); ov05_021E7358(fieldSystem, avatar, r2);
return TRUE; return TRUE;
} }
void ov05_021E7358(FieldSystem *fieldSystem, u32 param1, u32 param2) { void ov05_021E7358(FieldSystem *fieldSystem, PlayerAvatar *avatar, u32 param2) {
UnkStruct021E7358 *res = ov05_021E74D4(24); UnkStruct021E7358 *res = ov05_021E74D4(24);
res->fieldSystem = fieldSystem; res->fieldSystem = fieldSystem;
res->Unk10 = param1; res->avatar = avatar;
res->Unk00 = param2; res->Unk00 = param2;
PlaySE(SEQ_SE_DP_F209); PlaySE(SEQ_SE_DP_F209);
FieldSystem_CreateTask(fieldSystem, ov05_021E73B4, res); FieldSystem_CreateTask(fieldSystem, ov05_021E73B4, res);
@ -66,7 +64,7 @@ u32 ov05_021E7388(u32 param0) {
BOOL ov05_021E73B4(TaskManager *taskManager) { BOOL ov05_021E73B4(TaskManager *taskManager) {
UnkStruct021E7358 *strct = TaskManager_GetEnvironment(taskManager); UnkStruct021E7358 *strct = TaskManager_GetEnvironment(taskManager);
LocalMapObject *playerObject = PlayerAvatar_GetMapObject(strct->Unk10); LocalMapObject *playerObject = PlayerAvatar_GetMapObject(strct->avatar);
u8 res2 = (u8)sub_02058720(playerObject); u8 res2 = (u8)sub_02058720(playerObject);
switch (strct->Unk08) { switch (strct->Unk08) {
case 0: case 0:
@ -74,18 +72,18 @@ BOOL ov05_021E73B4(TaskManager *taskManager) {
strct->Unk08++; strct->Unk08++;
break; break;
case 1: case 1:
if (!sub_02057254(strct->Unk10)) { if (!sub_02057254(strct->avatar)) {
break; break;
} }
sub_02057260(strct->Unk10, sub_0205AFDC(strct->Unk00, 12)); sub_02057260(strct->avatar, sub_0205AFDC(strct->Unk00, 12));
sub_02055304(strct->Unk10, strct->Unk00); PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
strct->Unk08++; strct->Unk08++;
strct->Unk04 = 7; strct->Unk04 = 7;
break; break;
case 2: case 2:
if (strct->Unk04 == 2 || strct->Unk04 == 4 || strct->Unk04 == 6) { if (strct->Unk04 == 2 || strct->Unk04 == 4 || strct->Unk04 == 6) {
strct->Unk00 = ov05_021E7388(strct->Unk00); strct->Unk00 = ov05_021E7388(strct->Unk00);
sub_02055304(strct->Unk10, strct->Unk00); PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
} }
if (--(strct->Unk04)) { if (--(strct->Unk04)) {
break; break;
@ -101,13 +99,13 @@ BOOL ov05_021E73B4(TaskManager *taskManager) {
} else { } else {
strct->Unk00 = ov05_021E7388(strct->Unk00); strct->Unk00 = ov05_021E7388(strct->Unk00);
} }
if (sub_02056B74(strct->Unk10, playerObject, strct->Unk00) == FALSE) { if (sub_02056B74(strct->avatar, playerObject, strct->Unk00) == FALSE) {
strct->Unk08 = 1; strct->Unk08 = 1;
break; break;
} }
MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK7); MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK7);
MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK8); MapObject_ClearFlagsBits(playerObject, MAPOBJECTFLAG_UNK8);
sub_02055304(strct->Unk10, strct->Unk00); PlayerAvatar_SetFacingDirection(strct->avatar, strct->Unk00);
ov05_021E74F8(strct); ov05_021E74F8(strct);
sub_020054F0(1624, 0); sub_020054F0(1624, 0);
return TRUE; return TRUE;

View File

@ -1127,11 +1127,11 @@ ov06_02239F04: ; 0x02239F04
bl GF_AssertFail bl GF_AssertFail
_02239F18: _02239F18:
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
lsl r0, r0, #0x10 lsl r0, r0, #0x10
lsr r6, r0, #0x10 lsr r6, r0, #0x10
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
lsl r0, r0, #0x10 lsl r0, r0, #0x10
lsr r5, r0, #0x10 lsr r5, r0, #0x10
mov r0, #4 mov r0, #4
@ -4819,10 +4819,10 @@ ov06_0223BA04: ; 0x0223BA04
sub sp, #0xb4 sub sp, #0xb4
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [sp, #0x14] str r0, [sp, #0x14]
ldr r2, [sp, #0x14] ldr r2, [sp, #0x14]
add r0, r5, #0 add r0, r5, #0
@ -5351,10 +5351,10 @@ ov06_0223BE70: ; 0x0223BE70
add r5, r0, #0 add r5, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
str r1, [sp, #0xc] str r1, [sp, #0xc]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
add r0, r5, #0 add r0, r5, #0
add r1, r4, #0 add r1, r4, #0
@ -5602,10 +5602,10 @@ ov06_0223C08C: ; 0x0223C08C
mov r0, #0 mov r0, #0
str r0, [r4] str r0, [r4]
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
add r0, r5, #0 add r0, r5, #0
add r1, r6, #0 add r1, r6, #0
@ -5963,10 +5963,10 @@ _0223C3A6:
cmp r4, #0 cmp r4, #0
beq _0223C3EC beq _0223C3EC
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
add r0, r5, #0 add r0, r5, #0
add r5, #0x90 add r5, #0x90
@ -15673,10 +15673,10 @@ CheckPastoriaGymButton: ; 0x02241230
ldr r0, [r3] ldr r0, [r3]
str r0, [r2] str r0, [r2]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r5, r0, #0 add r5, r0, #0
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0 add r1, r0, #0
mov r0, #1 mov r0, #1
str r0, [sp] str r0, [sp]
@ -16506,7 +16506,7 @@ MoveHearthomeGymElevator: ; 0x02241914
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r1, sp, #0 add r1, sp, #0
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [sp, #4] ldr r0, [sp, #4]
cmp r0, #0 cmp r0, #0
ldr r0, [r5, #0x10] ldr r0, [r5, #0x10]
@ -16593,7 +16593,7 @@ _022419B8:
_022419F0: _022419F0:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [sp, #4] ldr r1, [sp, #4]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add r0, r6, #0 add r0, r6, #0
add r1, sp, #0 add r1, sp, #0
bl ov05_021E7EB0 bl ov05_021E7EB0
@ -16608,7 +16608,7 @@ _02241A02:
bl ov05_021F4594 bl ov05_021F4594
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
mov r1, #1 mov r1, #1
bl sub_0205557C bl PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
ldr r0, _02241A40 ; =0x0000061A ldr r0, _02241A40 ; =0x0000061A
bl PlaySE bl PlaySE
ldr r0, [r4] ldr r0, [r4]
@ -16690,7 +16690,7 @@ _02241A88:
_02241ABC: _02241ABC:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
ldr r1, [sp, #4] ldr r1, [sp, #4]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add r0, r6, #0 add r0, r6, #0
add r1, sp, #0 add r1, sp, #0
bl ov05_021E7EB0 bl ov05_021E7EB0
@ -16704,7 +16704,7 @@ _02241ACE:
bl ov05_021F4594 bl ov05_021F4594
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
mov r1, #1 mov r1, #1
bl sub_0205557C bl PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
ldr r0, _02241B0C ; =0x0000061A ldr r0, _02241B0C ; =0x0000061A
bl PlaySE bl PlaySE
ldr r0, [r4] ldr r0, [r4]
@ -16760,7 +16760,7 @@ ov06_02241B40: ; 0x02241B40
ldr r0, [r4] ldr r0, [r4]
add r1, sp, #0 add r1, sp, #0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r1, [sp, #4] ldr r1, [sp, #4]
asr r0, r1, #0xf asr r0, r1, #0xf
lsr r0, r0, #0x10 lsr r0, r0, #0x10
@ -17245,7 +17245,7 @@ _02241F2A:
_02241F2E: _02241F2E:
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
ldr r1, [sp, #4] ldr r1, [sp, #4]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add r0, r7, #0 add r0, r7, #0
add r1, sp, #0 add r1, sp, #0
bl ov05_021E7EB0 bl ov05_021E7EB0
@ -17256,7 +17256,7 @@ _02241F2E:
_02241F48: _02241F48:
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
mov r1, #1 mov r1, #1
bl sub_0205557C bl PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate
ldr r0, _02241F78 ; =0x0000061A ldr r0, _02241F78 ; =0x0000061A
bl PlaySE bl PlaySE
ldr r0, [r4] ldr r0, [r4]
@ -17339,7 +17339,7 @@ _02241FD8:
bl ov05_021E7EA0 bl ov05_021E7EA0
ldr r0, [r7, #0x38] ldr r0, [r7, #0x38]
add r1, sp, #4 add r1, sp, #4
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [sp, #4] ldr r0, [sp, #4]
add r1, r5, #0 add r1, r5, #0
str r0, [sp, #0x10] str r0, [sp, #0x10]
@ -17499,7 +17499,7 @@ _02242128:
bl ov05_021E7EA0 bl ov05_021E7EA0
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
add r1, sp, #4 add r1, sp, #4
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [sp, #0xc] ldr r0, [sp, #0xc]
add r1, r5, #0 add r1, r5, #0
str r0, [sp, #0x18] str r0, [sp, #0x18]
@ -17779,7 +17779,7 @@ _02242342:
blt _022422CC blt _022422CC
ldr r0, [r6, #0x38] ldr r0, [r6, #0x38]
add r1, sp, #0x38 add r1, sp, #0x38
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, [sp, #0x14] ldr r0, [sp, #0x14]
ldr r1, [sp, #0x3c] ldr r1, [sp, #0x3c]
bl ov06_02241D90 bl ov06_02241D90
@ -17916,7 +17916,7 @@ ov06_0224249C: ; 0x0224249C
ldr r0, [r0] ldr r0, [r0]
add r1, sp, #8 add r1, sp, #8
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r1, [sp, #8] ldr r1, [sp, #8]
ldr r7, _02242524 ; =0x0224F8B8 ldr r7, _02242524 ; =0x0224F8B8
asr r0, r1, #0xf asr r0, r1, #0xf
@ -19914,10 +19914,10 @@ ov06_022433B8: ; 0x022433B8
bl LocalFieldData_GetDynamicWarp bl LocalFieldData_GetDynamicWarp
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
ldr r1, [r5, #0x1c] ldr r1, [r5, #0x1c]
ldr r1, [r1] ldr r1, [r1]
str r1, [r4] str r1, [r4]
@ -23734,11 +23734,11 @@ _02245148:
blo _02245132 blo _02245132
ldr r0, [sp] ldr r0, [sp]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
strh r0, [r5, #0x14] strh r0, [r5, #0x14]
ldr r0, [sp] ldr r0, [sp]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
strh r0, [r5, #0x16] strh r0, [r5, #0x16]
ldr r0, [sp] ldr r0, [sp]
ldr r0, [r0, #0x1c] ldr r0, [r0, #0x1c]
@ -24255,7 +24255,7 @@ ov06_02245544: ; 0x02245544
add r6, r0, #0 add r6, r0, #0
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
add r1, sp, #4 add r1, sp, #4
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
mov r0, #2 mov r0, #2
ldr r1, [sp, #0xc] ldr r1, [sp, #0xc]
lsl r0, r0, #0xe lsl r0, r0, #0xe
@ -24286,7 +24286,7 @@ _02245578:
cmp r0, #6 cmp r0, #6
bhs _022455BC bhs _022455BC
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x10] ldr r1, [r4, #0x10]
cmp r0, r1 cmp r0, r1
ble _022455BC ble _022455BC
@ -24302,7 +24302,7 @@ _022455B4:
b _02245640 b _02245640
_022455BC: _022455BC:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x10] ldr r1, [r4, #0x10]
cmp r0, r1 cmp r0, r1
bgt _02245640 bgt _02245640
@ -24333,7 +24333,7 @@ _022455E0:
cmp r0, #6 cmp r0, #6
bhs _0224561E bhs _0224561E
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x10] ldr r1, [r4, #0x10]
cmp r0, r1 cmp r0, r1
bge _0224561E bge _0224561E
@ -24349,7 +24349,7 @@ _02245616:
b _02245640 b _02245640
_0224561E: _0224561E:
ldr r0, [r5, #0x38] ldr r0, [r5, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
ldr r1, [r4, #0x10] ldr r1, [r4, #0x10]
cmp r0, r1 cmp r0, r1
blt _02245640 blt _02245640
@ -33893,10 +33893,10 @@ ov06_02249E9C: ; 0x02249E9C
sub sp, #0x34 sub sp, #0x34
add r5, r0, #0 add r5, r0, #0
add r4, r1, #0 add r4, r1, #0
bl MapObject_GetPreviousX bl MapObject_GetPreviousXCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetPreviousZ bl MapObject_GetPreviousZCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetPositionVectorYCoord bl MapObject_GetPositionVectorYCoord
@ -36382,7 +36382,7 @@ ov06_0224B124: ; 0x0224B124
add r0, r2, r0 add r0, r2, r0
str r0, [sp, #0x18] str r0, [sp, #0x18]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetPreviousY bl MapObject_GetPreviousYCoord
lsl r1, r0, #0xf lsl r1, r0, #0xf
mov r0, #2 mov r0, #2
lsl r0, r0, #0xe lsl r0, r0, #0xe
@ -36588,7 +36588,7 @@ ov06_0224B2C4: ; 0x0224B2C4
add r0, r1, r0 add r0, r1, r0
str r0, [sp, #0x18] str r0, [sp, #0x18]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetPreviousY bl MapObject_GetPreviousYCoord
lsl r1, r0, #0xf lsl r1, r0, #0xf
mov r0, #2 mov r0, #2
lsl r0, r0, #0xe lsl r0, r0, #0xe
@ -36887,13 +36887,13 @@ ov06_0224B568: ; 0x0224B568
bl ov05_021E4C24 bl ov05_021E4C24
add r4, r0, #0 add r4, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #8] str r0, [sp, #8]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
add r0, r4, #0 add r0, r4, #0
str r4, [sp, #0x18] str r4, [sp, #0x18]
@ -37092,10 +37092,10 @@ _0224B710:
pop {r3, r4, r5, r6, r7, pc} pop {r3, r4, r5, r6, r7, pc}
_0224B72A: _0224B72A:
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r7, r0, #0 add r7, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [r4, #0x18] ldr r1, [r4, #0x18]
cmp r1, r7 cmp r1, r7
bne _0224B744 bne _0224B744
@ -37731,10 +37731,10 @@ ov06_0224BBEC: ; 0x0224BBEC
str r5, [sp, #0x20] str r5, [sp, #0x20]
bl MapObject_CopyPositionVector bl MapObject_CopyPositionVector
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0 add r6, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r1, r0, #0 add r1, r0, #0
add r0, r6, #0 add r0, r6, #0
add r2, sp, #8 add r2, sp, #8
@ -37925,13 +37925,13 @@ ov06_0224BD90: ; 0x0224BD90
bl ov05_021E4C24 bl ov05_021E4C24
add r4, r0, #0 add r4, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #8] str r0, [sp, #8]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
add r0, r4, #0 add r0, r4, #0
str r4, [sp, #0x18] str r4, [sp, #0x18]
@ -38121,10 +38121,10 @@ _0224BF2A:
str r0, [r4] str r0, [r4]
_0224BF40: _0224BF40:
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r7, r0, #0 add r7, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [r4, #0x18] ldr r1, [r4, #0x18]
cmp r1, r7 cmp r1, r7
bne _0224BF5A bne _0224BF5A
@ -38252,13 +38252,13 @@ ov06_0224C038: ; 0x0224C038
bl ov05_021E4C24 bl ov05_021E4C24
add r4, r0, #0 add r4, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #8] str r0, [sp, #8]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentY bl MapObject_GetYCoord
str r0, [sp, #0xc] str r0, [sp, #0xc]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
str r0, [sp, #0x10] str r0, [sp, #0x10]
add r0, r4, #0 add r0, r4, #0
str r4, [sp, #0x18] str r4, [sp, #0x18]
@ -38454,10 +38454,10 @@ _0224C1DE:
str r0, [r4] str r0, [r4]
_0224C1F4: _0224C1F4:
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r7, r0, #0 add r7, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
ldr r1, [r4, #0x18] ldr r1, [r4, #0x18]
cmp r1, r7 cmp r1, r7
bne _0224C20E bne _0224C20E
@ -40118,10 +40118,10 @@ ov06_0224CECC: ; 0x0224CECC
bl ov05_021E4C20 bl ov05_021E4C20
add r7, r0, #0 add r7, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
str r0, [sp, #8] str r0, [sp, #8]
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r1, r0, #0 add r1, r0, #0
ldr r0, [sp, #8] ldr r0, [sp, #8]
add r2, sp, #0x20 add r2, sp, #0x20
@ -40663,10 +40663,10 @@ ov06_0224D2E0: ; 0x0224D2E0
str r5, [sp, #0x20] str r5, [sp, #0x20]
bl MapObject_CopyPositionVector bl MapObject_CopyPositionVector
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r6, r0, #0 add r6, r0, #0
add r0, r5, #0 add r0, r5, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r1, r0, #0 add r1, r0, #0
add r0, r6, #0 add r0, r6, #0
add r2, sp, #8 add r2, sp, #8
@ -43303,10 +43303,10 @@ ov06_0224E858: ; 0x0224E858
add r1, sp, #0 add r1, sp, #0
bl MapObject_CopyPositionVector bl MapObject_CopyPositionVector
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentX bl MapObject_GetXCoord
add r5, r0, #0 add r5, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetCurrentZ bl MapObject_GetZCoord
add r4, r0, #0 add r4, r0, #0
add r0, r6, #0 add r0, r6, #0
bl MapObject_GetFacingDirection bl MapObject_GetFacingDirection
@ -43357,12 +43357,12 @@ ov06_0224E8C4: ; 0x0224E8C4
add r7, r1, #0 add r7, r1, #0
add r6, r0, #0 add r6, r0, #0
add r1, sp, #0 add r1, sp, #0
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
add r0, r6, #0 add r0, r6, #0
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r5, r0, #0 add r5, r0, #0
add r0, r6, #0 add r0, r6, #0
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r4, r0, #0 add r4, r0, #0
add r0, r6, #0 add r0, r6, #0
bl PlayerAvatar_GetFacingDirection bl PlayerAvatar_GetFacingDirection
@ -43412,7 +43412,7 @@ ov06_0224E92C: ; 0x0224E92C
sub sp, #0xc sub sp, #0xc
add r4, r1, #0 add r4, r1, #0
add r1, sp, #0 add r1, sp, #0
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r1, [sp] ldr r1, [sp]
ldr r2, [sp, #4] ldr r2, [sp, #4]
ldr r3, [sp, #8] ldr r3, [sp, #8]
@ -44046,7 +44046,7 @@ ov06_0224EDB0: ; 0x0224EDB0
_0224EDC8: _0224EDC8:
add r0, r6, #0 add r0, r6, #0
add r1, sp, #0 add r1, sp, #0
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r2, [sp, #4] ldr r2, [sp, #4]
ldr r3, [sp, #8] ldr r3, [sp, #8]
ldr r1, [sp] ldr r1, [sp]
@ -44182,7 +44182,7 @@ ov06_0224EEC8: ; 0x0224EEC8
ldr r0, [r4, r0] ldr r0, [r4, r0]
add r1, sp, #0 add r1, sp, #0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
mov r1, #0xcf mov r1, #0xcf
lsl r1, r1, #4 lsl r1, r1, #4
ldr r2, [sp] ldr r2, [sp]
@ -44346,7 +44346,7 @@ _0224EFF0:
add r1, #0x10 add r1, #0x10
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
add r1, r5, r1 add r1, r5, r1
bl sub_02055350 bl PlayerAvatar_CopyPositionVector
ldr r0, _0224F028 ; =0x00000D0C ldr r0, _0224F028 ; =0x00000D0C
mov r1, #0 mov r1, #0
str r1, [r5, r0] str r1, [r5, r0]

View File

@ -13403,7 +13403,7 @@ ov18_0223FD8C: ; 0x0223FD8C
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055304 bl PlayerAvatar_SetFacingDirection
bl sub_02031190 bl sub_02031190
ldr r1, _0223FDE0 ; =0x022513A0 ldr r1, _0223FDE0 ; =0x022513A0
lsl r0, r0, #3 lsl r0, r0, #3
@ -13445,13 +13445,13 @@ ov18_0223FDEC: ; 0x0223FDEC
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [sp] str r0, [sp]
ldr r0, _0223FE64 ; =0x022513A0 ldr r0, _0223FE64 ; =0x022513A0
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r7, r0, #0 add r7, r0, #0
add r0, r4, #0 add r0, r4, #0
bl sub_0204F610 bl sub_0204F610
@ -13866,13 +13866,13 @@ ov18_022400A0: ; 0x022400A0
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, _022400F8 ; =0x022513A0 ldr r0, _022400F8 ; =0x022513A0
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r3, r0, #0 add r3, r0, #0
ldr r0, _022400F8 ; =0x022513A0 ldr r0, _022400F8 ; =0x022513A0
add r1, r4, #0 add r1, r4, #0
@ -15773,7 +15773,7 @@ ov18_02240F34: ; 0x02240F34
ldr r0, [r1, #0x40] ldr r0, [r1, #0x40]
mov r1, #0 mov r1, #0
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
ldr r0, _02240F80 ; =0x022513A0 ldr r0, _02240F80 ; =0x022513A0
ldr r1, [r0, #4] ldr r1, [r0, #4]
mov r0, #0xa3 mov r0, #0xa3
@ -15837,7 +15837,7 @@ _02240FB4:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
ldr r0, _02241000 ; =0x022513A0 ldr r0, _02241000 ; =0x022513A0
ldr r1, [r0, #4] ldr r1, [r0, #4]
mov r0, #0xa3 mov r0, #0xa3
@ -16012,13 +16012,13 @@ _0224110C:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r5, r0, #0 add r5, r0, #0
ldr r0, _02241278 ; =0x022513A0 ldr r0, _02241278 ; =0x022513A0
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
ldr r0, [r4, #8] ldr r0, [r4, #8]
cmp r0, #0 cmp r0, #0
@ -16037,7 +16037,7 @@ _0224110C:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add sp, #0x14 add sp, #0x14
pop {r4, r5, pc} pop {r4, r5, pc}
_02241166: _02241166:
@ -16055,7 +16055,7 @@ _02241166:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add sp, #0x14 add sp, #0x14
pop {r4, r5, pc} pop {r4, r5, pc}
_0224118C: _0224118C:
@ -16082,7 +16082,7 @@ _022411B0:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
add r0, r4, #0 add r0, r4, #0
bl FreeToHeap bl FreeToHeap
add r0, r5, #0 add r0, r5, #0
@ -16143,7 +16143,7 @@ _02241222:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl sub_02055540 bl PlayerAvatar_SetMapObjectYPosition
ldr r0, [r4, #0x10] ldr r0, [r4, #0x10]
add r0, r0, #1 add r0, r0, #1
str r0, [r4, #0x10] str r0, [r4, #0x10]
@ -19203,13 +19203,13 @@ _02242A20:
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r5, r0, #0 add r5, r0, #0
ldr r0, _02242D68 ; =0x022513A0 ldr r0, _02242D68 ; =0x022513A0
ldr r0, [r0, #4] ldr r0, [r0, #4]
ldr r0, [r0, #0x40] ldr r0, [r0, #0x40]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r2, r0, #0 add r2, r0, #0
mov r0, #0x20 mov r0, #0x20
str r0, [sp] str r0, [sp]
@ -22803,10 +22803,10 @@ _02244640:
cmp r0, #0 cmp r0, #0
bne _0224467E bne _0224467E
ldr r0, [sp] ldr r0, [sp]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
str r0, [r5] str r0, [r5]
ldr r0, [sp] ldr r0, [sp]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
str r0, [r5, #4] str r0, [r5, #4]
b _022446AA b _022446AA
_0224467E: _0224467E:
@ -26574,13 +26574,13 @@ ov18_02246338: ; 0x02246338
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
cmp r0, #0 cmp r0, #0
beq _0224640E beq _0224640E
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, _02246414 ; =0x022513EC ldr r0, _02246414 ; =0x022513EC
ldr r0, [r0] ldr r0, [r0]
ldr r0, [r0] ldr r0, [r0]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0 add r1, r0, #0
add r0, r4, #0 add r0, r4, #0
bl ov18_0223E2F4 bl ov18_0223E2F4
@ -35021,11 +35021,11 @@ ov18_0224A6B4: ; 0x0224A6B4
bl ov18_022498EC bl ov18_022498EC
ldr r0, [r5, #0xc] ldr r0, [r5, #0xc]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
add r4, r0, #0 add r4, r0, #0
ldr r0, [r5, #0xc] ldr r0, [r5, #0xc]
ldr r0, [r0, #0x38] ldr r0, [r0, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
add r1, r0, #0 add r1, r0, #0
add r0, r4, #0 add r0, r4, #0
bl ov18_0223E2F4 bl ov18_0223E2F4
@ -37188,14 +37188,14 @@ ov18_0224B804: ; 0x0224B804
add r4, r1, #0 add r4, r1, #0
str r0, [sp, #4] str r0, [sp, #4]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerXCoord bl PlayerAvatar_GetXCoord
lsl r1, r0, #0x10 lsl r1, r0, #0x10
mov r0, #0xf mov r0, #0xf
lsl r0, r0, #0x10 lsl r0, r0, #0x10
sub r0, r0, r1 sub r0, r0, r1
str r0, [sp] str r0, [sp]
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
bl GetPlayerZCoord bl PlayerAvatar_GetZCoord
lsl r1, r0, #0x10 lsl r1, r0, #0x10
mov r0, #0x11 mov r0, #0x11
lsl r0, r0, #0x10 lsl r0, r0, #0x10
@ -37268,7 +37268,7 @@ _0224B8A4:
beq _0224B970 beq _0224B970
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
mov r1, #0 mov r1, #0
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #1 mov r0, #1
add r1, r4, #0 add r1, r4, #0
bl ov18_0224B804 bl ov18_0224B804
@ -37318,7 +37318,7 @@ _0224B912:
beq _0224B970 beq _0224B970
ldr r0, [r4, #0x38] ldr r0, [r4, #0x38]
mov r1, #1 mov r1, #1
bl sub_0205537C bl PlayerAvatar_ToggleVisible
mov r0, #0 mov r0, #0
add r1, r4, #0 add r1, r4, #0
bl ov18_0224B804 bl ov18_0224B804

View File

@ -13,7 +13,7 @@
struct ov59_UnkPlayerStruct { struct ov59_UnkPlayerStruct {
u8 padding[0x4]; u8 padding[0x4];
PlayerGender gender; u32 gender;
u8 padding2[0x10]; u8 padding2[0x10];
struct String *name; struct String *name;
}; };
@ -46,7 +46,7 @@ typedef struct ov59_IntroOverlayData {
u32 fadeCounter; u32 fadeCounter;
fx32 alphaBlend1; fx32 alphaBlend1;
fx32 alphaBlend2; fx32 alphaBlend2;
PlayerGender selectedGender; u32 selectedGender;
u8 scrnDataIndexMain; u8 scrnDataIndexMain;
u8 spriteDataIndex0; u8 spriteDataIndex0;
u8 spriteDataIndex1; u8 spriteDataIndex1;

View File

@ -126,19 +126,19 @@ void SetScreenModeAndDisable(const struct GraphicsModes *gfxModes, enum GFScreen
} }
void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode) { void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template, u8 bgMode) {
u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize) template->size, (enum GFBgType)bgMode); u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize)template->size, (enum GFBgType)bgMode);
switch (bgId) { switch (bgId) {
case GF_BG_LYR_MAIN_0: case GF_BG_LYR_MAIN_0:
GfGfx_EngineATogglePlanes(GF_BG_LYR_MAIN_0_F, GX_PLANE_TOGGLE_ON); GfGfx_EngineATogglePlanes(GF_BG_LYR_MAIN_0_F, GX_PLANE_TOGGLE_ON);
G2_SetBG0Control((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase, (GXBGExtPltt) template->bgExtPltt); G2_SetBG0Control((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase, (GXBGExtPltt)template->bgExtPltt);
G2_SetBG0Priority(template->priority); G2_SetBG0Priority(template->priority);
G2_BG0Mosaic(template->mosaic); G2_BG0Mosaic(template->mosaic);
break; break;
case GF_BG_LYR_MAIN_1: case GF_BG_LYR_MAIN_1:
GfGfx_EngineATogglePlanes(GF_BG_LYR_MAIN_1_F, GX_PLANE_TOGGLE_ON); GfGfx_EngineATogglePlanes(GF_BG_LYR_MAIN_1_F, GX_PLANE_TOGGLE_ON);
G2_SetBG1Control((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase, (GXBGExtPltt) template->bgExtPltt); G2_SetBG1Control((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase, (GXBGExtPltt)template->bgExtPltt);
G2_SetBG1Priority(template->priority); G2_SetBG1Priority(template->priority);
G2_BG1Mosaic(template->mosaic); G2_BG1Mosaic(template->mosaic);
break; break;
@ -148,13 +148,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) { switch (bgMode) {
default: default:
case GF_BG_TYPE_TEXT: case GF_BG_TYPE_TEXT:
G2_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_AFFINE: case GF_BG_TYPE_AFFINE:
G2_SetBG2ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG2ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_256x16PLTT: case GF_BG_TYPE_256x16PLTT:
G2_SetBG2Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG2Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
} }
G2_SetBG2Priority(template->priority); G2_SetBG2Priority(template->priority);
@ -166,13 +166,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) { switch (bgMode) {
default: default:
case GF_BG_TYPE_TEXT: case GF_BG_TYPE_TEXT:
G2_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_AFFINE: case GF_BG_TYPE_AFFINE:
G2_SetBG3ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG3ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_256x16PLTT: case GF_BG_TYPE_256x16PLTT:
G2_SetBG3Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2_SetBG3Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
} }
G2_SetBG3Priority(template->priority); G2_SetBG3Priority(template->priority);
@ -181,14 +181,14 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
case GF_BG_LYR_SUB_0: case GF_BG_LYR_SUB_0:
GfGfx_EngineBTogglePlanes(GF_BG_LYR_SUB_0_F, GX_PLANE_TOGGLE_ON); GfGfx_EngineBTogglePlanes(GF_BG_LYR_SUB_0_F, GX_PLANE_TOGGLE_ON);
G2S_SetBG0Control((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase, (GXBGExtPltt) template->bgExtPltt); G2S_SetBG0Control((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase, (GXBGExtPltt)template->bgExtPltt);
G2S_SetBG0Priority(template->priority); G2S_SetBG0Priority(template->priority);
G2S_BG0Mosaic(template->mosaic); G2S_BG0Mosaic(template->mosaic);
break; break;
case GF_BG_LYR_SUB_1: case GF_BG_LYR_SUB_1:
GfGfx_EngineBTogglePlanes(GF_BG_LYR_SUB_1_F, GX_PLANE_TOGGLE_ON); GfGfx_EngineBTogglePlanes(GF_BG_LYR_SUB_1_F, GX_PLANE_TOGGLE_ON);
G2S_SetBG1Control((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase, (GXBGExtPltt) template->bgExtPltt); G2S_SetBG1Control((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase, (GXBGExtPltt)template->bgExtPltt);
G2S_SetBG1Priority(template->priority); G2S_SetBG1Priority(template->priority);
G2S_BG1Mosaic(template->mosaic); G2S_BG1Mosaic(template->mosaic);
break; break;
@ -198,13 +198,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) { switch (bgMode) {
default: default:
case GF_BG_TYPE_TEXT: case GF_BG_TYPE_TEXT:
G2S_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG2ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_AFFINE: case GF_BG_TYPE_AFFINE:
G2S_SetBG2ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG2ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_256x16PLTT: case GF_BG_TYPE_256x16PLTT:
G2S_SetBG2Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG2Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
} }
G2S_SetBG2Priority(template->priority); G2S_SetBG2Priority(template->priority);
@ -216,13 +216,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) { switch (bgMode) {
default: default:
case GF_BG_TYPE_TEXT: case GF_BG_TYPE_TEXT:
G2S_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode) template->colorMode, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG3ControlText((GXBGScrSizeText)screenSize, (GXBGColorMode)template->colorMode, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_AFFINE: case GF_BG_TYPE_AFFINE:
G2S_SetBG3ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG3ControlAffine((GXBGScrSizeAffine)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
case GF_BG_TYPE_256x16PLTT: case GF_BG_TYPE_256x16PLTT:
G2S_SetBG3Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver) template->areaOver, (GXBGScrBase) template->screenBase, (GXBGCharBase) template->charBase); G2S_SetBG3Control256x16Pltt((GXBGScrSize256x16Pltt)screenSize, (GXBGAreaOver)template->areaOver, (GXBGScrBase)template->screenBase, (GXBGCharBase)template->charBase);
break; break;
} }
G2S_SetBG3Priority(template->priority); G2S_SetBG3Priority(template->priority);

View File

@ -13,6 +13,7 @@
#include "map_header.h" #include "map_header.h"
#include "map_object.h" #include "map_object.h"
#include "overlay_06.h" #include "overlay_06.h"
#include "player_avatar.h"
#include "player_data.h" #include "player_data.h"
#include "save_local_field_data.h" #include "save_local_field_data.h"
#include "start_menu.h" #include "start_menu.h"
@ -60,12 +61,9 @@ static void FieldMove_UseChatter(FieldMoveUseData *useData, const FieldMoveCheck
static BOOL Task_UseChatterInField(TaskManager *taskManager); static BOOL Task_UseChatterInField(TaskManager *taskManager);
extern void FieldSystem_GetFacingObject(FieldSystem *fieldSystem, LocalMapObject **object); extern void FieldSystem_GetFacingObject(FieldSystem *fieldSystem, LocalMapObject **object);
extern u16 GetPlayerXCoord(PlayerAvatar *playerAvatar);
extern u16 GetPlayerZCoord(PlayerAvatar *playerAvatar);
extern u8 GetMetatileBehavior(FieldSystem *fieldSystem, s32 x, s32 z); extern u8 GetMetatileBehavior(FieldSystem *fieldSystem, s32 x, s32 z);
extern void PlayerAvatar_GetCoordsInFront(PlayerAvatar *playerAvatar, s32 *x, s32 *z); extern void PlayerAvatar_GetCoordsInFront(PlayerAvatar *playerAvatar, s32 *x, s32 *z);
extern BOOL Field_PlayerCanSurfOnTile(PlayerAvatar *fieldPlayerAvatar, u32 standingTile, u32 facingTile); extern BOOL Field_PlayerCanSurfOnTile(PlayerAvatar *fieldPlayerAvatar, u32 standingTile, u32 facingTile);
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *playerAvatar);
extern BOOL MetatileBehavior_IsRockClimbInDirection(u32 facingTile, u32 facingDirection); extern BOOL MetatileBehavior_IsRockClimbInDirection(u32 facingTile, u32 facingDirection);
extern BOOL MetatileBehavior_IsWaterfall(u8 facingTile); extern BOOL MetatileBehavior_IsWaterfall(u8 facingTile);
extern LocalFieldData *Save_LocalFieldData_Get(SaveData *save); extern LocalFieldData *Save_LocalFieldData_Get(SaveData *save);
@ -76,7 +74,6 @@ extern BOOL Task_UseFlyInField(TaskManager *taksManager);
extern void TownMap_Init(FieldSystem *fieldSystem, TownMapAppData *townMap, u32 param2); extern void TownMap_Init(FieldSystem *fieldSystem, TownMapAppData *townMap, u32 param2);
extern void TownMap_Show(FieldSystem *fieldSystem, TownMapAppData *townMap); extern void TownMap_Show(FieldSystem *fieldSystem, TownMapAppData *townMap);
extern void StartMenu_SetExitTaskFunc(StartMenuTaskData *startMenu, TaskFunc taskFunc); extern void StartMenu_SetExitTaskFunc(StartMenuTaskData *startMenu, TaskFunc taskFunc);
extern u32 PlayerAvatar_GetState(PlayerAvatar *avatar);
extern FieldMoveTaskEnvironment *FieldMoveTask_CreateTeleportEnvironment(FieldSystem *fieldSystem, Pokemon *mon, HeapID heapId); extern FieldMoveTaskEnvironment *FieldMoveTask_CreateTeleportEnvironment(FieldSystem *fieldSystem, Pokemon *mon, HeapID heapId);
extern BOOL Task_FieldTeleport(TaskManager *taskManager); extern BOOL Task_FieldTeleport(TaskManager *taskManager);
extern FieldMoveTaskEnvironment *FieldMoveTask_CreateDigEnvironment(FieldSystem *fieldSystem, Pokemon *mon, HeapID heapId); extern FieldMoveTaskEnvironment *FieldMoveTask_CreateDigEnvironment(FieldSystem *fieldSystem, Pokemon *mon, HeapID heapId);
@ -157,8 +154,8 @@ void FieldMove_InitCheckData(FieldSystem *fieldSystem, FieldMoveCheckData *check
} }
} }
s32 x = GetPlayerXCoord(fieldSystem->playerAvatar); u32 x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
s32 z = GetPlayerZCoord(fieldSystem->playerAvatar); u32 z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
u32 standingTile = GetMetatileBehavior(fieldSystem, x, z); u32 standingTile = GetMetatileBehavior(fieldSystem, x, z);
PlayerAvatar_GetCoordsInFront(fieldSystem->playerAvatar, &x, &z); PlayerAvatar_GetCoordsInFront(fieldSystem->playerAvatar, &x, &z);

View File

@ -24,13 +24,13 @@ static void sub_02057CF0(MapObjectManager *manager, LocalMapObject *object);
static void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent, FieldSystem *fieldSystem); static void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent, FieldSystem *fieldSystem);
static void MapObject_SetPositionVectorFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent); static void MapObject_SetPositionVectorFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent);
static void sub_02057E90(LocalMapObject *object, MapObjectManager *manager); static void sub_02057E90(LocalMapObject *object, MapObjectManager *manager);
/*static*/ void sub_02057EE0(LocalMapObject *object); static void sub_02057EE0(LocalMapObject *object);
static void sub_02057F18(LocalMapObject *object); static void sub_02057F18(LocalMapObject *object);
static void MapObject_Clear(LocalMapObject *object); static void MapObject_Clear(LocalMapObject *object);
static u32 sub_02057F90(LocalMapObject *object, u32 mapId, u32 objectEventCount, ObjectEvent *objectEvents); static u32 sub_02057F90(LocalMapObject *object, u32 mapId, u32 objectEventCount, ObjectEvent *objectEvents);
static LocalMapObject *MapObjectManager_GetFirstObjectWithIDAndMap(MapObjectManager *manager, u32 objectId, u32 mapId); static LocalMapObject *MapObjectManager_GetFirstObjectWithIDAndMap(MapObjectManager *manager, u32 objectId, u32 mapId);
static void sub_02058148(LocalMapObject *object); static void sub_02058148(LocalMapObject *object);
/*static*/ void sub_0205815C(LocalMapObject *object); static void sub_0205815C(LocalMapObject *object);
static void MapObject_NoOp(LocalMapObject *object); static void MapObject_NoOp(LocalMapObject *object);
static u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId); static u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId);
static void sub_0205818C(LocalMapObject *object); static void sub_0205818C(LocalMapObject *object);
@ -55,7 +55,7 @@ static u32 MapObject_GetFlags(LocalMapObject *object);
static void MapObject_SetFlags2(LocalMapObject *object, u32 flags); static void MapObject_SetFlags2(LocalMapObject *object, u32 flags);
static u32 MapObject_GetFlags2(LocalMapObject *object); static u32 MapObject_GetFlags2(LocalMapObject *object);
static void MapObject_SetMapID(LocalMapObject *object, u32 mapId); static void MapObject_SetMapID(LocalMapObject *object, u32 mapId);
/*static*/ void MapObject_SetMovement(LocalMapObject *object, u32 movement); static void MapObject_SetMovement(LocalMapObject *object, u32 movement);
static u32 MapObject_GetEventFlag(LocalMapObject *object); static u32 MapObject_GetEventFlag(LocalMapObject *object);
static void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialFacing); static void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialFacing);
static void sub_02058554(LocalMapObject *object, SysTask *sysTask); static void sub_02058554(LocalMapObject *object, SysTask *sysTask);
@ -66,7 +66,7 @@ static MapObjectManager *MapObject_GetManagerFromManager(LocalMapObject *object)
static void sub_02058630(LocalMapObject *object, LocalMapObject_UnkCallback callback); static void sub_02058630(LocalMapObject *object, LocalMapObject_UnkCallback callback);
static void sub_02058644(LocalMapObject *object, LocalMapObject_UnkCallback callback); static void sub_02058644(LocalMapObject *object, LocalMapObject_UnkCallback callback);
static void sub_02058658(LocalMapObject *object, LocalMapObject_UnkCallback callback); static void sub_02058658(LocalMapObject *object, LocalMapObject_UnkCallback callback);
/*static*/ void sub_02058660(LocalMapObject *object); static void sub_02058660(LocalMapObject *object);
static void sub_0205866C(LocalMapObject *object); static void sub_0205866C(LocalMapObject *object);
static void sub_02058684(LocalMapObject *object, LocalMapObject_UnkCallback callback); static void sub_02058684(LocalMapObject *object, LocalMapObject_UnkCallback callback);
static void sub_0205868C(LocalMapObject *object); static void sub_0205868C(LocalMapObject *object);
@ -423,9 +423,9 @@ static void SavedMapObject_InitFromLocalMapObject(FieldSystem *fieldSystem, Loca
savedObject->initialX = MapObject_GetInitialX(localObject); savedObject->initialX = MapObject_GetInitialX(localObject);
savedObject->initialY = MapObject_GetInitialY(localObject); savedObject->initialY = MapObject_GetInitialY(localObject);
savedObject->initialZ = MapObject_GetInitialZ(localObject); savedObject->initialZ = MapObject_GetInitialZ(localObject);
savedObject->currentX = MapObject_GetCurrentX(localObject); savedObject->currentX = MapObject_GetXCoord(localObject);
savedObject->currentY = MapObject_GetCurrentY(localObject); savedObject->currentY = MapObject_GetYCoord(localObject);
savedObject->currentZ = MapObject_GetCurrentZ(localObject); savedObject->currentZ = MapObject_GetZCoord(localObject);
VecFx32 coords; VecFx32 coords;
sub_02059E60(savedObject->currentX, savedObject->currentZ, &coords); // some kind of x y vec copy with convertion between int and fx32 sub_02059E60(savedObject->currentX, savedObject->currentZ, &coords); // some kind of x y vec copy with convertion between int and fx32
@ -496,13 +496,13 @@ static void MapObject_ConvertXZToPositionVec(LocalMapObject *object) {
VecFx32 position; VecFx32 position;
MapObject_CopyPositionVector(object, &position); MapObject_CopyPositionVector(object, &position);
u32 x = MapObject_GetCurrentX(object); u32 x = MapObject_GetXCoord(object);
position.x = x * FX32_CONST(16) + FX32_CONST(8); position.x = x * FX32_CONST(16) + FX32_CONST(8);
MapObject_SetPreviousX(object, x); MapObject_SetPreviousX(object, x);
MapObject_SetPreviousY(object, MapObject_GetCurrentY(object)); MapObject_SetPreviousY(object, MapObject_GetYCoord(object));
u32 z = MapObject_GetCurrentZ(object); u32 z = MapObject_GetZCoord(object);
position.z = z * FX32_CONST(16) + FX32_CONST(8); position.z = z * FX32_CONST(16) + FX32_CONST(8);
MapObject_SetPreviousZ(object, z); MapObject_SetPreviousZ(object, z);
@ -637,7 +637,7 @@ static void sub_02057E90(LocalMapObject *object, MapObjectManager *manager) { //
MapObject_ClearHeldMovement(object); MapObject_ClearHeldMovement(object);
} }
/*static*/ void sub_02057EE0(LocalMapObject *object) { static void sub_02057EE0(LocalMapObject *object) {
UnkLMOCallbackStruct *unk = sub_02058D14(MapObject_GetMovement(object)); UnkLMOCallbackStruct *unk = sub_02058D14(MapObject_GetMovement(object));
sub_02058630(object, sub_02058D2C(unk)); sub_02058630(object, sub_02058D2C(unk));
sub_02058644(object, sub_02058D30(unk)); sub_02058644(object, sub_02058D30(unk));
@ -760,7 +760,7 @@ static void sub_02058148(LocalMapObject *object) {
sub_0205815C(object); sub_0205815C(object);
} }
/*static*/ void sub_0205815C(LocalMapObject *object) { static void sub_0205815C(LocalMapObject *object) {
MapObject_ClearFlagsBits(object, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK26 | MAPOBJECTFLAG_UNK24 | MAPOBJECTFLAG_UNK20 | MAPOBJECTFLAG_UNK15)); MapObject_ClearFlagsBits(object, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK26 | MAPOBJECTFLAG_UNK24 | MAPOBJECTFLAG_UNK20 | MAPOBJECTFLAG_UNK15));
} }
@ -1037,7 +1037,7 @@ u32 sub_0205845C(LocalMapObject *object) {
return spriteId; return spriteId;
} }
/*static*/ void MapObject_SetMovement(LocalMapObject *object, u32 movement) { static void MapObject_SetMovement(LocalMapObject *object, u32 movement) {
object->movement = movement; object->movement = movement;
} }
@ -1258,7 +1258,7 @@ static void sub_02058658(LocalMapObject *object, LocalMapObject_UnkCallback call
object->unkC0 = callback; object->unkC0 = callback;
} }
/*static*/ void sub_02058660(LocalMapObject *object) { static void sub_02058660(LocalMapObject *object) {
object->unkC0(object); object->unkC0(object);
} }
@ -1618,7 +1618,7 @@ static void MapObject_SetInitialZ(LocalMapObject *object, u32 initialY) {
object->initialZ = initialY; object->initialZ = initialY;
} }
u32 MapObject_GetPreviousX(LocalMapObject *object) { u32 MapObject_GetPreviousXCoord(LocalMapObject *object) {
return object->previousX; return object->previousX;
} }
@ -1626,7 +1626,7 @@ void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX) {
object->previousX = previousX; object->previousX = previousX;
} }
u32 MapObject_GetPreviousY(LocalMapObject *object) { u32 MapObject_GetPreviousYCoord(LocalMapObject *object) {
return object->previousY; return object->previousY;
} }
@ -1634,7 +1634,7 @@ void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY) {
object->previousY = previousY; object->previousY = previousY;
} }
u32 MapObject_GetPreviousZ(LocalMapObject *object) { u32 MapObject_GetPreviousZCoord(LocalMapObject *object) {
return object->previousZ; return object->previousZ;
} }
@ -1642,7 +1642,7 @@ void MapObject_SetPreviousZ(LocalMapObject *object, u32 previousZ) {
object->previousZ = previousZ; object->previousZ = previousZ;
} }
u32 MapObject_GetCurrentX(LocalMapObject *object) { u32 MapObject_GetXCoord(LocalMapObject *object) {
return object->currentX; return object->currentX;
} }
@ -1654,7 +1654,7 @@ void MapObject_AddCurrentX(LocalMapObject *object, u32 currentX) {
object->currentX += currentX; object->currentX += currentX;
} }
s32 MapObject_GetCurrentY(LocalMapObject *object) { s32 MapObject_GetYCoord(LocalMapObject *object) {
return object->currentY; return object->currentY;
} }
@ -1666,7 +1666,7 @@ void MapObject_AddCurrentY(LocalMapObject *object, s32 currentY) {
object->currentY += currentY; object->currentY += currentY;
} }
u32 MapObject_GetCurrentZ(LocalMapObject *object) { u32 MapObject_GetZCoord(LocalMapObject *object) {
return object->currentZ; return object->currentZ;
} }
@ -1932,7 +1932,7 @@ LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manag
do { do {
if (MapObject_GetFlagsBitsMask(objects, MAPOBJECTFLAG_ACTIVE) != 0) { if (MapObject_GetFlagsBitsMask(objects, MAPOBJECTFLAG_ACTIVE) != 0) {
if (x == MapObject_GetCurrentX(objects) && z == MapObject_GetCurrentZ(objects)) { if (x == MapObject_GetXCoord(objects) && z == MapObject_GetZCoord(objects)) {
return objects; return objects;
} }
} }
@ -1944,7 +1944,7 @@ LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manag
return NULL; return NULL;
} }
void LocalMapObject_SetPositionFromVectorAndDirection(LocalMapObject *object, VecFx32 *positionVector, u32 direction) { void MapObject_SetPositionFromVectorAndDirection(LocalMapObject *object, VecFx32 *positionVector, u32 direction) {
MapObject_SetCurrentX(object, (positionVector->x >> 4) / FX32_ONE); MapObject_SetCurrentX(object, (positionVector->x >> 4) / FX32_ONE);
MapObject_SetCurrentY(object, (positionVector->y >> 3) / FX32_ONE); MapObject_SetCurrentY(object, (positionVector->y >> 3) / FX32_ONE);
MapObject_SetCurrentZ(object, (positionVector->z >> 4) / FX32_ONE); MapObject_SetCurrentZ(object, (positionVector->z >> 4) / FX32_ONE);

611
arm9/src/player_avatar.c Normal file
View File

@ -0,0 +1,611 @@
#include "player_avatar.h"
#include "global.h"
#include "constants/sprites.h"
#include "map_object.h"
#include "scrcmd.h"
static PlayerAvatar *PlayerAvatar_Create(void);
static void PlayerAvatar_Setup(PlayerAvatar *avatar, s32 state, u32 gender, PlayerSaveData *playerSaveData);
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, u32 z);
static LocalMapObject *PlayerAvatar_GetActiveMapObjectWithMovement1(MapObjectManager *manager);
static LocalMapObject *PlayerAvatar_GetMapObjectConst(PlayerAvatar *avatar);
static void PlayerAvatar_SetGender(PlayerAvatar *avatar, u32 gender);
static void PlayerAvatar_SetFlagsBits(PlayerAvatar *avatar, PlayerAvatarFlags flags);
static void PlayerAvatar_ClearFlagsBits(PlayerAvatar *avatar, PlayerAvatarFlags flags);
static PlayerAvatarFlags PlayerAvatar_GetFlagsBitsMask(PlayerAvatar *avatar, PlayerAvatarFlags flags);
static void PlayerAvatar_SetUnk24(PlayerAvatar *avatar, s32 param1);
static void PlayerAvatar_SetUnk28(PlayerAvatar *avatar, s32 param1);
static void PlayerAvatar_SetPlayerSaveData(PlayerAvatar *avatar, PlayerSaveData *playerSaveData);
static u16 PlayerSaveData_GetUnk0(PlayerSaveData *playerSaveData);
static void PlayerSaveData_SetUnk0(PlayerSaveData *playerSaveData, u16 unk0);
static s32 PlayerSaveData_GetState(PlayerSaveData *playerSaveData);
static void PlayerSaveData_SetState(PlayerSaveData *playerSaveData, s32 state);
static void PlayerAvatar_SetPlayerSaveDataState(PlayerAvatar *avatar, s32 state);
extern void ov05_021EDBC8(PlayerAvatar *avatar);
extern u32 ov06_0224ABAC(LocalMapObject *mapObject, u32 x, u32 z, u32 direction, u32 param4);
extern u32 sub_02059D1C(LocalMapObject *object);
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *manager, u32 x, u32 z, u32 direction, s32 state, u32 gender, PlayerSaveData *playerSaveData) {
PlayerAvatar *avatar = PlayerAvatar_Create();
PlayerAvatar_Setup(avatar, state, gender, playerSaveData);
u32 sprite = PlayerAvatar_GetSpriteByStateAndGender(state, gender);
PlayerAvatar_CreateMapObjectWithParams(avatar, manager, sprite, direction, x, z);
return avatar;
}
PlayerAvatar *PlayerAvatar_CreateWithActiveMapObject(MapObjectManager *manager, PlayerSaveData *playerSaveData, u32 gender) {
PlayerAvatar *avatar = PlayerAvatar_Create();
s32 state = PlayerSaveData_GetState(playerSaveData);
PlayerAvatar_Setup(avatar, state, gender, playerSaveData);
LocalMapObject *mapObject = PlayerAvatar_GetActiveMapObjectWithMovement1(manager);
MapObject_SetSpriteID(mapObject, PlayerAvatar_GetSpriteByStateAndGender(state, gender));
MapObject_SetFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK13 | MAPOBJECTFLAG_KEEP));
MapObject_ClearFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK8 | MAPOBJECTFLAG_UNK7));
MapObject_SetFlag29(mapObject, TRUE);
PlayerAvatar_SetMapObject(avatar, mapObject);
return avatar;
}
void sub_02055108(PlayerAvatar *avatar) {
LocalMapObject *mapObject = PlayerAvatar_GetMapObject(avatar);
GF_ASSERT(mapObject != NULL);
MapObject_GetManager(mapObject);
ov05_021EDBC8(avatar);
if (PlayerAvatar_GetState(avatar) == PLAYER_STATE_SURFING) {
u32 x = PlayerAvatar_GetXCoord(avatar);
u32 z = PlayerAvatar_GetZCoord(avatar);
u32 direction = PlayerAvatar_GetFacingDirection(avatar);
PlayerAvatar_SetUnk30(avatar, ov06_0224ABAC(mapObject, x, z, direction, 1));
}
}
void PlayerAvatar_FreeToHeap(PlayerAvatar *avatar) {
FreeToHeap(avatar);
}
void PlayerAvatar_DeleteFromMap(PlayerAvatar *avatar) {
MapObject_Remove(PlayerAvatar_GetMapObject(avatar));
PlayerAvatar_FreeToHeap(avatar);
}
static PlayerAvatar *PlayerAvatar_Create(void) {
PlayerAvatar *avatar = AllocFromHeap(HEAP_ID_FIELD, sizeof(PlayerAvatar));
GF_ASSERT(avatar != NULL);
memset(avatar, 0, sizeof(PlayerAvatar));
return avatar;
}
static void PlayerAvatar_Setup(PlayerAvatar *avatar, s32 state, u32 gender, PlayerSaveData *playerSaveData) {
PlayerAvatar_SetPlayerSaveData(avatar, playerSaveData);
PlayerAvatar_SetUnk10(avatar, 0);
PlayerAvatar_SetUnk14(avatar, 0);
PlayerAvatar_SetState(avatar, state);
PlayerAvatar_SetGender(avatar, gender);
PlayerAvatar_SetTransitionFlags(avatar, 0);
PlayerAvatar_ClearUnk20ClearFlag2(avatar);
PlayerAvatar_SetUnk24(avatar, -1);
PlayerAvatar_SetUnk28(avatar, -1);
PlayerAvatar_SetUnk8(avatar, 255); // obj_player?
PlayerAvatar_SetFlag1(avatar, TRUE);
PlayerAvatar_SetFlag4(avatar, TRUE);
}
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, u32 z) {
LocalMapObject *mapObject = MapObject_Create(manager, x, z, direction, sprite, 1, 1);
GF_ASSERT(mapObject != NULL);
MapObject_SetID(mapObject, obj_player);
MapObject_SetType(mapObject, 0);
MapObject_SetEventFlag(mapObject, 0);
MapObject_SetScriptID(mapObject, 0);
MapObject_SetParam(mapObject, 0, 0);
MapObject_SetParam(mapObject, 0, 1);
MapObject_SetParam(mapObject, 0, 2);
MapObject_SetXRange(mapObject, -1);
MapObject_SetYRange(mapObject, -1);
MapObject_SetFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK13 | MAPOBJECTFLAG_KEEP));
MapObject_ClearFlagsBits(mapObject, (MapObjectFlagBits)(MAPOBJECTFLAG_UNK8 | MAPOBJECTFLAG_UNK7));
MapObject_SetFlag29(mapObject, TRUE);
PlayerAvatar_SetMapObject(avatar, mapObject);
}
LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement1(MapObjectManager *manager) {
s32 index = 0;
LocalMapObject *mapObject = NULL;
while (MapObjectManager_GetNextObjectWithFlagFromIndex(manager, &mapObject, &index, MAPOBJECTFLAG_ACTIVE)) {
if (MapObject_GetMovement(mapObject) == 1) {
break;
}
}
return mapObject;
}
static LocalMapObject *PlayerAvatar_GetActiveMapObjectWithMovement1(MapObjectManager *manager) {
LocalMapObject *mapObject = MapObjectManager_GetFirstActiveObjectWithMovement1(manager);
GF_ASSERT(mapObject != NULL);
return mapObject;
}
u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *avatar) {
return MapObject_GetFacingDirection(PlayerAvatar_GetMapObject(avatar));
}
void PlayerAvatar_SetFacingDirection(PlayerAvatar *avatar, u32 direction) {
MapObject_SetFacingDirection(PlayerAvatar_GetMapObject(avatar), direction);
}
u32 PlayerAvatar_GetNextFacingDirection(PlayerAvatar *avatar) {
return MapObject_GetNextFacingDirection(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar) {
return MapObject_GetXCoord(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetZCoord(PlayerAvatar *avatar) {
return MapObject_GetZCoord(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetPreviousXCoord(PlayerAvatar *avatar) {
return MapObject_GetPreviousXCoord(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetPreviousZCoord(PlayerAvatar *avatar) {
return MapObject_GetPreviousZCoord(PlayerAvatar_GetMapObject(avatar));
}
void PlayerAvatar_CopyPositionVector(PlayerAvatar *avatar, VecFx32 *vector) {
MapObject_CopyPositionVector(PlayerAvatar_GetMapObject(avatar), vector);
}
VecFx32 *PlayerAvatar_GetPositionVector(PlayerAvatar *avatar) {
return MapObject_GetPositionVector(PlayerAvatar_GetMapObjectConst(avatar));
}
void PlayerAvatar_SetUnk10(PlayerAvatar *avatar, u32 param1) {
avatar->unk10 = param1;
}
u32 PlayerAvatar_GetUnk10(PlayerAvatar *avatar) {
return avatar->unk10;
}
void PlayerAvatar_SetUnk14(PlayerAvatar *avatar, u32 param1) {
avatar->unk14 = param1;
}
u32 PlayerAvatar_GetUnk14(PlayerAvatar *avatar) {
return avatar->unk14;
}
void PlayerAvatar_ToggleVisible(PlayerAvatar *avatar, BOOL invisible) {
LocalMapObject *mapObject = PlayerAvatar_GetMapObject(avatar);
if (invisible == TRUE) {
MapObject_ClearFlagsBits(mapObject, MAPOBJECTFLAG_VISIBLE);
} else {
MapObject_SetFlagsBits(mapObject, MAPOBJECTFLAG_VISIBLE);
}
}
void PlayerAvatar_SetMapObject(PlayerAvatar *avatar, LocalMapObject *mapObject) {
avatar->mapObject = mapObject;
}
LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar) {
return avatar->mapObject;
}
static LocalMapObject *PlayerAvatar_GetMapObjectConst(PlayerAvatar *avatar) {
return avatar->mapObject;
}
void PlayerAvatar_SetState(PlayerAvatar *avatar, s32 state) {
GF_ASSERT(state < PLAYER_STATE_USE_HM);
avatar->state = state;
PlayerAvatar_SetPlayerSaveDataState(avatar, state);
}
s32 PlayerAvatar_GetState(PlayerAvatar *avatar) {
GF_ASSERT(avatar != NULL);
return avatar->state;
}
void PlayerAvatar_SetTransitionFlagsBits(PlayerAvatar *avatar, u32 flags) {
avatar->transitionFlags |= flags;
}
void PlayerAvatar_SetTransitionFlags(PlayerAvatar *avatar, u32 flags) {
avatar->transitionFlags = flags;
}
u32 PlayerAvatar_GetTransitionFlags(PlayerAvatar *avatar) {
return avatar->transitionFlags;
}
static void PlayerAvatar_SetGender(PlayerAvatar *avatar, u32 gender) {
avatar->gender = gender;
}
u32 PlayerAvatar_GetGender(PlayerAvatar *avatar) {
return avatar->gender;
}
static void PlayerAvatar_SetFlagsBits(PlayerAvatar *avatar, PlayerAvatarFlags flags) {
avatar->flags |= flags;
}
static void PlayerAvatar_ClearFlagsBits(PlayerAvatar *avatar, PlayerAvatarFlags flags) {
avatar->flags &= ~flags;
}
static PlayerAvatarFlags PlayerAvatar_GetFlagsBitsMask(PlayerAvatar *avatar, PlayerAvatarFlags flags) {
return (PlayerAvatarFlags)(avatar->flags & flags);
}
s32 PlayerAvatar_GetUnk20(PlayerAvatar *avatar) {
return avatar->unk20;
}
void PlayerAvatar_SetUnk20(PlayerAvatar *avatar, s32 param1) {
avatar->unk20 = param1;
}
void PlayerAvatar_ClearUnk20ClearFlag2(PlayerAvatar *avatar) {
avatar->unk20 = 0;
PlayerAvatar_SetFlag2(avatar, FALSE);
}
s32 PlayerAvatar_Unk20AddWithCeiling(PlayerAvatar *avatar, s32 param1, s32 param2) {
s32 var = avatar->unk20 + param1;
avatar->unk20 = var;
if (var > param2) {
avatar->unk20 = param2;
}
return avatar->unk20;
}
static void PlayerAvatar_SetUnk24(PlayerAvatar *avatar, s32 param1) {
avatar->unk24 = param1;
}
s32 PlayerAvatar_GetUnk24(PlayerAvatar *avatar) {
return avatar->unk24;
}
static void PlayerAvatar_SetUnk28(PlayerAvatar *avatar, s32 param1) {
avatar->unk28 = param1;
}
s32 PlayerAvatar_GetUnk28(PlayerAvatar *avatar) {
return avatar->unk28;
}
void PlayerAvatar_SetUnk24Unk28(PlayerAvatar *avatar, s32 unk24, s32 unk28) {
PlayerAvatar_SetUnk24(avatar, unk24);
PlayerAvatar_SetUnk28(avatar, unk28);
}
void PlayerAvatar_SetUnk30(PlayerAvatar *avatar, u32 param1) {
avatar->unk30 = param1;
}
u32 PlayerAvatar_GetUnk30(PlayerAvatar *avatar) {
return avatar->unk30;
}
static void PlayerAvatar_SetPlayerSaveData(PlayerAvatar *avatar, PlayerSaveData *playerSaveData) {
avatar->playerSaveData = playerSaveData;
}
PlayerSaveData *PlayerAvatar_GetPlayerSaveData(PlayerAvatar *avatar) {
return avatar->playerSaveData;
}
void PlayerAvatar_SetUnk8(PlayerAvatar *avatar, u32 param1) {
avatar->unk8 = param1;
}
u32 PlayerAvatar_GetUnk8(PlayerAvatar *avatar) {
return avatar->unk8;
}
void PlayerSaveData_Init(PlayerSaveData *playerSaveData) {
playerSaveData->unk0 = 0;
playerSaveData->hasRunningShoes = FALSE;
playerSaveData->state = 0;
}
BOOL PlayerSaveData_CheckRunningShoes(PlayerSaveData *playerSaveData) {
if (playerSaveData != NULL && playerSaveData->hasRunningShoes == TRUE) {
return TRUE;
}
return FALSE;
}
void PlayerSaveData_SetRunningShoesFlag(PlayerSaveData *playerSaveData, BOOL flag) {
if (flag == TRUE) {
playerSaveData->hasRunningShoes = TRUE;
} else {
playerSaveData->hasRunningShoes = FALSE;
}
}
static u16 PlayerSaveData_GetUnk0(PlayerSaveData *playerSaveData) {
if (playerSaveData == NULL) {
return 0;
}
return playerSaveData->unk0;
}
static void PlayerSaveData_SetUnk0(PlayerSaveData *playerSaveData, u16 unk0) {
if (playerSaveData == NULL) {
return;
}
playerSaveData->unk0 = unk0;
}
void PlayerAvatar_SetPlayerSaveDataUnk0(PlayerAvatar *playerAvatar, u16 unk0) {
PlayerSaveData_SetUnk0(PlayerAvatar_GetPlayerSaveData(playerAvatar), unk0);
}
u16 PlayerAvatar_GetPlayerSaveDataUnk0(PlayerAvatar *playerAvatar) {
return PlayerSaveData_GetUnk0(PlayerAvatar_GetPlayerSaveData(playerAvatar));
}
static s32 PlayerSaveData_GetState(PlayerSaveData *playerSaveData) {
if (!playerSaveData) {
return 0;
}
return playerSaveData->state;
}
static void PlayerSaveData_SetState(PlayerSaveData *playerSaveData, s32 state) {
if (!playerSaveData) {
return;
}
playerSaveData->state = state;
}
static void PlayerAvatar_SetPlayerSaveDataState(PlayerAvatar *avatar, s32 state) {
PlayerSaveData_SetState(PlayerAvatar_GetPlayerSaveData(avatar), state);
}
void sub_020554EC(PlayerAvatar *avatar, VecFx32 *position, u32 direction) {
MapObject_SetPositionFromVectorAndDirection(PlayerAvatar_GetMapObject(avatar), position, direction);
PlayerAvatar_SetUnk10(avatar, 0);
PlayerAvatar_SetUnk14(avatar, 0);
}
void sub_02055514(PlayerAvatar *avatar, u32 x, u32 z, u32 direction) {
MapObject_SetPositionFromXYZAndDirection(PlayerAvatar_GetMapObject(avatar), x, 0, z, direction);
PlayerAvatar_SetUnk10(avatar, 0);
PlayerAvatar_SetUnk14(avatar, 0);
}
void PlayerAvatar_SetMapObjectYPosition(PlayerAvatar *avatar, fx32 yVal) {
LocalMapObject *mapObject = PlayerAvatar_GetMapObject(avatar);
VecFx32 position;
MapObject_CopyPositionVector(mapObject, &position);
position.y = yVal;
MapObject_SetPositionVector(mapObject, &position);
}
void PlayerAvatar_ToggleAutomaticHeightUpdating(PlayerAvatar *avatar, u8 flag) {
LocalMapObject *mapObject = PlayerAvatar_GetMapObject(avatar);
if (flag == TRUE) {
MapObject_SetIgnoreHeights(mapObject, FALSE);
} else {
MapObject_SetIgnoreHeights(mapObject, TRUE);
}
}
void PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate(PlayerAvatar *avatar, BOOL flag) {
LocalMapObject *mapObject = PlayerAvatar_GetMapObject(avatar);
if (flag == TRUE) {
MapObject_SetIgnoreHeights(mapObject, FALSE);
sub_02059D1C(mapObject);
} else {
MapObject_SetIgnoreHeights(mapObject, TRUE);
}
}
u32 PlayerAvatar_GetSpriteByStateAndGender(s32 state, u32 gender) {
if (gender == PLAYER_GENDER_MALE) {
switch (state) {
case PLAYER_STATE_WALKING:
return SPRITE_HERO;
case PLAYER_STATE_CYCLING:
return SPRITE_CYCLEHERO;
case PLAYER_STATE_SURFING:
return SPRITE_SWIMHERO;
case PLAYER_STATE_USE_HM:
return SPRITE_SPHERO;
case PLAYER_STATE_WATERING:
return SPRITE_WATERHERO;
case PLAYER_STATE_CONTEST:
return SPRITE_CONTESTHERO;
case PLAYER_STATE_FISHING:
return SPRITE_FISHINGHERO;
case PLAYER_STATE_POKETCH:
return SPRITE_POKEHERO;
case PLAYER_STATE_SAVING:
return SPRITE_SAVEHERO;
case PLAYER_STATE_HEAL:
return SPRITE_BANZAIHERO;
}
} else {
switch (state) {
case PLAYER_STATE_WALKING:
return SPRITE_HEROINE;
case PLAYER_STATE_CYCLING:
return SPRITE_CYCLEHEROINE;
case PLAYER_STATE_SURFING:
return SPRITE_SWIMHEROINE;
case PLAYER_STATE_USE_HM:
return SPRITE_SPHEROINE;
case PLAYER_STATE_WATERING:
return SPRITE_WATERHEROINE;
case PLAYER_STATE_CONTEST:
return SPRITE_CONT_HEROINE;
case PLAYER_STATE_FISHING:
return SPRITE_FISH_HEROINE;
case PLAYER_STATE_POKETCH:
return SPRITE_POKEHEROINE;
case PLAYER_STATE_SAVING:
return SPRITE_SAVEHEROINE;
case PLAYER_STATE_HEAL:
return SPRITE_BANZAIHEROINE;
}
}
GF_ASSERT(FALSE);
return 0;
}
u32 PlayerAvatar_GetTransitionBits(s32 state) {
switch (state) {
case PLAYER_STATE_WALKING:
return PLAYER_TRANSITION_WALKING;
case PLAYER_STATE_CYCLING:
return PLAYER_TRANSITION_CYCLING;
case PLAYER_STATE_SURFING:
return PLAYER_TRANSITION_SURFING;
case PLAYER_STATE_WATERING:
return PLAYER_TRANSITION_WATERING;
case PLAYER_STATE_FISHING:
return PLAYER_TRANSITION_FISHING;
case PLAYER_STATE_POKETCH:
return PLAYER_TRANSITION_POKETCH;
case PLAYER_STATE_SAVING:
return PLAYER_TRANSITION_SAVING;
case PLAYER_STATE_HEAL:
return PLAYER_TRANSITION_HEAL;
case PLAYER_STATE_USE_HM:
default:
GF_ASSERT(FALSE);
return PLAYER_TRANSITION_WALKING;
}
}
PlayerAvatar *FieldSystem_GetPlayerAvatar(FieldSystem *fieldSystem) {
return fieldSystem->playerAvatar;
}
void PlayerAvatar_SetFlag0(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK0);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK0);
}
}
BOOL PlayerAvatar_CheckFlag0(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK0)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag1(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK1);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK1);
}
}
BOOL PlayerAvatar_CheckFlag1(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK1)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag2(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK2);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK2);
}
}
BOOL PlayerAvatar_CheckFlag2(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK2)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetBikeStateLock(PlayerAvatar *avatar, BOOL lock) {
if (lock == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_LOCK_BIKE_STATE);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_LOCK_BIKE_STATE);
}
}
BOOL PlayerAvatar_CheckBikeStateLocked(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_LOCK_BIKE_STATE)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag4(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK4);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK4);
}
}
BOOL PlayerAvatar_CheckFlag4(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK4)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag5(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK5);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK5);
}
}
BOOL PlayerAvatar_CheckFlag5(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK5)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag6(PlayerAvatar *avatar) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK6);
}
void PlayerAvatar_ClearFlag6(PlayerAvatar *avatar) {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK6);
}
BOOL PlayerAvatar_CheckFlag6(PlayerAvatar *avatar) {
if (PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK6)) {
return TRUE;
}
return FALSE;
}
void PlayerAvatar_SetFlag7(PlayerAvatar *avatar, BOOL set) {
if (set == TRUE) {
PlayerAvatar_SetFlagsBits(avatar, AVATAR_FLAG_UNK7);
} else {
PlayerAvatar_ClearFlagsBits(avatar, AVATAR_FLAG_UNK7);
}
}
BOOL PlayerAvatar_CheckFlag7(PlayerAvatar *avatar) {
return PlayerAvatar_GetFlagsBitsMask(avatar, AVATAR_FLAG_UNK7);
}

View File

@ -93,12 +93,12 @@ u16 PlayerProfile_GetTrainerID_VisibleHalf(PlayerProfile *data) {
return (u16)data->playerId; return (u16)data->playerId;
} }
void PlayerProfile_SetTrainerGender(PlayerProfile *data, PlayerGender gender) { void PlayerProfile_SetTrainerGender(PlayerProfile *data, u32 gender) {
data->gender = gender; data->gender = gender;
} }
PlayerGender PlayerProfile_GetTrainerGender(PlayerProfile *data) { u32 PlayerProfile_GetTrainerGender(PlayerProfile *data) {
return (PlayerGender)data->gender; return data->gender;
} }
BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno) { BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno) {

View File

@ -27,6 +27,7 @@
#include "msgdata.h" #include "msgdata.h"
#include "options.h" #include "options.h"
#include "party.h" #include "party.h"
#include "player_avatar.h"
#include "player_data.h" #include "player_data.h"
#include "pokedex.h" #include "pokedex.h"
#include "pokemon_storage_system.h" #include "pokemon_storage_system.h"
@ -67,7 +68,6 @@ extern MessageFormat *ov06_02244210(SaveData *sav, u16 poke, u16 sex, u8 flag, u
extern void ov05_021E2CBC(ScriptContext *ctx, MessageFormat *messageFormat, u8 param2, u32 param3); extern void ov05_021E2CBC(ScriptContext *ctx, MessageFormat *messageFormat, u8 param2, u32 param3);
extern void ov05_021E2BB8(void *param0, ScriptContext *ctx); extern void ov05_021E2BB8(void *param0, ScriptContext *ctx);
extern BOOL sub_02030F40(void); extern BOOL sub_02030F40(void);
extern void sub_02055304(PlayerAvatar *playerAvatar, u32 param1);
extern void sub_02039460(FieldSystem *arg); extern void sub_02039460(FieldSystem *arg);
extern void ov05_021E8128(u32 param0, u8 type, u16 map); extern void ov05_021E8128(u32 param0, u8 type, u16 map);
extern void ov05_021E8130(u32 param0, u32 param1); extern void ov05_021E8130(u32 param0, u32 param1);
@ -91,7 +91,6 @@ extern void ov05_021E2B9C(u32 param0, u8 param1);
extern u32 sub_0205AEA4(LocalMapObject *event, const void *ptr); extern u32 sub_0205AEA4(LocalMapObject *event, const void *ptr);
extern BOOL sub_0205AEF0(u32 param0); extern BOOL sub_0205AEF0(u32 param0);
extern void sub_0205AEFC(u32 param0); extern void sub_0205AEFC(u32 param0);
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *playerAvatar);
extern u32 sub_0205AE28(LocalMapObject *event); extern u32 sub_0205AE28(LocalMapObject *event);
extern LocalMapObject *sub_0205E7C4(LocalMapObject *event); extern LocalMapObject *sub_0205E7C4(LocalMapObject *event);
extern u32 sub_02034B64(FieldSystem *fieldSystem); extern u32 sub_02034B64(FieldSystem *fieldSystem);
@ -99,11 +98,8 @@ extern const ObjectEvent *sub_02034B6C(FieldSystem *fieldSystem);
extern u32 sub_02059D1C(LocalMapObject *target); extern u32 sub_02059D1C(LocalMapObject *target);
extern VecFx32 *MapObject_GetPositionVector(LocalMapObject *target); extern VecFx32 *MapObject_GetPositionVector(LocalMapObject *target);
extern void ov05_021EF5E0(VecFx32 *target, u32 param1); extern void ov05_021EF5E0(VecFx32 *target, u32 param1);
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *playerAvatar);
extern u32 sub_02059E74(u32 direction); extern u32 sub_02059E74(u32 direction);
extern void ov05_021F1EC0(LocalMapObject *event, u32 param1); extern void ov05_021F1EC0(LocalMapObject *event, u32 param1);
extern u16 GetPlayerXCoord(PlayerAvatar *playerAvatar);
extern u16 GetPlayerZCoord(PlayerAvatar *playerAvatar);
extern u16 sub_02029E0C(SealCase *sealCase); extern u16 sub_02029E0C(SealCase *sealCase);
extern u16 SealCase_CountSealOccurrenceAnywhere(SealCase *sealCase, u16 sealId); extern u16 SealCase_CountSealOccurrenceAnywhere(SealCase *sealCase, u16 sealId);
extern void sub_02029D44(SealCase *sealCase, u16 sealId, s16 amount); extern void sub_02029D44(SealCase *sealCase, u16 sealId, s16 amount);
@ -168,19 +164,15 @@ extern u32 LocalFieldData_GetWeatherType(LocalFieldData *localFieldData);
extern void ov05_021DC174(u32 param0, u32 weather); extern void ov05_021DC174(u32 param0, u32 weather);
extern void LocalFieldData_SetWeatherType(LocalFieldData *localFieldData, u32 weather); extern void LocalFieldData_SetWeatherType(LocalFieldData *localFieldData, u32 weather);
extern void CallFieldTask_Waterfall(TaskManager *taskManager, u32 playerDirection, u16 partyPosition); extern void CallFieldTask_Waterfall(TaskManager *taskManager, u32 playerDirection, u16 partyPosition);
extern u32 PlayerAvatar_GetGender(PlayerAvatar *avatar);
extern void *ov06_0224666C(FieldSystem *fieldSystem, u32 param1, Pokemon *mon, u32 playerGender); extern void *ov06_0224666C(FieldSystem *fieldSystem, u32 param1, Pokemon *mon, u32 playerGender);
extern BOOL ov06_022466A0(void *param0); extern BOOL ov06_022466A0(void *param0);
extern void ov06_022466AC(void *param0); extern void ov06_022466AC(void *param0);
extern void ov05_021E7030(TaskManager *taskManager); extern void ov05_021E7030(TaskManager *taskManager);
extern u32 PlayerAvatar_GetState(PlayerAvatar *avatar);
extern void FieldSystem_SetSavedMusicId(FieldSystem *fieldSystem, u16 musicId); extern void FieldSystem_SetSavedMusicId(FieldSystem *fieldSystem, u16 musicId);
extern void FieldSystem_PlayOrFadeToNewMusicId(FieldSystem *fieldSystem, u16 musicId, u32 param2); extern void FieldSystem_PlayOrFadeToNewMusicId(FieldSystem *fieldSystem, u16 musicId, u32 param2);
extern void Field_PlayerAvatar_OrrTransitionFlags(PlayerAvatar *playerAvatar, u32 transitionFlags); extern void Field_PlayerAvatar_OrrTransitionFlags(PlayerAvatar *playerAvatar, u32 transitionFlags);
extern void Field_PlayerAvatar_ApplyTransitionFlags(PlayerAvatar *playerAvatar); extern void Field_PlayerAvatar_ApplyTransitionFlags(PlayerAvatar *playerAvatar);
extern u16 FieldSystem_GetOverriddenMusicId(FieldSystem *fieldSystem, u32 mapId); extern u16 FieldSystem_GetOverriddenMusicId(FieldSystem *fieldSystem, u32 mapId);
extern void sub_02055720(PlayerAvatar *avatar, u8 action);
extern void PlayerAvatar_OrrTransitionFlags(PlayerAvatar *playerAvatar, u32 transitionFlags);
extern RoamerSaveData *Save_Roamers_Get(SaveData *save); extern RoamerSaveData *Save_Roamers_Get(SaveData *save);
extern u32 Roamers_GetRand(RoamerSaveData *roamerSaveData, u32 index); extern u32 Roamers_GetRand(RoamerSaveData *roamerSaveData, u32 index);
extern void GetSwarmInfoFromRand(u32 rand, u16 *map, u16 *species); extern void GetSwarmInfoFromRand(u32 rand, u16 *map, u16 *species);
@ -227,9 +219,9 @@ extern u32 sub_02052608(u32 param0);
extern void sub_02052E10(u32 param0); extern void sub_02052E10(u32 param0);
extern u32 sub_02052648(u32 param0); extern u32 sub_02052648(u32 param0);
extern u32 sub_02052718(u32 param0, u32 param1); extern u32 sub_02052718(u32 param0, u32 param1);
extern void sub_0205363C(u32 trainerId, PlayerGender playerGender, MessageFormat *messageFormat); extern void sub_0205363C(u32 trainerId, u32 playerGender, MessageFormat *messageFormat);
extern u16 sub_02053678(u32 trainerId, PlayerGender playerGender, u32 param2); extern u16 sub_02053678(u32 trainerId, u32 playerGender, u32 param2);
extern u16 sub_020536D0(PlayerGender playerGender, u16 param1, u16 param2); extern u16 sub_020536D0(u32 playerGender, u16 param1, u16 param2);
extern void sub_02049EA4(TaskManager *taskManager); extern void sub_02049EA4(TaskManager *taskManager);
extern void LocalFieldData_SetBlackoutSpawn(LocalFieldData *localFieldData, u16 spawnPoint); extern void LocalFieldData_SetBlackoutSpawn(LocalFieldData *localFieldData, u16 spawnPoint);
extern void HealParty(Party *playerParty); extern void HealParty(Party *playerParty);
@ -297,7 +289,6 @@ extern void sub_02061574(FieldSystem *fieldSystem);
extern u16 SpearPillarSequence(FieldSystem *fieldSystem, u8 operation); extern u16 SpearPillarSequence(FieldSystem *fieldSystem, u8 operation);
extern void ov06_0224525C(FieldSystem *fieldSystem, u16 var, u16 type); extern void ov06_0224525C(FieldSystem *fieldSystem, u16 var, u16 type);
extern u16 ov06_02245340(FieldSystem *fieldSystem, u16 position); extern u16 ov06_02245340(FieldSystem *fieldSystem, u16 position);
extern void PlayerAvatar_ToggleAutomaticHeightUpdating(PlayerAvatar *avatar, u8 flag);
extern u16 Save_VarsFlags_GetSpiritombTalkCounter(SaveVarsFlags *varsFlags); extern u16 Save_VarsFlags_GetSpiritombTalkCounter(SaveVarsFlags *varsFlags);
extern void sub_0205F5A4(SaveVarsFlags *varsFlags, u16 param1); extern void sub_0205F5A4(SaveVarsFlags *varsFlags, u16 param1);
extern u16 sub_0205F594(SaveVarsFlags *varsFlags); extern u16 sub_0205F594(SaveVarsFlags *varsFlags);
@ -1027,13 +1018,13 @@ static BOOL sub_0203A4E0(ScriptContext *ctx) {
if (gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { if (gSystem.newKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) {
return TRUE; return TRUE;
} else if (gSystem.newKeys & PAD_KEY_UP) { } else if (gSystem.newKeys & PAD_KEY_UP) {
sub_02055304(ctx->fieldSystem->playerAvatar, 0); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 0);
} else if (gSystem.newKeys & PAD_KEY_DOWN) { } else if (gSystem.newKeys & PAD_KEY_DOWN) {
sub_02055304(ctx->fieldSystem->playerAvatar, 1); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 1);
} else if (gSystem.newKeys & PAD_KEY_LEFT) { } else if (gSystem.newKeys & PAD_KEY_LEFT) {
sub_02055304(ctx->fieldSystem->playerAvatar, 2); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 2);
} else if (gSystem.newKeys & PAD_KEY_RIGHT) { } else if (gSystem.newKeys & PAD_KEY_RIGHT) {
sub_02055304(ctx->fieldSystem->playerAvatar, 3); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 3);
} else if (gSystem.newKeys & PAD_BUTTON_X) { } else if (gSystem.newKeys & PAD_BUTTON_X) {
sub_02039460(ctx->fieldSystem); sub_02039460(ctx->fieldSystem);
} else { } else {
@ -1258,7 +1249,7 @@ static BOOL sub_0203A94C(ScriptContext *ctx) {
if (tmp != 0xFFFF) { if (tmp != 0xFFFF) {
sub_0201BD7C(*printerNumber); sub_0201BD7C(*printerNumber);
sub_02055304(ctx->fieldSystem->playerAvatar, tmp); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
*varPtr = 0; *varPtr = 0;
return TRUE; return TRUE;
} else { } else {
@ -1296,7 +1287,7 @@ static BOOL sub_0203AA0C(ScriptContext *ctx) {
} }
if (tmp != 0xFFFF) { if (tmp != 0xFFFF) {
sub_02055304(ctx->fieldSystem->playerAvatar, tmp); PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
*unk = 0; *unk = 0;
return TRUE; return TRUE;
} else { } else {
@ -1541,8 +1532,8 @@ BOOL ScrCmd_Unk02A1(ScriptContext *ctx) { // 02A1
GF_ASSERT(event); GF_ASSERT(event);
u16 *unk4 = AllocFromHeap(HEAP_ID_4, 0x100); u16 *unk4 = AllocFromHeap(HEAP_ID_4, 0x100);
u16 xVal = (u16)MapObject_GetCurrentX(event); u16 xVal = (u16)MapObject_GetXCoord(event);
u16 zVal = (u16)MapObject_GetCurrentZ(event); u16 zVal = (u16)MapObject_GetZCoord(event);
u32 pos = 0; u32 pos = 0;
@ -1798,10 +1789,10 @@ BOOL ScrCmd_GetPlayerPosition(ScriptContext *ctx) { // 0069
FieldSystem *fieldSystem = ctx->fieldSystem; FieldSystem *fieldSystem = ctx->fieldSystem;
u16 *x = ScriptGetVarPointer(ctx); u16 *x = ScriptGetVarPointer(ctx);
u16 *y = ScriptGetVarPointer(ctx); u16 *z = ScriptGetVarPointer(ctx);
*x = GetPlayerXCoord(fieldSystem->playerAvatar); *x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
*y = GetPlayerZCoord(fieldSystem->playerAvatar); *z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
return FALSE; return FALSE;
} }
@ -1814,8 +1805,8 @@ BOOL ScrCmd_GetEventPosition(ScriptContext *ctx) { // 006A
u16 *x = ScriptGetVarPointer(ctx); u16 *x = ScriptGetVarPointer(ctx);
u16 *z = ScriptGetVarPointer(ctx); u16 *z = ScriptGetVarPointer(ctx);
*x = (u16)MapObject_GetCurrentX(event); *x = (u16)MapObject_GetXCoord(event);
*z = (u16)MapObject_GetCurrentZ(event); *z = (u16)MapObject_GetZCoord(event);
return FALSE; return FALSE;
} }
@ -2631,7 +2622,7 @@ BOOL ScrCmd_DummyRideBike(ScriptContext *ctx) { // 02BF
BOOL ScrCmd_CyclingRoad(ScriptContext *ctx) { // 00C9 BOOL ScrCmd_CyclingRoad(ScriptContext *ctx) { // 00C9
u8 action = ScriptReadByte(ctx); u8 action = ScriptReadByte(ctx);
sub_02055720(ctx->fieldSystem->playerAvatar, action); PlayerAvatar_SetBikeStateLock(ctx->fieldSystem->playerAvatar, action);
return FALSE; return FALSE;
} }
@ -2643,7 +2634,7 @@ BOOL ScrCmd_GetPlayerState(ScriptContext *ctx) { // 00CA
BOOL ScrCmd_SetPlayerState(ScriptContext *ctx) { // 00CB BOOL ScrCmd_SetPlayerState(ScriptContext *ctx) { // 00CB
u16 state = ScriptReadHalfword(ctx); u16 state = ScriptReadHalfword(ctx);
PlayerAvatar_OrrTransitionFlags(ctx->fieldSystem->playerAvatar, state); PlayerAvatar_SetTransitionFlagsBits(ctx->fieldSystem->playerAvatar, state);
return TRUE; return TRUE;
} }

View File

@ -4,10 +4,8 @@
#include "save_vars_flags.h" #include "save_vars_flags.h"
#include "scrcmd.h" #include "scrcmd.h"
extern void *sub_02034E20(void *); extern PlayerSaveData *sub_02034E20(LocalFieldData *localFieldData);
extern void *Save_LocalFieldData_Get(void *); extern LocalFieldData *Save_LocalFieldData_Get(SaveData *save);
extern BOOL sub_02055474(void *);
extern void sub_02055488(void *, u32);
extern void sub_0205ECD4(struct SaveVarsFlags *state); extern void sub_0205ECD4(struct SaveVarsFlags *state);
extern BOOL sub_0205ECE0(struct SaveVarsFlags *state); extern BOOL sub_0205ECE0(struct SaveVarsFlags *state);
extern void sub_0205ECFC(struct SaveVarsFlags *state); extern void sub_0205ECFC(struct SaveVarsFlags *state);
@ -59,20 +57,20 @@ BOOL ScrCmd_GiveSinnohDex(struct ScriptContext *ctx) // 0158
BOOL ScrCmd_HasRunningShoes(struct ScriptContext *ctx) // 0159 BOOL ScrCmd_HasRunningShoes(struct ScriptContext *ctx) // 0159
{ {
u16 *ret_ptr = ScriptGetVarPointer(ctx); u16 *ret_ptr = ScriptGetVarPointer(ctx);
void *unk_sav_ptr = Save_LocalFieldData_Get(ctx->fieldSystem->saveData); LocalFieldData *localFieldData = Save_LocalFieldData_Get(ctx->fieldSystem->saveData);
void *unk = sub_02034E20(unk_sav_ptr); PlayerSaveData *playerSaveData = sub_02034E20(localFieldData);
*ret_ptr = (u16)sub_02055474(unk); *ret_ptr = (u16)PlayerSaveData_CheckRunningShoes(playerSaveData);
return FALSE; return FALSE;
} }
BOOL ScrCmd_GiveRunningShoes(struct ScriptContext *ctx) // 015A BOOL ScrCmd_GiveRunningShoes(struct ScriptContext *ctx) // 015A
{ {
void *unk_sav_ptr = Save_LocalFieldData_Get(ctx->fieldSystem->saveData); LocalFieldData *localFieldData = Save_LocalFieldData_Get(ctx->fieldSystem->saveData);
void *unk = sub_02034E20(unk_sav_ptr); PlayerSaveData *playerSaveData = sub_02034E20(localFieldData);
sub_02055488(unk, 1); PlayerSaveData_SetRunningShoesFlag(playerSaveData, TRUE);
return FALSE; return FALSE;
} }

View File

@ -30,7 +30,6 @@ extern u32 ov06_022451F0(u32);
extern void sub_02049160(struct TaskManager *taskManager, u32); extern void sub_02049160(struct TaskManager *taskManager, u32);
extern void sub_0204C1B4(struct TaskManager *taskManager, u32, u32, u32, u32, u32, u32, u32); extern void sub_0204C1B4(struct TaskManager *taskManager, u32, u32, u32, u32, u32, u32, u32);
extern LocalMapObject *PlayerAvatar_GetMapObject(struct PlayerAvatar *playerAvatar);
extern void sub_0205F1C4(struct SaveVarsFlags *); extern void sub_0205F1C4(struct SaveVarsFlags *);
extern void sub_0205F1D4(struct SaveVarsFlags *); extern void sub_0205F1D4(struct SaveVarsFlags *);
extern void sub_0206367C(struct FieldSystem *, u32); extern void sub_0206367C(struct FieldSystem *, u32);

View File

@ -2,8 +2,12 @@
#define POKEDIAMOND_CONSTANTS_GLOBAL_H #define POKEDIAMOND_CONSTANTS_GLOBAL_H
#include "constants/charcode.h" #include "constants/charcode.h"
#include "constants/global_fieldmap.h"
#define POKEMON_NAME_LENGTH 10 #define POKEMON_NAME_LENGTH 10
#define PLAYER_NAME_LENGTH 7 #define PLAYER_NAME_LENGTH 7
#define PLAYER_GENDER_MALE 0
#define PLAYER_GENDER_FEMALE 1
#endif // POKEDIAMOND_CONSTANTS_GLOBAL_H #endif // POKEDIAMOND_CONSTANTS_GLOBAL_H

View File

@ -8,13 +8,26 @@
#define DIR_EAST 3 #define DIR_EAST 3
// Player avatar state // Player avatar state
#define PLAYER_STATE_WALKING 0 #define PLAYER_STATE_WALKING 0
#define PLAYER_STATE_CYCLING 1 #define PLAYER_STATE_CYCLING 1
#define PLAYER_STATE_SURFING 2 #define PLAYER_STATE_SURFING 2
#define PLAYER_STATE_USE_HM 3
#define PLAYER_STATE_WATERING 4
#define PLAYER_STATE_CONTEST 5
#define PLAYER_STATE_FISHING 6
#define PLAYER_STATE_POKETCH 7
#define PLAYER_STATE_SAVING 8
#define PLAYER_STATE_HEAL 9
// Player transition bits // Player transition bits
#define PLAYER_TRANSITION_WALKING 1 << 0 #define PLAYER_TRANSITION_WALKING 1 << 0
#define PLAYER_TRANSITION_CYCLING 1 << 1 #define PLAYER_TRANSITION_CYCLING 1 << 1
#define PLAYER_TRANSITION_SURFING 1 << 2 #define PLAYER_TRANSITION_SURFING 1 << 2
#define PLAYER_TRANSITION_x0008 1 << 3
#define PLAYER_TRANSITION_WATERING 1 << 4
#define PLAYER_TRANSITION_FISHING 1 << 5
#define PLAYER_TRANSITION_POKETCH 1 << 6
#define PLAYER_TRANSITION_SAVING 1 << 7
#define PLAYER_TRANSITION_HEAL 1 << 8
#endif // POKEDIAMOND_CONSTANTS_GLOBAL_FIELDMAP_H #endif // POKEDIAMOND_CONSTANTS_GLOBAL_FIELDMAP_H

View File

@ -1,9 +1,370 @@
#ifndef POKEDIAMOND_CONSTANTS_SPRITES_H #ifndef POKEDIAMOND_CONSTANTS_SPRITES_H
#define POKEDIAMOND_CONSTANTS_SPRITES_H #define POKEDIAMOND_CONSTANTS_SPRITES_H
#define SPRITE_ROCK 84 #define SPRITE_HERO 0
#define SPRITE_BREAKROCK 85 #define SPRITE_BABYBOY1 1
#define SPRITE_TREE 86 #define SPRITE_BABYGIRL1 2
#define SPRITE_BOY1 3
#define SPRITE_BOY2 4
#define SPRITE_BOY3 5
#define SPRITE_GIRL1 6
#define SPRITE_GIRL2 7
#define SPRITE_GIRL3 8
#define SPRITE_MAN1 9
#define SPRITE_MAN2 10
#define SPRITE_MAN3 11
#define SPRITE_WOMAN1 12
#define SPRITE_WOMAN2 13
#define SPRITE_WOMAN3 14
#define SPRITE_MIDDLEMAN1 15
#define SPRITE_MIDDLEWOMAN1 16
#define SPRITE_OLDMAN1 17
#define SPRITE_OLDWOMAN1 18
#define SPRITE_BIGMAN 19
#define SPRITE_MOUNT 20
#define SPRITE_CYCLEHERO 21
#define SPRITE_REPORTER 22
#define SPRITE_CAMERAMAN 23
#define SPRITE_SHOPM1 24
#define SPRITE_SHOPW1 25
#define SPRITE_PCWOMAN1 26
#define SPRITE_PCWOMAN2 27
#define SPRITE_PCWOMAN3 28
#define SPRITE_ASSISTANTM 29
#define SPRITE_ASSISTANTW 30
#define SPRITE_BADMAN 31
#define SPRITE_SKIERM 32
#define SPRITE_SKIERW 33
#define SPRITE_POLICEMAN 34
#define SPRITE_IDOL 35
#define SPRITE_GENTLEMAN 36
#define SPRITE_LADY 37
#define SPRITE_CYCLEM 38
#define SPRITE_CYCLEW 39
#define SPRITE_WORKMAN 40
#define SPRITE_FARMER 41
#define SPRITE_COWGIRL 42
#define SPRITE_CLOWN 43
#define SPRITE_ARTIST 44
#define SPRITE_SPORTSMAN 45
#define SPRITE_SWIMMERM 46
#define SPRITE_SWIMMERW 47
#define SPRITE_BEACHGIRL 48
#define SPRITE_BEACHBOY 49
#define SPRITE_EXPLORE 50
#define SPRITE_FIGHTER 51
#define SPRITE_CAMPBOY 52
#define SPRITE_PICNICGIRL 53
#define SPRITE_FISHING 54
#define SPRITE_AMBRELLA 55
#define SPRITE_SEAMAN 56
#define SPRITE_WAITER 59
#define SPRITE_WAITRESS 60
#define SPRITE_GORGGEOUSM 62
#define SPRITE_GORGGEOUSW 63
#define SPRITE_BOY4 64
#define SPRITE_GIRL4 65
#define SPRITE_MAN5 68
#define SPRITE_WOMAN5 69
#define SPRITE_MYSTERY 70
#define SPRITE_PIKACHU 71
#define SPRITE_PIPPI 72
#define SPRITE_PURIN 73
#define SPRITE_KODUCK 74
#define SPRITE_ACHAMO 78
#define SPRITE_ENECO 79
#define SPRITE_BABY 81
#define SPRITE_MIDDLEMAN2 82
#define SPRITE_MIDDLEWOMAN2 83
#define SPRITE_ROCK 84
#define SPRITE_BREAKROCK 85
#define SPRITE_TREE 86
#define SPRITE_MONSTARBALL 87
#define SPRITE_GIRL1_2 88
#define SPRITE_GIRL1_3 89
#define SPRITE_GIRL1_4 90
#define SPRITE_HEROINE 97
#define SPRITE_CYCLEHEROINE 98
#define SPRITE_DOCTOR 99
#define SPRITE_GINGABOSS 120
#define SPRITE_GKANBU1 121
#define SPRITE_GKANBU2 122
#define SPRITE_GKANBU3 123
#define SPRITE_GINGAM 124
#define SPRITE_GINGAW 125
#define SPRITE_LEADER1 126
#define SPRITE_LEADER2 127
#define SPRITE_LEADER3 128
#define SPRITE_LEADER4 129
#define SPRITE_LEADER5 130
#define SPRITE_LEADER6 131
#define SPRITE_LEADER7 132
#define SPRITE_LEADER8 133
#define SPRITE_BIGFOUR1 134
#define SPRITE_BIGFOUR2 135
#define SPRITE_BIGFOUR3 136
#define SPRITE_BIGFOUR4 137
#define SPRITE_CHAMPION 138
#define SPRITE_MAN1_2 139
#define SPRITE_MAMA 140
#define SPRITE_SEVEN1 141
#define SPRITE_SEVEN2 142
#define SPRITE_SEVEN3 143
#define SPRITE_SEVEN4 144
#define SPRITE_SEVEN5 145
#define SPRITE_RIVEL 148
#define SPRITE_BIGMAN_2 149
#define SPRITE_BIGMAN_3 150
#define SPRITE_SPPOKE1 151
#define SPRITE_SPPOKE2 152
#define SPRITE_SPPOKE3 153
#define SPRITE_SPPOKE4 154
#define SPRITE_SPPOKE5 155
#define SPRITE_SPPOKE6 156
#define SPRITE_SPPOKE7 157
#define SPRITE_SPPOKE8 158
#define SPRITE_SPPOKE9 159
#define SPRITE_SPPOKE10 160
#define SPRITE_SPPOKE11 161
#define SPRITE_WOMAN6 163
#define SPRITE_OLDMAN2 164
#define SPRITE_OLDWOMAN2 165
#define SPRITE_OOKIDO 166
#define SPRITE_MIKAN 167
#define SPRTIE_SUNGLASSES 168
#define SPRITE_TOWERBOSS 169
#define SPRITE_BIGMAN_4 170
#define SPRITE_BIGMAN_5 171
#define SPRITE_BIGMAN_6 172
#define SPRITE_BIRD 173
#define SPRITE_BAG 174
#define SPRITE_MAID 175
#define SPRITE_SPHERO 176
#define SPRITE_SPHEROINE 177
#define SPRITE_SWIMHERO 178
#define SPRITE_SWIMHEROINE 179
#define SPRITE_WATERHERO 180
#define SPRITE_WATERHEROINE 181
#define SPRITE_VENTHOLE 182
#define SPRITE_SSPOKE12 184
#define SPRITE_BALLOON 185
#define SPRITE_CONTESTHERO 186
#define SPRITE_CONT_HEROINE 187
#define SPRITE_FISHINGHERO 188
#define SPRITE_FISH_HEROINE 189
#define SPIRTE_MOSS 190
#define SPRITE_FREEZES 191
#define SPRITE_POLE 192
#define SPRITE_DELIVERY 193
#define SPRITE_DSBOY 194
#define SPRITE_KOIKING 195
#define SPRITE_POKEHERO 196
#define SPRITE_POKEHEROINE 197
#define SPRITE_SAVEHERO 198
#define SPRITE_SAVEHEROINE 199
#define SPRITE_BANZAIHERO 200
#define SPRITE_BANZAIHEROINE 201
#define SPRITE_GINGA_DOOR 202
#define SPRITE_T5_O01_C 203
#define SPRITE_PATIRITUSU 204
#define SPRITE_KINOCOCO 205
#define SPRITE_MIMITUTO 206
#define SPRITE_KOLUCKY 207
#define SPRITE_WANRIKY 208
#define SPRITE_SEED00_A 4096
#define SPRITE_SEED01_A 4097
#define SPRITE_SEED01_B 4098
#define SPRITE_SEED01_C 4099
#define SPRITE_SEED02_A 4100
#define SPRITE_SEED02_B 4101
#define SPRITE_SEED02_C 4102
#define SPRITE_SEED03_A 4103
#define SPRITE_SEED03_B 4104
#define SPRITE_SEED03_C 4105
#define SPRITE_SEED04_A 4106
#define SPRITE_SEED04_B 4107
#define SPRITE_SEED04_C 4108
#define SPRITE_SEED05_A 4109
#define SPRITE_SEED05_B 4110
#define SPRITE_SEED05_C 4111
#define SPRITE_SEED06_A 4112
#define SPRITE_SEED06_B 4113
#define SPRITE_SEED06_C 4114
#define SPRITE_SEED07_A 4115
#define SPRITE_SEED07_B 4116
#define SPRITE_SEED07_C 4117
#define SPRITE_SEED08_A 4118
#define SPRITE_SEED08_B 4119
#define SPRITE_SEED08_C 4120
#define SPRITE_SEED09_A 4121
#define SPRITE_SEED09_B 4122
#define SPRITE_SEED09_C 4123
#define SPRITE_SEED10_A 4124
#define SPRITE_SEED10_B 4125
#define SPRITE_SEED10_C 4126
#define SPRITE_SEED11_A 4127
#define SPRITE_SEED11_B 4128
#define SPRITE_SEED11_C 4129
#define SPRITE_SEED12_A 4130
#define SPRTIE_SEED12_B 4131
#define SPRITE_SEED12_C 4132
#define SPRITE_SEED13_A 4133
#define SPRITE_SEED13_B 4134
#define SPRITE_SEED13_C 4135
#define SPRITE_SEED14_A 4136
#define SPRITE_SEED14_B 4137
#define SPRITE_SEED14_C 4138
#define SPRITE_SEED15_A 4139
#define SPRITE_SEED15_B 4140
#define SPRITE_SEED15_C 4141
#define SPRITE_SEED16_A 4142
#define SPRITE_SEED16_B 4143
#define SPRITE_SEED16_C 4144
#define SPRITE_SEED17_A 4145
#define SPRITE_SEED17_B 4146
#define SPRITE_SEED17_C 4147
#define SPRITE_SEED18_A 4148
#define SPRITE_SEED18_B 4149
#define SPRITE_SEED18_C 4150
#define SPRITE_SEED19_A 4151
#define SPRITE_SEED19_B 4152
#define SPRITE_SEED19_C 4153
#define SPRITE_SEED20_A 4154
#define SPRITE_SEED20_B 4155
#define SPRITE_SEED20_C 4156
#define SPRITE_SEED21_A 4157
#define SPRITE_SEED21_B 4158
#define SPRITE_SEED21_C 4159
#define SPRITE_SEED22_A 4160
#define SPRITE_SEED22_B 4161
#define SPRITE_SEED22_C 4162
#define SPRITE_SEED23_A 4163
#define SPRITE_SEED23_B 4164
#define SPRITE_SEED23_C 4165
#define SPRITE_SEED24_A 4166
#define SPRITE_SEED24_B 4167
#define SPRITE_SEED24_C 4168
#define SPRITE_SEED25_A 4169
#define SPRITE_SEED25_B 4170
#define SPRITE_SEED25_C 4171
#define SPRITE_SEED26_A 4172
#define SPRITE_SEED26_B 4173
#define SPRITE_SEED26_C 4174
#define SPRITE_SEED27_A 4175
#define SPRITE_SEED27_B 4176
#define SPRITE_SEED27_C 4177
#define SPRITE_SEED28_A 4178
#define SPRITE_SEED28_B 4179
#define SPRITE_SEED28_C 4180
#define SPRITE_SEED29_A 4181
#define SPRITE_SEED29_B 4182
#define SPRITE_SEED29_C 4183
#define SPRITE_SEED30_A 4184
#define SPRITE_SEED30_B 4185
#define SPRITE_SEED30_C 4186
#define SPRITE_SEED31_A 4187
#define SPRITE_SEED31_B 4188
#define SPRITE_SEED31_C 4189
#define SPRITE_SEED32_A 4190
#define SPRITE_SEED32_B 4191
#define SPRITE_SEED32_C 4192
#define SPRITE_SEED33_A 4193
#define SPRITE_SEED33_B 4194
#define SPRITE_SEED33_C 4195
#define SPRITE_SEED34_A 4196
#define SPRITE_SEED34_B 4197
#define SPRITE_SEED34_C 4198
#define SPRITE_SEED35_A 4199
#define SPRITE_SEED35_B 4200
#define SPRITE_SEED35_C 4201
#define SPRITE_SEED36_A 4202
#define SPRITE_SEED36_B 4203
#define SPRITE_SEED36_C 4204
#define SPRITE_SEED37_A 4205
#define SPRITE_SEED37_B 4206
#define SPRITE_SEED37_C 4207
#define SPRITE_SEED38_A 4208
#define SPRITE_SEED38_B 4209
#define SPRITE_SEED38_C 4210
#define SPRITE_SEED39_A 4211
#define SPRITE_SEED39_B 4212
#define SPRITE_SEED39_C 4213
#define SPRITE_SEED40_A 4214
#define SPRITE_SEED40_B 4215
#define SPRITE_SEED40_C 4216
#define SPRITE_SEED41_A 4217
#define SPRITE_SEED41_B 4218
#define SPRITE_SEED41_C 4219
#define SPRITE_SEED42_A 4220
#define SPRITE_SEED42_B 4221
#define SPRITE_SEED42_C 4222
#define SPRITE_SEED43_A 4223
#define SPRITE_SEED43_B 4224
#define SPRITE_SEED43_C 4225
#define SPRITE_SEED44_A 4226
#define SPRITE_SEED44_B 4227
#define SPRITE_SEED44_C 4228
#define SPRITE_SEED45_A 4229
#define SPRITE_SEED45_B 4230
#define SPRITE_SEED45_C 4231
#define SPRITE_SEED46_A 4232
#define SPRITE_SEED46_B 4233
#define SPRITE_SEED46_C 4234
#define SPRITE_SEED47_A 4235
#define SPRITE_SEED47_B 4236
#define SPRITE_SEED47_C 4237
#define SPRITE_SEED48_A 4238
#define SPRITE_SEED48_B 4239
#define SPRITE_SEED48_C 4240
#define SPRITE_SEED49_A 4241
#define SPRITE_SEED49_B 4242
#define SPRITE_SEED49_C 4243
#define SPRITE_SEED50_A 4244
#define SPRITE_SEED50_B 4245
#define SPRITE_SEED50_C 4246
#define SPRITE_SEED51_A 4247
#define SPRITE_SEED51_B 4248
#define SPRITE_SEED51_C 4249
#define SPRITE_SEED52_A 4250
#define SPRITE_SEED52_B 4251
#define SPRITE_SEED52_C 4252
#define SPRITE_SEED53_A 4253
#define SPRITE_SEED53_B 4254
#define SPRITE_SEED53_C 4255
#define SPRITE_SEED54_A 4256
#define SPRITE_SEED54_B 4257
#define SPRITE_SEED54_C 4258
#define SPRITE_SEED55_A 4259
#define SPRITE_SEED55_B 4260
#define SPRITE_SEED55_C 4261
#define SPRITE_SEED56_A 4262
#define SPRITE_SEED56_B 4263
#define SPRITE_SEED56_C 4264
#define SPRITE_SEED57_A 4265
#define SPRITE_SEED57_B 4266
#define SPRITE_SEED57_C 4267
#define SPRITE_SEED58_A 4268
#define SPRITE_SEED58_B 4269
#define SPRITE_SEED58_C 4270
#define SPRITE_SEED59_A 4271
#define SPRITE_SEED59_B 4272
#define SPRITE_SEED59_C 4273
#define SPRITE_SEED60_A 4274
#define SPRITE_SEED60_B 4275
#define SPRITE_SEED60_C 4276
#define SPRITE_SEED61_A 4277
#define SPRITE_SEED61_B 4278
#define SPRITE_SEED61_C 4279
#define SPRITE_SEED62_A 4280
#define SPRITE_SEED62_B 4281
#define SPRITE_SEED62_C 4282
#define SPRITE_SEED63_A 4283
#define SPRITE_SEED63_B 4284
#define SPRITE_SEED63_C 4285
#define SPRITE_SEED64_A 4286
#define SPRITE_SEED64_B 4287
#define SPRITE_SEED64_C 4288
#define SPRITE_CAMERA_FOCUS 8192 #define SPRITE_CAMERA_FOCUS 8192

View File

@ -1,10 +0,0 @@
#ifndef POKEDIAMOND_FIELD_PLAYER_AVATAR_H
#define POKEDIAMOND_FIELD_PLAYER_AVATAR_H
#include "global.h"
typedef struct PlayerAvatar {
u8 padding0[0x40];
} PlayerAvatar; // TODO: populate once we know more
#endif // POKEDIAMOND_FIELD_PLAYER_AVATAR_H

View File

@ -5,8 +5,8 @@
#include "bg_window.h" #include "bg_window.h"
#include "camera.h" #include "camera.h"
#include "field_player_avatar.h"
#include "field_types_def.h" #include "field_types_def.h"
#include "player_avatar.h"
#include "save.h" #include "save.h"
#include "task.h" #include "task.h"

View File

@ -6,5 +6,6 @@ typedef struct LocalMapObject LocalMapObject;
typedef struct MapObjectManager MapObjectManager; typedef struct MapObjectManager MapObjectManager;
typedef struct ObjectEvent ObjectEvent; typedef struct ObjectEvent ObjectEvent;
typedef struct TaskManager TaskManager; typedef struct TaskManager TaskManager;
typedef struct PlayerAvatar PlayerAvatar;
#endif // POKEDIAMOND_FIELD_TYPES_DEF_H #endif // POKEDIAMOND_FIELD_TYPES_DEF_H

View File

@ -330,19 +330,19 @@ BOOL MapObject_CheckFlag29(LocalMapObject *object);
u32 MapObject_GetInitialX(LocalMapObject *object); u32 MapObject_GetInitialX(LocalMapObject *object);
u32 MapObject_GetInitialY(LocalMapObject *object); u32 MapObject_GetInitialY(LocalMapObject *object);
u32 MapObject_GetInitialZ(LocalMapObject *object); u32 MapObject_GetInitialZ(LocalMapObject *object);
u32 MapObject_GetPreviousX(LocalMapObject *object); u32 MapObject_GetPreviousXCoord(LocalMapObject *object);
void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX); void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX);
u32 MapObject_GetPreviousY(LocalMapObject *object); u32 MapObject_GetPreviousYCoord(LocalMapObject *object);
void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY); void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY);
u32 MapObject_GetPreviousZ(LocalMapObject *object); u32 MapObject_GetPreviousZCoord(LocalMapObject *object);
void MapObject_SetPreviousZ(LocalMapObject *object, u32 previousZ); void MapObject_SetPreviousZ(LocalMapObject *object, u32 previousZ);
u32 MapObject_GetCurrentX(LocalMapObject *object); u32 MapObject_GetXCoord(LocalMapObject *object);
void MapObject_SetCurrentX(LocalMapObject *object, u32 currentX); void MapObject_SetCurrentX(LocalMapObject *object, u32 currentX);
void MapObject_AddCurrentX(LocalMapObject *object, u32 currentX); void MapObject_AddCurrentX(LocalMapObject *object, u32 currentX);
s32 MapObject_GetCurrentY(LocalMapObject *object); s32 MapObject_GetYCoord(LocalMapObject *object);
void MapObject_SetCurrentY(LocalMapObject *object, s32 currentY); void MapObject_SetCurrentY(LocalMapObject *object, s32 currentY);
void MapObject_AddCurrentY(LocalMapObject *object, s32 currentY); void MapObject_AddCurrentY(LocalMapObject *object, s32 currentY);
u32 MapObject_GetCurrentZ(LocalMapObject *object); u32 MapObject_GetZCoord(LocalMapObject *object);
void MapObject_SetCurrentZ(LocalMapObject *object, u32 currentZ); void MapObject_SetCurrentZ(LocalMapObject *object, u32 currentZ);
void MapObject_AddCurrentZ(LocalMapObject *object, u32 currentZ); void MapObject_AddCurrentZ(LocalMapObject *object, u32 currentZ);
void MapObject_CopyPositionVector(LocalMapObject *object, VecFx32 *positionVector); void MapObject_CopyPositionVector(LocalMapObject *object, VecFx32 *positionVector);
@ -357,7 +357,7 @@ void sub_02058BC4(LocalMapObject *object, VecFx32 *vector);
void sub_02058BD4(LocalMapObject *object, VecFx32 *vector); void sub_02058BD4(LocalMapObject *object, VecFx32 *vector);
u32 MapObject_GetPositionVectorYCoordUInt(LocalMapObject *object); u32 MapObject_GetPositionVectorYCoordUInt(LocalMapObject *object);
LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manager, u32 x, u32 z); LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manager, u32 x, u32 z);
void LocalMapObject_SetPositionFromVectorAndDirection(LocalMapObject *object, VecFx32 *positionVector, u32 direction); void MapObject_SetPositionFromVectorAndDirection(LocalMapObject *object, VecFx32 *positionVector, u32 direction);
void MapObject_SetPositionFromXYZAndDirection(LocalMapObject *object, u32 x, u32 y, u32 z, u32 direction); void MapObject_SetPositionFromXYZAndDirection(LocalMapObject *object, u32 x, u32 y, u32 z, u32 direction);
void sub_02058E90(LocalMapObject *object, u32 movement); void sub_02058E90(LocalMapObject *object, u32 movement);
void sub_02058EB0(LocalMapObject *object, u32 id); void sub_02058EB0(LocalMapObject *object, u32 id);

116
include/player_avatar.h Normal file
View File

@ -0,0 +1,116 @@
#ifndef POKEDIAMOND_PLAYER_AVATAR_H
#define POKEDIAMOND_PLAYER_AVATAR_H
#include "nitro/FX_types.h"
#include "global.h"
#include "field_types_def.h"
typedef enum PlayerAvatarFlags {
AVATAR_FLAG_UNK0 = (1 << 0),
AVATAR_FLAG_UNK1 = (1 << 1),
AVATAR_FLAG_UNK2 = (1 << 2),
AVATAR_FLAG_LOCK_BIKE_STATE = (1 << 3), // Blocks the player from mounting/dismounting their bike (though this was intended to stop dismounting during Cycling Road)
AVATAR_FLAG_UNK4 = (1 << 4),
AVATAR_FLAG_UNK5 = (1 << 5),
AVATAR_FLAG_UNK6 = (1 << 6),
AVATAR_FLAG_UNK7 = (1 << 7),
} PlayerAvatarFlags; // TODO: check if this is right
typedef struct PlayerSaveData {
u16 unk0;
u16 hasRunningShoes; // bool16
s32 state;
} PlayerSaveData; // TODO: copied from heartgold, check if this is correct
struct PlayerAvatar {
PlayerAvatarFlags flags;
u32 transitionFlags;
u32 unk8;
u8 padding0[0x4];
u32 unk10;
u32 unk14;
s32 state;
u32 gender;
s32 unk20;
s32 unk24;
s32 unk28;
LocalMapObject *mapObject;
u32 unk30;
PlayerSaveData *playerSaveData;
u8 padding2[0x4];
}; // TODO: populate once we know more
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *mapObjectManager, u32 x, u32 z, u32 direction, s32 state, u32 gender, PlayerSaveData *playerSaveData);
PlayerAvatar *PlayerAvatar_CreateWithActiveMapObject(MapObjectManager *mapObjectManager, PlayerSaveData *playerSaveData, u32 gender);
void sub_02055108(PlayerAvatar *avatar);
void PlayerAvatar_FreeToHeap(PlayerAvatar *avatar);
void PlayerAvatar_DeleteFromMap(PlayerAvatar *avatar);
LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement1(MapObjectManager *manager);
u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *avatar);
void PlayerAvatar_SetFacingDirection(PlayerAvatar *avatar, u32 direction);
u32 PlayerAvatar_GetNextFacingDirection(PlayerAvatar *avatar);
u32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar);
u32 PlayerAvatar_GetZCoord(PlayerAvatar *avatar);
u32 PlayerAvatar_GetPreviousXCoord(PlayerAvatar *avatar);
u32 PlayerAvatar_GetPreviousZCoord(PlayerAvatar *avatar);
void PlayerAvatar_CopyPositionVector(PlayerAvatar *avatar, VecFx32 *vector);
VecFx32 *PlayerAvatar_GetPositionVector(PlayerAvatar *avatar);
void PlayerAvatar_SetUnk10(PlayerAvatar *avatar, u32 param1);
u32 PlayerAvatar_GetUnk10(PlayerAvatar *avatar);
void PlayerAvatar_SetUnk14(PlayerAvatar *avatar, u32 param1);
u32 PlayerAvatar_GetUnk14(PlayerAvatar *avatar);
void PlayerAvatar_ToggleVisible(PlayerAvatar *avatar, BOOL invisible);
void PlayerAvatar_SetMapObject(PlayerAvatar *avatar, LocalMapObject *mapObject);
LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar);
void PlayerAvatar_SetState(PlayerAvatar *avatar, s32 state);
s32 PlayerAvatar_GetState(PlayerAvatar *avatar);
void PlayerAvatar_SetTransitionFlagsBits(PlayerAvatar *avatar, u32 flags);
void PlayerAvatar_SetTransitionFlags(PlayerAvatar *avatar, u32 flags);
u32 PlayerAvatar_GetTransitionFlags(PlayerAvatar *avatar);
u32 PlayerAvatar_GetGender(PlayerAvatar *avatar);
s32 PlayerAvatar_GetUnk20(PlayerAvatar *avatar);
void PlayerAvatar_SetUnk20(PlayerAvatar *avatar, s32 param1);
void PlayerAvatar_ClearUnk20ClearFlag2(PlayerAvatar *avatar);
s32 PlayerAvatar_Unk20AddWithCeiling(PlayerAvatar *avatar, s32 param1, s32 param2);
s32 PlayerAvatar_GetUnk24(PlayerAvatar *avatar);
s32 PlayerAvatar_GetUnk28(PlayerAvatar *avatar);
void PlayerAvatar_SetUnk24Unk28(PlayerAvatar *avatar, s32 unk24, s32 unk28);
void PlayerAvatar_SetUnk30(PlayerAvatar *avatar, u32 param1);
u32 PlayerAvatar_GetUnk30(PlayerAvatar *avatar);
PlayerSaveData *PlayerAvatar_GetPlayerSaveData(PlayerAvatar *avatar);
void PlayerAvatar_SetUnk8(PlayerAvatar *avatar, u32 param1);
u32 PlayerAvatar_GetUnk8(PlayerAvatar *avatar);
void PlayerSaveData_Init(PlayerSaveData *playerSaveData);
BOOL PlayerSaveData_CheckRunningShoes(PlayerSaveData *playerSaveData);
void PlayerSaveData_SetRunningShoesFlag(PlayerSaveData *playerSaveData, BOOL flag);
void PlayerAvatar_SetPlayerSaveDataUnk0(PlayerAvatar *playerAvatar, u16 unk0);
u16 PlayerAvatar_GetPlayerSaveDataUnk0(PlayerAvatar *playerAvatar);
void sub_020554EC(PlayerAvatar *avatar, VecFx32 *position, u32 direction);
void sub_02055514(PlayerAvatar *avatar, u32 x, u32 z, u32 direction);
void PlayerAvatar_SetMapObjectYPosition(PlayerAvatar *avatar, fx32 yVal);
void PlayerAvatar_ToggleAutomaticHeightUpdating(PlayerAvatar *avatar, u8 flag);
void PlayerAvatar_ToggleAutomaticHeightUpdatingImmediate(PlayerAvatar *avatar, BOOL flag);
u32 PlayerAvatar_GetSpriteByStateAndGender(s32 state, u32 gender);
u32 PlayerAvatar_GetTransitionBits(s32 state);
PlayerAvatar *FieldSystem_GetPlayerAvatar(FieldSystem *fieldSystem);
void PlayerAvatar_SetFlag0(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag0(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag1(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag1(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag2(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag2(PlayerAvatar *avatar);
void PlayerAvatar_SetBikeStateLock(PlayerAvatar *avatar, BOOL lock);
BOOL PlayerAvatar_CheckBikeStateLocked(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag4(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag4(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag5(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag5(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag6(PlayerAvatar *avatar);
void PlayerAvatar_ClearFlag6(PlayerAvatar *avatar);
BOOL PlayerAvatar_CheckFlag6(PlayerAvatar *avatar);
void PlayerAvatar_SetFlag7(PlayerAvatar *avatar, BOOL set);
BOOL PlayerAvatar_CheckFlag7(PlayerAvatar *avatar);
#endif // POKEDIAMOND_PLAYER_AVATAR_H

View File

@ -9,11 +9,6 @@ struct SaveData;
#define MAX_MONEY 999999 #define MAX_MONEY 999999
typedef enum PlayerGender {
PLAYER_GENDER_MALE = 0,
PLAYER_GENDER_FEMALE = 1
} PlayerGender;
typedef struct PlayerProfile { typedef struct PlayerProfile {
/* 0x00 */ u16 playerName[PLAYER_NAME_LENGTH + 1]; /* 0x00 */ u16 playerName[PLAYER_NAME_LENGTH + 1];
/* 0x10 */ u32 playerId; /* 0x10 */ u32 playerId;
@ -56,8 +51,8 @@ struct String *PlayerProfile_GetPlayerName_NewString(PlayerProfile *data, HeapID
void PlayerProfile_SetTrainerID(PlayerProfile *playerProfile, u32 otid); void PlayerProfile_SetTrainerID(PlayerProfile *playerProfile, u32 otid);
u32 PlayerProfile_GetTrainerID(PlayerProfile *data); u32 PlayerProfile_GetTrainerID(PlayerProfile *data);
u16 PlayerProfile_GetTrainerID_VisibleHalf(PlayerProfile *data); u16 PlayerProfile_GetTrainerID_VisibleHalf(PlayerProfile *data);
void PlayerProfile_SetTrainerGender(PlayerProfile *data, PlayerGender gender); void PlayerProfile_SetTrainerGender(PlayerProfile *data, u32 gender);
PlayerGender PlayerProfile_GetTrainerGender(PlayerProfile *data); u32 PlayerProfile_GetTrainerGender(PlayerProfile *data);
BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno); BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno);
void PlayerProfile_SetBadgeFlag(PlayerProfile *data, u32 badgeno); void PlayerProfile_SetBadgeFlag(PlayerProfile *data, u32 badgeno);
u32 PlayerProfile_CountBadges(PlayerProfile *data); u32 PlayerProfile_CountBadges(PlayerProfile *data);

View File

@ -6,6 +6,8 @@
#include "script.h" #include "script.h"
#include "unk_0200CA44.h" #include "unk_0200CA44.h"
#define obj_player 255
extern u16 FieldSystem_VarGet(FieldSystem *fieldSystem, u16); extern u16 FieldSystem_VarGet(FieldSystem *fieldSystem, u16);
extern u16 *GetVarPointer(FieldSystem *fieldSystem, u16); extern u16 *GetVarPointer(FieldSystem *fieldSystem, u16);
extern SaveData *FieldSystem_GetSaveData(FieldSystem *fieldSystem); extern SaveData *FieldSystem_GetSaveData(FieldSystem *fieldSystem);

View File

@ -6,10 +6,10 @@
#include "bg_window.h" #include "bg_window.h"
#include "camera.h" #include "camera.h"
#include "fashion_case.h" #include "fashion_case.h"
#include "field_player_avatar.h"
#include "field_system.h" #include "field_system.h"
#include "map_object.h" #include "map_object.h"
#include "msgdata.h" #include "msgdata.h"
#include "player_avatar.h"
#include "render_window.h" #include "render_window.h"
#include "save.h" #include "save.h"
#include "save_local_field_data.h" #include "save_local_field_data.h"