mirror of https://github.com/zeldaret/tmc.git
Decompile manager2D
This commit is contained in:
parent
256bd1a8b9
commit
5be366626e
|
|
@ -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
|
||||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
Loading…
Reference in New Issue