Merge pull request #362 from hatal175/manager29

Decompile manager29
This commit is contained in:
notyourav
2022-02-09 13:04:28 -08:00
committed by GitHub
5 changed files with 148 additions and 479 deletions
@@ -1,29 +0,0 @@
.syntax unified
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805CBB8
adds r0, r4, #0
bl sub_0805CBD0
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805CBCE
adds r0, r4, #0
bl sub_0805CC3C
adds r0, r4, #0
bl DeleteManager
b _0805CBCE
_0805CBB8:
adds r0, r4, #0
bl sub_0805CF80
cmp r0, #0
beq _0805CBCE
ldrh r0, [r4, #0x3e]
bl SetFlag
adds r0, r4, #0
bl DeleteManager
_0805CBCE:
pop {r4, pc}
.syntax divided
@@ -1,54 +0,0 @@
.syntax unified
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
ldrh r1, [r5, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r0, [r5, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r5, #0x38]
ldrh r2, [r5, #0x3c]
lsrs r2, r2, #4
ands r2, r3
adds r0, r5, #0
adds r0, #0x36
ldrb r1, [r0]
adds r0, #1
ldrb r0, [r0]
lsls r0, r0, #8
adds r1, r1, r0
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r2, r1
strh r2, [r5, #0x3a]
movs r1, #0x38
ldrsh r0, [r5, r1]
adds r4, r5, #0
adds r4, #0x34
ldrb r1, [r4]
bl GetTileType
strh r0, [r5, #0x3c]
ldrb r0, [r4]
bl GetLayerByIndex
ldr r2, _0805CC38 @ =0x00005004
adds r1, r0, r2
str r1, [r5, #0x28]
movs r2, #0x3a
ldrsh r1, [r5, r2]
lsls r1, r1, #1
adds r1, #4
adds r0, r0, r1
str r0, [r5, #0x2c]
pop {r4, r5, pc}
.align 2, 0
_0805CC38: .4byte 0x00005004
.syntax divided
-357
View File
@@ -1,357 +0,0 @@
.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
movs r0, #0x38
ldrsh r5, [r4, r0]
movs r0, #0x3a
ldrsh r1, [r4, r0]
mov r8, r1
adds r7, r4, #0
adds r7, #0x34
ldrb r0, [r7]
ldr r6, _0805CC6C @ =0x00000322
cmp r0, #1
bne _0805CC5C
subs r6, #1
_0805CC5C:
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0805CCF4
cmp r0, #2
bgt _0805CC70
cmp r0, #1
beq _0805CC94
b _0805CC76
.align 2, 0
_0805CC6C: .4byte 0x00000322
_0805CC70:
cmp r0, #3
bne _0805CC76
b _0805CDE4
_0805CC76:
adds r4, #0x34
ldrb r2, [r4]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
ldr r0, _0805CC90 @ =0x00000365
ldrb r2, [r4]
mov r1, r8
bl sub_0807B7D8
b _0805CF68
.align 2, 0
_0805CC90: .4byte 0x00000365
_0805CC94:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r0, _0805CCEC @ =0x0000036F
mov r1, r8
adds r1, #1
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CCF0 @ =0x00000371
mov r1, r8
adds r1, #0x41
b _0805CDC2
.align 2, 0
_0805CCEC: .4byte 0x0000036F
_0805CCF0: .4byte 0x00000371
_0805CCF4:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x42
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x81
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x82
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r0, _0805CDCC @ =0x00000372
mov r1, r8
adds r1, #1
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD0 @ =0x0000036F
mov r1, r8
adds r1, #2
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdd
lsls r0, r0, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD4 @ =0x00000376
mov r1, r8
adds r1, #0x41
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD8 @ =0x00000375
mov r1, r8
adds r1, #0x42
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0x80
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDDC @ =0x00000373
mov r1, r8
adds r1, #0x81
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDE0 @ =0x00000371
mov r1, r8
adds r1, #0x82
_0805CDC2:
ldrb r2, [r7]
bl sub_0807B7D8
b _0805CF68
.align 2, 0
_0805CDCC: .4byte 0x00000372
_0805CDD0: .4byte 0x0000036F
_0805CDD4: .4byte 0x00000376
_0805CDD8: .4byte 0x00000375
_0805CDDC: .4byte 0x00000373
_0805CDE0: .4byte 0x00000371
_0805CDE4:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #3
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x42
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x43
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x81
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x82
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x83
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc0
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc3
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r4, _0805CF70 @ =0x00000372
mov r1, r8
adds r1, #1
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #2
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r0, _0805CF74 @ =0x0000036F
mov r1, r8
adds r1, #3
ldrb r2, [r7]
bl sub_0807B7D8
movs r6, #0xdd
lsls r6, r6, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r4, #4
mov r1, r8
adds r1, #0x41
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x42
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r5, _0805CF78 @ =0x00000375
mov r1, r8
adds r1, #0x43
ldrb r2, [r7]
adds r0, r5, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x81
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x82
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x83
ldrb r2, [r7]
adds r0, r5, #0
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0xc0
ldrb r2, [r7]
bl sub_0807B7D8
subs r4, #3
mov r1, r8
adds r1, #0xc1
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0xc2
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r0, _0805CF7C @ =0x00000371
mov r1, r8
adds r1, #0xc3
ldrb r2, [r7]
bl sub_0807B7D8
_0805CF68:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805CF70: .4byte 0x00000372
_0805CF74: .4byte 0x0000036F
_0805CF78: .4byte 0x00000375
_0805CF7C: .4byte 0x00000371
.syntax divided
@@ -1,35 +0,0 @@
.syntax unified
push {lr}
ldr r1, [r0, #0x2c]
ldrh r1, [r1]
ldr r0, [r0, #0x28]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r1, [r1]
movs r2, #0
ldr r0, _0805CFBC @ =0x00000365
cmp r1, r0
beq _0805CFB4
adds r0, #4
cmp r1, r0
beq _0805CFB4
adds r0, #1
cmp r1, r0
beq _0805CFB4
adds r0, #1
cmp r1, r0
beq _0805CFB4
adds r0, #2
cmp r1, r0
beq _0805CFB4
subs r0, #1
cmp r1, r0
bne _0805CFB6
_0805CFB4:
movs r2, #1
_0805CFB6:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0805CFBC: .4byte 0x00000365
.syntax divided
+148 -4
View File
@@ -1,10 +1,154 @@
#include "manager.h"
#include "flags.h"
#include "asm.h"
#include "functions.h"
ASM_FUNC("asm/non_matching/manager29/Manager29_Main.inc", void Manager29_Main())
typedef struct {
Manager manager;
u8 unk_20[0x8];
u16* unk_28;
u16* unk_2c;
u8 filler[0x4];
u8 unk_34;
u8 unk_35;
u8 unk_36;
u8 unk_37;
s16 unk_38;
u16 unk_3a;
u16 unk_3c;
u16 unk_3e;
} Manager29;
ASM_FUNC("asm/non_matching/manager29/sub_0805CBD0.inc", void sub_0805CBD0())
bool32 sub_0805CF80(Manager29* this);
void sub_0805CBD0(Manager29* this);
void sub_0805CC3C(Manager29* this);
ASM_FUNC("asm/non_matching/manager29/sub_0805CC3C.inc", void sub_0805CC3C())
extern u16* GetLayerByIndex(u32);
ASM_FUNC("asm/non_matching/manager29/sub_0805CF80.inc", void sub_0805CF80())
void Manager29_Main(Manager29* this) {
if (this->manager.action == 0) {
sub_0805CBD0(this);
if (CheckFlags(this->unk_3e)) {
sub_0805CC3C(this);
DeleteManager(this);
}
} else if (sub_0805CF80(this)) {
SetFlag(this->unk_3e);
DeleteManager(this);
}
}
void sub_0805CBD0(Manager29* this) {
u16* puVar2;
this->manager.action = 1;
this->unk_38 = (this->unk_38 >> 4 & 0x3fU) | (((this->unk_3a << 0x10) >> 0x14 & 0x3fU) << 6);
this->unk_3a = (this->unk_3c >> 4 & 0x3f) | (((this->unk_36 + this->unk_37 * 0x100) >> 4 & 0x3fU) << 6);
this->unk_3c = GetTileType(this->unk_38, this->unk_34);
puVar2 = GetLayerByIndex(this->unk_34);
this->unk_28 = puVar2 + 0x2802;
this->unk_2c = puVar2 + 2 + (s16)this->unk_3a;
}
void sub_0805CC3C(Manager29* this) {
s32 iVar2;
u32 iVar3;
u32 uVar4;
iVar3 = this->unk_38;
iVar2 = (short)this->unk_3a;
if (this->unk_34 == 1) {
uVar4 = 0x321;
} else {
uVar4 = 0x322;
}
switch (this->manager.unk_0a) {
default:
sub_0807B7D8(uVar4, iVar3, this->unk_34);
sub_0807B7D8(0x365, iVar2, this->unk_34);
break;
case 1:
sub_0807B7D8(uVar4, iVar3, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
sub_0807B7D8(0x36f, iVar2 + 1, this->unk_34);
sub_0807B7D8(0x370, iVar2 + 0x40, this->unk_34);
sub_0807B7D8(0x371, iVar2 + 0x41, this->unk_34);
break;
case 2:
sub_0807B7D8(uVar4, iVar3, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 2, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x42, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x80, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x81, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x82, this->unk_34);
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
sub_0807B7D8(0x372, iVar2 + 1, this->unk_34);
sub_0807B7D8(0x36f, iVar2 + 2, this->unk_34);
sub_0807B7D8(0x374, iVar2 + 0x40, this->unk_34);
sub_0807B7D8(0x376, iVar2 + 0x41, this->unk_34);
sub_0807B7D8(0x375, iVar2 + 0x42, this->unk_34);
sub_0807B7D8(0x370, iVar2 + 0x80, this->unk_34);
sub_0807B7D8(0x373, iVar2 + 0x81, this->unk_34);
sub_0807B7D8(0x371, iVar2 + 0x82, this->unk_34);
break;
case 3:
sub_0807B7D8(uVar4, iVar3, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 1, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 2, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 3, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x40, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x41, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x42, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x43, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x80, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x81, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x82, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0x83, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0xc0, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0xc1, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0xc2, this->unk_34);
sub_0807B7D8(uVar4, iVar3 + 0xc3, this->unk_34);
sub_0807B7D8(this->unk_3c, iVar2, this->unk_34);
sub_0807B7D8(0x372, iVar2 + 1, this->unk_34);
sub_0807B7D8(0x372, iVar2 + 2, this->unk_34);
sub_0807B7D8(0x36f, iVar2 + 3, this->unk_34);
sub_0807B7D8(0x374, iVar2 + 0x40, this->unk_34);
sub_0807B7D8(0x376, iVar2 + 0x41, this->unk_34);
sub_0807B7D8(0x376, iVar2 + 0x42, this->unk_34);
sub_0807B7D8(0x375, iVar2 + 0x43, this->unk_34);
sub_0807B7D8(0x374, iVar2 + 0x80, this->unk_34);
sub_0807B7D8(0x376, iVar2 + 0x81, this->unk_34);
sub_0807B7D8(0x376, iVar2 + 0x82, this->unk_34);
sub_0807B7D8(0x375, iVar2 + 0x83, this->unk_34);
sub_0807B7D8(0x370, iVar2 + 0xc0, this->unk_34);
sub_0807B7D8(0x373, iVar2 + 0xc1, this->unk_34);
sub_0807B7D8(0x373, iVar2 + 0xc2, this->unk_34);
sub_0807B7D8(0x371, iVar2 + 0xc3, this->unk_34);
break;
}
}
bool32 sub_0805CF80(Manager29* this) {
s32 sVar1;
u32 uVar2;
sVar1 = this->unk_28[this->unk_2c[0]];
uVar2 = 0;
if ((((sVar1 == 0x365) || (sVar1 == 0x369)) || (sVar1 == 0x36a)) ||
(((sVar1 == 0x36b || (sVar1 == 0x36d)) || (sVar1 == 0x36c)))) {
uVar2 = 1;
}
return uVar2;
}