Decompiler manager34

This commit is contained in:
octorock 2021-08-30 17:56:05 +02:00
parent 14323b92be
commit 29d7c7bd6b
6 changed files with 32 additions and 68 deletions

View File

@ -1,16 +0,0 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805DBB0 @ =gUnk_08108D8C
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0805DBF0
pop {r4, pc}
.align 2, 0
_0805DBB0: .4byte gUnk_08108D8C
.syntax divided

View File

@ -1,4 +0,0 @@
.syntax unified
bx lr
.align 2, 0
.syntax divided

View File

@ -1,14 +0,0 @@
.syntax unified
movs r1, #1
strb r1, [r0, #0xc]
ldr r1, _0805DBC8 @ =gScreenTransition
adds r1, #0x3d
ldrb r2, [r1]
lsls r1, r2, #4
subs r1, r1, r2
lsls r1, r1, #2
strh r1, [r0, #0x20]
bx lr
.align 2, 0
_0805DBC8: .4byte gScreenTransition
.syntax divided

View File

@ -1,19 +0,0 @@
.syntax unified
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x14]
ldr r0, [r0, #4]
cmp r0, #0
bne _0805DBE6
movs r0, #2
strb r0, [r1, #0xc]
ldrh r0, [r1, #0x20]
ldr r2, _0805DBE8 @ =0x0000012D
cmp r0, r2
bls _0805DBE6
strh r2, [r1, #0x20]
_0805DBE6:
pop {pc}
.align 2, 0
_0805DBE8: .4byte 0x0000012D
.syntax divided

View File

@ -1,9 +0,0 @@
.syntax unified
push {lr}
bl sub_0805E5A8
ldr r0, _0805DC80 @ =gUnk_0813AC48
bl DoExitTransition
pop {pc}
.align 2, 0
_0805DC80: .4byte gUnk_0813AC48
.syntax divided

View File

@ -1,13 +1,39 @@
#include "manager.h"
#include "structures.h"
#include "functions.h"
ASM_FUNC("asm/non_matching/manager34/Manager34_Main.inc", void Manager34_Main())
typedef struct {
Manager manager;
u16 field_0x20;
} Manager34;
ASM_FUNC("asm/non_matching/manager34/sub_0805DBB4.inc", void sub_0805DBB4())
extern void (*const gUnk_08108D8C[])(Manager34*);
void sub_0805DBF0(Manager34*);
ASM_FUNC("asm/non_matching/manager34/sub_0805DBCC.inc", void sub_0805DBCC())
extern ScreenTransitionData gUnk_0813AC48;
ASM_FUNC("asm/non_matching/manager34/nullsub_498.inc", void nullsub_498())
void Manager34_Main(Manager34* this) {
gUnk_08108D8C[this->manager.action](this);
sub_0805DBF0(this);
}
ASM_FUNC("asm/non_matching/manager34/sub_0805DBF0.inc", void sub_0805DBF0())
void sub_0805DBB4(Manager34* this) {
this->manager.action = 1;
this->field_0x20 = gScreenTransition.filler[0] * 0x3c;
}
ASM_FUNC("asm/non_matching/manager34/sub_0805DC70.inc", void sub_0805DC70())
void sub_0805DBCC(Manager34* this) {
if (((this->manager.parent)->next == NULL) && (this->manager.action = 2, 0x12d < this->field_0x20)) {
this->field_0x20 = 0x12d;
}
}
void nullsub_498(Manager34* this) {
}
ASM_FUNC("asm/non_matching/manager34/sub_0805DBF0.inc", void sub_0805DBF0(Manager34* this))
void sub_0805DC70(Manager34* this) {
sub_0805E5A8();
DoExitTransition(&gUnk_0813AC48);
}