diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2021-08-29 12:13:40 +0200 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2021-08-29 12:13:40 +0200 |
| commit | f4447dabc39aaaf4b14ed6fc7bc66a6146e24d02 (patch) | |
| tree | 166c049a7d1a94e1d2834f2c1925f28a01ffc1e7 /src | |
| parent | d0d4c3323e780110c8e3fe44c8a85126446e1b1a (diff) | |
Decompile manager1F
Diffstat (limited to 'src')
| -rw-r--r-- | src/manager/manager1F.c | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/src/manager/manager1F.c b/src/manager/manager1F.c index 0d993055..08fd71e8 100644 --- a/src/manager/manager1F.c +++ b/src/manager/manager1F.c @@ -1,9 +1,53 @@ #include "manager.h" +#include "flags.h" +#include "room.h" -ASM_FUNC("asm/non_matching/manager1F/Manager1F_Main.inc", void Manager1F_Main()) +typedef struct { + Manager manager; + u8 field_0x20[0x16]; + u8 field_0x36; + u8 field_0x37; + s16 field_0x38; + u16 field_0x3a; + u8 field_0x3c; + u8 field_0x3d; + u16 field_0x3e; +} Manager1F; +extern void (*const gUnk_08108C94[])(Manager1F*); -ASM_FUNC("asm/non_matching/manager1F/sub_0805B70C.inc", void sub_0805B70C()) +void sub_0805B778(Manager1F*); -ASM_FUNC("asm/non_matching/manager1F/sub_0805B744.inc", void sub_0805B744()) +extern u16 gUnk_08108C9C[]; -ASM_FUNC("asm/non_matching/manager1F/sub_0805B778.inc", void sub_0805B778())
\ No newline at end of file +void Manager1F_Main(Manager1F* this) { + gUnk_08108C94[this->manager.action](this); +} + +void sub_0805B70C(Manager1F* this) { + if (CheckFlags(this->field_0x3e) != 0) { + this->manager.unk_0b = 1; + } + this->manager.action = 1; + this->field_0x38 = + (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); + sub_0805B778(this); +} + +void sub_0805B744(Manager1F* this) { + if (CheckFlags(this->field_0x3e) != 0) { + if (this->manager.unk_0b == 0) { + this->manager.unk_0b = 1; + sub_0805B778(this); + } + } else { + if (this->manager.unk_0b == 1) { + this->manager.unk_0b = 0; + sub_0805B778(this); + } + } +} + +void sub_0805B778(Manager1F* this) { + SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b], + this->field_0x38, this->field_0x36); +}
\ No newline at end of file |
