Decompile manager2D

This commit is contained in:
octorock 2021-05-03 00:32:12 +02:00
parent 256bd1a8b9
commit 5be366626e
3 changed files with 24 additions and 55 deletions

View File

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

View File

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

15
src/manager/manager2D.c Normal file
View File

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