From f2ad9322dff2b284e3f7f058ef321cc6667f5ef4 Mon Sep 17 00:00:00 2001 From: red031000 Date: Tue, 5 Mar 2024 07:17:50 +0000 Subject: [PATCH] some more --- arm9/asm/map_object_s.s | 193 +++++++++------------------ arm9/asm/unk_0204CB20.s | 6 +- arm9/asm/unk_02055068.s | 6 +- arm9/asm/unk_020557F4.s | 10 +- arm9/asm/unk_02058EE8.s | 10 +- arm9/asm/unk_02059F04.s | 2 +- arm9/asm/unk_0205AD98.s | 32 ++--- arm9/asm/unk_0205C334.s | 2 +- arm9/asm/unk_0205C598.s | 2 +- arm9/asm/unk_0205E4EC.s | 2 +- arm9/global.inc | 2 +- arm9/overlays/05/asm/ov05_021F0514.s | 6 +- arm9/overlays/05/asm/ov05_021F1B0C.s | 2 +- arm9/overlays/05/asm/ov05_021F1CB8.s | 2 +- arm9/overlays/05/asm/ov05_021F1F04.s | 2 +- arm9/overlays/05/src/ov05_021E72FC.c | 4 +- arm9/overlays/06/asm/overlay_06.s | 2 +- arm9/src/map_object.c | 53 ++++++++ 18 files changed, 160 insertions(+), 178 deletions(-) diff --git a/arm9/asm/map_object_s.s b/arm9/asm/map_object_s.s index 4db34d1b8..702fe6166 100644 --- a/arm9/asm/map_object_s.s +++ b/arm9/asm/map_object_s.s @@ -2,81 +2,10 @@ .include "global.inc" .extern UNK_020F6364 + .extern MapObject_CreateFromObjectEventInternal .text - thumb_func_start sub_02057494 -sub_02057494: ; 0x02057494 - push {r3-r7, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - add r0, r6, #0x0 - add r7, r2, #0x0 - bl sub_02058BFC - add r4, r0, #0x0 - add r0, r6, #0x0 - bl sub_02058CE0 - cmp r0, #0x0 - bne _020574C8 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - bl sub_02057C98 - add r4, r0, #0x0 - beq _020574E8 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl sub_02058214 - add r0, r4, #0x0 - pop {r3-r7, pc} -_020574C8: - add r0, r6, #0x0 - bl sub_02058CFC - add r2, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl sub_02058010 - add r4, r0, #0x0 - beq _020574E8 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl sub_02058258 - add r0, r4, #0x0 - pop {r3-r7, pc} -_020574E8: - add r0, r5, #0x0 - bl sub_02057C64 - add r4, r0, #0x0 - beq _0205753A - add r0, r5, #0x0 - bl sub_020583E8 - add r2, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - bl sub_02057D2C - add r0, r4, #0x0 - add r1, r5, #0x0 - bl sub_02057E90 - add r0, r4, #0x0 - add r1, r7, #0x0 - bl sub_0205844C - add r0, r4, #0x0 - bl sub_020581A4 - add r0, r4, #0x0 - bl sub_020581B4 - add r0, r4, #0x0 - mov r1, #0x4 - bl sub_02058410 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl sub_02057CF0 - add r0, r5, #0x0 - bl sub_02058360 - bl sub_0205836C - add r0, r4, #0x0 -_0205753A: - pop {r3-r7, pc} - thumb_func_start sub_0205753C sub_0205753C: ; 0x0205753C push {r3-r7, lr} @@ -136,7 +65,7 @@ sub_0205753C: ; 0x0205753C ldr r2, [sp, #0x40] add r0, r5, #0x0 add r1, sp, #0x0 - bl sub_02057494 + bl MapObject_CreateFromObjectEventInternal add sp, #0x20 pop {r3-r7, pc} @@ -156,7 +85,7 @@ sub_020575D4: ; 0x020575D4 bl sub_02058C1C add r6, r0, #0x0 add r0, r5, #0x0 - bl sub_020583E8 + bl MapObjectManager_GetFieldSystemPtr lsl r1, r6, #0x10 lsr r1, r1, #0x10 bl FlagCheck @@ -165,7 +94,7 @@ sub_020575D4: ; 0x020575D4 ldr r1, [sp, #0x0] add r0, r5, #0x0 add r2, r7, #0x0 - bl sub_02057494 + bl MapObject_CreateFromObjectEventInternal add r4, r0, #0x0 _02057610: add r0, r4, #0x0 @@ -461,7 +390,7 @@ _02057866: tst r0, r1 beq _0205788C add r0, r6, #0x0 - bl sub_02057C64 + bl MapObjectManager_GetFirstInactiveObject add r4, r0, #0x0 bne _0205787C bl GF_AssertFail @@ -759,7 +688,7 @@ sub_02057AEC: ; 0x02057AEC add r0, r4, #0x0 bl sub_0205866C add r0, r5, #0x0 - bl sub_02058360 + bl MapObjectManager_GetMapObjectManager bl sub_0205836C pop {r3-r5, pc} .balign 4 @@ -769,7 +698,7 @@ sub_02057B34: ; 0x02057B34 push {r4, lr} mov r1, #0x5 add r4, r0, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits ldr r1, _02057B50 ; =0x00EF4248 add r0, r4, #0x0 bl sub_02058418 @@ -868,14 +797,14 @@ sub_02057C08: ; 0x02057C08 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl sub_020583E8 + bl MapObjectManager_GetFieldSystemPtr add r6, r5, #0x0 ldr r4, [r5, #0x10] add r7, r0, #0x0 add r6, #0x8 _02057C1A: add r0, r4, #0x0 - bl sub_02058CE0 + bl ObjectEvent_ScriptIdIsUnset cmp r0, #0x1 beq _02057C30 ldrh r1, [r4, #0x8] @@ -887,7 +816,7 @@ _02057C30: ldr r0, [r5, #0xc] ldr r2, [r5, #0x0] add r1, r4, #0x0 - bl sub_02057494 + bl MapObject_CreateFromObjectEventInternal cmp r0, #0x0 bne _02057C42 bl GF_AssertFail @@ -908,8 +837,8 @@ _02057C42: bl FreeToHeapExplicit pop {r3-r7, pc} - thumb_func_start sub_02057C64 -sub_02057C64: ; 0x02057C64 + thumb_func_start MapObjectManager_GetFirstInactiveObject +MapObjectManager_GetFirstInactiveObject: ; 0x02057C64 push {r3-r7, lr} add r5, r0, #0x0 mov r4, #0x0 @@ -1011,14 +940,14 @@ _02057D1C: nop _02057D28: .word sub_0205832C - thumb_func_start sub_02057D2C -sub_02057D2C: ; 0x02057D2C + 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 sub_02058BFC + bl ObjectEvent_GetID add r1, r0, #0x0 add r0, r5, #0x0 bl sub_02058444 @@ -1162,7 +1091,7 @@ sub_02057E90: ; 0x02057E90 add r4, r1, #0x0 ldr r1, _02057EDC ; =0x00001801 add r5, r0, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_020581F8 cmp r0, #0x1 @@ -1278,18 +1207,18 @@ sub_02057F90: ; 0x02057F90 beq _0205800A _02057F9E: add r0, r4, #0x0 - bl sub_02058BFC + bl ObjectEvent_GetID add r7, r0, #0x0 add r0, r5, #0x0 bl MapObject_GetID cmp r7, r0 bne _02058002 add r0, r4, #0x0 - bl sub_02058CE0 + bl ObjectEvent_ScriptIdIsUnset cmp r0, #0x1 bne _02057FE8 add r0, r4, #0x0 - bl sub_02058CFC + bl ObjectEvent_GetFlagID_AssertScriptIdIsUnset add r7, r0, #0x0 add r0, r5, #0x0 bl sub_020589CC @@ -1497,7 +1426,7 @@ sub_02058148: ; 0x02058148 push {r4, lr} add r4, r0, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 bl sub_0205815C pop {r4, pc} @@ -1640,7 +1569,7 @@ sub_02058258: ; 0x02058258 add r5, r0, #0x0 add r0, r6, #0x0 add r4, r1, #0x0 - bl sub_02058CE0 + bl ObjectEvent_ScriptIdIsUnset cmp r0, #0x1 beq _0205826E bl GF_AssertFail @@ -1654,7 +1583,7 @@ _0205826E: add r0, r5, #0x0 bl sub_02058494 add r0, r6, #0x0 - bl sub_02058CFC + bl ObjectEvent_GetFlagID_AssertScriptIdIsUnset add r1, r0, #0x0 add r0, r5, #0x0 bl sub_0205848C @@ -1769,8 +1698,8 @@ sub_02058348: ; 0x02058348 _0205835E: pop {r4, pc} - thumb_func_start sub_02058360 -sub_02058360: ; 0x02058360 + thumb_func_start MapObjectManager_GetMapObjectManager +MapObjectManager_GetMapObjectManager: ; 0x02058360 bx lr .balign 4 @@ -1894,8 +1823,8 @@ MapObjectManager_SetFieldSystemPtr: ; 0x020583E0 str r1, [r0, r2] bx lr - thumb_func_start sub_020583E8 -sub_020583E8: ; 0x020583E8 + thumb_func_start MapObjectManager_GetFieldSystemPtr +MapObjectManager_GetFieldSystemPtr: ; 0x020583E8 mov r1, #0x4a lsl r1, r1, #0x2 ldr r0, [r0, r1] @@ -1929,8 +1858,8 @@ sub_0205840C: ; 0x0205840C ldr r0, [r0, #0x0] bx lr - thumb_func_start sub_02058410 -sub_02058410: ; 0x02058410 + thumb_func_start MapObject_SetFlagsBits +MapObject_SetFlagsBits: ; 0x02058410 ldr r2, [r0, #0x0] orr r1, r2 str r1, [r0, #0x0] @@ -2245,12 +2174,12 @@ sub_02058578: ; 0x02058578 thumb_func_start sub_02058580 sub_02058580: ; 0x02058580 - ldr r3, _02058588 ; =sub_02058360 + ldr r3, _02058588 ; =MapObjectManager_GetMapObjectManager add r0, #0xb4 ldr r0, [r0, #0x0] bx r3 .balign 4 -_02058588: .word sub_02058360 +_02058588: .word MapObjectManager_GetMapObjectManager thumb_func_start sub_0205858C sub_0205858C: ; 0x0205858C @@ -2562,7 +2491,7 @@ sub_02058730: ; 0x02058730 MapObject_GetFieldSysPtr: ; 0x02058738 push {r3, lr} bl sub_02058580 - bl sub_020583E8 + bl MapObjectManager_GetFieldSystemPtr pop {r3, pc} thumb_func_start sub_02058744 @@ -2710,11 +2639,11 @@ _02058838: .word MapObject_TestFlagsBits thumb_func_start sub_0205883C sub_0205883C: ; 0x0205883C - ldr r3, _02058844 ; =sub_02058410 + ldr r3, _02058844 ; =MapObject_SetFlagsBits mov r1, #0x2 bx r3 nop -_02058844: .word sub_02058410 +_02058844: .word MapObject_SetFlagsBits thumb_func_start sub_02058848 sub_02058848: ; 0x02058848 @@ -2734,11 +2663,11 @@ _0205885C: .word MapObject_TestFlagsBits thumb_func_start sub_02058860 sub_02058860: ; 0x02058860 - ldr r3, _02058868 ; =sub_02058410 + ldr r3, _02058868 ; =MapObject_SetFlagsBits mov r1, #0x4 bx r3 nop -_02058868: .word sub_02058410 +_02058868: .word MapObject_SetFlagsBits thumb_func_start sub_0205886C sub_0205886C: ; 0x0205886C @@ -2750,12 +2679,12 @@ _02058874: .word sub_02058418 thumb_func_start sub_02058878 sub_02058878: ; 0x02058878 - ldr r3, _02058880 ; =sub_02058410 + ldr r3, _02058880 ; =MapObject_SetFlagsBits mov r1, #0x1 lsl r1, r1, #0xe bx r3 .balign 4 -_02058880: .word sub_02058410 +_02058880: .word MapObject_SetFlagsBits thumb_func_start sub_02058884 sub_02058884: ; 0x02058884 @@ -2782,7 +2711,7 @@ MapObject_SetVisible: ; 0x0205889C bne _020588AC mov r1, #0x2 lsl r1, r1, #0x8 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _020588AC: mov r1, #0x2 @@ -2803,7 +2732,7 @@ sub_020588B8: ; 0x020588B8 _020588C8: mov r1, #0x1 lsl r1, r1, #0x12 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} .balign 4 @@ -2829,7 +2758,7 @@ sub_020588EC: ; 0x020588EC bne _020588FC mov r1, #0x2 lsl r1, r1, #0x12 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _020588FC: mov r1, #0x2 @@ -2840,11 +2769,11 @@ _020588FC: thumb_func_start sub_02058908 sub_02058908: ; 0x02058908 - ldr r3, _02058910 ; =sub_02058410 + ldr r3, _02058910 ; =MapObject_SetFlagsBits mov r1, #0x40 bx r3 nop -_02058910: .word sub_02058410 +_02058910: .word MapObject_SetFlagsBits thumb_func_start sub_02058914 sub_02058914: ; 0x02058914 @@ -2898,7 +2827,7 @@ sub_02058960: ; 0x02058960 bne _02058970 mov r1, #0x2 lsl r1, r1, #0x16 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _02058970: mov r1, #0x2 @@ -2929,7 +2858,7 @@ sub_02058994: ; 0x02058994 bne _020589A4 mov r1, #0x1 lsl r1, r1, #0xa - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _020589A4: mov r1, #0x1 @@ -2945,7 +2874,7 @@ sub_020589B0: ; 0x020589B0 bne _020589C0 mov r1, #0x2 lsl r1, r1, #0x18 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _020589C0: mov r1, #0x2 @@ -2976,7 +2905,7 @@ sub_020589E4: ; 0x020589E4 bne _020589F4 mov r1, #0x1 lsl r1, r1, #0x1a - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _020589F4: mov r1, #0x1 @@ -3007,7 +2936,7 @@ sub_02058A18: ; 0x02058A18 bne _02058A28 mov r1, #0x2 lsl r1, r1, #0x1a - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _02058A28: mov r1, #0x2 @@ -3038,7 +2967,7 @@ sub_02058A4C: ; 0x02058A4C bne _02058A5C mov r1, #0x1 lsl r1, r1, #0x1c - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _02058A5C: mov r1, #0x1 @@ -3069,7 +2998,7 @@ sub_02058A80: ; 0x02058A80 bne _02058A90 mov r1, #0x1 lsl r1, r1, #0x18 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _02058A90: mov r1, #0x1 @@ -3113,7 +3042,7 @@ sub_02058AC8: ; 0x02058AC8 bne _02058AD8 mov r1, #0x2 lsl r1, r1, #0x1c - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _02058AD8: mov r1, #0x2 @@ -3363,8 +3292,8 @@ sub_02058BF8: ; 0x02058BF8 strh r1, [r0, #0x0] bx lr - thumb_func_start sub_02058BFC -sub_02058BFC: ; 0x02058BFC + thumb_func_start ObjectEvent_GetID +ObjectEvent_GetID: ; 0x02058BFC ldrh r0, [r0, #0x0] bx lr @@ -3542,11 +3471,11 @@ sub_02058CAC: ; 0x02058CAC add r5, r2, #0x0 _02058CB8: add r0, r5, #0x0 - bl sub_02058CE0 + bl ObjectEvent_ScriptIdIsUnset cmp r0, #0x0 bne _02058CD4 add r0, r5, #0x0 - bl sub_02058BFC + bl ObjectEvent_GetID cmp r6, r0 bne _02058CD4 ldr r0, [sp, #0x0] @@ -3561,8 +3490,8 @@ _02058CD4: mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start sub_02058CE0 -sub_02058CE0: ; 0x02058CE0 + thumb_func_start ObjectEvent_ScriptIdIsUnset +ObjectEvent_ScriptIdIsUnset: ; 0x02058CE0 push {r3, lr} bl sub_02058C24 lsl r0, r0, #0x10 @@ -3578,11 +3507,11 @@ _02058CF4: .balign 4 _02058CF8: .word 0x0000FFFF - thumb_func_start sub_02058CFC -sub_02058CFC: ; 0x02058CFC + thumb_func_start ObjectEvent_GetFlagID_AssertScriptIdIsUnset +ObjectEvent_GetFlagID_AssertScriptIdIsUnset: ; 0x02058CFC push {r4, lr} add r4, r0, #0x0 - bl sub_02058CE0 + bl ObjectEvent_ScriptIdIsUnset cmp r0, #0x1 beq _02058D0C bl GF_AssertFail @@ -3746,7 +3675,7 @@ sub_02058DBC: ; 0x02058DBC bl sub_0205AE80 add r0, r5, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 mov r1, #0xa bl sub_02058418 @@ -3789,7 +3718,7 @@ sub_02058E28: ; 0x02058E28 bl sub_020584A4 add r0, r5, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 mov r1, #0xa bl sub_02058418 diff --git a/arm9/asm/unk_0204CB20.s b/arm9/asm/unk_0204CB20.s index 1f7896eac..d8d6c9a58 100644 --- a/arm9/asm/unk_0204CB20.s +++ b/arm9/asm/unk_0204CB20.s @@ -2427,7 +2427,7 @@ _0204DD5E: bl sub_02055304 add r0, r4, #0x0 mov r1, #0x80 - bl sub_02058410 + bl MapObject_SetFlagsBits _0204DDB4: add r0, r4, #0x0 bl sub_0205AE28 @@ -3018,11 +3018,11 @@ sub_0204E214: ; 0x0204E214 bl PlayerAvatar_GetMapObject mov r1, #0x80 add r6, r0, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits mov r1, #0x1 add r0, r6, #0x0 lsl r1, r1, #0x8 - bl sub_02058410 + bl MapObject_SetFlagsBits ldr r0, _0204E24C ; =UNK_021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 diff --git a/arm9/asm/unk_02055068.s b/arm9/asm/unk_02055068.s index 12e562f41..e61f753a1 100644 --- a/arm9/asm/unk_02055068.s +++ b/arm9/asm/unk_02055068.s @@ -60,7 +60,7 @@ sub_020550A4: ; 0x020550A4 mov r1, #0x9 add r0, r4, #0x0 lsl r1, r1, #0xa - bl sub_02058410 + bl MapObject_SetFlagsBits mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 @@ -245,7 +245,7 @@ _02055228: mov r1, #0x9 add r0, r5, #0x0 lsl r1, r1, #0xa - bl sub_02058410 + bl MapObject_SetFlagsBits mov r1, #0x6 add r0, r5, #0x0 lsl r1, r1, #0x6 @@ -407,7 +407,7 @@ sub_0205537C: ; 0x0205537C _02055392: mov r1, #0x2 lsl r1, r1, #0x8 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r4, pc} thumb_func_start sub_0205539C diff --git a/arm9/asm/unk_020557F4.s b/arm9/asm/unk_020557F4.s index 274d9a705..47ecb237b 100644 --- a/arm9/asm/unk_020557F4.s +++ b/arm9/asm/unk_020557F4.s @@ -629,7 +629,7 @@ _02055CE4: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r6, #0x0 mov r1, #0x8 bl sub_0205AFDC @@ -676,7 +676,7 @@ _02055D54: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r6, #0x0 mov r1, #0x8 bl sub_0205AFDC @@ -700,7 +700,7 @@ _02055D8E: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 add r1, r6, #0x0 bl sub_020560D0 @@ -762,7 +762,7 @@ _02055E18: mov r1, #0x6 add r0, r6, #0x0 lsl r1, r1, #0x6 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 mov r1, #0x8 bl sub_0205AFDC @@ -824,7 +824,7 @@ _02055EAC: mov r1, #0x6 add r0, r6, #0x0 lsl r1, r1, #0x6 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 mov r1, #0x8 bl sub_0205AFDC diff --git a/arm9/asm/unk_02058EE8.s b/arm9/asm/unk_02058EE8.s index bb8b6926f..5289f0f29 100644 --- a/arm9/asm/unk_02058EE8.s +++ b/arm9/asm/unk_02058EE8.s @@ -1980,7 +1980,7 @@ _02059578: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r4-r6, pc} _02059584: mov r1, #0x2 @@ -1994,7 +1994,7 @@ _02059584: mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xe - bl sub_02058410 + bl MapObject_SetFlagsBits _020595A2: pop {r4-r6, pc} @@ -2050,7 +2050,7 @@ _02059614: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r4-r6, pc} _02059620: mov r1, #0x1 @@ -3026,7 +3026,7 @@ _02059DA2: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc - bl sub_02058410 + bl MapObject_SetFlagsBits _02059DAC: add r0, r4, #0x0 add sp, #0x18 @@ -3071,7 +3071,7 @@ sub_02059DB4: ; 0x02059DB4 mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xa - bl sub_02058410 + bl MapObject_SetFlagsBits mov r0, #0x0 pop {r3-r7, pc} _02059E18: diff --git a/arm9/asm/unk_02059F04.s b/arm9/asm/unk_02059F04.s index 123fadc7d..29638d8fa 100644 --- a/arm9/asm/unk_02059F04.s +++ b/arm9/asm/unk_02059F04.s @@ -1998,7 +1998,7 @@ _0205AD6E: bl sub_020584AC add r0, r7, #0x0 mov r1, #0x80 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3-r7, pc} nop _0205AD84: .word UNK_020F6964 diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s index f32c72a5e..070ef4b1a 100644 --- a/arm9/asm/unk_0205AD98.s +++ b/arm9/asm/unk_0205AD98.s @@ -64,7 +64,7 @@ _0205ADEA: bl sub_020586F8 add r0, r5, #0x0 mov r1, #0x10 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 mov r1, #0x20 bl sub_02058418 @@ -141,7 +141,7 @@ sub_0205AE80: ; 0x0205AE80 bl sub_02058418 add r0, r4, #0x0 mov r1, #0x20 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 mov r1, #0xff bl sub_020586E8 @@ -466,7 +466,7 @@ _0205B0C4: .word UNK_020F6440 sub_0205B0C8: ; 0x0205B0C8 push {r3, lr} mov r1, #0x20 - bl sub_02058410 + bl MapObject_SetFlagsBits mov r0, #0x0 pop {r3, pc} @@ -544,7 +544,7 @@ sub_0205B124: ; 0x0205B124 bl sub_02058544 add r0, r5, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_02058700 pop {r3-r7, pc} @@ -574,7 +574,7 @@ sub_0205B16C: ; 0x0205B16C _0205B198: add r0, r5, #0x0 mov r1, #0x28 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_02059C60 add r0, r5, #0x0 @@ -977,7 +977,7 @@ sub_0205B43C: ; 0x0205B43C _0205B456: add r0, r4, #0x0 mov r1, #0x20 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 mov r1, #0x0 bl sub_02058544 @@ -1218,7 +1218,7 @@ _0205B5E2: _0205B5EA: ldr r1, _0205B614 ; =0x00010004 add r0, r5, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 add r1, r4, #0x0 bl sub_020584D8 @@ -1264,7 +1264,7 @@ sub_0205B61C: ; 0x0205B61C bl sub_02059C0C add r0, r5, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits _0205B65E: ldr r1, [r4, #0x0] cmp r1, #0x0 @@ -1323,7 +1323,7 @@ _0205B6B8: bl sub_02058B94 ldr r1, _0205B6FC ; =0x00020028 add r0, r5, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_02059C60 add r0, r5, #0x0 @@ -1922,7 +1922,7 @@ sub_0205BB08: ; 0x0205BB08 mov r1, #0x2 add r4, r0, #0x0 lsl r1, r1, #0x8 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 bl sub_02058700 mov r0, #0x1 @@ -1947,7 +1947,7 @@ sub_0205BB38: ; 0x0205BB38 push {r4, lr} add r4, r0, #0x0 mov r1, #0x80 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 bl sub_02058700 mov r0, #0x1 @@ -1970,7 +1970,7 @@ sub_0205BB60: ; 0x0205BB60 mov r1, #0x1 add r4, r0, #0x0 lsl r1, r1, #0x8 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r4, #0x0 bl sub_02058700 mov r0, #0x1 @@ -2067,7 +2067,7 @@ sub_0205BBF4: ; 0x0205BBF4 bl sub_02058544 add r0, r5, #0x0 mov r1, #0x4 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_02058700 pop {r3-r7, pc} @@ -2104,7 +2104,7 @@ sub_0205BC34: ; 0x0205BC34 _0205BC6E: add r0, r5, #0x0 mov r1, #0x28 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_02059C60 add r0, r5, #0x0 @@ -2342,7 +2342,7 @@ _0205BDFE: bl ov06_0224D2E0 ldr r1, _0205BE34 ; =0x00010004 add r0, r4, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x14 @@ -2391,7 +2391,7 @@ _0205BE70: bl sub_02058B94 ldr r1, _0205BE9C ; =0x00020028 add r0, r5, #0x0 - bl sub_02058410 + bl MapObject_SetFlagsBits add r0, r5, #0x0 bl sub_0205EB2C add r0, r5, #0x0 diff --git a/arm9/asm/unk_0205C334.s b/arm9/asm/unk_0205C334.s index 97c71f34b..9a15d7cf9 100644 --- a/arm9/asm/unk_0205C334.s +++ b/arm9/asm/unk_0205C334.s @@ -215,7 +215,7 @@ _0205C4C0: mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3-r5, pc} thumb_func_start sub_0205C4D8 diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s index 125a35557..468b15bf4 100644 --- a/arm9/asm/unk_0205C598.s +++ b/arm9/asm/unk_0205C598.s @@ -778,7 +778,7 @@ _0205CB44: bl ov05_021F1EC0 add r0, r5, #0x0 mov r1, #0x40 - bl sub_02058410 + bl MapObject_SetFlagsBits mov r0, #0x2 str r0, [r4, #0x0] mov r0, #0x1 diff --git a/arm9/asm/unk_0205E4EC.s b/arm9/asm/unk_0205E4EC.s index 35f0c7d58..14d463d11 100644 --- a/arm9/asm/unk_0205E4EC.s +++ b/arm9/asm/unk_0205E4EC.s @@ -670,7 +670,7 @@ sub_0205E9C8: ; 0x0205E9C8 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits ldr r5, _0205EA0C ; =UNK_020F7398 add r3, sp, #0x0 ldmia r5!, {r0-r1} diff --git a/arm9/global.inc b/arm9/global.inc index f1821d732..fe20739f9 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4017,7 +4017,7 @@ .extern sub_020583D4 .extern sub_020583F0 .extern sub_020583F4 -.extern sub_02058410 +.extern MapObject_SetFlagsBits .extern sub_02058418 .extern sub_02058424 .extern MapObject_TestFlagsBits diff --git a/arm9/overlays/05/asm/ov05_021F0514.s b/arm9/overlays/05/asm/ov05_021F0514.s index 5a625328e..6f1c9408c 100644 --- a/arm9/overlays/05/asm/ov05_021F0514.s +++ b/arm9/overlays/05/asm/ov05_021F0514.s @@ -152,7 +152,7 @@ _021F061C: mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, r4, r5, pc} .balign 4, 0 @@ -808,7 +808,7 @@ _021F0B44: mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, r4, r5, pc} thumb_func_start ov05_021F0B58 @@ -1067,7 +1067,7 @@ _021F0D5C: mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, r4, r5, pc} thumb_func_start ov05_021F0D70 diff --git a/arm9/overlays/05/asm/ov05_021F1B0C.s b/arm9/overlays/05/asm/ov05_021F1B0C.s index 7f5ffed91..be3700c7a 100644 --- a/arm9/overlays/05/asm/ov05_021F1B0C.s +++ b/arm9/overlays/05/asm/ov05_021F1B0C.s @@ -67,7 +67,7 @@ _021F1B76: mov r1, #2 add r0, r5, #0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, r4, r5, pc} .balign 4, 0 diff --git a/arm9/overlays/05/asm/ov05_021F1CB8.s b/arm9/overlays/05/asm/ov05_021F1CB8.s index 3b37488fc..6712d3a5e 100644 --- a/arm9/overlays/05/asm/ov05_021F1CB8.s +++ b/arm9/overlays/05/asm/ov05_021F1CB8.s @@ -281,7 +281,7 @@ ov05_021F1EDC: ; 0x021F1EDC mov r1, #1 add r0, r4, #0 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r4, pc} .balign 4, 0 diff --git a/arm9/overlays/05/asm/ov05_021F1F04.s b/arm9/overlays/05/asm/ov05_021F1F04.s index dfdb3a5f4..bbdd8a7b2 100644 --- a/arm9/overlays/05/asm/ov05_021F1F04.s +++ b/arm9/overlays/05/asm/ov05_021F1F04.s @@ -2030,7 +2030,7 @@ ov05_021F2E0C: ; 0x021F2E0C bne _021F2E1C mov r1, #1 lsl r1, r1, #0x16 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r3, pc} _021F2E1C: mov r1, #1 diff --git a/arm9/overlays/05/src/ov05_021E72FC.c b/arm9/overlays/05/src/ov05_021E72FC.c index bc0a9ffed..524756894 100644 --- a/arm9/overlays/05/src/ov05_021E72FC.c +++ b/arm9/overlays/05/src/ov05_021E72FC.c @@ -12,7 +12,7 @@ extern BOOL sub_02054B3C(u8 param0); extern BOOL sub_02054B48(u8 param0); extern BOOL sub_02054B54(u8 param0); extern UnkStruct021E7358 *TaskManager_GetEnvironment(UnkStruct021E7358 *param0); -extern void sub_02058410(u32 param0, u32 param1); +extern void MapObject_SetFlagsBits(u32 param0, u32 param1); extern BOOL sub_02057254(u32 param0); extern u32 sub_0205AFDC(u32 param0, u32 param1); extern void sub_02057260(u32 param0, u32 param1); @@ -84,7 +84,7 @@ BOOL ov05_021E73B4(UnkStruct021E7358 *param0) switch (strct->Unk08) { case 0: - sub_02058410(res, 1 << 8); + MapObject_SetFlagsBits(res, 1 << 8); strct->Unk08++; break; case 1: diff --git a/arm9/overlays/06/asm/overlay_06.s b/arm9/overlays/06/asm/overlay_06.s index a3987bdbc..216aa8632 100644 --- a/arm9/overlays/06/asm/overlay_06.s +++ b/arm9/overlays/06/asm/overlay_06.s @@ -314,7 +314,7 @@ ov06_022398D8: ; 0x022398D8 bne _022398F0 mov r1, #1 lsl r1, r1, #0x14 - bl sub_02058410 + bl MapObject_SetFlagsBits pop {r4, pc} _022398F0: mov r1, #1 diff --git a/arm9/src/map_object.c b/arm9/src/map_object.c index 533856840..bf3ca7004 100644 --- a/arm9/src/map_object.c +++ b/arm9/src/map_object.c @@ -4,6 +4,7 @@ #include "heap.h" static MapObjectManager *MapObjectManager_New(u32 objectCount); +/*static*/ LocalMapObject *MapObject_CreateFromObjectEventInternal(MapObjectManager *manager, ObjectEvent *objectEvent, u32 mapNo); extern void MapObjectManager_SetFieldSystemPtr(MapObjectManager *manager, FieldSystem *fieldSystem); extern void MapObjectManager_SetObjectCount(MapObjectManager *manager, u32 objectCount); @@ -18,6 +19,24 @@ extern u32 sub_02058450(LocalMapObject *object); extern BOOL MapObject_TestFlagsBits(LocalMapObject *object, u32 flags); extern u32 sub_02057F90(LocalMapObject *object, u32 a2, u32 objectCount, ObjectEvent *objectEvents); extern void MapObjectManager_SetObjects(MapObjectManager *manager, LocalMapObject *objects); +extern u32 ObjectEvent_GetID(ObjectEvent *objectEvent); +extern BOOL ObjectEvent_ScriptIdIsUnset(ObjectEvent *objectEvent); +extern LocalMapObject *sub_02057C98(MapObjectManager *manager, u32 objectId, u32 mapNo); +extern void sub_02058214(LocalMapObject *object, ObjectEvent *objectEvent, u32 mapNo); +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 LocalMapObject *MapObjectManager_GetFirstInactiveObject(MapObjectManager *manager); +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, u32 flag); +extern void sub_02057CF0(MapObjectManager *manager, LocalMapObject *object); +extern MapObjectManager *MapObjectManager_GetMapObjectManager(MapObjectManager *manager); +extern void sub_0205836C(MapObjectManager *manager); MapObjectManager *MapObjectManager_Init(FieldSystem *fieldSystem, u32 objectCount, HeapID heapId) { MapObjectManager *ret = MapObjectManager_New(objectCount); @@ -71,3 +90,37 @@ static MapObjectManager *MapObjectManager_New(u32 objectCount) { return manager; } + +/*static*/ LocalMapObject *MapObject_CreateFromObjectEventInternal(MapObjectManager *manager, ObjectEvent *objectEvent, u32 mapNo) { + LocalMapObject *ret; + + u32 objectId = ObjectEvent_GetID(objectEvent); + if (!ObjectEvent_ScriptIdIsUnset(objectEvent)) { + ret = sub_02057C98(manager, objectId, mapNo); + if (ret != NULL) { + sub_02058214(ret, objectEvent, mapNo); + return ret; + } + } else { + ret = sub_02058010(manager, objectId, ObjectEvent_GetFlagID_AssertScriptIdIsUnset(objectEvent)); + if (ret != NULL) { + sub_02058258(ret, mapNo, objectEvent); + return ret; + } + } + + ret = MapObjectManager_GetFirstInactiveObject(manager); + if (ret == NULL) { + return ret; + } + + MapObject_InitFromObjectEvent(ret, objectEvent, MapObjectManager_GetFieldSystemPtr(manager)); + sub_02057E90(ret, manager); + sub_0205844C(ret, mapNo); + sub_020581A4(ret); + sub_020581B4(ret); + MapObject_SetFlagsBits(ret, MAPOBJECTFLAG_UNK2); + sub_02057CF0(manager, ret); + sub_0205836C(MapObjectManager_GetMapObjectManager(manager)); + return ret; +}