diff --git a/asm/manager2D.s b/asm/manager2D.s deleted file mode 100644 index 82032334..00000000 --- a/asm/manager2D.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Manager2D_Main -Manager2D_Main: @ 0x0805D1FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0805D240 @ =0x00004014 - ldr r1, _0805D244 @ =0x000005C3 - movs r2, #1 - bl SetTile - ldr r3, _0805D248 @ =gRoomControls - ldrh r0, [r3, #8] - adds r0, #0xc8 - ldr r2, _0805D24C @ =gPlayerEntity - movs r5, #0x32 - ldrsh r1, [r2, r5] - cmp r0, r1 - bge _0805D236 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldrh r1, [r3, #6] - subs r0, r0, r1 - subs r0, #0x30 - cmp r0, #0x10 - bhi _0805D236 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_0805D236: - adds r0, r4, #0 - bl DeleteManager - pop {r4, r5, pc} - .align 2, 0 -_0805D240: .4byte 0x00004014 -_0805D244: .4byte 0x000005C3 -_0805D248: .4byte gRoomControls -_0805D24C: .4byte gPlayerEntity diff --git a/src/manager.c b/src/manager.c index 0b95a43e..ae589b39 100644 --- a/src/manager.c +++ b/src/manager.c @@ -2,13 +2,13 @@ // TODO: change all manager arguments to be Entity* and cast to specific type later. void (*const gManagerFunctions[])() = { - NULL, Manager1_Main, Manager2_Main, Manager3_Main, Manager4_Main, Manager5_Main, Manager6_Main, - Manager7_Main, Manager8_Main, Manager9_Main, ManagerA_Main, ManagerB_Main, ManagerC_Main, ManagerD_Main, - ManagerE_Main, ManagerF_Main, Manager10_Main, Manager11_Main, Manager12_Main, Manager13_Main, Manager14_Main, - Manager15_Main, Manager16_Main, Manager17_Main, Manager18_Main, Manager19_Main, Manager1A_Main, Manager1B_Main, - Manager1C_Main, Manager1D_Main, Manager1E_Main, Manager1F_Main, Manager20_Main, Manager21_Main, Manager22_Main, - Manager23_Main, Manager24_Main, Manager25_Main, Manager26_Main, Manager27_Main, Manager28_Main, Manager29_Main, - Manager2A_Main, Manager2B_Main, Manager2C_Main, Manager2D_Main, Manager2E_Main, Manager2F_Main, Manager30_Main, - Manager31_Main, Manager32_Main, Manager33_Main, Manager34_Main, Manager35_Main, Manager36_Main, Manager37_Main, - Manager38_Main, Manager39_Main + NULL, Manager1_Main, Manager2_Main, Manager3_Main, Manager4_Main, Manager5_Main, Manager6_Main, + Manager7_Main, Manager8_Main, Manager9_Main, ManagerA_Main, ManagerB_Main, ManagerC_Main, ManagerD_Main, + ManagerE_Main, ManagerF_Main, Manager10_Main, Manager11_Main, Manager12_Main, Manager13_Main, Manager14_Main, + Manager15_Main, Manager16_Main, Manager17_Main, Manager18_Main, Manager19_Main, Manager1A_Main, Manager1B_Main, + Manager1C_Main, Manager1D_Main, Manager1E_Main, Manager1F_Main, Manager20_Main, Manager21_Main, Manager22_Main, + Manager23_Main, Manager24_Main, Manager25_Main, Manager26_Main, Manager27_Main, Manager28_Main, Manager29_Main, + Manager2A_Main, Manager2B_Main, Manager2C_Main, Manager2D_Main, Manager2E_Main, Manager2F_Main, Manager30_Main, + Manager31_Main, Manager32_Main, Manager33_Main, Manager34_Main, Manager35_Main, Manager36_Main, Manager37_Main, + Manager38_Main, Manager39_Main }; diff --git a/src/manager/manager2D.c b/src/manager/manager2D.c new file mode 100644 index 00000000..92aebb64 --- /dev/null +++ b/src/manager/manager2D.c @@ -0,0 +1,15 @@ +#include "entity.h" +#include "functions.h" + +extern u32 gUnk_03000BF8; +extern u32 gUnk_03000BF6; + +void Manager2D_Main(Entity* this) { + SetTile(0x4014, 0x5c3, 1); + if ((gRoomControls.roomOriginY + 200 < gPlayerEntity.y.HALF.HI) && + ((u32)(gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) - 0x30 < 0x11)) { + gPlayerEntity.collisionLayer = 3; + UpdateSpriteForCollisionLayer(&gPlayerEntity); + } + DeleteManager((Manager*)this); +}