diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2021-09-18 11:30:41 +0200 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2021-09-18 11:30:41 +0200 |
| commit | 7a70c6568082e86b80ac1744b6410d90e08b341d (patch) | |
| tree | 5b5177bd24a0b67a097b3cadfb54489e56423313 /src/manager | |
| parent | fe1e97f8ef20b4a4be883c14caade2831d381f1a (diff) | |
Decompile manager33
Diffstat (limited to 'src/manager')
| -rw-r--r-- | src/manager/manager33.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/manager/manager33.c b/src/manager/manager33.c index df2feeb7..b284a1b5 100644 --- a/src/manager/manager33.c +++ b/src/manager/manager33.c @@ -1,3 +1,33 @@ #include "manager.h" +#include "room.h" +#include "player.h" +#include "audio.h" +#include "object.h" -ASM_FUNC("asm/non_matching/manager33/Manager33_Main.inc", void Manager33_Main(Manager* this)) +void Manager33_Main(Manager* this) { + RoomControls* roomControls = &gRoomControls; + u32 a = roomControls->roomOriginX + 0x1f8; + u32 x = (a - gPlayerEntity.x.HALF.HI) + 0x10; + u32 b = roomControls->roomOriginY + 0x140; + u32 y = (b - gPlayerEntity.y.HALF.HI) + 0x10; + if (this->action == 0) { + if (x < 0x20 && + y < 0x20 && + gPlayerEntity.height.HALF.HI < -0x18 && + gPlayerState.field_0xa8 == 0x14) { + this->action += 1; + this->unk_0e = 0x5a; + SoundReq(SFX_10A); + } + } else { + if (--this->unk_0e == 0) { + Entity* object = CreateObject(OBJECT_96, 1, 0); + if (object != NULL) { + object->x.HALF.HI = roomControls->roomOriginX + 0x1f8; + object->y.HALF.HI = roomControls->roomOriginY + 0x140; + object->height.HALF.HI = 0xffe8; + } + DeleteThisEntity(); + } + } +} |
