mirror of https://github.com/zeldaret/tmc.git
Decompile manager35
This commit is contained in:
parent
29d7c7bd6b
commit
d632913122
|
@ -1,77 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _0805D3F4
|
||||
ldr r0, _0805D3E8 @ =gArea
|
||||
ldr r1, _0805D3EC @ =0x0000088C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0805D3F0 @ =sub_0805D470
|
||||
cmp r0, r1
|
||||
beq _0805D45E
|
||||
movs r0, #0
|
||||
bl _call_via_r1
|
||||
b _0805D45E
|
||||
.align 2, 0
|
||||
_0805D3E8: .4byte gArea
|
||||
_0805D3EC: .4byte 0x0000088C
|
||||
_0805D3F0: .4byte sub_0805D470
|
||||
_0805D3F4:
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _0805D43A
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl sub_0805E3A0
|
||||
ldr r0, _0805D428 @ =gArea
|
||||
ldr r2, _0805D42C @ =0x0000088C
|
||||
adds r0, r0, r2
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805D434
|
||||
ldr r1, _0805D430 @ =sub_0805D470
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl sub_08052D74
|
||||
b _0805D45E
|
||||
.align 2, 0
|
||||
_0805D428: .4byte gArea
|
||||
_0805D42C: .4byte 0x0000088C
|
||||
_0805D430: .4byte sub_0805D470
|
||||
_0805D434:
|
||||
bl DeleteThisEntity
|
||||
b _0805D45E
|
||||
_0805D43A:
|
||||
ldr r1, _0805D460 @ =gRoomControls
|
||||
ldr r0, [r1, #0x28]
|
||||
ldr r3, _0805D464 @ =0xFFFFC000
|
||||
adds r0, r0, r3
|
||||
str r0, [r1, #0x28]
|
||||
ldr r0, [r1, #0x2c]
|
||||
ldr r2, _0805D468 @ =0xFFFFE000
|
||||
adds r0, r0, r2
|
||||
str r0, [r1, #0x2c]
|
||||
ldr r2, _0805D46C @ =gScreen
|
||||
ldrh r0, [r1, #0x2a]
|
||||
ldrh r3, [r1, #0xa]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrh r0, [r1, #0x2e]
|
||||
ldrh r1, [r1, #0xc]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x30]
|
||||
_0805D45E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805D460: .4byte gRoomControls
|
||||
_0805D464: .4byte 0xFFFFC000
|
||||
_0805D468: .4byte 0xFFFFE000
|
||||
_0805D46C: .4byte gScreen
|
||||
.syntax divided
|
|
@ -1,28 +0,0 @@
|
|||
.syntax unified
|
||||
push {lr}
|
||||
movs r0, #0x4c
|
||||
bl LoadGfxGroup
|
||||
ldr r2, _0805D4A0 @ =gScreen
|
||||
ldr r0, _0805D4A4 @ =0x00001E07
|
||||
strh r0, [r2, #0x2c]
|
||||
ldrh r1, [r2]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #4
|
||||
adds r0, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r1, _0805D4A8 @ =gRoomControls
|
||||
ldrh r0, [r1, #0x2a]
|
||||
ldrh r3, [r1, #0xa]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrh r0, [r1, #0x2e]
|
||||
ldrh r1, [r1, #0xc]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r2, #0x30]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805D4A0: .4byte gScreen
|
||||
_0805D4A4: .4byte 0x00001E07
|
||||
_0805D4A8: .4byte gRoomControls
|
||||
.syntax divided
|
|
@ -1,12 +0,0 @@
|
|||
.syntax unified
|
||||
push {lr}
|
||||
ldr r2, _0805DC98 @ =gUnk_08108D98
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805DC98: .4byte gUnk_08108D98
|
||||
.syntax divided
|
|
@ -1,21 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrh r0, [r4, #0x3c]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0805DCAE
|
||||
bl DeleteThisEntity
|
||||
_0805DCAE:
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0805DCC2
|
||||
ldrh r0, [r4, #0x3c]
|
||||
bl SetFlag
|
||||
bl DeleteThisEntity
|
||||
_0805DCC2:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
|
@ -1,47 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _0805DD1E
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x35
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0805DCEC
|
||||
movs r0, #0x1e
|
||||
strb r0, [r4, #0xe]
|
||||
_0805DCEC:
|
||||
ldr r5, _0805DD20 @ =gRoomControls
|
||||
ldr r0, [r5, #0x30]
|
||||
str r0, [r4, #0x14]
|
||||
movs r0, #0x69
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0805DD1E
|
||||
ldrh r0, [r5, #6]
|
||||
ldrh r2, [r4, #0x38]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x2e]
|
||||
ldrh r0, [r5, #8]
|
||||
ldrh r2, [r4, #0x3a]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x32]
|
||||
str r1, [r4, #0x18]
|
||||
str r1, [r5, #0x30]
|
||||
adds r0, r1, #0
|
||||
movs r1, #0x1e
|
||||
bl sub_0805E4E0
|
||||
_0805DD1E:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0805DD20: .4byte gRoomControls
|
||||
.syntax divided
|
|
@ -1,34 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r1, #8
|
||||
bl sub_0805E4E0
|
||||
ldr r0, _0805DD64 @ =gRoomControls
|
||||
ldrb r1, [r0, #0xf]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0805DD60
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0805DD60
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #0x3c]
|
||||
bl SetFlag
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x36
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0805DD60
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0805DD60:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805DD64: .4byte gRoomControls
|
||||
.syntax divided
|
|
@ -1,40 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r1, #8
|
||||
bl sub_0805E4E0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x36
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0805DD94
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0805DDAE
|
||||
ldr r1, _0805DD90 @ =gRoomControls
|
||||
ldr r0, [r4, #0x14]
|
||||
str r0, [r1, #0x30]
|
||||
b _0805DDAE
|
||||
.align 2, 0
|
||||
_0805DD90: .4byte gRoomControls
|
||||
_0805DD94:
|
||||
ldr r0, _0805DDB0 @ =gRoomControls
|
||||
ldrb r1, [r0, #0xf]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0805DDAE
|
||||
ldr r0, [r4, #0x18]
|
||||
cmp r0, #0
|
||||
beq _0805DDAA
|
||||
bl DeleteEntity
|
||||
_0805DDAA:
|
||||
bl DeleteThisEntity
|
||||
_0805DDAE:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805DDB0: .4byte gRoomControls
|
||||
.syntax divided
|
|
@ -267,6 +267,7 @@ extern void sub_0805EEB4(u8*, u32);
|
|||
extern void sub_08056BDC(u32);
|
||||
extern void sub_08056F88(u32, u32);
|
||||
extern void sub_0805F8E4(u32 r0, WStruct* r1);
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
|
||||
extern Entity* sub_08077C94(ItemBehavior*, u32);
|
||||
extern Entity* sub_08077C0C(ItemBehavior*, u32);
|
||||
|
@ -280,5 +281,4 @@ extern bool32 sub_08077EFC(ItemBehavior*);
|
|||
|
||||
extern void sub_08078E84(Entity*, Entity*);
|
||||
extern void sub_080042D0(Entity*, u32, u16);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -169,6 +169,9 @@ typedef struct {
|
|||
u8 unk3;
|
||||
u8 freezeTime;
|
||||
u8 unk9;
|
||||
u8 unk_0xa;
|
||||
u8 unk_0xb;
|
||||
u16 unk_0xc;
|
||||
} EntityHandler;
|
||||
|
||||
extern EntityHandler gUnk_03003DC0;
|
||||
|
|
|
@ -10,8 +10,6 @@ extern u32 gUnk_0200B650;
|
|||
extern u32 gUnk_02025EB0;
|
||||
extern u8 gUnk_02000070;
|
||||
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
|
||||
void sub_080808D8(void) {
|
||||
gScreenTransition.transitionType = 0;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include "functions.h"
|
||||
|
||||
extern void UnloadOBJPalette(Entity*);
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
|
||||
extern u8 gEntCount;
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
extern void sub_0807B600(u32);
|
||||
|
||||
extern const u16 script_08012E20[];
|
||||
|
|
|
@ -6,9 +6,7 @@
|
|||
|
||||
extern void sub_08001328(Entity*);
|
||||
extern Entity* sub_08049DF4(u32);
|
||||
extern void DoExitTransition(u32*);
|
||||
|
||||
extern u32* gUnk_0813AB1C[];
|
||||
extern ScreenTransitionData* gUnk_0813AB1C[];
|
||||
|
||||
void sub_0802A78C(Entity*);
|
||||
void sub_0802A7D0(Entity*);
|
||||
|
|
|
@ -4,10 +4,9 @@
|
|||
#include "functions.h"
|
||||
|
||||
extern void sub_08001328(Entity*);
|
||||
extern void DoExitTransition(u32*);
|
||||
|
||||
extern Entity* gUnk_020000B0;
|
||||
extern u32* gUnk_0813AB1C[];
|
||||
extern ScreenTransitionData* gUnk_0813AB1C[];
|
||||
|
||||
void sub_0802CF64(Entity*);
|
||||
void sub_0802CF8C(Entity*);
|
||||
|
|
|
@ -69,4 +69,4 @@ ASM_FUNC("asm/non_matching/manager1/nullsub_494.inc", void nullsub_494())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager1/sub_080573AC.inc", void sub_080573AC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450())
|
||||
ASM_FUNC("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450())
|
||||
|
|
|
@ -20,4 +20,4 @@ ASM_FUNC("asm/non_matching/manager10/sub_080598F8.inc", void sub_080598F8())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager10/sub_08059960.inc", void sub_08059960())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager10/sub_08059994.inc", void sub_08059994())
|
||||
ASM_FUNC("asm/non_matching/manager10/sub_08059994.inc", void sub_08059994())
|
||||
|
|
|
@ -12,4 +12,4 @@ ASM_FUNC("asm/non_matching/manager12/sub_08059C8C.inc", void sub_08059C8C())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager12/sub_08059CC0.inc", void sub_08059CC0())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager12/TryLoadPrologueHyruleTown.inc", void TryLoadPrologueHyruleTown())
|
||||
ASM_FUNC("asm/non_matching/manager12/TryLoadPrologueHyruleTown.inc", void TryLoadPrologueHyruleTown())
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#include "manager.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager13/Manager13_Main.inc", void Manager13_Main())
|
||||
ASM_FUNC("asm/non_matching/manager13/Manager13_Main.inc", void Manager13_Main())
|
||||
|
|
|
@ -22,4 +22,4 @@ ASM_FUNC("asm/non_matching/manager14/sub_0805A1D8.inc", void sub_0805A1D8())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager14/nullsub_495.inc", void nullsub_495())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C())
|
||||
ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C())
|
||||
|
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager16/Manager16_Main.inc", void Manager16_Main())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager16/sub_0805ACC0.inc", void sub_0805ACC0())
|
||||
ASM_FUNC("asm/non_matching/manager16/sub_0805ACC0.inc", void sub_0805ACC0())
|
||||
|
|
|
@ -16,10 +16,8 @@ typedef struct {
|
|||
|
||||
extern void (*const gUnk_08108654[])(Manager17*);
|
||||
|
||||
|
||||
void sub_0805AD80(Manager17*);
|
||||
|
||||
|
||||
void Manager17_Main(Manager17* manager) {
|
||||
gUnk_08108654[manager->manager.action](manager);
|
||||
}
|
||||
|
|
|
@ -4,4 +4,4 @@ ASM_FUNC("asm/non_matching/manager18/Manager18_Main.inc", void Manager18_Main())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager18/sub_0805AEDC.inc", void sub_0805AEDC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager18/sub_0805AF3C.inc", void sub_0805AF3C())
|
||||
ASM_FUNC("asm/non_matching/manager18/sub_0805AF3C.inc", void sub_0805AF3C())
|
||||
|
|
|
@ -9,7 +9,7 @@ void sub_0805AFFC(Manager*);
|
|||
void Manager19_Main(Manager* this) {
|
||||
if (this == NULL) {
|
||||
if ((void*)gArea.unk3 != sub_0805AFFC) {
|
||||
sub_0805AFFC(this);
|
||||
sub_0805AFFC(this);
|
||||
}
|
||||
} else {
|
||||
if (this->action == 0) {
|
||||
|
@ -23,7 +23,7 @@ void Manager19_Main(Manager* this) {
|
|||
}
|
||||
} else {
|
||||
gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD - 0x2000;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI ;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
}
|
||||
}
|
||||
|
@ -34,4 +34,4 @@ void sub_0805AFFC(Manager* this) {
|
|||
gScreen.lcd.displayControl |= 0x800;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,4 +9,4 @@ ASM_FUNC("asm/non_matching/manager1B/sub_0805B474.inc", void sub_0805B474())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager1B/sub_0805B4B4.inc", void sub_0805B4B4())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager1B/sub_0805B4D0.inc", void sub_0805B4D0())
|
||||
ASM_FUNC("asm/non_matching/manager1B/sub_0805B4D0.inc", void sub_0805B4D0())
|
||||
|
|
|
@ -23,18 +23,18 @@ void sub_0805B5E0(Manager* this) {
|
|||
default:
|
||||
gScreen.affine.bg3yOffset = 0;
|
||||
gScreen.affine.bg3xOffset = 0;
|
||||
break;
|
||||
break;
|
||||
case 1:
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805B638(Manager* this) {
|
||||
if (this->unk_0a == 1) {
|
||||
gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD + 0x2000;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI ;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,8 +28,7 @@ void sub_0805B70C(Manager1F* this) {
|
|||
this->manager.unk_0b = 1;
|
||||
}
|
||||
this->manager.action = 1;
|
||||
this->field_0x38 =
|
||||
(this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6);
|
||||
this->field_0x38 = (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6);
|
||||
sub_0805B778(this);
|
||||
}
|
||||
|
||||
|
@ -48,6 +47,5 @@ void sub_0805B744(Manager1F* this) {
|
|||
}
|
||||
|
||||
void sub_0805B778(Manager1F* this) {
|
||||
SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b],
|
||||
this->field_0x38, this->field_0x36);
|
||||
}
|
||||
SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b], this->field_0x38, this->field_0x36);
|
||||
}
|
||||
|
|
|
@ -22,4 +22,4 @@ ASM_FUNC("asm/non_matching/manager2/sub_080575C8.inc", void sub_080575C8(u32 par
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager2/sub_08057688.inc", void sub_08057688())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager2/sub_080576A0.inc", void sub_080576A0())
|
||||
ASM_FUNC("asm/non_matching/manager2/sub_080576A0.inc", void sub_080576A0())
|
||||
|
|
|
@ -15,4 +15,4 @@ ASM_FUNC("asm/non_matching/manager22/sub_0805BBBC.inc", void sub_0805BBBC())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager22/sub_0805BC04.inc", void sub_0805BC04())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager22/sub_0805BC4C.inc", void sub_0805BC4C())
|
||||
ASM_FUNC("asm/non_matching/manager22/sub_0805BC4C.inc", void sub_0805BC4C())
|
||||
|
|
|
@ -305,7 +305,6 @@ void sub_0805C4E0(u32 pos, u32 layer) {
|
|||
}
|
||||
}
|
||||
|
||||
u32 sub_0805C608(void)
|
||||
{
|
||||
return gUnk_08108CFC[gArea.regret];
|
||||
u32 sub_0805C608(void) {
|
||||
return gUnk_08108CFC[gArea.regret];
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ typedef struct {
|
|||
u16 flag;
|
||||
u16 tilePos;
|
||||
u16 tileType; // If the tile type at tilePos, tileLayer is tileType, set the local flag.
|
||||
} Manager2A_unk; // TODO result of GetCurrentRoomProperty(3)?
|
||||
} Manager2A_unk; // TODO result of GetCurrentRoomProperty(3)?
|
||||
|
||||
void sub_0805CFF0(Manager2A_unk*);
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#include "manager.h"
|
||||
#include "flags.h"
|
||||
#include "room.h"
|
||||
#include "room.h"
|
||||
#include "functions.h"
|
||||
#include "object.h"
|
||||
#include "audio.h"
|
||||
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
Entity * field_0x20;
|
||||
Entity* field_0x20;
|
||||
u8 field_0x24;
|
||||
u8 field_0x25;
|
||||
u8 field_0x26;
|
||||
|
@ -37,8 +37,6 @@ typedef struct {
|
|||
u16 field_0x3e;
|
||||
} Manager2B;
|
||||
|
||||
|
||||
|
||||
extern void (*const gUnk_08108D30[])(Entity*);
|
||||
|
||||
extern u8 gEntCount;
|
||||
|
@ -62,7 +60,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manage
|
|||
objectData = GetCurrentRoomProperty(this->manager.unk_0a);
|
||||
counter = 0;
|
||||
createdObjects = &this->field_0x20;
|
||||
while(counter < 4) {
|
||||
while (counter < 4) {
|
||||
object = CreateObject(OBJECT_A0, objectData[2], counter);
|
||||
object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX;
|
||||
object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY;
|
||||
|
@ -72,7 +70,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manage
|
|||
counter += 1;
|
||||
objectData += 3;
|
||||
createdObjects += 1;
|
||||
}
|
||||
}
|
||||
this->manager.action = 1;
|
||||
this->manager.unk_0f = 0x3c;
|
||||
this->field_0x36 = 0;
|
||||
|
@ -106,7 +104,7 @@ NONMATCH("asm/non_matching/manager2B/sub_0805D11C.inc", void sub_0805D11C(Manage
|
|||
u32 counter;
|
||||
|
||||
counter = 0;
|
||||
createdObjects = &this->field_0x20;
|
||||
createdObjects = &this->field_0x20;
|
||||
while (counter < 4) {
|
||||
entity = *createdObjects;
|
||||
*createdObjects = NULL;
|
||||
|
|
|
@ -18,12 +18,12 @@ void Manager2C_Main(Manager2C* manager) {
|
|||
manager->manager.action = 1;
|
||||
manager->field_0x3a = 0;
|
||||
}
|
||||
if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) &&
|
||||
(((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) +gPlayerEntity.height.HALF.HI) < 0)) &&
|
||||
if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) &&
|
||||
(((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) + gPlayerEntity.height.HALF.HI) < 0)) &&
|
||||
(gRoomControls.roomScrollY == gRoomControls.roomOriginY)) {
|
||||
MemClear(&gScreenTransition.areaID, 0x20);
|
||||
gScreenTransition.transitioningOut = 1;
|
||||
gScreenTransition.transitionType = 0;
|
||||
gScreenTransition.transitionType = 0;
|
||||
gScreenTransition.field_0xf = 0xb;
|
||||
gScreenTransition.areaID = manager->manager.unk_0b;
|
||||
gScreenTransition.roomID = manager->manager.unk_0e;
|
||||
|
|
|
@ -1,6 +1,40 @@
|
|||
|
||||
#include "manager.h"
|
||||
#include "area.h"
|
||||
#include "room.h"
|
||||
#include "screen.h"
|
||||
#include "functions.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager2F/Manager2F_Main.inc", void Manager2F_Main())
|
||||
void sub_0805D470(Manager*);
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager2F/sub_0805D470.inc", void sub_0805D470())
|
||||
void Manager2F_Main(Manager* this) {
|
||||
if (this == NULL) {
|
||||
if ((void*)gArea.unk3 != sub_0805D470) {
|
||||
sub_0805D470(NULL);
|
||||
}
|
||||
} else {
|
||||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
this->unk_10 |= 0x20;
|
||||
sub_0805E3A0(this, 6);
|
||||
if (gArea.unk3 == 0) {
|
||||
sub_08052D74(this, sub_0805D470, NULL);
|
||||
} else {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
gRoomControls.bg3OffsetX.WORD -= 0x4000;
|
||||
gRoomControls.bg3OffsetY.WORD -= 0x2000;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805D470(Manager* this) {
|
||||
LoadGfxGroup(0x4c);
|
||||
gScreen.affine.bg3Control = 0x1e07;
|
||||
gScreen.lcd.displayControl |= 0x800;
|
||||
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI;
|
||||
gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
#include "manager.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager31/Manager31_Main.inc", void Manager31_Main())
|
||||
ASM_FUNC("asm/non_matching/manager31/Manager31_Main.inc", void Manager31_Main())
|
||||
|
|
|
@ -14,4 +14,4 @@ ASM_FUNC("asm/non_matching/manager32/sub_0805D9D8.inc", void sub_0805D9D8())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805DA08.inc", void sub_0805DA08())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805DA90.inc", void sub_0805DA90())
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805DA90.inc", void sub_0805DA90())
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#include "manager.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager33/Manager33_Main.inc", void Manager33_Main(Manager* this))
|
||||
ASM_FUNC("asm/non_matching/manager33/Manager33_Main.inc", void Manager33_Main(Manager* this))
|
||||
|
|
|
@ -1,11 +1,84 @@
|
|||
#include "manager.h"
|
||||
#include "flags.h"
|
||||
#include "room.h"
|
||||
#include "object.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager35/Manager35_Main.inc", void Manager35_Main())
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u8 field_0x20[0x15];
|
||||
u8 field_0x35;
|
||||
u8 field_0x36;
|
||||
u8 field_0x37;
|
||||
s16 field_0x38;
|
||||
s16 field_0x3a;
|
||||
u16 field_0x3c;
|
||||
u16 field_0x3e;
|
||||
} Manager35;
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager35/sub_0805DC9C.inc", void sub_0805DC9C())
|
||||
extern void (*const gUnk_08108D98[])(Manager35*);
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager35/sub_0805DCC8.inc", void sub_0805DCC8())
|
||||
extern void sub_0805E4E0(Entity*, u32);
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager35/sub_0805DD24.inc", void sub_0805DD24())
|
||||
void Manager35_Main(Manager35* this) {
|
||||
gUnk_08108D98[this->manager.action](this);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager35/sub_0805DD68.inc", void sub_0805DD68())
|
||||
void sub_0805DC9C(Manager35* this) {
|
||||
if (CheckFlags(this->field_0x3c) != 0) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
if (CheckFlags(this->field_0x3e) != 0) {
|
||||
SetFlag(this->field_0x3c);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
this->manager.action = 1;
|
||||
}
|
||||
|
||||
void sub_0805DCC8(Manager35* this) {
|
||||
Entity* object;
|
||||
|
||||
if (CheckFlags(this->field_0x3e) != 0) {
|
||||
this->manager.action = 2;
|
||||
this->manager.unk_0e = this->field_0x35;
|
||||
if (this->manager.unk_0e == 0) {
|
||||
this->manager.unk_0e = 0x1e;
|
||||
}
|
||||
this->manager.parent = (Manager*)gRoomControls.cameraTarget;
|
||||
object = CreateObject(OBJECT_69, 0, 0);
|
||||
if (object != NULL) {
|
||||
object->x.HALF.HI = this->field_0x38 + gRoomControls.roomOriginX;
|
||||
object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY;
|
||||
*(Entity**)this->manager.unk_18 = object;
|
||||
gRoomControls.cameraTarget = object;
|
||||
sub_0805E4E0(object, 0x1e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805DD24(Manager35* this) {
|
||||
sub_0805E4E0(0, 8);
|
||||
if ((gRoomControls.unk6 & 4) == 0 && --this->manager.unk_0e == 0) {
|
||||
this->manager.action = 3;
|
||||
SetFlag(this->field_0x3c);
|
||||
if (this->field_0x36 == 0) {
|
||||
this->field_0x36 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0805DD68(Manager35* this) {
|
||||
sub_0805E4E0(0, 8);
|
||||
if (this->field_0x36 != 0) {
|
||||
if (--this->field_0x36 == 0) {
|
||||
gRoomControls.cameraTarget = (Entity*)this->manager.parent;
|
||||
}
|
||||
} else {
|
||||
if ((gRoomControls.unk6 & 4) == 0) {
|
||||
Entity* entity = *(Entity**)this->manager.unk_18;
|
||||
if (entity != NULL) {
|
||||
DeleteEntity(entity);
|
||||
}
|
||||
DeleteThisEntity();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,4 +20,4 @@ ASM_FUNC("asm/non_matching/manager37/sub_0805E000.inc", void sub_0805E000())
|
|||
|
||||
ASM_FUNC("asm/non_matching/manager37/sub_0805E078.inc", void sub_0805E078())
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager37/sub_0805E094.inc", void sub_0805E094())
|
||||
ASM_FUNC("asm/non_matching/manager37/sub_0805E094.inc", void sub_0805E094())
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
#include "manager.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void DoExitTransition(void*);
|
||||
|
||||
void Manager6_Main(Manager6* this) {
|
||||
u32 tmp;
|
||||
Manager6WarpData* i;
|
||||
|
|
|
@ -32,7 +32,6 @@ typedef struct {
|
|||
u16 field_0x3e;
|
||||
} ManagerD;
|
||||
|
||||
|
||||
extern void (*const gUnk_08108308[])(ManagerD*);
|
||||
|
||||
extern u16* GetLayerByIndex(u32);
|
||||
|
@ -52,7 +51,6 @@ void sub_08058DE8(ManagerD* this) {
|
|||
puVar3 = (this->field_0x38 + 2) + puVar2;
|
||||
this->field_0x30 = puVar3;
|
||||
this->field_0x28 = *puVar3;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,4 +46,4 @@ ASM_FUNC("asm/non_matching/managerF/sub_0805947C.inc", void sub_0805947C())
|
|||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080594DC.inc", void sub_080594DC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059548.inc", void sub_08059548())
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059548.inc", void sub_08059548())
|
||||
|
|
|
@ -3,11 +3,9 @@
|
|||
#include "script.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern u32 gUnk_0813AD10;
|
||||
extern u32 gUnk_0813AD24;
|
||||
extern u32 gUnk_0813AD38;
|
||||
|
||||
extern void DoExitTransition(u32*);
|
||||
extern ScreenTransitionData gUnk_0813AD10;
|
||||
extern ScreenTransitionData gUnk_0813AD24;
|
||||
extern ScreenTransitionData gUnk_0813AD38;
|
||||
|
||||
void Emma(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include "functions.h"
|
||||
#include "textbox.h"
|
||||
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
extern ScreenTransitionData gUnk_0813AD4C;
|
||||
|
||||
void sub_0806E014(Entity* this);
|
||||
|
|
|
@ -12,10 +12,8 @@ typedef struct {
|
|||
u32 unk;
|
||||
} struct_0806C2A0;
|
||||
|
||||
extern void DoExitTransition(void*);
|
||||
|
||||
extern void gUnk_0813AD60;
|
||||
extern void gUnk_0813AD74;
|
||||
extern ScreenTransitionData gUnk_0813AD60;
|
||||
extern ScreenTransitionData gUnk_0813AD74;
|
||||
|
||||
void Simon(Entity* this) {
|
||||
if (this->action == 0) {
|
||||
|
|
|
@ -232,4 +232,4 @@ void (*const BookActionFuncs[])(Entity*) = {
|
|||
sub_0809B3C4, sub_0809B4A8, sub_0809B524, sub_0809B56C, sub_0809B5B4, sub_0809B5EC,
|
||||
};
|
||||
|
||||
const s8 gUnk_08123D94[] = { -22, -20, -20, -20 };
|
||||
const s8 gUnk_08123D94[] = { -22, -20, -20, -20 };
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
#include "player.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void DoExitTransition(void*);
|
||||
|
||||
extern void (*const gUnk_08122254[])(Entity*);
|
||||
extern u16 gUnk_0812225C[];
|
||||
|
||||
|
@ -35,6 +33,6 @@ void sub_08090F00(Entity* this) {
|
|||
}
|
||||
if ((gPlayerState.flags.all & 0x80) && sub_080041A0(this, &gPlayerEntity, 4, 4) &&
|
||||
(gPlayerEntity.height.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) {
|
||||
DoExitTransition((Entity*)GetCurrentRoomProperty(this->actionDelay));
|
||||
DoExitTransition(GetCurrentRoomProperty(this->actionDelay));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@ extern void sub_0806F948();
|
|||
extern void sub_08077698();
|
||||
extern void sub_0805E544();
|
||||
extern void sub_080717F8();
|
||||
extern void DoExitTransition();
|
||||
extern void UnfreezeTime();
|
||||
extern void sub_08071A6C();
|
||||
extern void sub_08052BB8();
|
||||
|
|
Loading…
Reference in New Issue