mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-08 09:06:36 -05:00
MapObject_InitFromObjectEvent
This commit is contained in:
@@ -5,119 +5,8 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_02057CF0
|
||||
sub_02057CF0: ; 0x02057CF0
|
||||
push {r3-r5, lr}
|
||||
add r4, r1, #0x0
|
||||
bl MapObjectManager_GetPriority
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl MapObject_GetMovement
|
||||
cmp r0, #0x30
|
||||
beq _02057D08
|
||||
cmp r0, #0x32
|
||||
bne _02057D0A
|
||||
_02057D08:
|
||||
add r5, r5, #0x2
|
||||
_02057D0A:
|
||||
ldr r0, _02057D28 ; =sub_0205832C
|
||||
add r1, r4, #0x0
|
||||
add r2, r5, #0x0
|
||||
bl SysTask_CreateOnMainQueue
|
||||
add r5, r0, #0x0
|
||||
bne _02057D1C
|
||||
bl GF_AssertFail
|
||||
_02057D1C:
|
||||
add r0, r4, #0x0
|
||||
add r1, r5, #0x0
|
||||
bl sub_02058554
|
||||
pop {r3-r5, pc}
|
||||
nop
|
||||
_02057D28: .word sub_0205832C
|
||||
|
||||
thumb_func_start MapObject_InitFromObjectEvent
|
||||
MapObject_InitFromObjectEvent: ; 0x02057D2C
|
||||
push {r4-r6, lr}
|
||||
add r4, r1, #0x0
|
||||
add r5, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
add r6, r2, #0x0
|
||||
bl ObjectEvent_GetID
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetID
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C04
|
||||
add r1, r0, #0x0
|
||||
add r0, r6, #0x0
|
||||
bl sub_02058170
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetGfxID
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C0C
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetMovement
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C14
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetType
|
||||
add r0, r4, #0x0
|
||||
bl ObjectEvent_GetFlagId
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetFlagID
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C24
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetScript
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C2C
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetInitialFacingDirection
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x0
|
||||
bl sub_02058C58
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
mov r2, #0x0
|
||||
bl MapObject_SetParam
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x1
|
||||
bl sub_02058C58
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
mov r2, #0x1
|
||||
bl MapObject_SetParam
|
||||
add r0, r4, #0x0
|
||||
mov r1, #0x2
|
||||
bl sub_02058C58
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
mov r2, #0x2
|
||||
bl MapObject_SetParam
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C80
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetXRange
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C8C
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetYRange
|
||||
add r0, r5, #0x0
|
||||
add r1, r4, #0x0
|
||||
bl sub_02057DFC
|
||||
pop {r4-r6, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_02057DFC
|
||||
sub_02057DFC: ; 0x02057DFC
|
||||
thumb_func_start MapObject_SetPositionVecFromObjectEvent
|
||||
MapObject_SetPositionVecFromObjectEvent: ; 0x02057DFC
|
||||
push {r3-r6, lr}
|
||||
sub sp, #0xc
|
||||
add r6, r1, #0x0
|
||||
@@ -241,7 +130,7 @@ sub_02057EE0: ; 0x02057EE0
|
||||
sub_02057F18: ; 0x02057F18
|
||||
push {r3-r5, lr}
|
||||
add r4, r0, #0x0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
mov r1, #0x2
|
||||
lsl r1, r1, #0xc
|
||||
cmp r0, r1
|
||||
@@ -541,8 +430,8 @@ sub_0205816C: ; 0x0205816C
|
||||
bx lr
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_02058170
|
||||
sub_02058170: ; 0x02058170
|
||||
thumb_func_start FieldSystem_ResolveObjectSpriteID
|
||||
FieldSystem_ResolveObjectSpriteID: ; 0x02058170
|
||||
push {r3, lr}
|
||||
cmp r1, #0x65
|
||||
blt _02058186
|
||||
@@ -645,12 +534,12 @@ _02058228:
|
||||
add r1, r6, #0x0
|
||||
bl sub_0205844C
|
||||
add r0, r4, #0x0
|
||||
bl sub_02058C24
|
||||
bl ObjectEvent_GetScript
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetScript
|
||||
add r0, r4, #0x0
|
||||
bl ObjectEvent_GetFlagId
|
||||
bl ObjectEvent_GetFlagID
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetFlagID
|
||||
@@ -673,7 +562,7 @@ _0205826E:
|
||||
mov r1, #0x1
|
||||
bl sub_020589B0
|
||||
add r0, r6, #0x0
|
||||
bl sub_02058C24
|
||||
bl ObjectEvent_GetScript
|
||||
add r1, r0, #0x0
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_SetScript
|
||||
@@ -1018,13 +907,13 @@ sub_02058450: ; 0x02058450
|
||||
ldr r0, [r0, #0xc]
|
||||
bx lr
|
||||
|
||||
thumb_func_start MapObject_SetGfxID
|
||||
MapObject_SetGfxID: ; 0x02058454
|
||||
thumb_func_start MapObject_SetSpriteID
|
||||
MapObject_SetSpriteID: ; 0x02058454
|
||||
str r1, [r0, #0x10]
|
||||
bx lr
|
||||
|
||||
thumb_func_start MapObject_GetGfxID
|
||||
MapObject_GetGfxID: ; 0x02058458
|
||||
thumb_func_start MapObject_GetSpriteID
|
||||
MapObject_GetSpriteID: ; 0x02058458
|
||||
ldr r0, [r0, #0x10]
|
||||
bx lr
|
||||
|
||||
@@ -1032,7 +921,7 @@ MapObject_GetGfxID: ; 0x02058458
|
||||
sub_0205845C: ; 0x0205845C
|
||||
push {r3-r5, lr}
|
||||
add r5, r0, #0x0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r4, r0, #0x0
|
||||
bl sub_0205C334
|
||||
cmp r0, #0x1
|
||||
@@ -2397,8 +2286,8 @@ ObjectEvent_SetSprite: ; 0x02058C00
|
||||
strh r1, [r0, #0x2]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C04
|
||||
sub_02058C04: ; 0x02058C04
|
||||
thumb_func_start ObjectEvent_GetSpriteID
|
||||
ObjectEvent_GetSpriteID: ; 0x02058C04
|
||||
ldrh r0, [r0, #0x2]
|
||||
bx lr
|
||||
|
||||
@@ -2407,8 +2296,8 @@ ObjectEvent_SetMovement: ; 0x02058C08
|
||||
strh r1, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C0C
|
||||
sub_02058C0C: ; 0x02058C0C
|
||||
thumb_func_start ObjectEvent_GetMovement
|
||||
ObjectEvent_GetMovement: ; 0x02058C0C
|
||||
ldrh r0, [r0, #0x4]
|
||||
bx lr
|
||||
|
||||
@@ -2417,8 +2306,8 @@ ObjectEvent_SetType: ; 0x02058C10
|
||||
strh r1, [r0, #0x6]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C14
|
||||
sub_02058C14: ; 0x02058C14
|
||||
thumb_func_start ObjectEvent_GetType
|
||||
ObjectEvent_GetType: ; 0x02058C14
|
||||
ldrh r0, [r0, #0x6]
|
||||
bx lr
|
||||
|
||||
@@ -2427,8 +2316,8 @@ ObjectEvent_SetFlagId: ; 0x02058C18
|
||||
strh r1, [r0, #0x8]
|
||||
bx lr
|
||||
|
||||
thumb_func_start ObjectEvent_GetFlagId
|
||||
ObjectEvent_GetFlagId: ; 0x02058C1C
|
||||
thumb_func_start ObjectEvent_GetFlagID
|
||||
ObjectEvent_GetFlagID: ; 0x02058C1C
|
||||
ldrh r0, [r0, #0x8]
|
||||
bx lr
|
||||
|
||||
@@ -2437,8 +2326,8 @@ ObjectEvent_SetScript: ; 0x02058C20
|
||||
strh r1, [r0, #0xa]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C24
|
||||
sub_02058C24: ; 0x02058C24
|
||||
thumb_func_start ObjectEvent_GetScript
|
||||
ObjectEvent_GetScript: ; 0x02058C24
|
||||
ldrh r0, [r0, #0xa]
|
||||
bx lr
|
||||
|
||||
@@ -2447,8 +2336,8 @@ ObjectEvent_SetFacing: ; 0x02058C28
|
||||
strh r1, [r0, #0xc]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C2C
|
||||
sub_02058C2C: ; 0x02058C2C
|
||||
thumb_func_start ObjectEvent_GetInitialFacingDirection
|
||||
ObjectEvent_GetInitialFacingDirection: ; 0x02058C2C
|
||||
mov r1, #0xc
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
@@ -2478,8 +2367,8 @@ _02058C50:
|
||||
pop {r3, pc}
|
||||
.balign 4
|
||||
|
||||
thumb_func_start sub_02058C58
|
||||
sub_02058C58: ; 0x02058C58
|
||||
thumb_func_start ObjectEvent_GetParam
|
||||
ObjectEvent_GetParam: ; 0x02058C58
|
||||
push {r3, lr}
|
||||
cmp r1, #0x0
|
||||
beq _02058C68
|
||||
@@ -2507,8 +2396,8 @@ ObjectEvent_SetXRange: ; 0x02058C7C
|
||||
strh r1, [r0, #0x14]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C80
|
||||
sub_02058C80: ; 0x02058C80
|
||||
thumb_func_start ObjectEvent_GetXRange
|
||||
ObjectEvent_GetXRange: ; 0x02058C80
|
||||
mov r1, #0x14
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
@@ -2519,8 +2408,8 @@ ObjectEvent_SetYRange: ; 0x02058C88
|
||||
strh r1, [r0, #0x16]
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_02058C8C
|
||||
sub_02058C8C: ; 0x02058C8C
|
||||
thumb_func_start ObjectEvent_GetYRange
|
||||
ObjectEvent_GetYRange: ; 0x02058C8C
|
||||
mov r1, #0x16
|
||||
ldrsh r0, [r0, r1]
|
||||
bx lr
|
||||
@@ -2588,7 +2477,7 @@ _02058CD4:
|
||||
thumb_func_start ObjectEvent_ScriptIdIsUnset
|
||||
ObjectEvent_ScriptIdIsUnset: ; 0x02058CE0
|
||||
push {r3, lr}
|
||||
bl sub_02058C24
|
||||
bl ObjectEvent_GetScript
|
||||
lsl r0, r0, #0x10
|
||||
lsr r1, r0, #0x10
|
||||
ldr r0, _02058CF8 ; =0x0000FFFF
|
||||
@@ -2612,7 +2501,7 @@ ObjectEvent_GetFlagID_AssertScriptIdIsUnset: ; 0x02058CFC
|
||||
bl GF_AssertFail
|
||||
_02058D0C:
|
||||
add r0, r4, #0x0
|
||||
bl ObjectEvent_GetFlagId
|
||||
bl ObjectEvent_GetFlagID
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_02058D14
|
||||
|
||||
@@ -313,7 +313,7 @@ _02037244:
|
||||
cmp r0, #0x1
|
||||
bne _02037260
|
||||
ldr r0, [r4, #0x0]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
sub r0, #0x5b
|
||||
cmp r0, #0x5
|
||||
bhi _02037260
|
||||
|
||||
@@ -217,7 +217,7 @@ sub_0204B490: ; 0x0204B490
|
||||
mov r7, #0x1
|
||||
_0204B4B6:
|
||||
ldr r0, [sp, #0x0]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
bl sub_0205C334
|
||||
cmp r0, #0x1
|
||||
bne _0204B4E8
|
||||
@@ -470,7 +470,7 @@ sub_0204B6C4: ; 0x0204B6C4
|
||||
ldr r4, _0204B708 ; =0x00000000
|
||||
beq _0204B6D8
|
||||
add r0, r5, #0x0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x64
|
||||
beq _0204B6DC
|
||||
_0204B6D8:
|
||||
@@ -615,7 +615,7 @@ _0204B7CC:
|
||||
thumb_func_start sub_0204B7D8
|
||||
sub_0204B7D8: ; 0x0204B7D8
|
||||
push {r3, lr}
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x64
|
||||
bne _0204B7E6
|
||||
mov r0, #0x1
|
||||
|
||||
@@ -56,7 +56,7 @@ sub_020550A4: ; 0x020550A4
|
||||
bl PlayerAvatar_GetSpriteByStateAndGender
|
||||
add r1, r0, #0x0
|
||||
add r0, r4, #0x0
|
||||
bl MapObject_SetGfxID
|
||||
bl MapObject_SetSpriteID
|
||||
mov r1, #0x9
|
||||
add r0, r4, #0x0
|
||||
lsl r1, r1, #0xa
|
||||
|
||||
@@ -57,7 +57,7 @@ sub_02063964: ; 0x02063964
|
||||
ldr r0, [sp, #0x8]
|
||||
cmp r0, #0x0
|
||||
beq _020639B6
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x54
|
||||
beq _0206399A
|
||||
cmp r0, #0x55
|
||||
|
||||
@@ -4024,8 +4024,8 @@
|
||||
.extern MapObject_SetID
|
||||
.extern MapObject_GetID
|
||||
.extern sub_02058450
|
||||
.extern MapObject_SetGfxID
|
||||
.extern MapObject_GetGfxID
|
||||
.extern MapObject_SetSpriteID
|
||||
.extern MapObject_GetSpriteID
|
||||
.extern sub_0205845C
|
||||
.extern MapObject_GetMovement
|
||||
.extern MapObject_SetType
|
||||
|
||||
@@ -385,7 +385,7 @@ _021E62C4:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_021E62D4:
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x54
|
||||
beq _021E62E0
|
||||
mov r0, #0
|
||||
@@ -1166,7 +1166,7 @@ _021E6916:
|
||||
mov r0, #0
|
||||
pop {r4, pc}
|
||||
_021E692C:
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x76
|
||||
beq _021E6938
|
||||
mov r0, #0
|
||||
@@ -2184,7 +2184,7 @@ ov05_021E70F0: ; 0x021E70F0
|
||||
cmp r0, #0
|
||||
bne _021E7136
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
sub r0, #0xc4
|
||||
cmp r0, #1
|
||||
bls _021E7136
|
||||
@@ -2216,7 +2216,7 @@ ov05_021E7138: ; 0x021E7138
|
||||
cmp r0, #0
|
||||
bne _021E7180
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0xc4
|
||||
beq _021E7162
|
||||
cmp r0, #0xc5
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
ov05_021F0514: ; 0x021F0514
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
cmp r0, #0x97
|
||||
bgt _021F053E
|
||||
bge _021F05B2
|
||||
|
||||
@@ -131,7 +131,7 @@ _021F1DC6:
|
||||
thumb_func_start ov05_021F1DC8
|
||||
ov05_021F1DC8: ; 0x021F1DC8
|
||||
push {r3, lr}
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
bl ov05_021F1DD4
|
||||
pop {r3, pc}
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ ov05_021F1FC8: ; 0x021F1FC8
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r2, r0, #0
|
||||
add r0, r5, #0
|
||||
add r1, r4, #0
|
||||
@@ -179,7 +179,7 @@ ov05_021F2060: ; 0x021F2060
|
||||
cmp r0, #0
|
||||
beq _021F2092
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r6, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -484,7 +484,7 @@ _021F229A:
|
||||
cmp r0, #1
|
||||
bne _021F22CE
|
||||
ldr r0, [sp]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r5, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -1596,7 +1596,7 @@ _021F2B2E:
|
||||
beq _021F2B5A
|
||||
_021F2B38:
|
||||
ldr r0, [sp]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r4, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -1647,7 +1647,7 @@ _021F2B8E:
|
||||
beq _021F2BDE
|
||||
_021F2B98:
|
||||
ldr r0, [sp]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r4, r0, #0
|
||||
ldr r0, _021F2BF4 ; =0x0000FFFF
|
||||
cmp r4, r0
|
||||
@@ -1726,7 +1726,7 @@ _021F2C20:
|
||||
cmp r0, #1
|
||||
bne _021F2C64
|
||||
ldr r0, [sp]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r4, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -2932,7 +2932,7 @@ ov05_021F3490: ; 0x021F3490
|
||||
bne _021F34D2
|
||||
_021F34A8:
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r6, r0, #0
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetManager
|
||||
@@ -2977,7 +2977,7 @@ ov05_021F34DC: ; 0x021F34DC
|
||||
str r0, [r5]
|
||||
add r0, r7, #0
|
||||
str r7, [r5, #0x50]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r6, r0, #0
|
||||
bl ov05_021F2DE8
|
||||
ldr r4, _021F36C4 ; =ov05_021F9094
|
||||
@@ -3216,7 +3216,7 @@ _021F370A:
|
||||
pop {r4, r5, r6, pc}
|
||||
_021F3730:
|
||||
add r0, r4, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
ldr r1, [r5]
|
||||
cmp r1, r0
|
||||
beq _021F377C
|
||||
|
||||
@@ -32697,7 +32697,7 @@ ov06_0224954C: ; 0x0224954C
|
||||
bl sub_02064754
|
||||
str r0, [r4, #0x10]
|
||||
ldr r0, [r4, #0x1c]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
str r0, [r4]
|
||||
ldr r0, [r4, #0x1c]
|
||||
bl MapObject_GetID
|
||||
@@ -33080,7 +33080,7 @@ ov06_02249834: ; 0x02249834
|
||||
bl sub_02058450
|
||||
str r0, [r4, #4]
|
||||
ldr r0, [r4, #0x20]
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
str r0, [r4, #8]
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -33129,7 +33129,7 @@ ov06_022498BC: ; 0x022498BC
|
||||
ldr r6, [r4, #0x20]
|
||||
add r5, r0, #0
|
||||
add r0, r6, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r7, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -33205,7 +33205,7 @@ ov06_02249954: ; 0x02249954
|
||||
ldr r4, [r5, #0x20]
|
||||
add r6, r0, #0
|
||||
add r0, r4, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
add r7, r0, #0
|
||||
bl sub_0205C334
|
||||
cmp r0, #1
|
||||
@@ -34255,7 +34255,7 @@ ov06_0224A130: ; 0x0224A130
|
||||
bl ov05_021E4C08
|
||||
add r6, r0, #0
|
||||
add r0, r5, #0
|
||||
bl MapObject_GetGfxID
|
||||
bl MapObject_GetSpriteID
|
||||
bl ov06_0224A0F0
|
||||
add r2, r0, #0
|
||||
add r0, sp, #0x14
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "map_object.h"
|
||||
#include "field_system.h"
|
||||
#include "heap.h"
|
||||
#include "unk_0200CA44.h"
|
||||
|
||||
static MapObjectManager *MapObjectManager_New(u32 objectCount);
|
||||
static LocalMapObject *MapObject_CreateFromObjectEvent(MapObjectManager *manager, ObjectEvent *objectEvent, u32 mapNo);
|
||||
@@ -13,6 +14,8 @@ static void MapObject_ConvertXYToPositionVec(LocalMapObject *object);
|
||||
static void MapObject_CreateFromInitArgs(MapObjectInitArgs *args);
|
||||
static LocalMapObject *MapObjectManager_GetFirstInactiveObject(MapObjectManager *manager);
|
||||
static LocalMapObject *sub_02057C98(MapObjectManager *manager, u32 id, u32 mapNo);
|
||||
static void sub_02057CF0(MapObjectManager *manager, LocalMapObject *object);
|
||||
static void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent, FieldSystem *fieldSystem);
|
||||
|
||||
extern BOOL sub_020580F4(MapObjectManager *manager, LocalMapObject **object, s32 *index, MapObjectFlagBits bits);
|
||||
|
||||
@@ -35,13 +38,11 @@ extern u16 ObjectEvent_GetFlagID_AssertScriptIdIsUnset(ObjectEvent *objectEvent)
|
||||
extern LocalMapObject *sub_02058010(MapObjectManager *manager, u32 objectId, u16 flagId);
|
||||
extern void sub_02058258(LocalMapObject *object, u32 mapNo, ObjectEvent *objectEvent);
|
||||
extern FieldSystem *MapObjectManager_GetFieldSystemPtr(MapObjectManager *manager);
|
||||
extern void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent, FieldSystem *fieldSystem);
|
||||
extern void sub_02057E90(LocalMapObject *object, MapObjectManager *manager);
|
||||
extern void sub_0205844C(LocalMapObject *object, u32 mapNo);
|
||||
extern void sub_020581A4(LocalMapObject *object);
|
||||
extern void sub_020581B4(LocalMapObject *object);
|
||||
extern void MapObject_SetFlagsBits(LocalMapObject *object, MapObjectFlagBits bits);
|
||||
extern void sub_02057CF0(MapObjectManager *manager, LocalMapObject *object);
|
||||
extern MapObjectManager *MapObjectManager_GetMapObjectManager(MapObjectManager *manager);
|
||||
extern void sub_0205836C(MapObjectManager *manager);
|
||||
extern void ObjectEvent_SetId(ObjectEvent *objectEvent, u32 id);
|
||||
@@ -57,10 +58,10 @@ extern void ObjectEvent_SetYRange(ObjectEvent *objectEvent, u32 yRange);
|
||||
extern void ObjectEvent_SetXCoord(ObjectEvent *objectEvent, u32 xCoord);
|
||||
extern void ObjectEvent_SetYCoord(ObjectEvent *objectEvent, u32 yCoord);
|
||||
extern void ObjectEvent_SetHeight(ObjectEvent *objectEvent, u32 height);
|
||||
extern u32 ObjectEvent_GetFlagId(ObjectEvent *objectEvent);
|
||||
extern u32 ObjectEvent_GetFlagID(ObjectEvent *objectEvent);
|
||||
extern ObjectEvent *ObjectEvent_GetById(u32 id, u32 objectEventCount, ObjectEvent *events);
|
||||
extern u8 FieldSystem_FlagCheck(FieldSystem *fieldSystem, u16 flag);
|
||||
extern void MapObject_SetGfxID(LocalMapObject *object, u32 sprite);
|
||||
extern void MapObject_SetSpriteID(LocalMapObject *object, u32 sprite);
|
||||
extern void sub_02058148(LocalMapObject *object);
|
||||
extern void MapObject_ClearFlagsBits(LocalMapObject *object, MapObjectFlagBits bits);
|
||||
extern BOOL sub_02058934(LocalMapObject *object);
|
||||
@@ -93,7 +94,7 @@ extern void sub_02057AEC(MapObjectManager *manager, LocalMapObject *object);
|
||||
extern u32 MapObject_GetFlagsWord(LocalMapObject *object);
|
||||
extern u32 MapObject_GetFlags2Word(LocalMapObject *object);
|
||||
extern u32 MapObject_GetID(LocalMapObject *object);
|
||||
extern u32 MapObject_GetGfxID(LocalMapObject *object);
|
||||
extern u32 MapObject_GetSpriteID(LocalMapObject *object);
|
||||
extern u32 MapObject_GetMovement(LocalMapObject *object);
|
||||
extern u32 MapObject_GetType(LocalMapObject *object);
|
||||
extern u32 MapObject_GetScript(LocalMapObject *object);
|
||||
@@ -148,6 +149,19 @@ extern void MapObject_SetPreviousY(LocalMapObject *object, u32 previousY);
|
||||
extern void MapObject_CreateFromInitArgs(MapObjectInitArgs *args);
|
||||
extern BOOL MapObject_CheckFlag25(LocalMapObject *object);
|
||||
extern u32 sub_02058750(LocalMapObject *object);
|
||||
extern void sub_0205832C(SysTask *task, LocalMapObject *object);
|
||||
extern u32 MapObjectManager_GetPriority(MapObjectManager *manager);
|
||||
extern void sub_02058554(LocalMapObject *object, SysTask *task);
|
||||
extern u16 ObjectEvent_GetSpriteID(ObjectEvent *objectEvent);
|
||||
extern u32 FieldSystem_ResolveObjectSpriteID(FieldSystem *fieldSystem, u16 spriteId);
|
||||
extern u16 ObjectEvent_GetMovement(ObjectEvent *objectEvent);
|
||||
extern u16 ObjectEvent_GetType(ObjectEvent *objectEvent);
|
||||
extern u16 ObjectEvent_GetScript(ObjectEvent *objectEvent);
|
||||
extern u16 ObjectEvent_GetInitialFacingDirection(ObjectEvent *objectEvent);
|
||||
extern u32 ObjectEvent_GetParam(ObjectEvent *objectEvent, u32 param);
|
||||
extern u32 ObjectEvent_GetXRange(ObjectEvent *objectEvent);
|
||||
extern u32 ObjectEvent_GetYRange(ObjectEvent *objectEvent);
|
||||
extern void MapObject_SetPositionVecFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent);
|
||||
|
||||
MapObjectManager *MapObjectManager_Init(FieldSystem *fieldSystem, u32 objectCount, u32 priority) {
|
||||
MapObjectManager *ret = MapObjectManager_New(objectCount);
|
||||
@@ -261,7 +275,7 @@ LocalMapObject *MapObject_CreateFromObjectEventWithId(MapObjectManager *manager,
|
||||
LocalMapObject *ret = NULL;
|
||||
ObjectEvent *objectEvent = ObjectEvent_GetById(id, objectEventCount, (ObjectEvent *)events);
|
||||
if (objectEvent != NULL) {
|
||||
u32 flagId = ObjectEvent_GetFlagId(objectEvent);
|
||||
u32 flagId = ObjectEvent_GetFlagID(objectEvent);
|
||||
FieldSystem* fieldSystem = MapObjectManager_GetFieldSystemPtr(manager);
|
||||
if (FieldSystem_FlagCheck(fieldSystem, (u16)flagId) == FALSE) {
|
||||
ret = MapObject_CreateFromObjectEvent(manager, objectEvent, mapNo);
|
||||
@@ -272,7 +286,7 @@ LocalMapObject *MapObject_CreateFromObjectEventWithId(MapObjectManager *manager,
|
||||
}
|
||||
|
||||
void sub_02057614(LocalMapObject *object, u32 sprite) {
|
||||
MapObject_SetGfxID(object, sprite);
|
||||
MapObject_SetSpriteID(object, sprite);
|
||||
sub_02058148(object);
|
||||
MapObject_ClearFlagsBits(object, MAPOBJECTFLAG_UNK14);
|
||||
sub_020581B4(object);
|
||||
@@ -309,7 +323,7 @@ void sub_020576A8(LocalMapObject *object) {
|
||||
}
|
||||
MapObject_ClearFlagsBits(object, MAPOBJECTFLAG_UNK14);
|
||||
}
|
||||
MapObject_SetGfxID(object, MAP_OBJECT_GFX_ID_INVALID);
|
||||
MapObject_SetSpriteID(object, MAP_OBJECT_GFX_ID_INVALID);
|
||||
sub_02058684(object, sub_02058ED8);
|
||||
sub_02058698(object, sub_02058EDC);
|
||||
sub_020586AC(object, sub_02058EDC);
|
||||
@@ -410,7 +424,7 @@ static void SavedMapObject_InitFromLocalMapObject(FieldSystem *fieldSystem, Loca
|
||||
savedObject->flags2 = MapObject_GetFlags2Word(localObject);
|
||||
savedObject->objId = MapObject_GetID(localObject);
|
||||
savedObject->unk10 = sub_02058450(localObject);
|
||||
savedObject->gfxId = MapObject_GetGfxID(localObject);
|
||||
savedObject->spriteId = MapObject_GetSpriteID(localObject);
|
||||
savedObject->movement = MapObject_GetMovement(localObject);
|
||||
savedObject->type = MapObject_GetType(localObject);
|
||||
savedObject->flagId = MapObject_GetFlagID(localObject);
|
||||
@@ -449,7 +463,7 @@ static void LocalMapObject_InitFromSavedMapObject(LocalMapObject *localObject, S
|
||||
MapObject_SetFlags2Word(localObject, savedObject->flags2);
|
||||
MapObject_SetID(localObject, savedObject->objId);
|
||||
sub_0205844C(localObject, savedObject->unk10);
|
||||
MapObject_SetGfxID(localObject, savedObject->gfxId);
|
||||
MapObject_SetSpriteID(localObject, savedObject->spriteId);
|
||||
MapObject_SetMovement(localObject, savedObject->movement);
|
||||
MapObject_SetType(localObject, savedObject->type);
|
||||
MapObject_SetFlagID(localObject, savedObject->flagId);
|
||||
@@ -578,3 +592,33 @@ static LocalMapObject *sub_02057C98(MapObjectManager *manager, u32 id, u32 mapNo
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void sub_02057CF0(MapObjectManager *manager, LocalMapObject *object) {
|
||||
u32 priority = MapObjectManager_GetPriority(manager);
|
||||
u32 movement = MapObject_GetMovement(object);
|
||||
if (movement == 48 || movement == 50) {
|
||||
priority += 2;
|
||||
}
|
||||
|
||||
SysTask *task = SysTask_CreateOnMainQueue((SysTaskFunc)sub_0205832C, object, priority);
|
||||
GF_ASSERT(task != NULL);
|
||||
|
||||
sub_02058554(object, task);
|
||||
}
|
||||
|
||||
static void MapObject_InitFromObjectEvent(LocalMapObject *object, ObjectEvent *objectEvent, FieldSystem *fieldSystem) {
|
||||
MapObject_SetID(object, ObjectEvent_GetID(objectEvent));
|
||||
MapObject_SetSpriteID(object, FieldSystem_ResolveObjectSpriteID(fieldSystem, ObjectEvent_GetSpriteID(objectEvent)));
|
||||
MapObject_SetMovement(object, ObjectEvent_GetMovement(objectEvent));
|
||||
MapObject_SetType(object, ObjectEvent_GetType(objectEvent));
|
||||
MapObject_SetFlagID(object, ObjectEvent_GetFlagID(objectEvent));
|
||||
MapObject_SetScript(object, ObjectEvent_GetScript(objectEvent));
|
||||
MapObject_SetInitialFacingDirection(object, ObjectEvent_GetInitialFacingDirection(objectEvent));
|
||||
MapObject_SetParam(object, ObjectEvent_GetParam(objectEvent, 0), 0);
|
||||
MapObject_SetParam(object, ObjectEvent_GetParam(objectEvent, 1), 1);
|
||||
MapObject_SetParam(object, ObjectEvent_GetParam(objectEvent, 2), 2);
|
||||
MapObject_SetXRange(object, ObjectEvent_GetXRange(objectEvent));
|
||||
MapObject_SetYRange(object, ObjectEvent_GetYRange(objectEvent));
|
||||
|
||||
MapObject_SetPositionVecFromObjectEvent(object, objectEvent);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ typedef struct SavedMapObject {
|
||||
s8 currentFacing;
|
||||
s8 nextFacing;
|
||||
u16 unk10;
|
||||
u16 gfxId;
|
||||
u16 spriteId;
|
||||
u16 type;
|
||||
u16 flagId;
|
||||
u16 script;
|
||||
|
||||
Reference in New Issue
Block a user