This commit is contained in:
red031000 2025-03-07 08:31:56 +00:00
parent f08180fc01
commit 64c975dde3
No known key found for this signature in database
GPG Key ID: D27E50C050AE0CE1
22 changed files with 309 additions and 347 deletions

View File

@ -1,181 +1,12 @@
.include "asm/macros.inc"
.include "global.inc"
.extern PlayerAvatar_SetFlagsBits
.extern PlayerAvatar_ClearFlagsBits
.extern PlayerAvatar_GetFlagsBitsMask
.text
thumb_func_start PlayerAvatar_GetXCoord
PlayerAvatar_GetXCoord: ; 0x02055320
push {r3, lr}
bl PlayerAvatar_GetMapObject
bl MapObject_GetCurrentX
pop {r3, pc}
thumb_func_start PlayerAvatar_GetZCoord
PlayerAvatar_GetZCoord: ; 0x0205532C
push {r3, lr}
bl PlayerAvatar_GetMapObject
bl MapObject_GetCurrentZ
pop {r3, pc}
thumb_func_start sub_02055338
sub_02055338: ; 0x02055338
push {r3, lr}
bl PlayerAvatar_GetMapObject
bl MapObject_GetPreviousX
pop {r3, pc}
thumb_func_start sub_02055344
sub_02055344: ; 0x02055344
push {r3, lr}
bl PlayerAvatar_GetMapObject
bl MapObject_GetPreviousZ
pop {r3, pc}
thumb_func_start sub_02055350
sub_02055350: ; 0x02055350
push {r4, lr}
add r4, r1, #0x0
bl PlayerAvatar_GetMapObject
add r1, r4, #0x0
bl MapObject_CopyPositionVector
pop {r4, pc}
thumb_func_start sub_02055360
sub_02055360: ; 0x02055360
push {r3, lr}
bl sub_020553A4
bl MapObject_GetPositionVector
pop {r3, pc}
thumb_func_start sub_0205536C
sub_0205536C: ; 0x0205536C
str r1, [r0, #0x10]
bx lr
thumb_func_start sub_02055370
sub_02055370: ; 0x02055370
ldr r0, [r0, #0x10]
bx lr
thumb_func_start sub_02055374
sub_02055374: ; 0x02055374
str r1, [r0, #0x14]
bx lr
thumb_func_start sub_02055378
sub_02055378: ; 0x02055378
ldr r0, [r0, #0x14]
bx lr
thumb_func_start sub_0205537C
sub_0205537C: ; 0x0205537C
push {r4, lr}
add r4, r1, #0x0
bl PlayerAvatar_GetMapObject
cmp r4, #0x1
bne _02055392
mov r1, #0x2
lsl r1, r1, #0x8
bl MapObject_ClearFlagsBits
pop {r4, pc}
_02055392:
mov r1, #0x2
lsl r1, r1, #0x8
bl MapObject_SetFlagsBits
pop {r4, pc}
thumb_func_start PlayerAvatar_SetMapObject
PlayerAvatar_SetMapObject: ; 0x0205539C
str r1, [r0, #0x2c]
bx lr
thumb_func_start PlayerAvatar_GetMapObject
PlayerAvatar_GetMapObject: ; 0x020553A0
ldr r0, [r0, #0x2c]
bx lr
thumb_func_start sub_020553A4
sub_020553A4: ; 0x020553A4
ldr r0, [r0, #0x2c]
bx lr
thumb_func_start PlayerAvatar_SetState
PlayerAvatar_SetState: ; 0x020553A8
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
cmp r4, #0x3
blt _020553B6
bl GF_AssertFail
_020553B6:
add r0, r5, #0x0
add r1, r4, #0x0
str r4, [r5, #0x18]
bl sub_020554DC
pop {r3-r5, pc}
.balign 4
thumb_func_start PlayerAvatar_GetState
PlayerAvatar_GetState: ; 0x020553C4
push {r4, lr}
add r4, r0, #0x0
bne _020553CE
bl GF_AssertFail
_020553CE:
ldr r0, [r4, #0x18]
pop {r4, pc}
.balign 4
thumb_func_start PlayerAvatar_OrrTransitionFlags
PlayerAvatar_OrrTransitionFlags: ; 0x020553D4
ldr r2, [r0, #0x4]
orr r1, r2
str r1, [r0, #0x4]
bx lr
thumb_func_start PlayerAvatar_SetTransitionFlags
PlayerAvatar_SetTransitionFlags: ; 0x020553DC
str r1, [r0, #0x4]
bx lr
thumb_func_start PlayerAvatar_GetTransitionFlags
PlayerAvatar_GetTransitionFlags: ; 0x020553E0
ldr r0, [r0, #0x4]
bx lr
thumb_func_start PlayerAvatar_SetGender
PlayerAvatar_SetGender: ; 0x020553E4
str r1, [r0, #0x1c]
bx lr
thumb_func_start PlayerAvatar_GetGender
PlayerAvatar_GetGender: ; 0x020553E8
ldr r0, [r0, #0x1c]
bx lr
thumb_func_start sub_020553EC
sub_020553EC: ; 0x020553EC
ldr r2, [r0, #0x0]
orr r1, r2
str r1, [r0, #0x0]
bx lr
thumb_func_start sub_020553F4
sub_020553F4: ; 0x020553F4
ldr r2, [r0, #0x0]
mvn r1, r1
and r1, r2
str r1, [r0, #0x0]
bx lr
.balign 4
thumb_func_start sub_02055400
sub_02055400: ; 0x02055400
ldr r0, [r0, #0x0]
and r0, r1
bx lr
.balign 4
thumb_func_start sub_02055408
sub_02055408: ; 0x02055408
ldr r0, [r0, #0x20]
@ -376,10 +207,10 @@ sub_020554EC: ; 0x020554EC
bl LocalMapObject_SetPositionFromVectorAndDirection
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r4-r6, pc}
.balign 4
@ -398,10 +229,10 @@ sub_02055514: ; 0x02055514
bl MapObject_SetPositionFromXYZAndDirection
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
thumb_func_start sub_02055540
@ -626,11 +457,11 @@ sub_0205569C: ; 0x0205569C
cmp r1, #0x1
bne _020556AA
mov r1, #0x1
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_020556AA:
mov r1, #0x1
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -638,7 +469,7 @@ _020556AA:
sub_020556B4: ; 0x020556B4
push {r3, lr}
mov r1, #0x1
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _020556C4
mov r0, #0x1
@ -653,11 +484,11 @@ sub_020556C8: ; 0x020556C8
cmp r1, #0x1
bne _020556D6
mov r1, #0x2
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_020556D6:
mov r1, #0x2
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -665,7 +496,7 @@ _020556D6:
sub_020556E0: ; 0x020556E0
push {r3, lr}
mov r1, #0x2
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _020556F0
mov r0, #0x1
@ -680,11 +511,11 @@ sub_020556F4: ; 0x020556F4
cmp r1, #0x1
bne _02055702
mov r1, #0x4
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_02055702:
mov r1, #0x4
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -692,7 +523,7 @@ _02055702:
sub_0205570C: ; 0x0205570C
push {r3, lr}
mov r1, #0x4
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _0205571C
mov r0, #0x1
@ -707,11 +538,11 @@ sub_02055720: ; 0x02055720
cmp r1, #0x1
bne _0205572E
mov r1, #0x8
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_0205572E:
mov r1, #0x8
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -719,7 +550,7 @@ _0205572E:
sub_02055738: ; 0x02055738
push {r3, lr}
mov r1, #0x8
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _02055748
mov r0, #0x1
@ -734,11 +565,11 @@ sub_0205574C: ; 0x0205574C
cmp r1, #0x1
bne _0205575A
mov r1, #0x10
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_0205575A:
mov r1, #0x10
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -746,7 +577,7 @@ _0205575A:
sub_02055764: ; 0x02055764
push {r3, lr}
mov r1, #0x10
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _02055774
mov r0, #0x1
@ -761,11 +592,11 @@ sub_02055778: ; 0x02055778
cmp r1, #0x1
bne _02055786
mov r1, #0x20
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_02055786:
mov r1, #0x20
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
@ -773,7 +604,7 @@ _02055786:
sub_02055790: ; 0x02055790
push {r3, lr}
mov r1, #0x20
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _020557A0
mov r0, #0x1
@ -784,25 +615,25 @@ _020557A0:
thumb_func_start sub_020557A4
sub_020557A4: ; 0x020557A4
ldr r3, _020557AC ; =sub_020553EC
ldr r3, _020557AC ; =PlayerAvatar_SetFlagsBits
mov r1, #0x40
bx r3
nop
_020557AC: .word sub_020553EC
_020557AC: .word PlayerAvatar_SetFlagsBits
thumb_func_start sub_020557B0
sub_020557B0: ; 0x020557B0
ldr r3, _020557B8 ; =sub_020553F4
ldr r3, _020557B8 ; =PlayerAvatar_ClearFlagsBits
mov r1, #0x40
bx r3
nop
_020557B8: .word sub_020553F4
_020557B8: .word PlayerAvatar_ClearFlagsBits
thumb_func_start sub_020557BC
sub_020557BC: ; 0x020557BC
push {r3, lr}
mov r1, #0x40
bl sub_02055400
bl PlayerAvatar_GetFlagsBitsMask
cmp r0, #0x0
beq _020557CC
mov r0, #0x1
@ -817,18 +648,18 @@ sub_020557D0: ; 0x020557D0
cmp r1, #0x1
bne _020557DE
mov r1, #0x80
bl sub_020553EC
bl PlayerAvatar_SetFlagsBits
pop {r3, pc}
_020557DE:
mov r1, #0x80
bl sub_020553F4
bl PlayerAvatar_ClearFlagsBits
pop {r3, pc}
.balign 4
thumb_func_start sub_020557E8
sub_020557E8: ; 0x020557E8
ldr r3, _020557F0 ; =sub_02055400
ldr r3, _020557F0 ; =PlayerAvatar_GetFlagsBitsMask
mov r1, #0x80
bx r3
nop
_020557F0: .word sub_02055400
_020557F0: .word PlayerAvatar_GetFlagsBitsMask

View File

@ -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_GetPositionVectorConst
ldr r1, [r5, #0x20]
bl Camera_SetLookAtTargetAndRecalcPos
ldr r0, [r5, #0x38]
bl sub_02055360
bl PlayerAvatar_GetPositionVectorConst
ldr r1, [r5, #0x20]
bl Camera_SetFixedTarget
add sp, #0x10
@ -1056,7 +1056,7 @@ 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 PlayerAvatar_GetXCoord
add r6, r0, #0x0
@ -1102,11 +1102,11 @@ _0204CA48:
add r2, r4, #0x0
bl sub_020554EC
ldr r0, [r5, #0x38]
bl sub_02055360
bl PlayerAvatar_GetPositionVectorConst
ldr r1, [r5, #0x20]
bl Camera_SetLookAtTargetAndRecalcPos
ldr r0, [r5, #0x38]
bl sub_02055360
bl PlayerAvatar_GetPositionVectorConst
ldr r1, [r5, #0x20]
bl Camera_SetFixedTarget
add sp, #0x10

View File

@ -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

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

View File

@ -178,7 +178,7 @@ sub_02055928: ; 0x02055928
cmp r0, #0x1
bne _02055964
add r0, r4, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
cmp r0, #0x1
bne _02055964
add r0, r4, #0x0
@ -203,7 +203,7 @@ _02055964:
sub_02055968: ; 0x02055968
push {r4-r6, lr}
add r4, r0, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
cmp r0, #0x1
bne _02055A20
add r0, r4, #0x0
@ -292,17 +292,17 @@ _02055A34: .word 0x00000653
sub_02055A38: ; 0x02055A38
push {r3-r7, lr}
add r5, r0, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
add r6, r0, #0x0
add r0, r5, #0x0
bl sub_02055378
bl PlayerAvatar_GetUnk14
add r4, r0, #0x0
add r0, r5, #0x0
bl PlayerAvatar_GetMapObject
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
mov r1, #0x0
add r0, r5, #0x0
mvn r1, r1
@ -313,7 +313,7 @@ sub_02055A38: ; 0x02055A38
beq _02055A76
add r0, r5, #0x0
mov r1, #0x2
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055A76:
add r0, r7, #0x0
@ -340,17 +340,17 @@ _02055A8E:
_02055AA4:
add r0, r5, #0x0
mov r1, #0x1
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055AAE:
add r0, r5, #0x0
mov r1, #0x2
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055AB8:
add r0, r5, #0x0
mov r1, #0x2
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055AC2:
add r0, r7, #0x0
@ -371,12 +371,12 @@ _02055ADA:
bne _02055AEC
add r0, r5, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055AEC:
add r0, r5, #0x0
mov r1, #0x3
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055AF6:
cmp r4, #0x0
@ -385,12 +385,12 @@ _02055AF6:
bne _02055B08
add r0, r5, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
pop {r3-r7, pc}
_02055B08:
add r0, r5, #0x0
mov r1, #0x3
bl sub_02055374
bl PlayerAvatar_SetUnk14
_02055B10:
pop {r3-r7, pc}
.balign 4
@ -400,10 +400,10 @@ sub_02055B14: ; 0x02055B14
push {r4, lr}
add r4, r0, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r4, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
add r0, r4, #0x0
bl sub_02055410
pop {r4, pc}
@ -413,10 +413,10 @@ sub_02055B14: ; 0x02055B14
sub_02055B30: ; 0x02055B30
push {r3-r5, lr}
add r5, r0, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
add r4, r0, #0x0
add r0, r5, #0x0
bl sub_02055378
bl PlayerAvatar_GetUnk14
cmp r4, #0x0
bne _02055B48
mov r0, #0x1
@ -464,10 +464,10 @@ sub_02055B8C: ; 0x02055B8C
add r5, r1, #0x0
add r4, r0, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r4, #0x0
mov r1, #0x0
bl sub_02055374
bl PlayerAvatar_SetUnk14
add r0, r4, #0x0
bl PlayerAvatar_GetMapObject
add r4, r0, #0x0
@ -610,7 +610,7 @@ sub_02055C78: ; 0x02055C78
bl sub_020556C8
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x0
pop {r3-r7, pc}
_02055CCA:
@ -650,7 +650,7 @@ _02055CE4:
bl sub_0205543C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r3-r7, pc}
_02055D28:
@ -707,7 +707,7 @@ _02055D8E:
_02055DA0:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r3-r7, pc}
@ -743,7 +743,7 @@ sub_02055DAC: ; 0x02055DAC
bl sub_02056B5C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r3-r7, pc}
_02055DFE:
@ -777,7 +777,7 @@ _02055E18:
bl sub_0205569C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x1
bl sub_02055778
@ -804,7 +804,7 @@ _02055E62:
bl sub_02056B5C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
bl sub_020554BC
cmp r0, #0x1
@ -837,7 +837,7 @@ _02055EAC:
bl sub_0205569C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x1
bl sub_02055778
@ -945,7 +945,7 @@ sub_02055F90: ; 0x02055F90
bl sub_02056B5C
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x3
bl sub_0205540C
@ -963,7 +963,7 @@ _02055FCE:
bl sub_02055410
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r5, #0x0
mov r1, #0x0
bl sub_020556F4
@ -1221,7 +1221,7 @@ sub_020561D0: ; 0x020561D0
bl sub_020561EC
add r1, r0, #0x0
add r0, r5, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@ -1289,7 +1289,7 @@ sub_02056244: ; 0x02056244
cmp r4, r1
bne _0205625C
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x0
pop {r3-r5, pc}
_0205625C:
@ -1297,18 +1297,18 @@ _0205625C:
cmp r0, r4
beq _0205627A
add r0, r5, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
cmp r0, #0x1
beq _0205627A
add r0, r5, #0x0
mov r1, #0x2
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x2
pop {r3-r5, pc}
_0205627A:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@ -1673,7 +1673,7 @@ sub_0205653C: ; 0x0205653C
bl sub_02056558
add r1, r0, #0x0
add r0, r5, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@ -1726,13 +1726,13 @@ sub_0205658C: ; 0x0205658C
bne _020565AE
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x3
pop {r4-r6, pc}
_020565AE:
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x0
pop {r4-r6, pc}
_020565BA:
@ -1744,18 +1744,18 @@ _020565BA:
cmp r6, r4
beq _020565E2
add r0, r5, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
cmp r0, #0x1
beq _020565E2
add r0, r5, #0x0
mov r1, #0x2
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x2
pop {r4-r6, pc}
_020565E2:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r4-r6, pc}
.balign 4
@ -2060,7 +2060,7 @@ sub_02056858: ; 0x02056858
bl sub_02056874
add r1, r0, #0x0
add r0, r5, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@ -2114,13 +2114,13 @@ sub_020568A8: ; 0x020568A8
bge _020568CC
add r0, r5, #0x0
mov r1, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x0
pop {r4-r6, pc}
_020568CC:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x3
pop {r4-r6, pc}
_020568D8:
@ -2129,26 +2129,26 @@ _020568D8:
cmp r0, r4
beq _02056908
add r0, r5, #0x0
bl sub_02055370
bl PlayerAvatar_GetUnk10
cmp r0, #0x1
beq _02056908
cmp r6, #0x2
bge _020568FC
add r0, r5, #0x0
mov r1, #0x2
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x2
pop {r4-r6, pc}
_020568FC:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x3
pop {r4-r6, pc}
_02056908:
add r0, r5, #0x0
mov r1, #0x1
bl sub_0205536C
bl PlayerAvatar_SetUnk10
mov r0, #0x1
pop {r4-r6, pc}
@ -3245,7 +3245,7 @@ sub_02057194: ; 0x02057194
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0205536C
bl PlayerAvatar_SetUnk10
cmp r4, #0x0
bne _020571C6
add r0, r5, #0x0

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_GetPositionVectorConst
str r0, [sp, #0x1c]
ldr r0, [sp, #0x18]
mov r5, #0x0

View File

@ -263,10 +263,10 @@ sub_0205E698: ; 0x0205E698
bl MapObject_GetCurrentZ
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

View File

@ -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

@ -3903,19 +3903,19 @@
.extern PlayerAvatar_GetNextFacingDirection
.extern PlayerAvatar_GetXCoord
.extern PlayerAvatar_GetZCoord
.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_GetPreviousXCoord
.extern PlayerAvatar_GetPreviousZCoord
.extern PlayerAvatar_CopyPositionVector
.extern PlayerAvatar_GetPositionVectorConst
.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

View File

@ -1077,7 +1077,7 @@ _021D7DF6:
ldr r0, [r4, #0x34]
bl sub_02058774
ldr r0, [r4, #0x38]
bl sub_02055360
bl PlayerAvatar_GetPositionVectorConst
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_GetPositionVectorConst
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

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

View File

@ -8,7 +8,6 @@
#include "map_object.h"
#include "unk_020051F4.h"
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar);
extern BOOL sub_02054B30(u8 param0);
extern BOOL sub_02054B3C(u8 param0);
extern BOOL sub_02054B48(u8 param0);

View File

@ -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]
@ -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
@ -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
@ -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
@ -43357,7 +43357,7 @@ 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 PlayerAvatar_GetXCoord
add r5, r0, #0
@ -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

@ -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

@ -61,8 +61,6 @@ static void FieldMove_UseChatter(FieldMoveUseData *useData, const FieldMoveCheck
static BOOL Task_UseChatterInField(TaskManager *taskManager);
extern void FieldSystem_GetFacingObject(FieldSystem *fieldSystem, LocalMapObject **object);
extern u16 PlayerAvatar_GetXCoord(PlayerAvatar *playerAvatar);
extern u16 PlayerAvatar_GetZCoord(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);
@ -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);
@ -158,7 +155,7 @@ void FieldMove_InitCheckData(FieldSystem *fieldSystem, FieldMoveCheckData *check
}
u32 x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
s32 z = PlayerAvatar_GetZCoord(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);
@ -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);
}

View File

@ -5,34 +5,30 @@
#include "map_object.h"
static PlayerAvatar *PlayerAvatar_Create(void);
static void PlayerAvatar_Setup(PlayerAvatar *avatar, u32 state, u32 gender, PlayerSaveData *playerSaveData);
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, s32 z);
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);
extern u32 PlayerAvatar_GetSpriteByStateAndGender(u32 state, u32 gender);
extern u32 PlayerAvatar_GetSpriteByStateAndGender(s32 state, u32 gender);
extern u32 PlayerSaveData_GetState(PlayerSaveData *playerSaveData);
extern void PlayerAvatar_SetMapObject(PlayerAvatar *avatar, LocalMapObject *mapObject);
extern LocalMapObject *PlayerAvatar_GetMapObject(PlayerAvatar *avatar);
extern void ov05_021EDBC8(PlayerAvatar *avatar);
extern u32 PlayerAvatar_GetState(PlayerAvatar *avatar);
extern u32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar);
extern s32 PlayerAvatar_GetZCoord(PlayerAvatar *avatar);
extern u32 ov06_0224ABAC(LocalMapObject *mapObject, u32 x, s32 z, u32 direction, u32 param4);
extern u32 ov06_0224ABAC(LocalMapObject *mapObject, u32 x, u32 z, u32 direction, u32 param4);
extern void sub_02055450(PlayerAvatar *avatar, u32 param1);
extern void PlayerAvatar_SetPlayerSaveData(PlayerAvatar *avatar, PlayerSaveData *saveData);
extern void sub_0205536C(PlayerAvatar *avatar, u32 param1);
extern void sub_02055374(PlayerAvatar *avatar, u32 param1);
extern void PlayerAvatar_SetState(PlayerAvatar *avatar, u32 state);
extern void PlayerAvatar_SetGender(PlayerAvatar *avatar, u32 gender);
extern void PlayerAvatar_SetTransitionFlags(PlayerAvatar *avatar, u32 flags);
extern void sub_02055410(PlayerAvatar *avatar);
extern void sub_0205542C(PlayerAvatar *avatar, s32 param1);
extern void sub_02055434(PlayerAvatar *avatar, s32 param1);
extern void sub_02055460(PlayerAvatar *avatar, u32 param1);
extern void sub_020556C8(PlayerAvatar *avatar, u32 param1);
extern void sub_0205574C(PlayerAvatar *avatar, u32 param1);
extern void sub_020554DC(PlayerAvatar *avatar, s32 state);
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *manager, u32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData) {
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);
@ -42,7 +38,7 @@ PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *manager, u32 x, s3
PlayerAvatar *PlayerAvatar_CreateWithActiveMapObject(MapObjectManager *manager, PlayerSaveData *playerSaveData, u32 gender) {
PlayerAvatar *avatar = PlayerAvatar_Create();
u32 state = PlayerSaveData_GetState(playerSaveData);
s32 state = PlayerSaveData_GetState(playerSaveData);
PlayerAvatar_Setup(avatar, state, gender, playerSaveData);
LocalMapObject *mapObject = PlayerAvatar_GetActiveMapObjectWithMovement1(manager);
MapObject_SetSpriteID(mapObject, PlayerAvatar_GetSpriteByStateAndGender(state, gender));
@ -60,7 +56,7 @@ void sub_02055108(PlayerAvatar *avatar) {
ov05_021EDBC8(avatar);
if (PlayerAvatar_GetState(avatar) == PLAYER_STATE_SURFING) {
u32 x = PlayerAvatar_GetXCoord(avatar);
s32 z = PlayerAvatar_GetZCoord(avatar);
u32 z = PlayerAvatar_GetZCoord(avatar);
u32 direction = PlayerAvatar_GetFacingDirection(avatar);
sub_02055450(avatar, ov06_0224ABAC(mapObject, x, z, direction, 1));
}
@ -82,10 +78,10 @@ static PlayerAvatar *PlayerAvatar_Create(void) {
return avatar;
}
static void PlayerAvatar_Setup(PlayerAvatar *avatar, u32 state, u32 gender, PlayerSaveData *playerSaveData) {
static void PlayerAvatar_Setup(PlayerAvatar *avatar, s32 state, u32 gender, PlayerSaveData *playerSaveData) {
PlayerAvatar_SetPlayerSaveData(avatar, playerSaveData);
sub_0205536C(avatar, 0);
sub_02055374(avatar, 0);
PlayerAvatar_SetUnk10(avatar, 0);
PlayerAvatar_SetUnk14(avatar, 0);
PlayerAvatar_SetState(avatar, state);
PlayerAvatar_SetGender(avatar, gender);
PlayerAvatar_SetTransitionFlags(avatar, 0);
@ -97,7 +93,7 @@ static void PlayerAvatar_Setup(PlayerAvatar *avatar, u32 state, u32 gender, Play
sub_0205574C(avatar, 1);
}
static void PlayerAvatar_CreateMapObjectWithParams(PlayerAvatar *avatar, MapObjectManager *manager, u32 sprite, u32 direction, u32 x, s32 z) {
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, 255);
@ -143,3 +139,107 @@ void PlayerAvatar_SetFacingDirection(PlayerAvatar *avatar, u32 direction) {
u32 PlayerAvatar_GetNextFacingDirection(PlayerAvatar *avatar) {
return MapObject_GetNextFacingDirection(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetXCoord(PlayerAvatar *avatar) {
return MapObject_GetCurrentX(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetZCoord(PlayerAvatar *avatar) {
return MapObject_GetCurrentZ(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetPreviousXCoord(PlayerAvatar *avatar) {
return MapObject_GetPreviousX(PlayerAvatar_GetMapObject(avatar));
}
u32 PlayerAvatar_GetPreviousZCoord(PlayerAvatar *avatar) {
return MapObject_GetPreviousZ(PlayerAvatar_GetMapObject(avatar));
}
void PlayerAvatar_CopyPositionVector(PlayerAvatar *avatar, VecFx32 *vector) {
MapObject_CopyPositionVector(PlayerAvatar_GetMapObject(avatar), vector);
}
VecFx32 *PlayerAvatar_GetPositionVectorConst(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_UNK_SP);
avatar->state = state;
sub_020554DC(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);
}

View File

@ -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);
@ -101,8 +100,6 @@ extern VecFx32 *MapObject_GetPositionVector(LocalMapObject *target);
extern void ov05_021EF5E0(VecFx32 *target, u32 param1);
extern u32 sub_02059E74(u32 direction);
extern void ov05_021F1EC0(LocalMapObject *event, u32 param1);
extern u16 PlayerAvatar_GetXCoord(PlayerAvatar *playerAvatar);
extern u16 PlayerAvatar_GetZCoord(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);
@ -167,19 +164,16 @@ 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);
@ -1797,10 +1791,10 @@ BOOL ScrCmd_GetPlayerPosition(ScriptContext *ctx) { // 0069
FieldSystem *fieldSystem = ctx->fieldSystem;
u16 *x = ScriptGetVarPointer(ctx);
u16 *y = ScriptGetVarPointer(ctx);
u16 *z = ScriptGetVarPointer(ctx);
*x = PlayerAvatar_GetXCoord(fieldSystem->playerAvatar);
*y = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
*z = PlayerAvatar_GetZCoord(fieldSystem->playerAvatar);
return FALSE;
}
@ -2642,7 +2636,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

@ -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

@ -11,6 +11,7 @@
#define PLAYER_STATE_WALKING 0
#define PLAYER_STATE_CYCLING 1
#define PLAYER_STATE_SURFING 2
#define PLAYER_STATE_UNK_SP 3
// Player transition bits
#define PLAYER_TRANSITION_WALKING 1 << 0

View File

@ -1,19 +1,41 @@
#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 {
u8 padding[0x8];
} PlayerSaveData;
struct PlayerAvatar {
u8 padding0[0x3C];
PlayerAvatarFlags flags;
u32 transitionFlags;
u8 padding0[0x8];
u32 unk10;
u32 unk14;
s32 state;
u32 gender;
u8 padding1[0xC];
LocalMapObject *mapObject;
u8 padding2[0xC];
}; // TODO: populate once we know more
PlayerAvatar *PlayerAvatar_CreateWithParams(MapObjectManager *mapObjectManager, u32 x, s32 z, u32 direction, u32 state, u32 gender, PlayerSaveData *playerSaveData);
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);
@ -22,5 +44,24 @@ LocalMapObject *MapObjectManager_GetFirstActiveObjectWithMovement1(MapObjectMana
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_GetPositionVectorConst(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);
#endif // POKEDIAMOND_PLAYER_AVATAR_H