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 unk_0205478C.o
Object unk_02054C14.o
Object unk_02055068.o
Object player_avatar.o
Object unk_020557F4.o
Object map_object.o
Object unk_02058EE8.o

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -100,7 +100,7 @@ _02053786:
ldr r0, [r4, #0x0]
mov r1, #0x0
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
mov r0, #0x6
lsl r0, r0, #0x6
ldr r1, [r4, r0]
@ -292,7 +292,7 @@ _020538FA:
ldr r0, [r4, #0x0]
mov r1, #0x0
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
mov r0, #0x6
lsl r0, r0, #0x6
ldr r1, [r4, r0]
@ -380,7 +380,7 @@ _020539A2:
ldr r0, [r4, #0x0]
mov r1, #0x1
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
add sp, #0x10
pop {r3-r5, pc}
_020539C4:
@ -448,7 +448,7 @@ _02053A36:
ldr r0, [r4, #0x0]
mov r1, #0x0
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
mov r0, #0x6
lsl r0, r0, #0x6
ldr r1, [r4, r0]
@ -613,7 +613,7 @@ _02053B76:
ldr r0, [r4, #0x0]
mov r1, #0x0
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
mov r1, #0x57
lsl r1, r1, #0x2
add r0, r4, #0x0
@ -680,7 +680,7 @@ _02053BF2:
ldr r0, [r4, #0x0]
mov r1, #0x1
ldr r0, [r0, #0x38]
bl sub_0205537C
bl PlayerAvatar_ToggleVisible
mov r0, #0x61
mov r1, #0x6
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
bne _02059708
add r0, r5, #0x0
bl MapObject_GetPreviousX
bl MapObject_GetPreviousXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetPreviousY
bl MapObject_GetPreviousYCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetPreviousZ
bl MapObject_GetPreviousZCoord
add r3, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@ -2185,13 +2185,13 @@ sub_0205970C: ; 0x0205970C
cmp r0, #0x1
bne _0205973C
add r0, r5, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
add r3, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@ -2210,13 +2210,13 @@ sub_02059740: ; 0x02059740
cmp r0, #0x1
bne _02059770
add r0, r5, #0x0
bl MapObject_GetPreviousX
bl MapObject_GetPreviousXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetPreviousY
bl MapObject_GetPreviousYCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetPreviousZ
bl MapObject_GetPreviousZCoord
add r3, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@ -2235,13 +2235,13 @@ sub_02059774: ; 0x02059774
cmp r0, #0x1
bne _020597A4
add r0, r5, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
add r3, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@ -2445,16 +2445,16 @@ sub_02059918: ; 0x02059918
sub sp, #0xc
add r4, r1, #0x0
add r5, r0, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r6, r0, #0x0
add r0, r4, #0x0
bl sub_02059BF4
add r7, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
str r0, [sp, #0x4]
add r0, r5, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
str r0, [sp, #0x8]
add r0, r4, #0x0
bl sub_02059C00
@ -2501,16 +2501,16 @@ _0205997C:
cmp r0, #0x0
bne _020599F4
ldr r0, [sp, #0x8]
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r7, r0, #0x0
ldr r0, [sp, #0x8]
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
cmp r7, r5
bne _020599C8
cmp r0, r6
bne _020599C8
ldr r0, [sp, #0x8]
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
sub r0, r0, r4
bpl _020599BE
neg r0, r0
@ -2522,16 +2522,16 @@ _020599BE:
pop {r4-r7, pc}
_020599C8:
ldr r0, [sp, #0x8]
bl MapObject_GetPreviousX
bl MapObject_GetPreviousXCoord
add r7, r0, #0x0
ldr r0, [sp, #0x8]
bl MapObject_GetPreviousZ
bl MapObject_GetPreviousZCoord
cmp r7, r5
bne _020599F4
cmp r0, r6
bne _020599F4
ldr r0, [sp, #0x8]
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
sub r0, r0, r4
bpl _020599EA
neg r0, r0
@ -2839,17 +2839,17 @@ sub_02059C0C: ; 0x02059C0C
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r1, r0, #0x0
add r0, r5, #0x0
bl MapObject_SetPreviousX
add r0, r5, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
add r1, r0, #0x0
add r0, r5, #0x0
bl MapObject_SetPreviousY
add r0, r5, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
add r1, r0, #0x0
add r0, r5, #0x0
bl MapObject_SetPreviousZ
@ -2872,17 +2872,17 @@ sub_02059C0C: ; 0x02059C0C
sub_02059C60: ; 0x02059C60
push {r4, lr}
add r4, r0, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r1, r0, #0x0
add r0, r4, #0x0
bl MapObject_SetPreviousX
add r0, r4, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
add r1, r0, #0x0
add r0, r4, #0x0
bl MapObject_SetPreviousY
add r0, r4, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
add r1, r0, #0x0
add r0, r4, #0x0
bl MapObject_SetPreviousZ
@ -2894,13 +2894,13 @@ sub_02059C90: ; 0x02059C90
push {r3-r7, lr}
add r5, r1, #0x0
add r4, r0, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl sub_02059BF4
add r7, r0, #0x0
add r0, r4, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
str r0, [sp, #0x0]
add r0, r5, #0x0
bl sub_02059C00
@ -3005,7 +3005,7 @@ _02059D4E:
add r0, r5, #0x0
bl MapObject_SetPositionVector
add r0, r5, #0x0
bl MapObject_GetCurrentY
bl MapObject_GetYCoord
add r1, r0, #0x0
add r0, r5, #0x0
bl MapObject_SetPreviousY
@ -3037,10 +3037,10 @@ _02059DAC:
sub_02059DB4: ; 0x02059DB4
push {r3-r7, lr}
add r5, r0, #0x0
bl MapObject_GetPreviousX
bl MapObject_GetPreviousXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetPreviousZ
bl MapObject_GetPreviousZCoord
add r6, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetFieldSystem
@ -3052,10 +3052,10 @@ sub_02059DB4: ; 0x02059DB4
add r0, r5, #0x0
bl sub_02058728
add r0, r5, #0x0
bl MapObject_GetCurrentX
bl MapObject_GetXCoord
add r4, r0, #0x0
add r0, r5, #0x0
bl MapObject_GetCurrentZ
bl MapObject_GetZCoord
add r2, r0, #0x0
add r0, r7, #0x0
add r1, r4, #0x0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@
struct ov59_UnkPlayerStruct {
u8 padding[0x4];
PlayerGender gender;
u32 gender;
u8 padding2[0x10];
struct String *name;
};
@ -46,7 +46,7 @@ typedef struct ov59_IntroOverlayData {
u32 fadeCounter;
fx32 alphaBlend1;
fx32 alphaBlend2;
PlayerGender selectedGender;
u32 selectedGender;
u8 scrnDataIndexMain;
u8 spriteDataIndex0;
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) {
u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize) template->size, (enum GFBgType)bgMode);
u8 screenSize = TranslateGFBgModePairToGXScreenSize((enum GFBgScreenSize)template->size, (enum GFBgType)bgMode);
switch (bgId) {
case GF_BG_LYR_MAIN_0:
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_BG0Mosaic(template->mosaic);
break;
case GF_BG_LYR_MAIN_1:
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_BG1Mosaic(template->mosaic);
break;
@ -148,13 +148,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) {
default:
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;
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;
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;
}
G2_SetBG2Priority(template->priority);
@ -166,13 +166,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) {
default:
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;
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;
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;
}
G2_SetBG3Priority(template->priority);
@ -181,14 +181,14 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
case GF_BG_LYR_SUB_0:
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_BG0Mosaic(template->mosaic);
break;
case GF_BG_LYR_SUB_1:
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_BG1Mosaic(template->mosaic);
break;
@ -198,13 +198,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) {
default:
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;
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;
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;
}
G2S_SetBG2Priority(template->priority);
@ -216,13 +216,13 @@ void InitBgFromTemplate(BgConfig *bgConfig, u8 bgId, const BgTemplate *template,
switch (bgMode) {
default:
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;
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;
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;
}
G2S_SetBG3Priority(template->priority);

View File

@ -13,6 +13,7 @@
#include "map_header.h"
#include "map_object.h"
#include "overlay_06.h"
#include "player_avatar.h"
#include "player_data.h"
#include "save_local_field_data.h"
#include "start_menu.h"
@ -60,12 +61,9 @@ static void FieldMove_UseChatter(FieldMoveUseData *useData, const FieldMoveCheck
static BOOL Task_UseChatterInField(TaskManager *taskManager);
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 void PlayerAvatar_GetCoordsInFront(PlayerAvatar *playerAvatar, s32 *x, s32 *z);
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_IsWaterfall(u8 facingTile);
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_Show(FieldSystem *fieldSystem, TownMapAppData *townMap);
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 BOOL Task_FieldTeleport(TaskManager *taskManager);
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);
s32 z = GetPlayerZCoord(fieldSystem->playerAvatar);
u32 x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
u32 z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
u32 standingTile = GetMetatileBehavior(fieldSystem, 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_SetPositionVectorFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent);
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 MapObject_Clear(LocalMapObject *object);
static u32 sub_02057F90(LocalMapObject *object, u32 mapId, u32 objectEventCount, ObjectEvent *objectEvents);
static LocalMapObject *MapObjectManager_GetFirstObjectWithIDAndMap(MapObjectManager *manager, u32 objectId, u32 mapId);
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 u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, s32 spriteId);
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 u32 MapObject_GetFlags2(LocalMapObject *object);
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 void MapObject_SetInitialFacingDirection(LocalMapObject *object, u32 initialFacing);
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_02058644(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_02058684(LocalMapObject *object, LocalMapObject_UnkCallback callback);
static void sub_0205868C(LocalMapObject *object);
@ -423,9 +423,9 @@ static void SavedMapObject_InitFromLocalMapObject(FieldSystem *fieldSystem, Loca
savedObject->initialX = MapObject_GetInitialX(localObject);
savedObject->initialY = MapObject_GetInitialY(localObject);
savedObject->initialZ = MapObject_GetInitialZ(localObject);
savedObject->currentX = MapObject_GetCurrentX(localObject);
savedObject->currentY = MapObject_GetCurrentY(localObject);
savedObject->currentZ = MapObject_GetCurrentZ(localObject);
savedObject->currentX = MapObject_GetXCoord(localObject);
savedObject->currentY = MapObject_GetYCoord(localObject);
savedObject->currentZ = MapObject_GetZCoord(localObject);
VecFx32 coords;
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;
MapObject_CopyPositionVector(object, &position);
u32 x = MapObject_GetCurrentX(object);
u32 x = MapObject_GetXCoord(object);
position.x = x * FX32_CONST(16) + FX32_CONST(8);
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);
MapObject_SetPreviousZ(object, z);
@ -637,7 +637,7 @@ static void sub_02057E90(LocalMapObject *object, MapObjectManager *manager) { //
MapObject_ClearHeldMovement(object);
}
/*static*/ void sub_02057EE0(LocalMapObject *object) {
static void sub_02057EE0(LocalMapObject *object) {
UnkLMOCallbackStruct *unk = sub_02058D14(MapObject_GetMovement(object));
sub_02058630(object, sub_02058D2C(unk));
sub_02058644(object, sub_02058D30(unk));
@ -760,7 +760,7 @@ static void sub_02058148(LocalMapObject *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));
}
@ -1037,7 +1037,7 @@ u32 sub_0205845C(LocalMapObject *object) {
return spriteId;
}
/*static*/ void MapObject_SetMovement(LocalMapObject *object, u32 movement) {
static void MapObject_SetMovement(LocalMapObject *object, u32 movement) {
object->movement = movement;
}
@ -1258,7 +1258,7 @@ static void sub_02058658(LocalMapObject *object, LocalMapObject_UnkCallback call
object->unkC0 = callback;
}
/*static*/ void sub_02058660(LocalMapObject *object) {
static void sub_02058660(LocalMapObject *object) {
object->unkC0(object);
}
@ -1618,7 +1618,7 @@ static void MapObject_SetInitialZ(LocalMapObject *object, u32 initialY) {
object->initialZ = initialY;
}
u32 MapObject_GetPreviousX(LocalMapObject *object) {
u32 MapObject_GetPreviousXCoord(LocalMapObject *object) {
return object->previousX;
}
@ -1626,7 +1626,7 @@ void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX) {
object->previousX = previousX;
}
u32 MapObject_GetPreviousY(LocalMapObject *object) {
u32 MapObject_GetPreviousYCoord(LocalMapObject *object) {
return object->previousY;
}
@ -1634,7 +1634,7 @@ void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY) {
object->previousY = previousY;
}
u32 MapObject_GetPreviousZ(LocalMapObject *object) {
u32 MapObject_GetPreviousZCoord(LocalMapObject *object) {
return object->previousZ;
}
@ -1642,7 +1642,7 @@ void MapObject_SetPreviousZ(LocalMapObject *object, u32 previousZ) {
object->previousZ = previousZ;
}
u32 MapObject_GetCurrentX(LocalMapObject *object) {
u32 MapObject_GetXCoord(LocalMapObject *object) {
return object->currentX;
}
@ -1654,7 +1654,7 @@ void MapObject_AddCurrentX(LocalMapObject *object, u32 currentX) {
object->currentX += currentX;
}
s32 MapObject_GetCurrentY(LocalMapObject *object) {
s32 MapObject_GetYCoord(LocalMapObject *object) {
return object->currentY;
}
@ -1666,7 +1666,7 @@ void MapObject_AddCurrentY(LocalMapObject *object, s32 currentY) {
object->currentY += currentY;
}
u32 MapObject_GetCurrentZ(LocalMapObject *object) {
u32 MapObject_GetZCoord(LocalMapObject *object) {
return object->currentZ;
}
@ -1932,7 +1932,7 @@ LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manag
do {
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;
}
}
@ -1944,7 +1944,7 @@ LocalMapObject *MapObjectManager_GetFirstObjectWithXAndZ(MapObjectManager *manag
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_SetCurrentY(object, (positionVector->y >> 3) / 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;
}
void PlayerProfile_SetTrainerGender(PlayerProfile *data, PlayerGender gender) {
void PlayerProfile_SetTrainerGender(PlayerProfile *data, u32 gender) {
data->gender = gender;
}
PlayerGender PlayerProfile_GetTrainerGender(PlayerProfile *data) {
return (PlayerGender)data->gender;
u32 PlayerProfile_GetTrainerGender(PlayerProfile *data) {
return data->gender;
}
BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno) {

View File

@ -27,6 +27,7 @@
#include "msgdata.h"
#include "options.h"
#include "party.h"
#include "player_avatar.h"
#include "player_data.h"
#include "pokedex.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_021E2BB8(void *param0, ScriptContext *ctx);
extern BOOL sub_02030F40(void);
extern void sub_02055304(PlayerAvatar *playerAvatar, u32 param1);
extern void sub_02039460(FieldSystem *arg);
extern void ov05_021E8128(u32 param0, u8 type, u16 map);
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 BOOL sub_0205AEF0(u32 param0);
extern void sub_0205AEFC(u32 param0);
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *playerAvatar);
extern u32 sub_0205AE28(LocalMapObject *event);
extern LocalMapObject *sub_0205E7C4(LocalMapObject *event);
extern u32 sub_02034B64(FieldSystem *fieldSystem);
@ -99,11 +98,8 @@ extern const ObjectEvent *sub_02034B6C(FieldSystem *fieldSystem);
extern u32 sub_02059D1C(LocalMapObject *target);
extern VecFx32 *MapObject_GetPositionVector(LocalMapObject *target);
extern void ov05_021EF5E0(VecFx32 *target, u32 param1);
extern u32 PlayerAvatar_GetFacingDirection(PlayerAvatar *playerAvatar);
extern u32 sub_02059E74(u32 direction);
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 SealCase_CountSealOccurrenceAnywhere(SealCase *sealCase, u16 sealId);
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 LocalFieldData_SetWeatherType(LocalFieldData *localFieldData, u32 weather);
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 BOOL ov06_022466A0(void *param0);
extern void ov06_022466AC(void *param0);
extern void ov05_021E7030(TaskManager *taskManager);
extern u32 PlayerAvatar_GetState(PlayerAvatar *avatar);
extern void FieldSystem_SetSavedMusicId(FieldSystem *fieldSystem, u16 musicId);
extern void FieldSystem_PlayOrFadeToNewMusicId(FieldSystem *fieldSystem, u16 musicId, u32 param2);
extern void Field_PlayerAvatar_OrrTransitionFlags(PlayerAvatar *playerAvatar, u32 transitionFlags);
extern void Field_PlayerAvatar_ApplyTransitionFlags(PlayerAvatar *playerAvatar);
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 u32 Roamers_GetRand(RoamerSaveData *roamerSaveData, u32 index);
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 u32 sub_02052648(u32 param0);
extern u32 sub_02052718(u32 param0, u32 param1);
extern void sub_0205363C(u32 trainerId, PlayerGender playerGender, MessageFormat *messageFormat);
extern u16 sub_02053678(u32 trainerId, PlayerGender playerGender, u32 param2);
extern u16 sub_020536D0(PlayerGender playerGender, u16 param1, u16 param2);
extern void sub_0205363C(u32 trainerId, u32 playerGender, MessageFormat *messageFormat);
extern u16 sub_02053678(u32 trainerId, u32 playerGender, u32 param2);
extern u16 sub_020536D0(u32 playerGender, u16 param1, u16 param2);
extern void sub_02049EA4(TaskManager *taskManager);
extern void LocalFieldData_SetBlackoutSpawn(LocalFieldData *localFieldData, u16 spawnPoint);
extern void HealParty(Party *playerParty);
@ -297,7 +289,6 @@ extern void sub_02061574(FieldSystem *fieldSystem);
extern u16 SpearPillarSequence(FieldSystem *fieldSystem, u8 operation);
extern void ov06_0224525C(FieldSystem *fieldSystem, u16 var, u16 type);
extern u16 ov06_02245340(FieldSystem *fieldSystem, u16 position);
extern void PlayerAvatar_ToggleAutomaticHeightUpdating(PlayerAvatar *avatar, u8 flag);
extern u16 Save_VarsFlags_GetSpiritombTalkCounter(SaveVarsFlags *varsFlags);
extern void sub_0205F5A4(SaveVarsFlags *varsFlags, u16 param1);
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)) {
return TRUE;
} 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) {
sub_02055304(ctx->fieldSystem->playerAvatar, 1);
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 1);
} 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) {
sub_02055304(ctx->fieldSystem->playerAvatar, 3);
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, 3);
} else if (gSystem.newKeys & PAD_BUTTON_X) {
sub_02039460(ctx->fieldSystem);
} else {
@ -1258,7 +1249,7 @@ static BOOL sub_0203A94C(ScriptContext *ctx) {
if (tmp != 0xFFFF) {
sub_0201BD7C(*printerNumber);
sub_02055304(ctx->fieldSystem->playerAvatar, tmp);
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
*varPtr = 0;
return TRUE;
} else {
@ -1296,7 +1287,7 @@ static BOOL sub_0203AA0C(ScriptContext *ctx) {
}
if (tmp != 0xFFFF) {
sub_02055304(ctx->fieldSystem->playerAvatar, tmp);
PlayerAvatar_SetFacingDirection(ctx->fieldSystem->playerAvatar, tmp);
*unk = 0;
return TRUE;
} else {
@ -1541,8 +1532,8 @@ BOOL ScrCmd_Unk02A1(ScriptContext *ctx) { // 02A1
GF_ASSERT(event);
u16 *unk4 = AllocFromHeap(HEAP_ID_4, 0x100);
u16 xVal = (u16)MapObject_GetCurrentX(event);
u16 zVal = (u16)MapObject_GetCurrentZ(event);
u16 xVal = (u16)MapObject_GetXCoord(event);
u16 zVal = (u16)MapObject_GetZCoord(event);
u32 pos = 0;
@ -1798,10 +1789,10 @@ BOOL ScrCmd_GetPlayerPosition(ScriptContext *ctx) { // 0069
FieldSystem *fieldSystem = ctx->fieldSystem;
u16 *x = ScriptGetVarPointer(ctx);
u16 *y = ScriptGetVarPointer(ctx);
u16 *z = ScriptGetVarPointer(ctx);
*x = GetPlayerXCoord(fieldSystem->playerAvatar);
*y = GetPlayerZCoord(fieldSystem->playerAvatar);
*x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
*z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
return FALSE;
}
@ -1814,8 +1805,8 @@ BOOL ScrCmd_GetEventPosition(ScriptContext *ctx) { // 006A
u16 *x = ScriptGetVarPointer(ctx);
u16 *z = ScriptGetVarPointer(ctx);
*x = (u16)MapObject_GetCurrentX(event);
*z = (u16)MapObject_GetCurrentZ(event);
*x = (u16)MapObject_GetXCoord(event);
*z = (u16)MapObject_GetZCoord(event);
return FALSE;
}
@ -2631,7 +2622,7 @@ BOOL ScrCmd_DummyRideBike(ScriptContext *ctx) { // 02BF
BOOL ScrCmd_CyclingRoad(ScriptContext *ctx) { // 00C9
u8 action = ScriptReadByte(ctx);
sub_02055720(ctx->fieldSystem->playerAvatar, action);
PlayerAvatar_SetBikeStateLock(ctx->fieldSystem->playerAvatar, action);
return FALSE;
}
@ -2643,7 +2634,7 @@ BOOL ScrCmd_GetPlayerState(ScriptContext *ctx) { // 00CA
BOOL ScrCmd_SetPlayerState(ScriptContext *ctx) { // 00CB
u16 state = ScriptReadHalfword(ctx);
PlayerAvatar_OrrTransitionFlags(ctx->fieldSystem->playerAvatar, state);
PlayerAvatar_SetTransitionFlagsBits(ctx->fieldSystem->playerAvatar, state);
return TRUE;
}

View File

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

View File

@ -30,7 +30,6 @@ extern u32 ov06_022451F0(u32);
extern void sub_02049160(struct TaskManager *taskManager, 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_0205F1D4(struct SaveVarsFlags *);
extern void sub_0206367C(struct FieldSystem *, u32);

View File

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

View File

@ -8,13 +8,26 @@
#define DIR_EAST 3
// Player avatar state
#define PLAYER_STATE_WALKING 0
#define PLAYER_STATE_CYCLING 1
#define PLAYER_STATE_SURFING 2
#define PLAYER_STATE_WALKING 0
#define PLAYER_STATE_CYCLING 1
#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
#define PLAYER_TRANSITION_WALKING 1 << 0
#define PLAYER_TRANSITION_CYCLING 1 << 1
#define PLAYER_TRANSITION_SURFING 1 << 2
#define PLAYER_TRANSITION_WALKING 1 << 0
#define PLAYER_TRANSITION_CYCLING 1 << 1
#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

View File

@ -1,9 +1,370 @@
#ifndef POKEDIAMOND_CONSTANTS_SPRITES_H
#define POKEDIAMOND_CONSTANTS_SPRITES_H
#define SPRITE_ROCK 84
#define SPRITE_BREAKROCK 85
#define SPRITE_TREE 86
#define SPRITE_HERO 0
#define SPRITE_BABYBOY1 1
#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

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 "camera.h"
#include "field_player_avatar.h"
#include "field_types_def.h"
#include "player_avatar.h"
#include "save.h"
#include "task.h"

View File

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

View File

@ -330,19 +330,19 @@ BOOL MapObject_CheckFlag29(LocalMapObject *object);
u32 MapObject_GetInitialX(LocalMapObject *object);
u32 MapObject_GetInitialY(LocalMapObject *object);
u32 MapObject_GetInitialZ(LocalMapObject *object);
u32 MapObject_GetPreviousX(LocalMapObject *object);
u32 MapObject_GetPreviousXCoord(LocalMapObject *object);
void MapObject_SetPreviousX(LocalMapObject *object, u32 previousX);
u32 MapObject_GetPreviousY(LocalMapObject *object);
u32 MapObject_GetPreviousYCoord(LocalMapObject *object);
void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY);
u32 MapObject_GetPreviousZ(LocalMapObject *object);
u32 MapObject_GetPreviousZCoord(LocalMapObject *object);
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_AddCurrentX(LocalMapObject *object, u32 currentX);
s32 MapObject_GetCurrentY(LocalMapObject *object);
s32 MapObject_GetYCoord(LocalMapObject *object);
void MapObject_SetCurrentY(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_AddCurrentZ(LocalMapObject *object, u32 currentZ);
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);
u32 MapObject_GetPositionVectorYCoordUInt(LocalMapObject *object);
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 sub_02058E90(LocalMapObject *object, u32 movement);
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
typedef enum PlayerGender {
PLAYER_GENDER_MALE = 0,
PLAYER_GENDER_FEMALE = 1
} PlayerGender;
typedef struct PlayerProfile {
/* 0x00 */ u16 playerName[PLAYER_NAME_LENGTH + 1];
/* 0x10 */ u32 playerId;
@ -56,8 +51,8 @@ struct String *PlayerProfile_GetPlayerName_NewString(PlayerProfile *data, HeapID
void PlayerProfile_SetTrainerID(PlayerProfile *playerProfile, u32 otid);
u32 PlayerProfile_GetTrainerID(PlayerProfile *data);
u16 PlayerProfile_GetTrainerID_VisibleHalf(PlayerProfile *data);
void PlayerProfile_SetTrainerGender(PlayerProfile *data, PlayerGender gender);
PlayerGender PlayerProfile_GetTrainerGender(PlayerProfile *data);
void PlayerProfile_SetTrainerGender(PlayerProfile *data, u32 gender);
u32 PlayerProfile_GetTrainerGender(PlayerProfile *data);
BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *data, u32 badgeno);
void PlayerProfile_SetBadgeFlag(PlayerProfile *data, u32 badgeno);
u32 PlayerProfile_CountBadges(PlayerProfile *data);

View File

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

View File

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