MapObject_InitFromObjectEvent

This commit is contained in:
red031000
2024-04-19 18:28:50 +01:00
parent 34022066a3
commit 38d9d2df58
13 changed files with 116 additions and 183 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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);
}

View File

@@ -16,7 +16,7 @@ typedef struct SavedMapObject {
s8 currentFacing;
s8 nextFacing;
u16 unk10;
u16 gfxId;
u16 spriteId;
u16 type;
u16 flagId;
u16 script;